From d1eca8a55dec3e96f9ecf1600e8e6e169cdfd3fe Mon Sep 17 00:00:00 2001 From: Jinwoo-H Date: Tue, 14 Jul 2026 16:08:12 -0400 Subject: [PATCH] docs(ssh): record incremental database gate Co-authored-by: Orca --- ...github-release-implementation-checklist.md | 202 ++++++++++++++++-- 1 file changed, 183 insertions(+), 19 deletions(-) diff --git a/docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md b/docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md index df6c74d0a19..6dd5979f498 100644 --- a/docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md +++ b/docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md @@ -2,7 +2,7 @@ Date created: 2026-07-14
Last updated: 2026-07-14
-Current phase: Milestone 3 / Work Package 2 target-native runtime assembly — exact-head run 29358223742 isolates 2,879 Windows arm64 linker-emitted 16-byte function thunks whose `adrp`/`add`/`br` control flow is byte-identical and whose unreachable fourth `udf` instruction differs, plus 68 derived `/Brepro` identity bytes; exact-head run 29359948742 disproves the empty `LinkIncremental` property oracle; exact-head run 29361673339 proves the locally assumed fixed tracking path is absent; exact-head run 29362672415 then proves both native Windows builds fail closed because bounded discovery from the entire generated `build` tree reaches unrelated dependency depth, while all four POSIX controls remain reproducible and upload; exact implementation commit `6f28a8cbf` narrows discovery to the `build/Release` output tree and is locally green under E-M3-WINDOWS-LINK-COMMAND-RELEASE-ROOT-LOCAL-001; the next six-cell exact-head run remains required, and no evidence authorizes changing a bound, producer, comparator, or default path; oldest-baseline, native-trust, cross-family remote, and measured-baseline gates remain open; no bundled-runtime path is enabled
+Current phase: Milestone 3 / Work Package 2 target-native runtime assembly — exact-head run [29363423068](https://github.com/stablyai/orca/actions/runs/29363423068) at commit `2db46d91b` proves bounded `build/Release` discovery on both native Windows architectures: both clean builds select three tracking candidates, search 82 entries, select one target record, and report the same `/brepro`, `/debug`, `/experimental:deterministic`, `/guard:cf` summary with no explicit `/incremental` switch; Linux x64/arm64, macOS x64/arm64, and Windows x64 compare exactly and upload, while Windows arm64 retains the 2,879 linker-thunk mismatch and fails before upload under E-M3-WINDOWS-LINK-COMMAND-RELEASE-ROOT-CI-RED-001; exact implementation commit `e7d9a1c8d` adds only a bounded target `.ilk` presence/size diagnostic and is locally green under E-M3-WINDOWS-INCREMENTAL-DATABASE-LOCAL-001; the next exact-head six-cell run is required before any producer change; no evidence authorizes changing a comparator, production/default path, or tuple state; oldest-baseline, native-trust, cross-family remote, and measured-baseline gates remain open; no bundled-runtime path is enabled
Primary design: [SSH relay GitHub Release plan](./2026-07-14-ssh-relay-github-release-plan.html)
Motivating issues: [#8450](https://github.com/stablyai/orca/issues/8450), [#1693](https://github.com/stablyai/orca/issues/1693) @@ -732,6 +732,16 @@ under E-M3-WINDOWS-LINK-COMMAND-RELEASE-ROOT-LOCAL-001. No budget, parser, produ staging, upload, legacy, or production behavior changed. The active gate is another exact-head six-cell native run. +Exact-head run 29363423068 proves the scoped discovery on both native Windows runners. Both clean +builds on both architectures select three tracking candidates under 82 Release-tree entries and +report the same allowlisted command summary: `/brepro`, `/debug`, `/experimental:deterministic`, +and `/guard:cf`, with no explicit `/incremental` switch. Windows x64 and all four POSIX controls +compare and upload; Windows arm64 still fails strict comparison at the same 2,879 linker thunks and +uploads nothing (E-M3-WINDOWS-LINK-COMMAND-RELEASE-ROOT-CI-RED-001). Because `/DEBUG` may imply +incremental linking without an explicit command switch, the next bounded diagnostic records only +the exact target `.ilk` file's presence and size from the already bounded clean Release tree before +any copied-artifact producer change. + Each runtime must contain only the executable closure required by the relay. - [ ] Replace or extend `config/scripts/build-relay.mjs` without weakening its existing relay and @@ -1339,7 +1349,7 @@ Update status and evidence as work begins. Do not combine these into one large b | ------------------------- | ------------------------------------------------------------------------------------------ | --------------------------- | ----------------------------------------------------- | ----------------------------------------------------------------------- | | 0. #8450 legacy fix | Coherent Node/npm selection and live repro | Fixes legacy selection only | Complete and CI-green in draft PR #8724 | E-M0-UNIT-002, E-M0-LIVE-002, E-M0-STATIC-002, E-M0-PR-001, E-M0-CI-001 | | 1. Contract and selectors | Manifest schema, identity, platform/libc selection, hostile inputs | None | Complete and CI-green in draft PR #8728 | `b9d80a4cb`; E-M2-RED-001, E-M2-CONTRACT-001, E-M2-CI-001 | -| 2. Runtime builds | Per-tuple assembly, native smoke, SBOM/provenance/signing | None | Draft PR #8741; native Release-tree discovery pending | `6f28a8cbf`; E-M3-WINDOWS-LINK-COMMAND-RELEASE-ROOT-LOCAL-001 | +| 2. Runtime builds | Per-tuple assembly, native smoke, SBOM/provenance/signing | None | Draft PR #8741; native target `.ilk` evidence pending | `e7d9a1c8d`; E-M3-WINDOWS-INCREMENTAL-DATABASE-LOCAL-001 | | 3. Release publication | Prerequisite DAG, embedded manifest, draft upload/read-back gates | Asset-only | Not started | — | | 4. Desktop resolver/cache | Verified download, extraction, cache, offline behavior | None/forced mode only | Not started | — | | 5. Transfer/install | Bounded transports, structured sentinel, bundled launch behind per-target Beta/forced mode | Per-target opt-in only | Not started | — | @@ -5556,23 +5566,177 @@ the bounded depth` before opening or parsing a candidate. Starting at the comple require both Windows clean builds to select one target record and emit the same accepted summary before changing the producer. +### E-M3-WINDOWS-LINK-COMMAND-RELEASE-ROOT-CI-RED-001 — Native command classified; arm64 drift retained + +- Date: 2026-07-14 +- Commit SHA / PR: exact head `2db46d91b17789ce70eed5e5e496dec2ff56442a`, containing exact + Release-root implementation commit `6f28a8cbf53d1cfe889ce259476eb4aaaead2d87`; stacked draft + PR [#8741](https://github.com/stablyai/orca/pull/8741) +- Run and jobs: [run 29363423068](https://github.com/stablyai/orca/actions/runs/29363423068), + conclusion `failure`; Windows x64 `87188953411` success, Windows arm64 `87188953416` expected + strict-comparison failure, Linux arm64 `87188953471` success, Linux x64 `87188953495` success, + macOS x64 `87188953507` success, and macOS arm64 `87188953532` success +- Runners: Windows x64 used `windows-2022` / `win22` `20260706.237.1`, native X64, Windows Server + 2022 build 20348; Windows arm64 used `windows-11-arm` / `win11-arm64` `20260706.102.1`, native + ARM64, Windows build 26200. Both used Node v24.18.0 and MSVC 14.44.35207 / compiler 19.44.35228. + Linux x64 used `ubuntu-24.04` / `ubuntu24` `20260705.232.1`; Linux arm64 used + `ubuntu-24.04-arm` / `ubuntu24-arm64` `20260706.52.2`; macOS x64 used `macos-15-intel` / + `macos15` `20260629.0276.1`; macOS arm64 used `macos-15` / `macos15` `20260706.0213.1`. + Every runner checked out the exact head above. +- Remote and transport: none; target-native artifact assembly, strict comparison, and unpublished + seven-day Actions artifacts only +- Exact evidence commands: + + ```sh + gh run view 29363423068 --repo stablyai/orca \ + --json status,conclusion,headSha,createdAt,updatedAt,url,jobs + gh api repos/stablyai/orca/actions/jobs/87188953411/logs + gh api repos/stablyai/orca/actions/jobs/87188953416/logs + gh api 'repos/stablyai/orca/actions/runs/29363423068/artifacts?per_page=100' + ``` + +- Result: FAIL as the intended strict reproducibility boundary. Each clean build on both Windows + architectures discovers three `link.command.1.tlog` candidates under 82 `build/Release` entries, + selects exactly one record naming `conpty_console_list.node`, and accepts fatal UTF-16LE input. + The two x64 records are 2,114 bytes and the two arm64 records are 2,092 bytes. All four report + `incremental: unspecified` and the identical allowlisted switches `/brepro`, `/debug`, + `/experimental:deterministic`, and `/guard:cf`; no explicit `/incremental` or `/opt` switch is + present. Windows x64 and all four POSIX jobs compare exactly. Windows arm64 builds, verifies, and + executes both candidates, then strict comparison rejects only + `runtime/node_modules/node-pty/build/Release/conpty_console_list.node` and skips upload. +- Arm64 diagnostic: the two 956,928-byte modules differ at 5,826 bytes across 2,886 ranges: 5,758 + bytes in 2,879 two-byte `.text` ranges spaced 16 bytes apart, plus 68 derived + COFF/debug/CodeView bytes. Their content IDs are + `sha256:4c4cc3b9ee0bac3a391a49ebfce230fef1d94984ef0f66eeba59fd2833b2a0d2` and + `sha256:26afc17c33337f6f1b8e767504a58207f4fc68cb26e807aca68a9d5e8040aba5`. +- Uploaded controls: exactly five unpublished artifacts and no Windows arm64 artifact: Windows x64 + `8323220212`, 37,075,312 bytes, + `sha256:10a07ff4863e4a0b4aef3325540660952f03f88cc7b2c2a4013f3081b5c9310c`; Linux x64 + `8323166437`, 29,285,377 bytes, + `sha256:21ee42d19e6a9f15e7afda18f9e27ff5ae280a19da61ef4042ca5b0a3ce608fe`; Linux arm64 + `8323165493`, 28,220,691 bytes, + `sha256:19cb887221810cd9e9df160d6ba6a185fd6282adee90d2dde6c66ad9a83e4fe1`; macOS x64 + `8323238492`, 26,405,918 bytes, + `sha256:af41bae838a26b1e127bc1bd20c3d1f2a6d0d5de1f6aeb9372d2b19561a2351a`; and macOS arm64 + `8323152771`, 24,729,554 bytes, + `sha256:aff001434f0d00db32d92a13ffbb40ed4f0cc0199cf29925109fc7f7bbf84977`. +- Duration and resource metrics: jobs ran 5m33s Windows x64, 8m15s Windows arm64, 3m25s Linux + arm64, 3m30s Linux x64, 6m18s macOS x64, and 2m55s macOS arm64. Windows arm64 clean builds took + 135,371.797 ms and 118,713.734 ms; smoke took 5,767.417 ms at 53,186,560-byte RSS and + 5,443.331 ms at 51,802,112-byte RSS. SSH channels/files, cancellation, and fallback delay remain + outside this artifact-only run. +- Artifact/log/trace link: run/jobs and the five unpublished artifacts above; rejected arm64 bytes + existed only in the bounded job workspace and logs and were not uploaded +- Oracle proved: the native Release-tree shape, candidate and target cardinality, record encoding, + and allowlisted linker summary on both Windows architectures; no explicit incremental-link switch; + five exact clean-build controls; unchanged arm64 thunk drift; strict rejection and no-upload. +- Does not prove: effective incremental linking when `/DEBUG` supplies a default, the target `.ilk` + state, a safe producer correction, arm64 equality, oldest baselines, native trust, SSH, + publication, transfer, fallback, UI, or any enabled tuple. +- Checklist items satisfied: native Release-root/command diagnostic only; no tuple or production + checkbox. +- Follow-up: inspect only the exact target `.ilk` file's presence and size within the already + bounded clean Release tree on both architectures. If it is present, require target-native evidence + before considering copied-artifact `/INCREMENTAL:NO`; if absent, investigate the next bounded + linker feature. Preserve `/guard:cf`, strict comparison, rejected-output no-upload, and all + repository-wide/default behavior. + +### E-M3-WINDOWS-INCREMENTAL-DATABASE-LOCAL-001 — Bounded target `.ilk` diagnostic + +- Date: 2026-07-14 +- Commit SHA / PR: exact implementation commit + `e7d9a1c8d3222ff5923679ad69b76b57d963c4f3`; stacked draft + PR [#8741](https://github.com/stablyai/orca/pull/8741), target-native execution pending +- Runner: macOS 26.2 build 25C56, native Apple M4 arm64; Node v26.0.0 and pnpm 10.24.0. This runner + cannot produce a native MSVC `.ilk`, so Windows x64/arm64 jobs remain authoritative. +- Remote and transport: none; bounded local discovery/result-shape contracts only +- Red evidence: E-M3-WINDOWS-LINK-COMMAND-RELEASE-ROOT-CI-RED-001 proves both native commands carry + `/DEBUG` but no explicit `/INCREMENTAL`; no synthetic local result substitutes for the pending + target-native file-state evidence +- Exact green commands: + + ```sh + node --check config/scripts/ssh-relay-node-pty-windows-build-determinism.mjs + node --check config/scripts/ssh-relay-node-pty-windows-build-determinism.test.mjs + /usr/bin/time -lp pnpm exec vitest run --config config/vitest.config.ts \ + config/scripts/ssh-relay-node-pty-windows-build-determinism.test.mjs \ + config/scripts/ssh-relay-node-pty-build.test.mjs \ + config/scripts/ssh-relay-runtime-workflow.test.mjs + /usr/bin/time -lp pnpm exec vitest run --config config/vitest.config.ts \ + config/scripts/ssh-relay-node-release-verification.test.mjs \ + config/scripts/ssh-relay-node-tar-inspection.test.mjs \ + config/scripts/ssh-relay-node-pty-build.test.mjs \ + config/scripts/ssh-relay-node-pty-windows-build-determinism.test.mjs \ + config/scripts/ssh-relay-node-pty-windows-settlement.test.mjs \ + config/scripts/ssh-relay-node-zip-inspection.test.mjs \ + config/scripts/ssh-relay-runtime-artifact.test.mjs \ + config/scripts/ssh-relay-runtime-build.test.mjs \ + config/scripts/ssh-relay-runtime-pty-smoke.test.mjs \ + config/scripts/ssh-relay-runtime-reproducibility.test.mjs \ + config/scripts/ssh-relay-runtime-resource-diagnostics.test.mjs \ + config/scripts/ssh-relay-runtime-windows-pe-diagnostic.test.mjs \ + config/scripts/ssh-relay-runtime-windows-tree.test.mjs \ + config/scripts/ssh-relay-runtime-workflow.test.mjs \ + config/scripts/ssh-relay-runtime-zip.test.mjs + pnpm run typecheck + pnpm exec oxlint \ + config/scripts/ssh-relay-node-pty-windows-build-determinism.mjs \ + config/scripts/ssh-relay-node-pty-windows-build-determinism.test.mjs \ + config/scripts/ssh-relay-node-pty-build.mjs + pnpm run check:max-lines-ratchet + GOMAXPROCS=2 pnpm run lint + pnpm exec oxfmt --check \ + config/scripts/ssh-relay-node-pty-windows-build-determinism.mjs \ + config/scripts/ssh-relay-node-pty-windows-build-determinism.test.mjs \ + config/scripts/ssh-relay-node-pty-build.mjs \ + docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md + git diff --check + ``` + +- Result: PASS. The purpose suites pass 13/13 tests and all 15 artifact suites pass 58/58. Syntax, + typecheck, focused oxlint, the 355-entry max-lines ratchet, full repository + lint/reliability/localization, formatting, diff, and staged pre-commit hooks exit zero. Full lint + emits only pre-existing warnings outside this artifact package. +- Duration and resource metrics: purpose gate 0.94 s wall / 204 ms Vitest with 131,940,352-byte + maximum RSS and 96,081,224-byte peak footprint; complete artifact gate 3.50 s wall / 1.59 s + Vitest with 132,235,264-byte maximum RSS and 96,392,544-byte peak footprint. The parallel + typecheck/focused-lint/max-lines group completed in 3.8 s; full lint completed in 17.3 s and + formatting/diff checks in 0.8 s. No runtime archive, SSH channel/file, cancellation, fallback, or + launch-latency metric is exercised by this diagnostic-only package. +- Artifact/log/trace link: exact implementation commit and local command output; no runtime artifact + was created, staged, published, or uploaded +- Oracle proved: the already bounded and deterministic `build/Release` traversal detects at most one + exact case-insensitive `conpty_console_list.ilk`; duplicate target databases fail closed; a present + file reports only a safe numeric byte size, absence reports no guessed link state, symbolic links + retain the existing rejection, and POSIX remains a no-op. The diagnostic result is appended to + the existing allowlisted MSBuild summary before staging. +- Does not prove: whether either native Windows build emits the target `.ilk`, that `.ilk` presence + alone owns the arm64 thunk drift, that `/INCREMENTAL:NO` is a safe correction, arm64 equality, + oldest baselines, native trust, SSH, publication, transfer, fallback, UI, or any enabled tuple. +- Checklist items satisfied: local bounded target incremental-database diagnostic only; no tuple or + production checkbox. +- Follow-up: push the exact implementation plus ledger head, rerun all six native cells, and require + both clean builds on both Windows architectures to report the target `.ilk` state before any + producer change. Preserve `/guard:cf`, strict comparison, no rejected upload, and every + default/legacy boundary. + ## Accepted Gaps No product gap is accepted merely because it appears in this list. Each entry requires explicit owner and promotion condition. -| Gap | Current behavior | Risk | Owner | Promotion/removal condition | Status | -| ------------------------------------------ | ------------------------------------------------------------------------- | ---------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------ | -| Bundled runtime only partially implemented | Six unpublished native artifact proofs; no production consumer | #8450/#1693 environment failures remain | Codex implementation owner | Complete Work Packages 2–7 plus Milestones 3–14 | Open | -| No bundled tuple enabled | Every target's default and effective mode remains legacy | No bundled support claim can be made | Codex implementation owner | Complete target-native build/trust and both required live-evidence layers | Open | -| Windows runtime smoke incomplete | Native x64/arm64 smoke settles and uploads exact evidence | Historical blocker is closed | Codex implementation owner | Met by E-M3-WINDOWS-CI-001 | CLOSED | -| Native clean-rebuild identity unproved | Four POSIX controls pass; bounded Release-tree discovery is locally green | Toolchain drift may change native content IDs | Codex implementation owner | Prove the actual target linker command natively, then make all six clean builds match | Open | -| Cross-family Layer B remotes unavailable | GitHub native runner labels exist; no approved reachable target pool | Client/remote integration gaps may escape | Repository release administrator + implementation owner | Approve provider/snapshots/credentials/egress/teardown/cost owner | BLOCKED | -| Musl has no accepted official Node binary | Musl is deliberately legacy-only | Unofficial binary would break provenance trust | Codex implementation owner | Orca-owned target-native source build, signing, provenance, and live gates | ACCEPTED GAP | -| Native arm64 live matrices incomplete | Hosted Linux/Windows arm64 labels exist; full SSH/runtime cells do not | Cross-build or unit tests may hide native bugs | Codex implementation owner | Full native archive, trust, SFTP/system-SSH, RPC, and baseline evidence | Open | -| Legacy performance baseline unmeasured | Numeric budgets exist; paired cold/warm measurements do not | Regression thresholds lack a measured baseline | Codex implementation owner | Purpose-built paired harness with ten samples on pinned runner classes | Open | -| Manifest signing environment unprovisioned | Ed25519/key-rotation policy exists; no protected runtime signing secret | Runtime assets cannot be safely published | Repository release administrator | Protected environment, reviewers, two test keys, rehearsals, and access audit | BLOCKED | -| Bootstrap primitives lack full live proof | POSIX/Windows contracts exist; bounded SSH implementations do not | Hidden dependency or transfer corruption | Codex implementation owner | Purpose-named full-size SFTP/POSIX/Windows system-SSH live suites | Open | +| Gap | Current behavior | Risk | Owner | Promotion/removal condition | Status | +| ------------------------------------------ | ----------------------------------------------------------------------- | ---------------------------------------------- | ------------------------------------------------------- | ----------------------------------------------------------------------------- | ------------ | +| Bundled runtime only partially implemented | Six unpublished native artifact proofs; no production consumer | #8450/#1693 environment failures remain | Codex implementation owner | Complete Work Packages 2–7 plus Milestones 3–14 | Open | +| No bundled tuple enabled | Every target's default and effective mode remains legacy | No bundled support claim can be made | Codex implementation owner | Complete target-native build/trust and both required live-evidence layers | Open | +| Windows runtime smoke incomplete | Native x64/arm64 smoke settles and uploads exact evidence | Historical blocker is closed | Codex implementation owner | Met by E-M3-WINDOWS-CI-001 | CLOSED | +| Native clean-rebuild identity unproved | Five controls pass; arm64 target command has no explicit `/INCREMENTAL` | Toolchain drift may change native content IDs | Codex implementation owner | Classify target `.ilk`, then make all six clean builds match | Open | +| Cross-family Layer B remotes unavailable | GitHub native runner labels exist; no approved reachable target pool | Client/remote integration gaps may escape | Repository release administrator + implementation owner | Approve provider/snapshots/credentials/egress/teardown/cost owner | BLOCKED | +| Musl has no accepted official Node binary | Musl is deliberately legacy-only | Unofficial binary would break provenance trust | Codex implementation owner | Orca-owned target-native source build, signing, provenance, and live gates | ACCEPTED GAP | +| Native arm64 live matrices incomplete | Hosted Linux/Windows arm64 labels exist; full SSH/runtime cells do not | Cross-build or unit tests may hide native bugs | Codex implementation owner | Full native archive, trust, SFTP/system-SSH, RPC, and baseline evidence | Open | +| Legacy performance baseline unmeasured | Numeric budgets exist; paired cold/warm measurements do not | Regression thresholds lack a measured baseline | Codex implementation owner | Purpose-built paired harness with ten samples on pinned runner classes | Open | +| Manifest signing environment unprovisioned | Ed25519/key-rotation policy exists; no protected runtime signing secret | Runtime assets cannot be safely published | Repository release administrator | Protected environment, reviewers, two test keys, rehearsals, and access audit | BLOCKED | +| Bootstrap primitives lack full live proof | POSIX/Windows contracts exist; bounded SSH implementations do not | Hidden dependency or transfer corruption | Codex implementation owner | Purpose-named full-size SFTP/POSIX/Windows system-SSH live suites | Open | ## Final Definition of Done @@ -5613,11 +5777,11 @@ The project is not complete until every applicable item below is checked with ev ## Next Required Action -Push exact implementation commit `6f28a8cbf` plus its evidence-ledger head, then rerun both Windows -architectures and all four POSIX controls. Require both Windows clean builds to select one target -record and report the same allowlisted switch summary. Only if that target-native evidence -classifies the 2,879 function thunks may one copied-artifact producer correction be considered; -retain strict parsing/comparison and rejected-output no-upload. +Add a purpose-tested bounded diagnostic for the exact target `conpty_console_list.ilk` file under +the already bounded clean `build/Release` traversal, recording only presence and size. Rerun both +Windows architectures and all four POSIX controls. Only if target-native evidence proves implicit +incremental linking may a copied-artifact `/INCREMENTAL:NO` producer correction be considered; +retain `/guard:cf`, strict parsing/comparison, and rejected-output no-upload. Cross-family Layer B targets, the protected manifest-signing environment, oldest-baseline/native-trust cells, and the paired legacy performance baseline remain release/default-path blockers; no publication, desktop resolver, SSH transfer/install, per-target