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 36ef97317ba..dad31cbdb46 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 proves the lowercase-arm64 generated-setting correction on the real runner, keeps Linux x64/arm64, macOS x64/arm64, and Windows x64 exactly reproducible, and uploads exactly those five unpublished artifacts; Windows arm64 builds, verifies, and executes both complete runtimes, then fails closed with no upload because 2,879 linker-emitted 16-byte function thunks differ only in their unreachable fourth `udf` instruction while each thunk's `adrp`/`add`/`br` control flow is byte-identical; the remaining 68 bytes are derived `/Brepro` COFF/debug identities; the active bounded diagnostic must prove the generated incremental-link state that owns the thunks before any producer correction; 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 29358223742 proves the lowercase-arm64 generated-setting correction on the real runner, keeps Linux x64/arm64, macOS x64/arm64, and Windows x64 exactly reproducible, and uploads exactly those five unpublished artifacts; Windows arm64 builds, verifies, and executes both complete runtimes, then fails closed with no upload because 2,879 linker-emitted 16-byte function thunks differ only in their unreachable fourth `udf` instruction while each thunk's `adrp`/`add`/`br` control flow is byte-identical; the remaining 68 bytes are derived `/Brepro` COFF/debug identities; exact implementation commit `36a19f525` adds a bounded pre-staging MSBuild evaluation of the effective Release `LinkIncremental` state and is locally green under E-M3-WINDOWS-LINK-INCREMENTAL-DIAGNOSTIC-LOCAL-001; all six native cells remain required before any producer correction; 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) @@ -169,11 +169,11 @@ same change as the work it records. per-target opt-in selects bundled-preferred behavior, and implementing the setting does not authorize default-on rollout or legacy removal (E-M1-ROLLOUT-DECISION-001). - Legacy fallback removal: not authorized. -- Next required action: add a bounded generated-project diagnostic for the exact Windows Release - `LinkIncremental` state and rerun all six target-native cells. Require both Windows clean builds - to report the same state before considering one copied-artifact producer correction. Preserve all - five controls, strict comparison, rejected-arm64 no-upload, the repository-wide node-pty patch, - legacy/default path, and every other release gate. +- Next required action: push exact implementation commit `36a19f525` plus its evidence-ledger head + and rerun all six target-native cells. Require both Windows clean builds to report the same + evaluated `LinkIncremental` state before considering one copied-artifact producer correction. + Preserve all five controls, strict comparison, rejected-arm64 no-upload, the repository-wide + node-pty patch, legacy/default path, and every other release gate. ## Non-Negotiable Invariants @@ -694,7 +694,9 @@ disassembly proves each 16-byte function thunk has byte-identical `adrp x16`, `a before changing it. Add a bounded generated-project diagnostic for the exact Release `LinkIncremental` state while retaining the existing architecture, option, cardinality, strict comparison, and no-upload gates. The thunk layout is consistent with an incremental-link table, but -that setting is not yet proved on the native runner. Do not normalize rejected bytes, weaken the +that setting is not yet proved on the native runner. Exact implementation commit `36a19f525` is +locally red/green and passes the complete artifact/static gate under +E-M3-WINDOWS-LINK-INCREMENTAL-DIAGNOSTIC-LOCAL-001. Do not normalize rejected bytes, weaken the comparator, modify repository-wide node-pty, or connect a production consumer. Each runtime must contain only the executable closure required by the relay. @@ -5008,6 +5010,92 @@ configuration` before runtime staging, verification, smoke, comparison, or diagn `LinkIncremental` state, require both Windows clean builds to report it, and rerun all six native controls before considering one copied-artifact producer correction. +### E-M3-WINDOWS-LINK-INCREMENTAL-DIAGNOSTIC-LOCAL-001 — Effective MSBuild link-state gate + +- Date: 2026-07-14 +- Commit SHA / PR: exact implementation commit + `36a19f525cc63e488f49daa5c3a6aafc590acc08`; 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 evaluate a native MSBuild project, so the two Windows jobs remain authoritative. +- Remote and transport: none; strict command/output contracts and builder ordering only +- Exact red command: + + ```sh + pnpm exec vitest run --config config/vitest.config.ts \ + config/scripts/ssh-relay-node-pty-windows-build-determinism.test.mjs + ``` + +- Red result: FAIL as intended, one failed and four passed tests because + `windowsNodePtyLinkIncrementalCommand` was not implemented. +- 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 + node --check config/scripts/ssh-relay-node-pty-build.mjs + 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 + 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 + pnpm exec lint-staged + git diff --check + ``` + +- Green result: PASS. All syntax checks exited zero; the purpose command passed 9/9 tests across + three suites; all 15 artifact suites passed 54/54 tests. Typecheck, focused oxlint, the 355-entry + max-lines ratchet, full repository lint/reliability/localization, formatting, staged hooks, and + diff checks exited zero. Full lint emitted only pre-existing warnings outside this package; + `lint-staged` reported no staged files in its standalone run and the commit hook subsequently ran + oxlint, React Doctor, and oxfmt successfully over all four staged files. +- Duration and resource metrics: purpose gate 1.93 s wall / 459 ms Vitest; complete artifact gate + 2.87 s wall / 1.35 s Vitest; typecheck 3.10 s; focused lint and line ratchet 3.09 s; full lint + 12.91 s. Synthetic peak RSS, open files/channels, cancellation settlement, and fallback delay + were not instrumented. +- Artifact/log/trace link: exact implementation commit and local command output; no binary artifact + was created or uploaded +- Oracle proved: Windows builds form a bounded `MSBuild.exe` query for the exact generated + `conpty_console_list.vcxproj`, Release configuration, and tuple architecture; request only the + evaluated `LinkIncremental` property; accept exactly one case-insensitive boolean result; and + fail before staging on missing, noisy, or non-boolean output. x64 and arm64 commands are covered, + POSIX creates no query, and the result is appended to the existing generated-setting record. +- Does not prove: `MSBuild.exe -getProperty` availability or result on either native Windows image, + the actual effective incremental-link state, the thunk owner, a safe producer correction, arm64 + equality, oldest baselines, native trust, SSH, publication, transfer, fallback, UI, or any enabled + tuple. +- Checklist items satisfied: local bounded effective-link-state diagnostic only; no tuple or + production checkbox. +- Follow-up: push the exact implementation and ledger head, run all six target-native cells, and + require both Windows clean builds to report `linkIncremental` before changing the producer. + ## Accepted Gaps No product gap is accepted merely because it appears in this list. Each entry requires explicit @@ -5065,11 +5153,11 @@ The project is not complete until every applicable item below is checked with ev ## Next Required Action -Add a bounded, purpose-tested generated-project diagnostic for the exact Windows Release -`LinkIncremental` state, then rerun both Windows architectures and all four POSIX controls at the -exact implementation head. Require both Windows clean builds to report the same setting. Only if -that target-native evidence classifies the 2,879 function thunks may one copied-artifact producer -correction be considered; retain strict comparison, all five controls, and rejected-arm64 no-upload. +Push exact implementation commit `36a19f525` plus its evidence-ledger head, then rerun both Windows +architectures and all four POSIX controls. Require both Windows clean builds to report the same +evaluated `LinkIncremental` setting. Only if that target-native evidence classifies the 2,879 +function thunks may one copied-artifact producer correction be considered; retain strict +comparison, all five controls, and rejected-arm64 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