From 6f28a8cbf53d1cfe889ce259476eb4aaaead2d87 Mon Sep 17 00:00:00 2001 From: Jinwoo-H Date: Tue, 14 Jul 2026 15:50:35 -0400 Subject: [PATCH] build(ssh): scope linker discovery to release output Co-authored-by: Orca --- ...lay-node-pty-windows-build-determinism.mjs | 3 +- ...ode-pty-windows-build-determinism.test.mjs | 26 ++- ...github-release-implementation-checklist.md | 205 +++++++++++++++--- 3 files changed, 196 insertions(+), 38 deletions(-) diff --git a/config/scripts/ssh-relay-node-pty-windows-build-determinism.mjs b/config/scripts/ssh-relay-node-pty-windows-build-determinism.mjs index 1bb093f59f3..ff48d46764e 100644 --- a/config/scripts/ssh-relay-node-pty-windows-build-determinism.mjs +++ b/config/scripts/ssh-relay-node-pty-windows-build-determinism.mjs @@ -151,7 +151,8 @@ async function readBoundedLinkCommandTracking(path) { } async function discoverLinkCommandTracking(nodePtyDirectory) { - const queue = [{ depth: 0, path: join(nodePtyDirectory, 'build') }] + // Why: generated dependency projects live elsewhere; only Release contains target link outputs. + const queue = [{ depth: 0, path: join(nodePtyDirectory, 'build', 'Release') }] const candidates = [] let entries = 0 for (let index = 0; index < queue.length; index += 1) { diff --git a/config/scripts/ssh-relay-node-pty-windows-build-determinism.test.mjs b/config/scripts/ssh-relay-node-pty-windows-build-determinism.test.mjs index 6e9cdc48b12..34505c908db 100644 --- a/config/scripts/ssh-relay-node-pty-windows-build-determinism.test.mjs +++ b/config/scripts/ssh-relay-node-pty-windows-build-determinism.test.mjs @@ -154,13 +154,16 @@ describe('SSH relay Windows node-pty build determinism', () => { const trackingPath = join( directory, 'build', + 'Release', 'unexpected', 'target.tlog', 'link.command.1.tlog' ) - const otherPath = join(directory, 'build', 'other', 'link.command.1.tlog') - await mkdir(join(directory, 'build', 'unexpected', 'target.tlog'), { recursive: true }) - await mkdir(join(directory, 'build', 'other'), { recursive: true }) + const otherPath = join(directory, 'build', 'Release', 'other', 'link.command.1.tlog') + await mkdir(join(directory, 'build', 'Release', 'unexpected', 'target.tlog'), { + recursive: true + }) + await mkdir(join(directory, 'build', 'Release', 'other'), { recursive: true }) await writeFile( trackingPath, '^one\n/OUT:conpty_console_list.node /INCREMENTAL:NO /Brepro /GUARD:CF /experimental:deterministic' @@ -190,7 +193,7 @@ describe('SSH relay Windows node-pty build determinism', () => { it('rejects missing or duplicate target linker tracking candidates', async () => { const directory = await mkdtemp(join(tmpdir(), 'orca-node-pty-link-tracking-')) temporaryDirectories.push(directory) - await mkdir(join(directory, 'build', 'first'), { recursive: true }) + await mkdir(join(directory, 'build', 'Release', 'first'), { recursive: true }) await expect( inspectWindowsNodePtyLinkCommandTracking({ nodePtyDirectory: directory, @@ -199,9 +202,9 @@ describe('SSH relay Windows node-pty build determinism', () => { ).rejects.toThrow('exactly one target command file') const command = '^one\n/OUT:conpty_console_list.node /Brepro /GUARD:CF /experimental:deterministic' - await writeFile(join(directory, 'build', 'first', 'link.command.1.tlog'), command) - await mkdir(join(directory, 'build', 'second'), { recursive: true }) - await writeFile(join(directory, 'build', 'second', 'link.command.1.tlog'), command) + await writeFile(join(directory, 'build', 'Release', 'first', 'link.command.1.tlog'), command) + await mkdir(join(directory, 'build', 'Release', 'second'), { recursive: true }) + await writeFile(join(directory, 'build', 'Release', 'second', 'link.command.1.tlog'), command) await expect( inspectWindowsNodePtyLinkCommandTracking({ nodePtyDirectory: directory, @@ -214,7 +217,12 @@ describe('SSH relay Windows node-pty build determinism', () => { const deepDirectory = await mkdtemp(join(tmpdir(), 'orca-node-pty-link-depth-')) temporaryDirectories.push(deepDirectory) await mkdir( - join(deepDirectory, 'build', ...Array.from({ length: 10 }, (_, index) => `${index}`)), + join( + deepDirectory, + 'build', + 'Release', + ...Array.from({ length: 10 }, (_, index) => `${index}`) + ), { recursive: true } @@ -230,7 +238,7 @@ describe('SSH relay Windows node-pty build determinism', () => { temporaryDirectories.push(wideDirectory) await Promise.all( Array.from({ length: 33 }, async (_, index) => { - const candidateDirectory = join(wideDirectory, 'build', `${index}`) + const candidateDirectory = join(wideDirectory, 'build', 'Release', `${index}`) await mkdir(candidateDirectory, { recursive: true }) await writeFile(join(candidateDirectory, 'link.command.1.tlog'), '^candidate') }) 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 91c4b61cb72..3ee01a6e21b 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 then proves the locally assumed `link.command.1.tlog` path is absent after successful native compilation on both Windows architectures, so each fails closed before staging/upload while all four POSIX controls remain reproducible and upload; exact implementation commit `6198f0ddd` adds bounded, target-matching tracking-file discovery and is locally green under E-M3-WINDOWS-LINK-COMMAND-DISCOVERY-LOCAL-001; the next six-cell exact-head run remains required, and no evidence authorizes `/INCREMENTAL:NO` or any producer change; 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 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; the narrow `build/Release` output-tree correction is locally green under E-M3-WINDOWS-LINK-COMMAND-RELEASE-ROOT-LOCAL-001 and requires a new six-cell exact-head run; 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
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) @@ -719,6 +719,19 @@ rejects symbolic links and more than 32 tracking candidates, reads each candidat existing 256 KiB cap, and requires exactly one exact target-output match before strict parsing. The active gate is now a new exact-head native run; no producer change is authorized locally. +Exact-head run 29362672415 proves both native Windows builds reach the discovery gate after target +compilation but reject because scanning from the entire generated `build` tree encounters unrelated +dependency directories beyond depth eight. All four POSIX controls compare and upload. The active +correction may narrow only the traversal root to `build/Release`, the output tree where both logs +show MSBuild emitted `conpty_console_list.node`; every existing depth, entry, candidate, byte, +encoding, target-cardinality, parser, comparator, and no-upload bound remains unchanged +(E-M3-WINDOWS-LINK-COMMAND-DISCOVERY-CI-RED-001). + +The correction now scopes the same bounded discovery to `build/Release` only and is locally green +under E-M3-WINDOWS-LINK-COMMAND-RELEASE-ROOT-LOCAL-001. No budget, parser, producer, comparison, +staging, upload, legacy, or production behavior changed. The active gate is another exact-head +six-cell native run. + 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 @@ -1322,16 +1335,16 @@ Baseline measurements must be captured before product behavior changes. Update status and evidence as work begins. Do not combine these into one large behavior switch. -| Work package | Scope | Default behavior change | Status | PR/evidence | -| ------------------------- | ------------------------------------------------------------------------------------------ | --------------------------- | ------------------------------------------------------ | ----------------------------------------------------------------------- | -| 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 target-record discovery pending | `6198f0ddd`; E-M3-WINDOWS-LINK-COMMAND-DISCOVERY-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 | — | -| 6. Fallback/diagnostics | Abort-and-join state machine, mode isolation, reason codes, target-mode configuration/UI | Per-target Beta only | Not started | — | -| 7. Live gates/rollout | Matrix, security, performance, release promotion | Per-tuple staged | Not started | — | +| Work package | Scope | Default behavior change | Status | PR/evidence | +| ------------------------- | ------------------------------------------------------------------------------------------ | --------------------------- | ----------------------------------------------------- | ----------------------------------------------------------------------- | +| 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 | E-M3-WINDOWS-LINK-COMMAND-RELEASE-ROOT-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 | — | +| 6. Fallback/diagnostics | Abort-and-join state machine, mode isolation, reason codes, target-mode configuration/UI | Per-target Beta only | Not started | — | +| 7. Live gates/rollout | Matrix, security, performance, release promotion | Per-tuple staged | Not started | — | Every PR must document: @@ -5408,23 +5421,158 @@ configuration` before runtime staging, verification, smoke, comparison, or diagn 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-DISCOVERY-CI-RED-001 — Whole build tree exceeds depth bound + +- Date: 2026-07-14 +- Commit SHA / PR: exact head `f9a49d53123b27b19713eadef927de1102ec08de`, containing exact + discovery implementation commit `6198f0ddd5b31704ab72902e9a21e78412da870d`; stacked draft + PR [#8741](https://github.com/stablyai/orca/pull/8741) +- Run and jobs: [run 29362672415](https://github.com/stablyai/orca/actions/runs/29362672415), + conclusion `failure`; Windows x64 `87186432938` expected diagnostic failure, Windows arm64 + `87186432948` expected diagnostic failure, macOS arm64 `87186432965` success, Linux arm64 + `87186432979` success, Linux x64 `87186432980` success, and macOS x64 `87186433013` success +- Runners: GitHub-hosted Windows x64 and arm64 used the same native labels, images, runner, Node, + and MSVC versions recorded by E-M3-WINDOWS-LINK-COMMAND-PATH-CI-RED-001; exact source head was + `f9a49d531`. The four POSIX controls used their previously recorded target-native labels. +- Remote and transport: none; target-native artifact assembly, bounded build-tree discovery, and + unpublished Actions artifacts only +- Exact evidence commands: + + ```sh + gh run view 29362672415 --repo stablyai/orca \ + --json status,conclusion,headSha,createdAt,updatedAt,url,jobs + gh api repos/stablyai/orca/actions/jobs/87186432938/logs + gh api repos/stablyai/orca/actions/jobs/87186432948/logs + gh api 'repos/stablyai/orca/actions/runs/29362672415/artifacts?per_page=100' + ``` + +- Result: FAIL as the intended discovery boundary. Each Windows job successfully compiles the + target and enters bounded discovery, then rejects with `MSBuild linker tracking discovery exceeds +the bounded depth` before opening or parsing a candidate. Starting at the complete generated + `build` tree includes unrelated dependency/project subtrees; the evidence does not justify + raising the eight-level limit. Both logs show the target binary is emitted under `build/Release`, + which is the narrow output-tree root for the next correction. +- Uploaded controls: exactly four unpublished seven-day POSIX artifacts and no Windows artifacts: + Linux x64 `8322871131`, 29,278,807 bytes, + `sha256:b11ceb6bd42d28d379d32b3627a242f60cf62f78e9a7267589220ce7737b9c63`; Linux arm64 + `8322874205`, 28,209,038 bytes, + `sha256:f2195e1f4c03d1fb6507e32b5d5328a65f351c2c22b56a8144aa1c9449c3f733`; macOS x64 + `8322934998`, 26,370,804 bytes, + `sha256:6fea712fd57b06cc93a7e8f0f3ebda4526307258be66ba901cd3fc190f7a03ed`; and macOS arm64 + `8322879006`, 24,728,020 bytes, + `sha256:2407308e60002c5e735cd301f1f30e9754d5c383a18f36009d14f08085f1f577`. +- Duration and resource metrics: jobs ran 2m58s Windows x64, 6m25s Windows arm64, 3m45s macOS + arm64, 3m25s Linux arm64, 3m22s Linux x64, and 5m56s macOS x64. Windows fails after one native + compile but before runtime smoke; no new Windows RSS, channel/file count, cancellation, or + fallback metric exists. +- Artifact/log/trace link: run/jobs and four unpublished POSIX artifacts above; no Windows runtime + or rejected binary was staged or uploaded +- Oracle proved: both native Windows architectures reach and enforce the same traversal-depth + bound; whole-build-tree discovery is too broad; the target output tree is `build/Release`; all + four POSIX controls remain reproducible and upload. +- Does not prove: whether `build/Release` contains tracking candidates, candidate/target cardinality, + record shape, allowlisted switch summary, incremental-link state, thunk ownership, a safe producer + correction, Windows equality, oldest baselines, native trust, SSH, publication, transfer, + fallback, UI, or any enabled tuple. +- Checklist items satisfied: native negative discovery-root evidence only; no tuple or production + checkbox. +- Follow-up: narrow the discovery root to `build/Release` without raising or removing any bound, + then rerun all six native cells and require exactly one target record on both Windows runners. + +### E-M3-WINDOWS-LINK-COMMAND-RELEASE-ROOT-LOCAL-001 — Release output-tree discovery scope + +- Date: 2026-07-14 +- Commit SHA / PR: implementation and ledger are in the current artifact-only checkpoint; record + the exact implementation SHA in the immediate documentation evidence head after commit; 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 generate the native MSBuild tree, so Windows x64/arm64 jobs remain authoritative. +- Remote and transport: none; bounded discovery-root and builder-ordering contracts only +- Red evidence: E-M3-WINDOWS-LINK-COMMAND-DISCOVERY-CI-RED-001 on both native Windows + architectures; no synthetic local failure substitutes for that real traversal-shape 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 + node --check config/scripts/ssh-relay-node-pty-build.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 + 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 + ``` + +- Green result: PASS. The purpose suites pass 13/13 tests and all 15 artifact suites pass 58/58. + Syntax checks, typecheck, focused oxlint, the 355-entry max-lines ratchet, full repository + lint/reliability/localization, formatting, and diff checks exit zero. Full lint emits only + pre-existing warnings outside this package. +- Duration and resource metrics: focused purpose gate 1.26 s wall / 263 ms Vitest with + 131,710,976-byte maximum RSS and 95,868,256-byte peak footprint; complete artifact gate 4.01 s + wall / 1.92 s Vitest; typecheck 4.21 s, focused lint 0.90 s, max-lines 2.37 s, and full lint + 13.78 s. The final artifact run was parallel with static gates, so its process RSS was not + isolated. No SSH channels/files, cancellation, fallback, or runtime latency is exercised. +- Artifact/log/trace link: current exact source/tests and local command output; no runtime artifact + was created, staged, published, or uploaded +- Oracle proved: target discovery begins at `build/Release`, matching the exact native output tree + evidenced by both Windows logs; tests place valid, irrelevant, duplicate, oversized, deep, and + over-cardinality fixtures below that root. The existing entry/depth/candidate/byte, symbolic-link, + encoding, target-cardinality, strict-parser, and POSIX no-op contracts remain unchanged. +- Does not prove: that either native Release tree contains a candidate, candidate/target + cardinality, record shape, allowlisted switch summary, incremental-link state, thunk ownership, a + safe producer correction, arm64 equality, oldest baselines, native trust, SSH, publication, + transfer, fallback, UI, or any enabled tuple. +- Checklist items satisfied: local Release-tree discovery scope only; no tuple or production + checkbox. +- Follow-up: push the exact implementation and ledger head, rerun all six target-native cells, and + require both Windows clean builds to select one target record and emit the same accepted summary + before changing the producer. + ## 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 target-record discovery is locally green | Toolchain drift may change native content IDs | Codex implementation owner | Prove the actual target linker command natively, then apply only an evidenced producer correction and 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 | 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 | ## Final Definition of Done @@ -5465,11 +5613,12 @@ The project is not complete until every applicable item below is checked with ev ## Next Required Action -Push exact implementation commit `6198f0ddd` plus its evidence-ledger head, then rerun both Windows -architectures and all four POSIX controls at the exact head. 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. +Commit and push the bounded `build/Release` output-tree discovery correction without raising any +entry/depth/candidate/byte bound, 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. 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