Skip to content

Commit 7814144

Browse files
committed
docs(vendor): correct the 0.4.0 sync audit record
The first sync commit still contains local lines, so it is not an unmodified upstream tree, and the second commit is not a patch-only replay onto a later pin. The auditable tree is the branch tip. @intx/tools-posix stays in the patched set, and packages published at npm 0.4.0 are no longer described as unpublished or ahead of npm.
1 parent 5b9aafa commit 7814144

1 file changed

Lines changed: 35 additions & 19 deletions

File tree

‎docs/VENDORING.md‎

Lines changed: 35 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,12 @@ package; the date is the deadline even if it is not.
5050
| `vendor/intx-inference/` | `faremeter/interchange` | `5453d0b01da9d749aa446c4ba34fcf2aeb4549c0` | Yes — `PATCHES.md` | Local fixes not yet upstream | runtime | 2027-03-14 or when patches land upstream and publish |
5151
| `vendor/intx-types/` | `faremeter/interchange` | `5453d0b01da9d749aa446c4ba34fcf2aeb4549c0` | Yes — `PATCHES.md` | Cross-package coupling with `@intx/inference` | runtime | 2027-03-14 or when the coupled trio publishes past `0.3.0` |
5252
| `vendor/intx-storage-isogit/` | `faremeter/interchange` | `5453d0b01da9d749aa446c4ba34fcf2aeb4549c0` | Yes — `PATCHES.md` | Cross-package coupling with `@intx/inference` | runtime | 2027-03-14 or when the coupled trio publishes past `0.3.0` |
53-
| `vendor/intx-agent/` | `faremeter/interchange` | `5453d0b01da9d749aa446c4ba34fcf2aeb4549c0` | Yes — `PATCHES.md` | Vendored at Interchange head ahead of npm | runtime | 2027-03-14 or when `@intx/agent@>=0.4.0` publishes |
54-
| `vendor/intx-authz/` | `faremeter/interchange` | `5453d0b01da9d749aa446c4ba34fcf2aeb4549c0` | No | Vendored at Interchange head ahead of npm | runtime | 2027-03-14 or when `@intx/authz@>=0.4.0` publishes |
55-
| `vendor/intx-log/` | `faremeter/interchange` | `5453d0b01da9d749aa446c4ba34fcf2aeb4549c0` | No | Vendored at Interchange head ahead of npm | runtime | 2027-03-14 or when `@intx/log@>=0.4.0` publishes |
56-
| `vendor/intx-tools-posix/` | `faremeter/interchange` | `5453d0b01da9d749aa446c4ba34fcf2aeb4549c0` | Yes — `PATCHES.md` | Vendored at Interchange head ahead of npm; the read_file paging description patch rides the coupled size-cap patch (see `vendor/intx-tools-posix/PATCHES.md`) | runtime | 2027-03-14 or when `@intx/tools-posix@>=0.4.0` publishes |
57-
| `vendor/intx-mailbox/` | `faremeter/interchange` | `5453d0b01da9d749aa446c4ba34fcf2aeb4549c0` | No | Never published to npm (verified 2026-09-07: registry 404 for all versions) | step-1 | 2027-03-14 or when any `@intx/mailbox` version publishes to npm |
58-
| `vendor/intx-harness/` | `faremeter/interchange` | `5453d0b01da9d749aa446c4ba34fcf2aeb4549c0` | No | `driveConnectorReplies`/`AgentEventStream` (`src/reply-drain.ts`) is past npm `0.3.0` (verified 2026-09-07: absent from the published tarball) | step-1 | 2027-03-14 or when a published `@intx/harness` exports `driveConnectorReplies` |
53+
| `vendor/intx-agent/` | `faremeter/interchange` | `5453d0b01da9d749aa446c4ba34fcf2aeb4549c0` | Yes — `PATCHES.md` | Local patches (`vendor/intx-agent/PATCHES.md`); published `@intx/agent@0.4.0` does not include them | runtime | 2027-03-14 or when those patches land upstream and publish |
54+
| `vendor/intx-authz/` | `faremeter/interchange` | `5453d0b01da9d749aa446c4ba34fcf2aeb4549c0` | No | Published at npm `0.4.0` (verbatim). Kept so the vendored set stays one workspace pin with the patched packages | runtime | 2027-03-14 or when patched siblings no longer need the shared vendored pin |
55+
| `vendor/intx-log/` | `faremeter/interchange` | `5453d0b01da9d749aa446c4ba34fcf2aeb4549c0` | No | Published at npm `0.4.0` (verbatim). Kept so the vendored set stays one workspace pin with the patched packages | runtime | 2027-03-14 or when patched siblings no longer need the shared vendored pin |
56+
| `vendor/intx-tools-posix/` | `faremeter/interchange` | `5453d0b01da9d749aa446c4ba34fcf2aeb4549c0` | Yes — `PATCHES.md` | Local `registry.ts` paging patch (`vendor/intx-tools-posix/PATCHES.md`); `@intx/tools-posix@0.4.0` does not include it | runtime | 2027-03-14 or when that patch lands upstream and publishes |
57+
| `vendor/intx-mailbox/` | `faremeter/interchange` | `5453d0b01da9d749aa446c4ba34fcf2aeb4549c0` | No | Published at npm `0.4.0` (verbatim). Kept so the vendored set stays one workspace pin with the patched packages | step-1 | 2027-03-14 or when patched siblings no longer need the shared vendored pin |
58+
| `vendor/intx-harness/` | `faremeter/interchange` | `5453d0b01da9d749aa446c4ba34fcf2aeb4549c0` | No | Published `@intx/harness@0.4.0` exports `driveConnectorReplies` (verbatim). Kept on the shared vendored pin | step-1 | 2027-03-14 or when patched siblings no longer need the shared vendored pin |
5959
| `vendor/intx-mime/` | `faremeter/interchange` | `5453d0b01da9d749aa446c4ba34fcf2aeb4549c0` | No | `buildMessageHeaders` is past npm `0.3.0` (verified 2026-09-07: absent from the published tarball); `@intx/mailbox` re-exports it | step-1 | 2027-03-14 or when a published `@intx/mime` exports `buildMessageHeaders` |
6060
| `vendor/intx-workflow-host/adapters/` | `faremeter/interchange` | `5453d0b01da9d749aa446c4ba34fcf2aeb4549c0` | No | App-internal: `substrate-mailbox-store.ts` has never been published in any `@intx/workflow-host` release (verified 2026-09-07: absent from the `0.3.0` tarball) | step-1 | 2027-03-14 or when a published `@intx/workflow-host` exports `createSubstrateMailboxStore` |
6161
| `vendor/intx-workflow-host/workflow-definition-loader.ts` | `faremeter/interchange` | `5453d0b01da9d749aa446c4ba34fcf2aeb4549c0` | No | Director loading from a workflow closure (`loadWorkflowDirectorRegistryFromClosure`); never published in any `@intx/workflow-host` release (verified 2026-09-14: absent from the `0.3.0` tarball) | step-1 | 2027-03-14 or when a published `@intx/workflow-host` exports `loadWorkflowDirectorRegistryFromClosure` |
@@ -158,7 +158,7 @@ small: package version bumps across the board, plus
158158
three source files in `@intx/types` (`base64.ts` chunked encoding,
159159
`grants.ts` gaining `ApprovalItem`, `sidecar.ts` widening
160160
`approvedGrants` to `ApprovalItem[]`), a new `@intx/agent` testing helper
161-
(`testing/reactor-waiters.ts`, `waitForReactorDone` moved out of three
161+
(`testing/reactor-waiters.ts`, `waitForReactorDone` moved out of four
162162
agent test files), and a new `@intx/log` probe (`default-sink-probe.ts`).
163163
No vendored production source besides those three `@intx/types` files
164164
changed upstream in this range, so the four patched packages re-carried
@@ -170,6 +170,13 @@ were overwritten from the new pin; the two agent test files and the
170170
inference `reactor.test.ts` that had both local patches and upstream
171171
changes were three-way merged (`git merge-file`), and every other
172172
patched file kept its prior state because upstream did not touch it.
173+
Commit `865f63c6` is not a pristine byte-identical snapshot of
174+
`5453d0b0`: local lines remain in that commit, including
175+
`ephemeralTurns` and `Locally patched` in
176+
`vendor/intx-inference/src/reactor.ts`. No exhaustive `cmp` showed
177+
otherwise. The auditable artifact is the branch tip — upstream
178+
`5453d0b0` plus the carried local patches. Replaying the following
179+
commit onto a later pristine pin is not a patch-only replay.
173180

174181
Ledger adjudication (ticket CL-10651, verified against upstream at this
175182
pin — all line-grep evidence below is against pristine `5453d0b0`):
@@ -402,13 +409,17 @@ does not resolve to a ledger heading, or if a ledger heading has no marker.
402409
`adapters/substrate-mailbox-store.test.ts`). Run
403410
`bun install`, `bun run typecheck`, `bun run build`, `bun run test`.
404411
3. For a **patched** package (`@intx/inference`, `@intx/types`,
405-
`@intx/storage-isogit`, `@intx/agent`): before overwriting
406-
anything, run `bin/vendor-patch-diff` (optionally
412+
`@intx/storage-isogit`, `@intx/agent`, and `@intx/tools-posix`):
413+
before overwriting anything, run `bin/vendor-patch-diff` (optionally
407414
`--upstream /path/to/interchange`) to re-derive the exact local
408415
divergences against the recorded SHA — do not trust `PATCHES.md`'s
409-
prose alone. Then overwrite `src/` with the new upstream commit's
410-
source, and re-apply each patch from the ledger by hand against the
411-
new file shapes. For each patch, confirm from the new upstream source
416+
prose alone. `@intx/tools-posix` is patched
417+
(`vendor/intx-tools-posix/PATCHES.md`); `registry.ts` carries
418+
`registry-ts-read-file-paging-description`. Copying that package as
419+
verbatim drops the paging description on the next resync. Then
420+
overwrite `src/` with the new upstream commit's source, and re-apply
421+
each patch from the ledger by hand against the new file shapes. For
422+
each patch, confirm from the new upstream source
412423
whether it: (a) still applies as-is, (b) needs adapting to a changed
413424
surrounding shape, or (c) has been subsumed by an equivalent upstream
414425
fix and can be dropped — verify (c) by reading the new upstream code,
@@ -424,13 +435,18 @@ does not resolve to a ledger heading, or if a ledger heading has no marker.
424435
vendoring — otherwise the trio drifts out of the single-commit coherence
425436
this document assumes.
426437
5. Update this document's table with the new commit hash and retrieval date.
427-
6. Land the sync as **two commits, in this order**: first the pristine
428-
upstream copy with no local changes, then the re-applied patches. The
429-
point is that the unmodified upstream state becomes a checkout rather
430-
than a reconstruction — an auditor diffs one commit against the upstream
431-
clone and is done, instead of subtracting a prose ledger from a merged
432-
tree. It also makes the next upgrade cheaper, because the patch commit is
433-
exactly the thing to replay. The 2026-08-08 sync landed as two
438+
6. Land the sync as **two commits, in this order**, only when the first
439+
commit really is unmodified upstream: a pristine copy with no local
440+
lines, then the re-applied patches. An auditor can then diff that
441+
first commit against the upstream clone. The 2026-10-14 re-sync did
442+
not meet that bar. Commit `865f63c6` is not a pristine byte-identical
443+
snapshot of `5453d0b0` (local lines remain, including `ephemeralTurns`
444+
and `Locally patched` in `vendor/intx-inference/src/reactor.ts`), and
445+
there was no exhaustive `cmp` that proved otherwise. The auditable
446+
artifact is the branch tip: upstream `5453d0b0` plus the carried
447+
local patches. Replaying the second commit onto a later pristine pin
448+
is not patch-only — that commit is not a clean patch set against an
449+
unmodified `5453d0b0` tree. The 2026-08-08 sync landed as two
434450
commits split by package rather than by pristine-then-patched, so neither
435451
isolates an unmodified upstream tree; `PATCHES.md` is what makes that state
436452
reconstructible, which is why that ledger is load-bearing rather than

0 commit comments

Comments
 (0)