build(deps): move @intx/* to 0.4.0 (CL-8797) - #31
Merged
Merged
Conversation
- @intx/crypto 0.3.0 -> 0.4.0 (dependencies) - @intx/log 0.2.2 -> 0.4.0 (devDependencies), ^0.2.2 -> ^0.4.0 (peerDependencies) - @intx/mailbox, @intx/mime, @intx/types: workspace:* -> 0.4.0 (devDependencies). All three are now published on npm at 0.4.0 for the first time, so the vendored copies under vendor/ can be pinned against a real registry version instead of the local workspace link. - Add semver / @types/semver as explicit devDependencies. Once the vendored @intx/mailbox/@intx/mime/@intx/types packages under vendor/intx-* share their package name with a real npm dependency instead of a workspace:* one, bun stops treating them as workspace members and no longer installs their own devDependencies/dependencies (semver, @types/semver) alongside them. vendor/intx-types imports semver directly, so it has to be declared at the root for build and test to resolve it the way workspace linking used to provide for free.
…s on npm (CL-8797) VENDORED.md's kill condition for all three vendored rows was "first npm publish of @intx/mailbox" -- that publish landed as part of this 0.4.0 wave, so the vendoring reason (nothing to install for @intx/mailbox/@intx/mime/@intx/types) no longer holds. - Delete vendor/intx-mailbox, vendor/intx-mime, vendor/intx-types and VENDORED.md. Delete tsconfig.vendor-build.json (no longer needed). - scripts/build.mjs: drop the vendor-build tsc pass, the copy into dist/vendor/, and the bare-specifier rewrite. The build is now a plain tsc emit of src/, matching corbits-artifacts' build script; @intx/mailbox/@intx/mime/@intx/types stay bare specifiers in dist/ for a consumer's own install to resolve, same as @intx/log already did. - package.json: drop vendor/* from workspaces. @intx/mailbox, @intx/mime, and @intx/types move to peerDependencies (^0.4.0) plus a matching devDependencies pin (0.4.0), the same treatment @intx/log already had and the pattern corbits-artifacts uses for every @intx/* package its src imports (real npm dependencies of that kind are never declared under the plain "dependencies" field in this ecosystem -- see @intx/hub-api and @intx/agent in corbits-artifacts, used at runtime there too but peer+dev only). Drop the semver/@types/semver devDependencies added for the vendor build -- nothing outside vendor/ used them. - Comments and README wording that called these packages "vendored" now name @intx/mailbox directly. - examples/reference-host's own @intx/db, @intx/hub-api, and @intx/hub-sessions deliberately stay at 0.2.2: bumping them to 0.4.0 surfaces real, non-trivial API breaks unrelated to the mailbox/mime/types cutover (SidecarCredentialIdentity is now a discriminated union, SessionService dropped deployInstanceAtHead, SidecarRouterConfig now requires validateSidecarIdentity) -- out of scope here, reported separately rather than improvised.
6 tasks
TheGreatAxios
added a commit
that referenced
this pull request
Sep 22, 2026
* build(deps): move reference-host @intx/* to 0.4.0 (CL-8856) @intx/db, @intx/hub-api and @intx/hub-sessions were still pinned at 0.2.2 while the rest of the package moved to the published 0.4.0 line in #31. Bump the reference host's three deps to match and refresh bun.lock with bun 1.3.14. * refactor(example): wire the reference host with the 0.4.0 hub APIs (CL-8856) 0.4.0 broke three things the reference host relied on: the sidecar authenticator can no longer hand back a bare `{ kind: "sidecar" }` identity (`SidecarCredentialIdentity` is now a discriminated union over "allocated" | "probe"), `SessionService` dropped `deployInstanceAtHead`/`deploySingleStepAtHead`/ `deployWorkflowDefinition`/`sendUserMessage` down to just `stageWorkflowStep` and `endSession`, and `SidecarRouterConfig` now requires `validateSidecarIdentity` alongside `authenticateSidecar`. Rebuild the sidecar router the published way, off `createSidecarCredentialResolver({ db })` (`.resolve` for `authenticateSidecar`, `.isCurrent` for `validateSidecarIdentity`) — the same pairing workbench's own hub wires. Trim the hand-written `SessionService` stub down to the two verbs the type still declares; it still refuses both, since this host runs no agent sessions. While in here, restructure the mailbox wiring itself to match the root README Quickstart's own shape: `installMailbox` (host-owned `databaseUrl`/`resolvePrincipal`/`senderAddressFor`/`deliver` in, mailbox db/bus handles out) and `wrapPersistMail` (host-owned `upstream`/`authorizeSender` in, a wrapped persist fn out), each a named function taking the host's dependencies as parameters instead of being inlined into `createReferenceHost`. `wrapPersistMail` is still wired at construction so the example proves the seam composes, but both of its callbacks refuse — this host has no live agent instance and no pre-existing agent-mail persist path to authorize or wrap. * refactor(example): drop the unused wrapPersistMail helper (CL-8856)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Moves every
@intx/*npm dependency to 0.4.0, then retires the vendored@intx/mailbox/@intx/mime/@intx/typescopies now that all three arepublished on npm for the first time.
@intx/crypto0.3.00.4.0@intx/log^0.2.2^0.4.0@intx/log0.2.20.4.0@intx/mailboxworkspace:*(vendor/)^0.4.0@intx/mailboxworkspace:*0.4.0@intx/mimeworkspace:*(vendor/)^0.4.0@intx/mimeworkspace:*0.4.0@intx/typesworkspace:*(vendor/)^0.4.0@intx/typesworkspace:*0.4.0Two commits
build(deps): move @intx/* to 0.4.0— the version bump itself, plussemver/@types/semverdevDependencies needed at that point becausethe
workspace:*→ npm swap made bun stop treatingvendor/intx-*as workspace members (their own
dependencies/devDependenciesstopped installing).
refactor(deps): retire vendored @intx copies now that @intx/mailbox is on npm— the full cutover, described below.Why the cutover, and why now
VENDORED.md's kill condition for all three vendored rows was "firstnpm publish of
@intx/mailbox" — that publish landed as part of this0.4.0 wave (confirmed via
npm view @intx/mailbox versions, which nowlists only
0.4.0). The reason for vendoring (nothing on npm for aconsumer to install) no longer holds, so this commit finishes the
retirement
VENDORED.mditself describes as the end state.What changed
vendor/intx-mailbox,vendor/intx-mime,vendor/intx-types,VENDORED.md, andtsconfig.vendor-build.json.package.json: droppedvendor/*fromworkspaces.@intx/mailbox,@intx/mime,@intx/typesmove topeerDependencies(^0.4.0) plusa matching exact
devDependenciespin (0.4.0) — the same treatment@intx/logalready had here. Checkedcorbits-artifacts' package.jsonfor the established convention: every
@intx/*package itssrcimports (including ones used at real runtime, e.g.
@intx/hub-api'sidResource,@intx/agent'sdefineTool) is declared only underpeerDependencies+ a pinneddevDependenciesentry, never underplain
dependencies— so@intx/mime/@intx/typesfollow that samepattern even though they're pure runtime/internal-only imports here,
not part of this package's own exported type surface. Also dropped
the
semver/@types/semverdevDependencies added in the firstcommit — nothing outside
vendor/needed them once vendor/ is gone.Bumped
corbits.minimumIntxVersionand the description's "Requires@intX ..." line from
0.2.2to0.4.0to match.scripts/build.mjs: dropped the vendor-buildtscpass, the copyinto
dist/vendor/, and the bare-specifier rewrite step. The build isnow a plain
tscemit ofsrc/(matchingcorbits-artifacts' buildscript) —
dist/*.jsnow ships bare@intx/mailbox/@intx/mimespecifiers for a consumer's own install to resolve, the same as
@intx/logalready did. Verifieddist/vendor/no longer exists anddist/mount.js/dist/frame.jsimport@intx/mailbox/@intx/mimeasbare specifiers.
src/index.ts,src/mount.ts,src/native-store.ts,src/native-store.test.ts) and one README sentence that called thesepackages "vendored" now name
@intx/mailboxdirectly — including onestring that ships in the OpenAPI
descriptionfield, so it wasuser-facing, not just an internal comment.
Peers:line and the four package-manager install lines inQuickstart now list
@intx/mailbox,@intx/mime,@intx/typesalongside
@intx/log.examples/reference-host was NOT bumped — reported, not improvised
examples/reference-host's own@intx/db/@intx/hub-api/@intx/hub-sessionsdeliberately stay at
0.2.2. Bumping them to0.4.0(tried, thenreverted) surfaces real, non-trivial API breaks unrelated to the
mailbox/mime/types cutover, all in
examples/reference-host/src/index.ts:SidecarCredentialIdentityis now a discriminated union(
{ kind: "allocated" | "probe", ... }with several more requiredfields) — the reference host's
{ kind: "sidecar", sidecarId }nolonger satisfies it.
SessionServicedroppeddeployInstanceAtHead.SidecarRouterConfignow requiresvalidateSidecarIdentityinaddition to
authenticateSidecar.These are real behavior/API changes with no drop-in replacement visible
from the type errors alone — per this bump's own rule ("if 0.4.0 breaks
something non-trivially... stop, do not improvise a fix, report the
details instead"), that wiring was left untouched rather than guessed
at.
examples/reference-hostalready had an unrelated pre-existingtypecheck gap noted in the original bump commit's baseline, so it was
out of scope for that reason too.
Checks vs baseline (main, no Postgres provisioned locally)
bun run typecheck, afterbun run build+bun install --force, matching CI): clean, same as baseline and asthe prior commit.
bun test src): baseline was 56 pass / 91 fail / 147tests / 19 files. This branch: 47 pass / 91 fail / 138 tests / 18
files — fail count is unchanged; the 9-test/1-file drop is exactly
vendor/intx-types/src/sidecar-oauth-login.test.ts, which no longerexists because the vendored copy it tested is deleted. No new
failures anywhere in this package's own
src/tests.examples/reference-hostacceptance test: unchanged (1 fail, samePostgres-connection error as baseline — untouched by this PR).
npm pack, confirmedvendor/is absent fromthe tarball, installed the tarball fresh in a scratch directory
(
npm install, which auto-installs peers), and ran the same nodeconsumer check CI does (
mountMailbox/runMailboxMigrationsbothresolve) — "node consumer ok",
@intx/mailbox/@intx/mime/@intx/types/@intx/log/@intx/cryptoall present undernode_modules/@intx/.tscode fences still typecheck clean against thecutover source.
Part of CL-8797