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 35f136c55d7..c27b482dd08 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 29355973362 keeps Linux x64/arm64, macOS x64/arm64, and Windows x64 exactly reproducible, while Windows arm64 again fails closed with no upload after both complete runtimes execute successfully; adding `/Brepro` and `/experimental:deterministic` to the copied compiler and linker settings did not change the 2,947-byte drift at all, so the next bounded package must prove the generated MSBuild inputs and classify the repeated ARM64 instructions before another 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 29355973362 keeps Linux x64/arm64, macOS x64/arm64, and Windows x64 exactly reproducible, while Windows arm64 again fails closed with no upload after both complete runtimes execute successfully; adding `/Brepro` and `/experimental:deterministic` to the copied compiler and linker settings did not change the 2,947-byte drift at all; exact implementation commit `0d3a0c9d3` now fail-closed verifies the generated Release MSBuild inputs and adds bounded paired ARM64 disassembly after a mismatch, is locally green, and awaits the six target-native cells; 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) @@ -158,11 +158,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 diagnostic that fail-closed inspects the generated - `conpty_console_list.vcxproj` for the expected compiler/linker settings and reports paired ARM64 - instruction/disassembly context around the first differing ranges. Require both native Windows - cells while retaining all four POSIX controls, strict comparison, rejected-binary no-upload, - repository-wide node-pty patch, legacy/default path, and all other release gates unchanged. +- Next required action: push exact diagnostic implementation commit `0d3a0c9d3` plus its + evidence-ledger head and run all six target-native cells. Require both Windows jobs to prove the + generated Release compiler/linker settings; if arm64 still differs, record both bounded + disassemblies while retaining all four POSIX controls, strict comparison, rejected-binary + no-upload, repository-wide node-pty patch, legacy/default path, and all other release gates. ## Non-Negotiable Invariants @@ -662,9 +662,10 @@ uploaded and no rejected arm64 upload. Exact implementation commit `6546f54d5` a toolchain's reproducible compiler and linker settings only to the copied node-pty `binding.gyp` and is locally green under E-M3-WINDOWS-COMPILER-DETERMINISM-LOCAL-001. Exact-head run 29355973362 then kept five controls reproducible but reproduced the identical Windows arm64 PE drift under -E-M3-WINDOWS-COMPILER-DETERMINISM-CI-RED-001. The next diagnostic must prove how those settings -reach the generated `conpty_console_list.vcxproj` and report bounded ARM64 instruction/disassembly -context; no second producer correction is justified before that evidence. +E-M3-WINDOWS-COMPILER-DETERMINISM-CI-RED-001. Exact implementation commit `0d3a0c9d3` now +fail-closed verifies how those settings reach the generated `conpty_console_list.vcxproj` and adds +bounded paired ARM64 disassembly after a mismatch under E-M3-WINDOWS-MSBUILD-DISASSEMBLY-LOCAL-001; +no second producer correction is justified before the target-native evidence. Each runtime must contain only the executable closure required by the relay. @@ -4641,6 +4642,95 @@ or unexpected token`; the first logs did not identify a source location. first differing ranges. Do not change the producer, normalize binaries, weaken comparison, or upload rejected bytes before that evidence. +### E-M3-WINDOWS-MSBUILD-DISASSEMBLY-LOCAL-001 — Generated-project and bounded disassembly contracts + +- Date: 2026-07-14 +- Commit SHA / PR: exact implementation commit + `0d3a0c9d3f0eee78d3106a646369cc3fc5db96b1`; stacked draft + PR [#8741](https://github.com/stablyai/orca/pull/8741), 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 generate or execute native MSBuild/ARM64 PE inputs, so the target-native Windows + jobs remain authoritative. +- Remote and transport: none; synthetic generated-project fixtures and workflow-source contracts + 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, two failed and two passed tests because no generated-project + verifier existed. +- 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 + node --check config/scripts/ssh-relay-runtime-workflow.test.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 \ + config/scripts/ssh-relay-runtime-workflow.test.mjs + pnpm run check:max-lines-ratchet + GOMAXPROCS=2 pnpm run lint + pnpm exec oxfmt --check .github/workflows/ssh-relay-runtime-artifacts.yml \ + 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 \ + config/scripts/ssh-relay-runtime-workflow.test.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 8/8 tests across + three suites; all 15 artifact suites passed 53/53 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. +- Duration and resource metrics: purpose suite 156 ms Vitest; complete artifact suite 1.11s + Vitest. Static-gate wall time, synthetic peak RSS, open files/channels, and cancellation + settlement were not instrumented. +- Artifact/log/trace link: exact source commit and local command output; no binary artifact was + created or uploaded +- Oracle proved: Windows artifact builds now reject a missing, duplicate, non-inherited, or + wrong-architecture Release `ClCompile`/`Link` option in the generated + `conpty_console_list.vcxproj` before runtime staging, and log the exact accepted setting summary. + On an arm64 mismatch the workflow retains the existing structured PE diagnostic, then requests + only absolute image addresses `0x180001000` through `0x180001200` from native + `llvm-objdump.exe` before the fatal throw. Rejected bytes still cannot reach artifact staging. +- Does not prove: the real generated XML shape, native `llvm-objdump` availability/output, which + repeated ARM64 instruction differs, a safe producer correction, arm64 equality, oldest + baselines, native trust, SSH, publication, transfer, fallback, UI, or any enabled tuple. +- Checklist items satisfied: local generated-project and bounded-disassembly contracts 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 jobs to prove generated settings. If arm64 still differs, record the two + bounded disassemblies and retain strict failure/no-upload before any producer correction. + ## Accepted Gaps No product gap is accepted merely because it appears in this list. Each entry requires explicit @@ -4698,11 +4788,11 @@ The project is not complete until every applicable item below is checked with ev ## Next Required Action -Add a bounded diagnostic that fail-closed inspects generated `conpty_console_list.vcxproj` -compiler/linker settings and reports paired ARM64 instruction/disassembly context around the first -differing ranges. Run both native Windows cells with all four POSIX controls, require the x64 and -POSIX outputs to remain exact, and retain the fatal comparator plus rejected-arm64 no-upload -boundary. 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 Beta, -fallback, tuple enablement, or default behavior may be connected by this package. +Push exact diagnostic implementation commit `0d3a0c9d3` plus its evidence-ledger head and run all +six target-native cells. Require both Windows jobs to prove the generated Release compiler/linker +settings; if arm64 still differs, record both bounded disassemblies while retaining all four POSIX +controls, strict comparison, 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 Beta, fallback, tuple enablement, or default behavior may be connected +by this package.