Files
orca/docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md
T
2026-07-15 13:04:57 -04:00

11567 lines
801 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SSH Relay GitHub Release Distribution — Living Implementation Checklist
Human-readable tracker:
[SSH Relay Runtime Distribution — Implementation Checklist](./2026-07-14-ssh-relay-github-release-implementation-checklist-summary.md)
This file is the detailed evidence ledger. Use the tracker above for project status and remaining
work; keep exact commands, runner identities, hashes, metrics, and residual gaps here.
Date created: 2026-07-14<br>
Last updated: 2026-07-15<br>
Current phase: Milestone 4 / Work Package 3 disconnected authenticated draft read-back materialization — **In progress — 2026-07-15, Codex implementation owner**. The relay-specific required-asset capability is closed locally and on all six exact-head native Node 24 jobs under E-M4-RELEASE-ASSETS-LOCAL-RED-001, E-M4-RELEASE-ASSETS-LOCAL-001, and E-M4-RELEASE-ASSETS-CI-001. It remains a disconnected pure metadata boundary; detached-signature byte encoding, the existing desktop required-asset gate, and workflow composition are unchanged. The next slice must add an exclusive local materialization boundary to the existing authenticated read-back so exact verified bytes can later enter archive extraction/execution without a second download. Begin with a purpose-named RED; keep release writes, publication, desktop consumers, and every tuple disconnected.<br>
Session checkpoint: **In progress — 2026-07-15, Codex implementation owner** — exact pushed head `5460563ff48846cbf54218860fdca1cc3c7b8614` passes the new 13-test release-asset gate and full runtime construction on all six native jobs in run 29433808457 under E-M4-RELEASE-ASSETS-CI-001. PR Checks 29433808934 and both Golden E2E jobs in 29433808372 are green. Linux supplements and the Windows x64 floor pass. Windows arm64 runtime smoke passes in 7,936.874ms with 49,553,408-byte RSS; its separate floor job then retains the expected fail-closed hosted-build 26200 versus required 26100 mismatch. There is no command-line entrypoint, release API call, upload/publication caller, desktop consumer, tuple enablement, or production/default behavior change. The user authorizes commits, pushes, draft-PR updates, CI reruns, and protected rehearsals within PRs, but not merging to `main`. No accepted production key, protected environment/seed, native-signing trust proof, release write, publication path, desktop consumer, tuple enablement, or production/default change is connected. Legacy remains the production default.<br>
Primary design: [SSH relay GitHub Release plan](./2026-07-14-ssh-relay-github-release-plan.html)<br>
Motivating issues: [#8450](https://github.com/stablyai/orca/issues/8450), [#1693](https://github.com/stablyai/orca/issues/1693)
## Mandatory Living-Document Protocol
This checklist is part of the implementation, not a planning artifact that may go stale. Every
agent or engineer working on this project must read it before editing code and update it in the
same change as the work it records.
- At the start of every implementation session, read this document and confirm the current phase,
open decisions, accepted gaps, and existing evidence.
- Mark the active item with `**In progress — YYYY-MM-DD, owner/agent**` before changing code.
- Keep only one implementation item marked in progress unless independent PRs are deliberately
running in parallel and each names its owner.
- Do not change `- [ ]` to `- [x]` until the implementation and its required verification are
complete.
- Every completed item must cite an evidence-ledger ID such as `E-ARTIFACT-001` or a merged PR.
- Record exact commands, runner OS/architecture, commit SHA, result, duration, and artifact link for
executable evidence. “Tests passed” is not adequate evidence.
- Record what a test does **not** prove. Mock coverage must not be presented as live SSH,
native-module, release-asset, or platform coverage.
- If implementation changes the design, update both this checklist and the HTML plan in the same PR
before continuing.
- If a supported tuple lacks required real-environment proof, leave it on a proven legacy path or
mark it unsupported. Do not check it off based on cross-compilation or emulation alone.
- Never use “100% verified” without naming the exact declared matrix and showing that every required
cell passed.
- Preserve unrelated worktree changes. At checklist creation, the existing edits to
`ssh-remote-node-resolution.ts` and its test are user-owned issue #8450 work.
- Before every PR handoff, update Current Status, PR/Work-Package Status, Verification Ledger,
Accepted Gaps, and Next Required Action.
## Status Legend
- `- [ ]` — not complete.
- `- [x]` — complete with linked evidence.
- `**In progress — date, owner**` — actively being implemented; the checkbox remains unchecked.
- `BLOCKED:` — cannot proceed without a named decision, authority, runner, credential, or external
state. Include the exact unblock condition.
- `ACCEPTED GAP:` — deliberately not proved yet. Include scope, fallback behavior, owner, and
promotion condition.
## Current Status
- Implementation status: Work Package 0 is committed at `c4259d94f` on current `main`, with refreshed
focused, static, full-lint, live #8450 SSH/PTY, and GitHub Actions proof (E-M0-UNIT-002,
E-M0-STATIC-002, E-M0-LIVE-002, E-M0-CI-001). Draft PR
[#8724](https://github.com/stablyai/orca/pull/8724) is open and CI-green at current PR head
`9a8f98fd9`; the implementation evidence remains anchored at `94e58d83e`.
- Completed package: Work Package 1's disconnected manifest, content-identity, signature,
release-asset, and conservative selector contracts are locally and CI-green under E-M2-RED-001,
E-M2-CONTRACT-001, and E-M2-CI-001. They remain isolated in stacked draft PR
[#8728](https://github.com/stablyai/orca/pull/8728), which is CI-green at current PR head
`0c299fe18`; implementation evidence remains anchored at `b9d80a4cb`. No deploy/resolver call site
is connected and no tuple is enabled.
- Completed Work Package 3 gate: credential-free aggregate-input and authenticated draft read-back
verification binds each input and returned byte to exact name, size, SHA-256, tuple, content
identity, source draft, approved HTTPS asset origin, and exact HTTP 200 under
E-M4-AGGREGATE-READBACK-LOCAL-001 and E-M4-AGGREGATE-READBACK-CI-001.
- Completed Work Package 3 gate: disconnected canonical assembly, bounded credential-free signing
request, accepted-key/signature verification, deterministic final bytes, and all-six Node 24
workflow parity are green under E-M4-MANIFEST-HANDOFF-LOCAL-001,
E-M4-MANIFEST-HANDOFF-LOCAL-002, and E-M4-MANIFEST-HANDOFF-CI-001.
- Completed Work Package 3 gate: the disconnected fail-closed aggregate boundary is green locally
and on all six exact-head Node 24 native jobs under E-M4-MANIFEST-AGGREGATE-LOCAL-001,
E-M4-MANIFEST-AGGREGATE-LOCAL-002, and E-M4-MANIFEST-AGGREGATE-CI-001.
- Completed Work Package 3 gate: credential-free post-sign tuple-descriptor producer and
native-verification handoff. The descriptor must be derived only after returned-tree identity and
native policy verification and must bind the exact archive, SBOM, provenance, native assessment,
and content identity. E-M4-MANIFEST-TUPLE-SCHEMA-RED-001 requires an in-package release/desktop
correction for tuple-specific native role counts before the producer can pass the real Windows
closure. The correction and producer are green locally and on all six exact-head Node 24 native
jobs under E-M4-MANIFEST-TUPLE-LOCAL-001, E-M4-MANIFEST-TUPLE-LOCAL-002, and
E-M4-MANIFEST-TUPLE-CI-001.
- Completed Work Package 3 gate: semantic regeneration and verification of post-sign SBOM and
provenance from the verified final runtime tree. E-M4-POST-SIGN-METADATA-LOCAL-RED-001 proves the
purpose-named boundary was absent before implementation. The implementation is locally green under
E-M4-POST-SIGN-METADATA-LOCAL-001 and E-M4-POST-SIGN-METADATA-LOCAL-002. Exact-head run
29408355188 exposes a Windows x64 test-fixture portability failure under
E-M4-POST-SIGN-METADATA-CI-RED-001; production archive type/mode validation remains correct and
must not be relaxed. The fixture now selects the exact platform/architecture tuple, archive
family, release inputs, runner identity, and toolchain shape and is locally green under
E-M4-POST-SIGN-METADATA-CORRECTION-LOCAL-001. Replacement exact-head Node 24 evidence passes all
six native build jobs under E-M4-POST-SIGN-METADATA-CI-001. Production signing credentials,
publication, desktop consumers, and tuple enablement remain outside this slice.
- Completed package: Work Package 3 reusable target-native build-prerequisite contract. The
credential-free callable interface, both native test-family integrations, and exact-head all-six
native CI pass under E-M4-BUILD-PREREQUISITE-LOCAL-RED-001,
E-M4-BUILD-PREREQUISITE-LOCAL-001, and E-M4-BUILD-PREREQUISITE-CI-001. Release workflows remain
disconnected.
- Completed Work Package 3 gate: callable, disconnected aggregate/manifest-signing workflow source
contract. Exact aggregate input names, credential-free preparation/finalization, protected signer
isolation, signature-only return, SHA-pinned actions, bounds, and complete consumer disconnection
pass locally and on all six exact-head native jobs under E-M4-PROTECTED-MANIFEST-WORKFLOW-LOCAL-001
and E-M4-PROTECTED-MANIFEST-WORKFLOW-CI-001. The environment and seed remain unprovisioned; static
and test-key proof do not count as live protected signing evidence.
- Completed Work Package 3 gate: disconnected draft-asset upload/recovery capability. Exact local
bytes, authenticated tag/source binding, safe reuse, bounded retry reconciliation, cancellation,
and partial-draft recovery pass locally and on all six exact-head native jobs under
E-M4-DRAFT-UPLOAD-LOCAL-RED-001, E-M4-DRAFT-UPLOAD-LOCAL-001, and E-M4-DRAFT-UPLOAD-CI-001. There
is no CLI entrypoint or workflow caller, and no real release write occurred.
- Completed Work Package 3 gate: disconnected relay required-asset capability. Exact manifest
coverage, signature binding, name, size, upload state, managed-asset closure, stable/RC/perf
identity, and consumer disconnection pass locally and on all six exact-head jobs under
E-M4-RELEASE-ASSETS-LOCAL-RED-001, E-M4-RELEASE-ASSETS-LOCAL-001, and
E-M4-RELEASE-ASSETS-CI-001. Release workflow composition remains open.
- Active package: Work Package 3 disconnected authenticated draft read-back materialization. Begin
with a purpose-named RED for exclusive output, exact byte persistence during the existing bounded
authenticated download, mutation cleanup, cancellation, and consumer disconnection. Do not add
archive execution, release publication, or a production caller in this slice.
- Completed Work Package 2 gate: target-native Windows source-signature reports from exact-head
artifact jobs 87267322867 and 87267322870 were independently downloaded and matched to their
identities and signing-stage reports under E-M3-WINDOWS-SOURCE-SIGNATURE-CI-001. PR Checks
29388734935 and Golden E2E 29388734914 are green. Exact floors and real native signing/trust remain
open, so Work Package 2 as a whole is not complete and no tuple is enabled.
- Historical Work Package 2 progression: target-native runtime assembly, archive inspection, executable
smoke, SBOM, and provenance only. The Windows x64/arm64 artifact candidate and portability
corrections are implemented through `b6903b220`, with bounded smoke diagnostics in `3aab5aff8`,
explicit PTY smoke settlement in `ddf28eb8d`, and bounded active-resource diagnostics in
`6bba90020`, in stacked draft PR
[#8741](https://github.com/stablyai/orca/pull/8741). Exact-head run
[29341643555](https://github.com/stablyai/orca/actions/runs/29341643555) proves the bundled Node,
patched PTY input/resize/exit, and watcher lifecycle complete on x64 in 3,357.413 ms with
56,905,728-byte RSS and arm64 in 6,593.663 ms with 54,505,472-byte RSS, but each child retains a
Windows handle until the parent kills it at its 45-second bound. Exact-head run
[29343816558](https://github.com/stablyai/orca/actions/runs/29343816558) now classifies the resource
on both native architectures: after all public PTY cleanup and a two-second observation window,
one `MessagePort` remains alongside only the expected parent stdio `PipeWrap` resources
(E-M3-WINDOWS-RESOURCE-DIAGNOSTIC-CI-RED-001). The active slice is an exact-source, fail-closed
correction applied only to the copied node-pty Windows JavaScript inside runtime artifact
staging; the repository-wide node-pty patch and legacy/default desktop path must remain unchanged.
That local contract is green at `c04b4f630` under E-M3-WINDOWS-CONPTY-WORKER-LOCAL-001. Exact-head
run [29345126283](https://github.com/stablyai/orca/actions/runs/29345126283) then passed all six
native jobs; both Windows architectures shed the `MessagePort` within the two-second observation
window, exited normally, and uploaded unpublished evidence (E-M3-WINDOWS-CI-001). This package
may produce test artifacts but must not publish, resolve, transfer, install, launch, or enable
them.
- Historical evidence progression: the immutable Node v24.18.0 contract, pinned release key, bounded verifier,
and artifact-only CLI are locally green under E-M3-NODE-RED-001 and E-M3-NODE-PROVENANCE-001.
E-M3-RUNTIME-LOCAL-001 additionally proves one unpublished Linux arm64 glibc assembly, exact-tree
archive inspection, deterministic repack, bundled Node 24.18.0 execution, real patched PTY, and
watcher events. E-M3-STATIC-001 records the current focused, type, lint, format, line-budget, and
diff gates. The first exact-head native run exposed a macOS `/var` versus `/private/var` watcher
oracle mismatch under E-M3-CI-RED-001. The corrected exact-head run passed target-native build,
archive/tree verification, bundled Node, patched PTY, and watcher smoke for Linux x64/arm64 and
macOS x64/arm64 under E-M3-CI-001. A bounded comparator now rejects incomplete outputs and any
runtime-tree, archive, identity, SPDX, provenance, type, mode, size, or digest drift after two
independently verified clean builds; its exact implementation-commit contract and static gates
are locally green under E-M3-REPRODUCIBILITY-LOCAL-001. Exact-head run
[29347236627](https://github.com/stablyai/orca/actions/runs/29347236627) passed both Linux cells,
exposed macOS x64/arm64 runtime identity drift, and failed Windows x64/arm64 while collecting the
new comparator suite under E-M3-REPRODUCIBILITY-CI-RED-001.
E-M3-REPRODUCIBILITY-DIAGNOSTIC-LOCAL-001 removes the comparator shebang, checks both new files
with `node --check` on POSIX and Windows, and reports runtime-tree drift before derived metadata
drift. E-M3-REPRODUCIBILITY-DIAGNOSTIC-CI-RED-001 proves those diagnostics on all six native
runners: Linux x64/arm64 remain equal, both macOS builds first differ at `pty.node`, and both
Windows builds first differ at `conpty_console_list.node`. The bounded correction in
`a09b02ec4` makes macOS retain a reproducible loadable UUID, applies `/Brepro` only to copied
Windows artifact source, and requires exclusive caller-owned work paths; `3e433b343` makes the CI
path canonical across runs. E-M3-REPRODUCIBILITY-LINKER-CI-RED-001 proves both Linux and macOS
architectures now build, verify, smoke, compare exactly, and upload, but both Windows jobs fail
closed in contract collection because `ssh-relay-runtime-build.test.mjs` imports a builder with an
unused Unix shebang. E-M3-REPRODUCIBILITY-BUILDER-PARSER-LOCAL-001 proves the bounded correction at
exact commit `f864d3fa6`. Exact-head run 29351557922 then parses and builds on all six native
runners: Linux x64/arm64, macOS x64/arm64, and Windows x64 compare exactly and upload, while
Windows arm64 fully builds, verifies, and smokes both outputs but fails closed before upload when
`conpty_console_list.node` differs (E-M3-REPRODUCIBILITY-WINDOWS-ARM64-CI-RED-001). Documentation-
only exact-head repeat run 29352510414 reproduces the same isolated arm64 drift while all five
controls compare and upload under E-M3-REPRODUCIBILITY-WINDOWS-ARM64-REPEAT-CI-RED-001. Native
Windows arm64 equality remains mandatory; oldest-baseline, native-trust, SSH, and musl cells
remain open. E-M3-WINDOWS-PE-DIAGNOSTIC-LOCAL-001 proves the bounded diagnostic and fail-closed
workflow ordering locally at exact implementation commit `39ee3451b`; both native Windows cells
remained required before interpreting or correcting the producer. Exact-head run 29353432240
keeps x64 and all POSIX controls green, then reports the real arm64 PE hashes/layout/ranges and
fails without upload under E-M3-WINDOWS-PE-DIAGNOSTIC-CI-RED-001. Because the 128 detailed-range
cap is exhausted by `.text`, the active diagnostic-only correction adds raw-section labels and a
bounded summary across all 2,887 ranges before any producer change. Exact-head run 29357355064
keeps all five controls reproducible and proves both generated x64 option blocks, but the native
arm64 build fails closed at the new Release-condition verifier before runtime staging under
E-M3-WINDOWS-MSBUILD-PLATFORM-CASE-CI-RED-001. The runner exposes `Platform=arm64`; the active
correction accepts only a case-insensitive exact match for the expected architecture and retains
every option/cardinality check. Exact-head run 29358223742 proves that correction on the real
arm64 runner, preserves five exact controls, and reaches paired disassembly under
E-M3-WINDOWS-ARM64-THUNK-DISASSEMBLY-CI-RED-001. The arm64 outputs have 2,879 linker-emitted
16-byte function thunks whose three control-flow instructions match and whose unreachable fourth
`udf` instruction differs, plus 68 derived identity bytes. Strict comparison and rejected-output
no-upload remain intact. The active diagnostic must prove the generated incremental-link state
before any producer change. No comparator, publication, or production behavior changes.
- Windows input correction: E-M3-WINDOWS-INPUT-GAP-001 proved the official Windows ZIP lacks headers
and `node.lib`. Both artifacts now require the exact signed headers archive and tuple import
library as explicit inputs. The schema, signed-checksum verifier, bounded ZIP/header extraction,
and import-library staging are locally green under E-M3-WINDOWS-INPUT-001; native Windows build
proof remains active and no implicit `node-gyp` download is allowed.
- Windows PTY-closure correction: E-M3-WINDOWS-CONPTY-GAP-001 proved the candidate omitted the
`conpty.dll` and `OpenConsole.exe` files required by Orca's production `useConptyDll: true` path
and therefore exercised a weaker system-ConPTY smoke. E-M3-WINDOWS-LOCAL-002 proves the corrected
local tree-closure and smoke configuration contracts. E-M3-WINDOWS-CI-001 proves the corrected
native x64/arm64 closure executes and settles; oldest-baseline and native-trust cells remain open.
- Windows native progression: E-M3-WINDOWS-CI-RED-002 captured and corrected NTFS fixture modes,
Windows shebang parsing, authenticated-key checkout bytes, and POSIX-only mode assertions. At the
corrected exact head, E-M3-WINDOWS-CI-RED-003 proves 20 passing and one intentionally skipped test
on each native architecture, exact input download, and a common fail-closed Git-for-Windows
`gpgv` drive-letter keyring incompatibility. E-M3-WINDOWS-CI-RED-004 proves that correction with
21 passing and one intentionally skipped test, signed input acceptance, native compilation, and
runtime/ZIP assembly on each architecture; both 45-second bundled smoke commands then time out
without propagating their already bounded child stderr. E-M3-WINDOWS-SMOKE-SETTLEMENT-CI-RED-001
and E-M3-WINDOWS-SMOKE-SETTLEMENT-CI-RED-002 then proved functional PTY/watcher smoke still did not
settle after public listener and terminal cleanup. E-M3-WINDOWS-RESOURCE-DIAGNOSTIC-CI-RED-001
identifies the persistent native resource as one `MessagePort` on both x64 and arm64 after a
two-second drain window. E-M3-WINDOWS-CI-001 proves the artifact-only correction removes that
resource before normal exit on both architectures and retains the uploaded bytes. No oldest-
baseline, native-trust, SSH, reproducibility, or enabled-tuple claim is made.
- Production behavior: unchanged; Orca embeds relay JavaScript and installs `node-pty` plus
`@parcel/watcher` with remote npm.
- New runtime assets published: none.
- Bundled runtime enabled: no.
- Declared supported bundled tuples: none until the required target-native and two-layer live
evidence cells are complete.
- Validation orchestration: GitHub Actions is the primary runner and evidence surface under
E-M1-RUNNER-DECISION-001; exact native labels are recorded, while representative cross-family
remote targets remain open.
- Rollout control: the Beta-tagged option lives on SSH target add/edit surfaces and is persisted per
target through existing target configuration. It is off by default for existing, new, imported,
missing, unknown, and malformed configurations, all of which resolve to legacy. Only an explicit
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: commit and push the locally green semantic post-sign metadata package, then
collect exact-head Node 24 proof from all six native build jobs. Commit/push and PR-contained CI
work are authorized; merging to `main` is not. Keep real native/manifest signing credentials,
endpoint trust, missing
exact-floor snapshots, production publication, desktop consumers, and every tuple's enabled state
outside this slice.
## Non-Negotiable Invariants
- [ ] The bundled primary path never requires outbound HTTP, npm, a compiler, Python, or a system
Node installation on the SSH host.
- [ ] The desktop downloads the runtime, verifies it locally, and transfers it through the existing
authenticated SSH connection.
- [ ] SSH authentication/connection and relay RPC transport remain unchanged; bootstrap artifact
transfer is a separately designed, measured, and gated subsystem.
- [ ] Every desktop build embeds the exact signed manifest needed to resolve a remote tuple to a
content identity while the desktop is offline.
- [ ] Relay artifacts are built and signed before desktop packaging; app builds and GitHub Release
uploads consume the exact same immutable bytes.
- [ ] No downloaded byte is extracted, transferred, or executed until manifest authenticity,
expected tuple, size bounds, and archive SHA-256 are verified at the appropriate boundary.
- [ ] A completed remote install is immutable and content-addressed. A running old relay is never
mutated in place.
- [ ] Bundled and legacy installs use distinct identities, locks, partial directories, sentinels,
and launch generations.
- [ ] Fallback cannot start until all bundled download, extraction, upload, verification, and launch
work is aborted, awaited, and unable to mutate state.
- [ ] Signature, archive hash/safety, extracted-tree, or native-signature failure fails closed in
`auto`: rejected bytes never execute and automatic legacy fallback never starts.
- [ ] Detected local or remote cache corruption is quarantined and may recover only from freshly
verified bundled bytes; failed/unavailable recovery fails closed without automatic legacy.
- [ ] Local signed-manifest/archive/tree verification plus authenticated SSH transfer into exclusive
staging is the pre-execution integrity boundary; bundled Node then hashes the entire staged
tree before any completion sentinel is written.
- [ ] Remote install proof establishes initial transfer/finalization correctness. Warm launch trusts
Orca's completed-directory immutability assumption; the sentinel is not ongoing proof against
later mutation or a hostile authenticated account that can replace runtime and sentinel.
- [ ] Platform support is never inferred from an artifact existing. Each enabled tuple requires a
real-environment runtime proof.
- [ ] Unknown or conflicting platform/libc evidence deterministically selects proven legacy
behavior; it never guesses an artifact.
- [ ] Runtime transfer has explicit memory, file-count, concurrency, cancellation, and time budgets.
- [ ] Bundled mode depends only on the explicitly declared POSIX or Windows bootstrap primitives; it
never silently requires remote Node, Python, tar, `sha256sum`, or `shasum`.
- [ ] Every Node/CVE/runtime/key refresh produces a new desktop tag/build and embedded signed
manifest. Old clients remain frozen to their embedded manifest and accepted keys.
- [ ] Current PTY, watcher, Git, filesystem, streaming, agent-hook, preflight, reconnect, and GC
contracts remain intact.
- [ ] macOS, Linux, and Windows behavior remains behind runtime checks and uses platform-native
paths and commands.
- [ ] No implementation file adds a max-lines disable or vague `helpers`/`utils` module name.
## Milestone 0 — Preserve and Prove the Legacy Safety Net
Goal: land the narrow #8450 correction independently because automatic fallback depends on a
coherent Node/npm resolver.
Work Package 0 implementation evidence was completed on 2026-07-14 by the Codex implementation
owner. No relay artifact-distribution behavior is included.
- [x] Confirm the #8450 implementation selects Node and npm from the same bin directory on POSIX.
(E-M0-UNIT-001, E-M0-UNIT-002, E-M0-LIVE-002)
- [x] Confirm Windows selects `node.exe` and `npm.cmd` from one toolchain directory.
(E-M0-UNIT-001; mocked Windows command construction, not live Windows)
- [x] Reject an incomplete system Node and continue to the usable NVM candidate.
(E-M0-UNIT-001, E-M0-UNIT-002, E-M0-LIVE-002)
- [x] Preserve minimum supported Node-version enforcement. (E-M0-UNIT-001)
- [x] Preserve login-shell, known-path, version-manager, noisy-startup, cancellation, and
`MaxSessions=1` behaviors. (E-M0-UNIT-001; live `MaxSessions=1` remains outside this WP0 proof)
- [x] Add the exact Ubuntu/system-Node-without-npm/NVM-below-`.bashrc`-guard regression fixture.
(E-M0-UNIT-001, E-M0-LIVE-001)
- [x] Add negative tests for Node present/npm missing, npm present/Node too old, mismatched bin
directories, and an unusable npm shim. (E-M0-UNIT-001)
- [x] Run focused resolver and deploy tests and record evidence. (E-M0-UNIT-001, E-M0-UNIT-002)
- [x] Run a live SSH reproduction matching issue #8450 and record the selected paths and successful
relay/PTY launch without recording usernames or home paths in committed evidence.
(E-M0-LIVE-001, E-M0-LIVE-002)
- [x] Keep this fix in a separate PR or commit from GitHub Release distribution. The reviewed plan
is commit `2b67de870`; WP0 code is the separate commit `c4259d94f` in draft PR #8724.
(E-M0-PR-001)
- [x] Document which tuples have a live passing legacy E2E. Fallback is only a support claim for
those tuples. (E-M0-LIVE-001)
| Legacy remote tuple | Client | Transport | Evidence | Scope limit |
| --------------------------------------------------------------------------------- | ---------------- | -------------------------------------------- | ---------------------------- | ----------------------------------------------------------------- |
| Ubuntu 24.04 arm64, glibc, system Node 18 without npm, guarded NVM Node 22/npm 10 | macOS 26.2 arm64 | Built-in SSH2 connection + SFTP relay upload | E-M0-LIVE-001, E-M0-LIVE-002 | Does not prove x64, system SSH, Windows, musl, or `MaxSessions=1` |
Completion evidence required: focused red/green tests, live #8450 SSH run, typecheck, lint, and PR
link.
## Milestone 1 — Close Blocking Product and Support Decisions
No production implementation begins until every blocking item has an owner and decision record.
### Supported runtime baselines
- [x] Define the oldest supported glibc version as 2.28 for initial Linux x64/arm64 candidates.
(E-M1-BASELINE-001)
- [x] Define the oldest supported libstdc++/C++ ABI level as libstdc++ 6.0.25 with
`GLIBCXX_3.4.25`. (E-M1-BASELINE-001)
- [x] Define the minimum supported Linux kernel as 4.18. (E-M1-BASELINE-001)
- [x] Define no enabled musl baseline initially. Alpine/musl remains a selector and legacy-path test
family until Orca produces and proves its own target-native Node/runtime build; no unofficial
Node binary is accepted. (E-M1-BASELINE-001, E-M1-NODE-PROVENANCE-001)
- [x] Define macOS 13.5 as the minimum for both x64 and arm64 candidates. (E-M1-BASELINE-001)
- [x] Define the initial Windows candidates as Windows 10 22H2 build 19045 or Server 2022 build
20348 for x64, and Windows 11 24H2 build 26100 for arm64, with OpenSSH for Windows 8.1p1,
Windows PowerShell 5.1, and .NET Framework 4.8 as minimum bootstrap primitives. Because the
manifest has one monotonic `minimumBuild` per tuple, encode 19045 for x64 (which admits Server
2022 build 20348 and newer) and 26100 for arm64.
(E-M1-BASELINE-001)
- [x] Treat a Rosetta-translated shell as x64 process architecture, but keep it on legacy until an
x64 artifact passes a live Rosetta SSH cell. A native arm64 shell selects arm64; detection
never forces a native-architecture artifact across a translated process boundary.
(E-M1-BASELINE-001)
- [x] Document current legacy platform families separately from bundled candidates and distinguish a
code-declared family from a live-evidenced fallback claim. (E-M1-LEGACY-INVENTORY-001)
Decision owner: Codex implementation owner for #8450. Decision authority: conservative
implementation boundary under the user-approved legacy-default Beta rollout. These are minimum
eligibility constraints, not support claims: every candidate remains disabled until its two-layer
live evidence cells pass.
The initial candidate families are Linux glibc x64/arm64, macOS x64/arm64, and Windows x64/arm64.
Linux musl, WSL, Rosetta-translated macOS, and any unlisted OS/architecture remain legacy-only.
Version parsing is exact and fail-conservative; an unknown, missing, older, or conflicting baseline
probe selects legacy rather than guessing a compatible artifact.
| Remote family | Current legacy path | Proposed bundled candidate | Live fallback evidence in this project |
| -------------------- | ----------------------------------------------------------------------------------- | ---------------------------------------------------- | -------------------------------------- |
| Linux x64 glibc | Declared `linux-x64`; coherent remote Node/npm plus remote native npm install | `linux-x64-glibc` | None yet |
| Linux arm64 glibc | Declared `linux-arm64`; coherent remote Node/npm plus remote native npm install | `linux-arm64-glibc` | E-M0-LIVE-002 (Ubuntu 24.04 arm64) |
| Linux x64/arm64 musl | Shares current Linux platform key; compatibility depends on legacy npm/native build | None initially; selector returns legacy | None |
| macOS x64 | Declared `darwin-x64`; coherent remote Node/npm plus remote native npm install | `darwin-x64` | None |
| macOS arm64 | Declared `darwin-arm64`; coherent remote Node/npm plus remote native npm install | `darwin-arm64` | None |
| Windows x64 | Declared `win32-x64`; coherent `node.exe`/`npm.cmd` plus remote native install | `win32-x64` | None |
| Windows arm64 | Declared `win32-arm64`; coherent `node.exe`/`npm.cmd` plus remote native install | `win32-arm64` | None |
| WSL/Rosetta/other | No separate current platform identity; behavior follows detected process family | No candidate until a separately identified live cell | None |
“Declared” above means the current source accepts the platform and has deterministic unit coverage;
it is not a claim that this project has a passing live SSH fallback cell. Automatic legacy fallback
for a bundled tuple is permitted only where the last column has current evidence for the relevant
family/transport conditions.
### Validation runner and network topology
Decision owner: Codex implementation owner for #8450. Decision authority: worktree owner direction
on 2026-07-14. GitHub Actions is the primary orchestration and durable evidence surface because it
can couple target-native build jobs, packaged-client jobs, logs, metrics, and immutable artifacts to
the exact commit under test without introducing a second release-control plane.
- [x] Use GitHub Actions for the PR, nightly, release, and promotion evidence workflows.
(E-M1-RUNNER-DECISION-001)
- [x] Permit a GitHub-hosted runner to fill a required evidence cell only when it provides real
hardware or native virtualization for the declared OS/architecture and the job records the
runner label, image/version, architecture, and native-versus-emulated status.
(E-M1-RUNNER-DECISION-001)
- [x] Require a real OpenSSH daemon, the full-size packaged runtime, and the production built-in
SSH/SFTP or system-SSH path named by the cell. A mock server, reduced fixture, cross-build,
QEMU-only run, or artifact existence cannot fill a live cell. Same-host or native-container
targets qualify only when they preserve the declared remote OS/architecture, SSH daemon,
primitive, egress, and isolation conditions. (E-M1-RUNNER-DECISION-001)
- [x] For Layer B cross-family cells, have the GitHub Actions job provision or connect to an
ephemeral native SSH target or an approved self-hosted target pool. The remote need not itself
be GitHub-hosted, but its image/snapshot identity and teardown result are part of the evidence;
do not assume networking between unrelated hosted jobs. (E-M1-RUNNER-DECISION-001)
- [x] Keep any tuple without an available qualifying native runner or reachable representative
remote disabled and on its proven legacy path. (E-M1-RUNNER-DECISION-001)
- [x] Inventory the repository's available GitHub-hosted runner labels and record native
architecture, image/version policy, and unreserved capacity. No approved self-hosted SSH
target pool currently exists. (E-M1-RUNNER-INVENTORY-001)
- [ ] Name and pin the representative POSIX and Windows remote images/snapshots used for Layer B,
including their OpenSSH and bootstrap-primitive baselines and network-egress controls.
- [x] Use the explicit native GitHub runner labels below for paired legacy-versus-bundled regression
measurements in the same job, with local network shaping and at least ten samples per path. If
three qualifying reruns have over 15% coefficient of variation or disagree on the threshold,
require an approved dedicated runner; do not weaken the threshold. (E-M1-BUDGET-DECISION-001)
BLOCKED for cross-family live evidence, not for contract-only work: the Codex implementation owner
owns repo-local fixture/workflow definitions, but a repository release administrator must approve an
ephemeral cloud credential/environment or a self-hosted target pool before immutable POSIX and
Windows Layer B snapshots can be named as reachable infrastructure. The unblock record must include
provider, snapshot IDs, credential owner, egress policy, teardown SLA, and cost/capacity owner. Safe
default: no Layer B cell and no bundled tuple is enabled; continue schema/selector and local
same-family test work without secrets.
#### Native runner inventory decision
Decision owner: Codex implementation owner for #8450. Image authority: GitHub-hosted runner image
catalog; repository workflow inventory at this branch. Pin explicit OS labels in new relay workflows
and record the resolved image version from every job because GitHub refreshes images weekly.
`*-latest` is not permitted for qualifying tuple evidence.
| Client/build architecture | Qualifying label | Native image family | Capacity/update rule |
| ------------------------- | ------------------ | ------------------- | ------------------------------------------------------------------------------------ |
| Linux x64 | `ubuntu-24.04` | Ubuntu 24.04 x64 | GitHub-hosted ephemeral, unreserved/queue-dependent; weekly image, log exact version |
| Linux arm64 | `ubuntu-24.04-arm` | Ubuntu 24.04 arm64 | GitHub-hosted ephemeral, unreserved/queue-dependent; weekly image, log exact version |
| macOS x64 | `macos-15-intel` | macOS 15 x64 | GitHub-hosted ephemeral, unreserved/queue-dependent; weekly image, log exact version |
| macOS arm64 | `macos-15` | macOS 15 arm64 | GitHub-hosted ephemeral, unreserved/queue-dependent; weekly image, log exact version |
| Windows x64 | `windows-2022` | Server 2022 x64 | GitHub-hosted ephemeral, unreserved/queue-dependent; weekly image, log exact version |
| Windows arm64 | `windows-11-arm` | Windows 11 arm64 | GitHub-hosted ephemeral, unreserved/queue-dependent; weekly image, log exact version |
The repository already uses `ubuntu-latest`, `ubuntu-24.04-arm`, `macos-15`, `windows-2022`, and a
third-party macOS release label. Existing `latest` and third-party labels may remain for their
current workflows but do not qualify a relay tuple unless the relay job pins the explicit label and
records its resolved image. No approved self-hosted SSH target pool, reserved hosted-runner capacity,
or cross-family remote endpoint is inferred from this inventory; those unresolved Layer B cells keep
the affected tuple disabled.
### Remote bootstrap primitives
- [x] Define the exact POSIX baseline as POSIX `sh` with builtin `command`/`printf` plus
byte-preserving `cat`, `mkdir`, `rm`, `mv`, `chmod`, `test`, and `nohup`; no Node, Python,
Perl, tar, base64, checksum tool, or compiler is permitted. (E-M1-BOOTSTRAP-DECISION-001)
- [x] Define the exact Windows baseline as OpenSSH for Windows 8.1p1, Windows PowerShell 5.1, and
.NET Framework 4.8 with `FileStream`, `FileMode.CreateNew`, 64 KiB binary reads/writes,
same-volume `Directory.Move`, ACL-preserving filesystem operations, and the existing detached
relay launch mechanism. (E-M1-BOOTSTRAP-DECISION-001)
- [x] Capability-probe required semantics with a client-generated nonce and byte fixture, without
Node or Python, once per authenticated SSH connection. Never persist or share the result
across hosts or reconnect generations. (E-M1-BOOTSTRAP-DECISION-001)
- [x] Treat missing or semantically incorrect bootstrap primitives as compatibility failure,
eligible for legacy in `auto` only where that exact legacy family has current evidence.
(E-M1-BOOTSTRAP-DECISION-001)
- [x] Record no BusyBox-only variant as qualified initially. Ubuntu 24.04 arm64 BusyBox 1.36.1 lacks
the required `nohup` applet and therefore selects legacy; any BusyBox host must pass the full
semantic probe with external required commands before it can become a candidate.
(E-M1-BUSYBOX-001)
#### Bootstrap primitive decision
POSIX system SSH and built-in SSH2 both open a dedicated stdin byte stream for each manifest file.
The remote command creates that file with restrictive permissions and `cat > file`; the client sends
exactly the declared size and closes stdin. The initial semantic probe round-trips a binary fixture
containing NUL, CR, LF, high-bit bytes, and no trailing newline through the same path. Per-file
channels are bounded and become sequential under `MaxSessions=1`. Full staged-tree integrity is
still checked later by transferred bundled Node, not by trusting `cat` or a remote checksum command.
Windows transfer sends raw bytes to a purpose-built PowerShell script that reads
`Console.OpenStandardInput()` into a 64 KiB buffer and writes with `FileStream`. A `CreateNew` lock
file containing an unguessable client token establishes exclusive staging ownership before the
directory is created; every later command verifies that token. The reader rejects early EOF and one
extra byte beyond the declared safe-integer size. It never materializes the file as a string,
JSON/base64 value, or whole-file buffer. Publish uses same-volume rename only after bundled-Node
tree verification and native probes. Probe artifacts and locks are removed on success, failure, or
cancellation; cleanup settlement is part of the timeout oracle.
### Node runtime ownership
- [x] Pin the first runtime contract to official Node v24.18.0 LTS (Krypton). Stay on Node 24 LTS
until a separately reviewed major upgrade; never silently float a desktop build to a newer
patch. (E-M1-NODE-PROVENANCE-001)
- [x] Use unchanged official nodejs.org binaries for Linux glibc x64/arm64, macOS x64/arm64, and
Windows x64/arm64. Build all relay code and native dependencies in target-native Orca jobs;
do not substitute cross-built Node executables. (E-M1-NODE-PROVENANCE-001)
- [x] Produce no musl Node binary in the initial release. A later musl candidate requires an
Orca-owned target-native source build, reproducible provenance, signing, and the same live
gates; unofficial community binaries are prohibited. (E-M1-NODE-PROVENANCE-001)
- [x] Check Node security/release status at least weekly and at every desktop release cut. Triage a
published Node/runtime CVE within one business day; ship an applicable critical fix within
seven calendar days and high-severity fix within fourteen, or disable the affected bundled
tuple while legacy remains available. (E-M1-NODE-PROVENANCE-001)
- [x] Require every Node patch, CVE remediation, native-code change, dependency change, manifest-key
change, or accepted-key change to create a new runtime content ID and a new desktop tag/build
with a newly embedded signed manifest. Old clients remain pinned. (E-M1-NODE-PROVENANCE-001)
- [x] Verify the detached Node `SHASUMS256.txt.sig` against a build-input-pinned Node release
keyring before extraction, record the signer fingerprint and source archive digest in
provenance, and preserve official executable bytes/signatures. Orca-built native executables
and libraries still require the target-native signing policy decided below.
(E-M1-NODE-PROVENANCE-001)
- [x] For Windows native-module builds, authenticate the exact-version `headers.tar.gz` and
architecture-specific `win-*/node.lib` through that same signed checksum document in addition
to the tuple ZIP. The official Windows ZIP does not contain either build input; implicit
`node-gyp` downloads are prohibited. (E-M3-WINDOWS-INPUT-GAP-001)
### Trust and signing
- [x] Use Ed25519 detached signatures through the existing direct `tweetnacl@1.0.3` dependency;
reject non-64-byte signatures, non-32-byte public keys, unknown algorithms, and unknown keys.
(E-M1-TRUST-DECISION-001)
- [x] Canonicalize only a fully validated unsigned manifest projection: fixed schema field order,
tuples sorted by canonical tuple ID, files sorted by portable relative path, safe integers,
portable ASCII identity/path fields, no optional `undefined`, and UTF-8 `JSON.stringify`
bytes with no whitespace or trailing newline. Signatures are outside the signed projection.
(E-M1-TRUST-DECISION-001)
- [x] Generate Ed25519 keys offline, store only the base64-encoded 32-byte seed in a tag-restricted
`relay-runtime-manifest-signing` GitHub Environment with required reviewers, expose it only to
the fail-closed aggregate job, pin every action by commit SHA, grant no write permission except
the separate draft-release upload job, and rely on environment deployment logs for audit.
(E-M1-TRUST-DECISION-001)
- [x] Define key ID as `sha256:<lowercase hex SHA-256 of the 32-byte Ed25519 public key>`. Embed the
accepted key set in the desktop. Rotation dual-signs at least two consecutive desktop releases
and 30 days; old-key removal/revocation and emergency replacement ship only in a new desktop
build. Old clients and manifests remain pinned with no freshness lookup.
(E-M1-TRUST-DECISION-001)
- [x] Require embedded manifest tag/channel/version to equal the compiled desktop identity and use
only that exact release URL. A newer desktop never accepts an older manifest. A user-initiated
desktop downgrade may use its own embedded older manifest/cache namespace but cannot rewrite a
newer content-addressed install. (E-M1-TRUST-DECISION-001)
- [x] Use GitHub artifact attestations/keyless OIDC provenance as a supplement, never as a replacement
for the offline-verifiable embedded Ed25519 manifest signature. (E-M1-TRUST-DECISION-001)
- [x] Preserve valid official Node signatures. Sign every Orca-built macOS executable, `.node`,
dylib, and `spawn-helper` with the existing Developer ID Application identity before final
hashes; verify strict codesign and notarized containing-app provenance on a native runner.
(E-M1-TRUST-DECISION-001)
- [x] Preserve valid upstream Authenticode signatures and send every unsigned Orca-built Windows
`.exe`, `.dll`, and `.node` through the existing SignPath inner-binary flow before final hashes;
verify `Get-AuthenticodeSignature` and signer policy on returned bytes.
(E-M1-TRUST-DECISION-001)
- [x] Define target-native trust environments: clean macOS 13.5 x64/arm64 snapshots with quarantine
plus Gatekeeper/codesign assessment; Windows Server 2022 x64 and Windows 11 24H2 arm64
snapshots with current Microsoft Defender signatures; and a disposable Windows 11 24H2 x64
VM with the release WDAC policy in audit then enforced mode. Record snapshot/policy/signature
IDs in every run; third-party EDR observations may supplement but not replace these gates.
(E-M1-ENDPOINT-DECISION-001)
#### Manifest-key operational gate
Decision owner: Codex implementation owner for #8450. Operational owners: repository release
administrators for GitHub Environment/reviewer policy, existing Apple credential owners for macOS,
and existing SignPath organization approvers for Windows. No key or secret is created by this
decision. Runtime publication remains blocked until the protected environment, two test keys,
dual-sign/unknown-key/revocation rehearsals, action-SHA allowlist, and access audit are executable.
The signing job receives canonical unsigned bytes and returns only key ID plus signature. The
aggregate job reconstructs and verifies the signed projection before emitting the final manifest.
The desktop repeats the same validation and rejects duplicates before cryptographic verification.
At least one accepted signature is required, every signature entry must be unique, and a malformed
or unknown extra signature fails closed rather than being ignored. Key compromise cannot alter an
old client's embedded manifest or archive hashes; emergency response stops asset publication and
ships a new desktop build with revised accepted keys.
The trust-environment decision does not imply those snapshots exist in an approved pool. Gatekeeper
tests add a quarantine attribute to the downloaded runtime before assessment and execution. Windows
tests update Defender intelligence, scan the unpacked tree, verify every PE signature, run native
PTY/watcher smoke, then repeat under the enforced WDAC policy. Detection, quarantine, or policy
denial is release-blocking and must retain logs without weakening the security product.
### Operational budgets and rollout policy
- [ ] Record current legacy cold-install and warm-connect baselines on representative networks.
- [x] Set the local verified-runtime cache to 2 GiB, with an atomic LRU that never evicts referenced,
locked, staging, current-manifest, or running content; retain at least current plus previous
content per used tuple when they fit. (E-M1-BUDGET-DECISION-001)
- [x] Reject an archive over 100 MiB compressed, 350 MiB expanded, 5,000 entries, 250 MiB for one
file, a path over 240 UTF-8 bytes, or aggregate metadata arithmetic outside safe integers.
(E-M1-BUDGET-DECISION-001)
- [x] Set stage ceilings: cache lookup 2 s, connect/DNS availability decision 15 s, download 5 min,
extraction 2 min, transfer 20 min, remote full-tree verification 3 min, native/smoke probes
2 min, launch/handshake 30 s, cancellation-and-join 10 s, and total cold bootstrap 30 min.
(E-M1-BUDGET-DECISION-001)
- [x] Limit incremental transfer/extraction memory to 64 MiB on the desktop and 32 MiB on the remote,
excluding the launched relay's measured steady-state runtime; no single buffer exceeds 1 MiB.
(E-M1-BUDGET-DECISION-001)
- [x] Limit SFTP to four in-flight files and four bootstrap channels by default, reduce to one after
the existing `MaxSessions=1` capability result, and never exceed eight open file handles in
either process. (E-M1-BUDGET-DECISION-001)
- [x] Require warm-connect p95 to be no more than 100 ms or 10% slower than paired legacy, whichever
allowance is larger. Cold p95 must not exceed the smaller of the 30-minute hard cap or 115% of
the measured bytes/throughput lower bound plus five minutes at 1/10/100 Mbps and 50/100/200 ms
RTT. Offline/connectivity classification completes within 20 s, and legacy starts within 10 s
after any eligible failure is classified and bundled work is joined. (E-M1-BUDGET-DECISION-001)
- [x] Keep automatic legacy fallback through at least two stable releases and 30 days after any
separately authorized default-on change. Narrowing fallback or removing legacy requires a
separate review plus complete matrix, soak, support, and rollback evidence.
(E-M1-BUDGET-DECISION-001)
- [x] Use existing per-SSH-target configuration for rollout control; do not add a rollout backend.
This closes the control-mechanism decision, not its implementation.
(E-M1-ROLLOUT-DECISION-001)
- [x] Define offline/missing-asset behavior: use a verified client cache without GitHub or remote
egress; otherwise classified offline/404/cache-unavailable errors may use proven legacy in
Beta `auto`. If legacy prerequisites also fail, return both stage codes and actionable retry,
update, or disable-Beta guidance without hiding the original error. Integrity failures never
fallback. (E-M1-BUDGET-DECISION-001)
#### Per-target Beta rollout decision
Decision owner: Codex implementation owner for #8450. Decision authority: worktree owner direction
on 2026-07-14. The purpose is to gather real-host evidence without changing behavior for existing
SSH users or making all of a user's hosts depend on one experimental path.
- [x] Keep `legacy` as the persisted and effective default for every existing and newly added SSH
target. An absent or unknown configuration value must deserialize conservatively to `legacy`.
(E-M1-ROLLOUT-DECISION-001)
- [x] Expose the bundled-preferred path as an off-by-default option on SSH target add and edit
surfaces, using the same Beta-tag treatment as existing Beta features and storing the choice
per target rather than as a global experiment. (E-M1-ROLLOUT-DECISION-001)
- [x] Represent the persisted choice as an extensible mode such as `legacy | bundled-auto`, not a
boolean. Keep forced `bundled` as a separate engineering/support diagnostic and do not expose
it as the normal Beta choice. Exact schema naming remains an implementation detail.
(E-M1-ROLLOUT-DECISION-001)
- [x] Apply a setting change only to the next connection or explicit reconnect. Never hot-swap the
relay underneath a live PTY, watcher, RPC, reconnect, or reattach generation.
(E-M1-ROLLOUT-DECISION-001)
- [x] In Beta mode, allow only classified availability/compatibility failures to enter proven
legacy automatically. Integrity/security failures remain fail-closed; recovery is an explicit
local action that disables Beta for that target and reconnects through legacy.
(E-M1-ROLLOUT-DECISION-001)
- [x] Require a separate reviewed rollout decision and completed evidence gates before changing the
default for any tuple. Shipping the Beta setting does not authorize default-on or legacy
removal. (E-M1-ROLLOUT-DECISION-001)
Decision evidence required: reviewed decision record with owners, dates, rationale, and affected
matrix cells.
## Milestone 2 — Define the Artifact, Manifest, and Identity Contract
Suggested modules are provisional; update this file before choosing different names.
**Work Package 1 complete — 2026-07-14, Codex implementation owner:** implemented the pure manifest schema,
canonical unsigned bytes/signature verification, content identity, and fail-conservative
platform/libc selector with hostile-input tests only. No deploy/resolver call site or bundled tuple is
enabled in this package. Local and exact-head draft PR evidence is recorded under E-M2-RED-001,
E-M2-CONTRACT-001, and E-M2-CI-001.
### Manifest schema
- [x] Add a versioned relay artifact schema in `src/main/ssh/ssh-relay-artifact-schema.ts`.
(E-M2-CONTRACT-001)
- [x] Include schema version, exact Orca build tag, relay protocol version, runtime content ID,
OS, architecture, libc family/version requirements, minimum OS/kernel requirements, Node
version, dependency versions, archive name, archive size, expanded size, file count, and
archive SHA-256. (E-M2-CONTRACT-001)
- [x] Include every runtime file’s relative path, type, size, SHA-256, and required executable mode.
(E-M2-CONTRACT-001)
- [x] Include signing key ID, signature algorithm/version, creation timestamp, and provenance/SBOM
references without making wall-clock time part of runtime identity. (E-M2-CONTRACT-001)
- [x] Include target-native code-signing verification attestation, policy/tool identity, and the
exact attested byte hashes inside the signed manifest. (E-M2-CONTRACT-001)
- [x] Reject duplicate tuple entries, duplicate/case-colliding paths, unsafe Windows names,
unsupported schema versions, missing required files, extra native platform packages, and
inconsistent aggregate sizes. (E-M2-CONTRACT-001)
- [x] Define exact archive naming for stable, RC, and perf builds. (E-M2-CONTRACT-001)
- [x] Define exact direct release URL construction. Runtime code must not call the GitHub API or use
a mutable `latest` URL. (E-M2-CONTRACT-001)
### Content identity
- [x] Compute the content identity from canonical full-runtime metadata and file digests, including
Node, relay entries, native modules, helper executables, and runtime JavaScript.
(E-M2-CONTRACT-001)
- [x] Prove changing only Node changes the identity. (E-M2-CONTRACT-001)
- [x] Prove changing only `node-pty` changes the identity. (E-M2-CONTRACT-001)
- [x] Prove changing only `@parcel/watcher` changes the identity. (E-M2-CONTRACT-001)
- [x] Prove changing only `relay-watcher.js` changes the identity. (E-M2-CONTRACT-001)
- [x] Prove mode changes for executable files change the identity or are otherwise authenticated.
(E-M2-CONTRACT-001)
- [x] Prove metadata that should not affect execution does not create nondeterministic identities.
(E-M2-CONTRACT-001)
- [ ] Update remote directory parsing and GC rules for the new mode-qualified identity without
breaking legacy directory recognition.
### Archive safety
- [ ] Permit only regular files and explicitly declared directories; reject devices, FIFOs,
sockets, hard links, and symlinks unless a separately reviewed safe policy is adopted.
- [ ] Reject absolute paths, `..`, drive/UNC paths, path separators inappropriate for the local
extraction platform, Windows alternate data streams, device names, trailing spaces/dots, and
case-fold collisions.
- [ ] Enforce compressed size, expanded size, file count, nesting depth, and per-file limits before
and during extraction.
- [ ] Verify the extracted tree exactly matches the manifest with no missing or extra files.
- [ ] Add deterministic schema, identity, canonicalization, URL, and hostile-archive tests.
Completion evidence required: schema and test files, red/green evidence, canonical test vectors,
and reviewed compatibility contract.
## Milestone 3 — Build Minimal Self-Contained Runtime Archives
**In progress — 2026-07-14, Codex implementation owner:** isolate target-native runtime assembly,
archive inspection, bundled-Node/native-module/PTY/watcher smoke, SBOM, and provenance capabilities
behind purpose-named scripts and CI artifacts. No release publication, desktop resolver, SSH
transfer, install, fallback, rollout setting, or tuple enablement belongs in this package.
**Current active gate — 2026-07-14, Codex implementation owner:** exact-head run 29379227209 and
direct inspection of all six downloaded payloads close the native Linux producer plus glibc
2.28/libstdc++ 6.0.25 userland gates under E-M3-LINUX-NATIVE-USERLAND-CI-001 and the Windows x64
Server 2022 build-20348 gate under E-M3-WINDOWS-X64-BASELINE-CI-001. Exact Linux kernel 4.18,
macOS 13.5, Windows arm64 build 26100, and target-native signing/trust remain open. A newer hosted
runner, static symbol scan, or container may add evidence but cannot silently stand in for an
unavailable qualifying snapshot. Every tuple remains disabled and no production consumer is
connected.
**Active native-trust contract slice — 2026-07-14, Codex implementation owner:** before any
credentialed Apple or SignPath job, derive one exact signing plan from the builder-enforced runtime
identity. The plan must keep the official Node executable immutable, enumerate every native file
that requires platform verification, select no Linux signing targets, select every non-Node macOS
native file for Developer ID signing, and select every non-Node Windows PE file as a SignPath
candidate whose already-valid upstream signature may be preserved. Unknown roles/extensions,
duplicates, missing expected files, or identity/closure drift fail before credentials or signing
side effects. This package is contract/test-only and cannot sign, publish, aggregate, or enable a
tuple. The local contract and all-six actual-identity proof pass under
E-M3-NATIVE-SIGNING-PLAN-LOCAL-001. E-M3-NATIVE-SIGNING-PLAN-CI-RED-001 proves the first exact-head
workflow omitted the new suite despite otherwise healthy builds; explicitly wiring it into both
native job families is implemented at `9c0357235` and locally green under
E-M3-NATIVE-SIGNING-PLAN-WORKFLOW-LOCAL-001. Replacement exact-head proof passes under
E-M3-NATIVE-SIGNING-PLAN-CI-001; the next safe package is credential-free exact signing-stage and
returned-byte verification, without credentials or publication.
**Active signing-stage contract slice — 2026-07-14, Codex implementation owner:** consume the proven
plan to normalize one exact candidate selection before filesystem or signing side effects. macOS
must select every Developer ID target. Windows may preserve an exact source file only when a native
assessment classifies its existing Authenticode signature as valid upstream; it may stage only a
truly unsigned candidate, while invalid, unknown, malformed, missing, duplicate, or extra assessment
states fail closed. Verify every native source file against its identity size/hash before creating an
exclusive payload tree, never stage official Node, preserve portable relative paths, and clean up a
partial stage on failure. A returned tree must contain exactly the staged regular files, no links or
special entries, remain within explicit size/growth bounds, and change every staged source hash.
This slice does not invoke Apple/SignPath, mutate a runtime, accept native trust, publish, aggregate,
or enable a tuple. Implementation commit `c847c4a11` and local proof
E-M3-NATIVE-SIGNING-STAGE-LOCAL-001 close the credential-free contract and workflow-source gates;
exact-head run 29382772805 closes execution on all six native runner families under
E-M3-NATIVE-SIGNING-STAGE-CI-001.
**Active target-native assessment slice — 2026-07-14, Codex implementation owner:** authenticate
every real first-build candidate before and after bounded platform inspection. Linux must create no
payload; macOS must stage exactly three non-Node candidates; Windows must invoke one noninteractive,
30-second/64-KiB-bounded PowerShell Authenticode probe per exact PE path, accept only `NotSigned` or
`Valid`, preserve exact `OpenConsole.exe` and `conpty.dll` bytes only when valid, and stage exactly
the three unsigned Orca-built `.node` files. Candidate paths stay out of PowerShell source, any
hash/status/certificate drift fails closed, stage JSON is retained only as unpublished evidence,
and the temporary payload is removed. Local implementation passes at `1a79e4921` under
E-M3-NATIVE-ASSESSMENT-LOCAL-001; exact-head run 29384042509 closes all six real candidate cells
under E-M3-NATIVE-ASSESSMENT-CI-001.
**Baseline correction — 2026-07-14, Codex implementation owner:**
E-M3-LINUX-BASELINE-LOCAL-RED-001 proves the existing Linux x64 candidate cannot load its patched
`node-pty` on Rocky 8.9/glibc 2.28 because the Ubuntu 24.04 producer emitted references to
`GLIBC_2.32` and `GLIBC_2.34`. This exposes a producer flaw, not permission to weaken the declared
floor. The Linux jobs must compile and smoke native modules inside the digest-pinned oldest
glibc/libstdc++ userland on native x64/arm64 runners, repeat exact clean-build equality and metadata
gates for the new bytes, and retain the exact kernel 4.18 cell as an explicit residual gap. A newer
host build followed by container execution is not qualifying evidence.
**Active sub-gate — 2026-07-14, Codex implementation owner:** exact-head run 29345126283 proves all
six target-native artifact/executable jobs, including normal Windows x64/arm64 settlement and
unpublished upload. E-M3-REPRODUCIBILITY-LOCAL-001 proves the bounded comparator requires two
independently verified clean outputs and exact type/mode/size/SHA-256 equality for the runtime tree,
archive, identity, SPDX, and provenance before uploading only the first output. Exact-head run
29347236627 first exposed native reproducibility and Windows parser failures. Diagnostic run
29348424235 then passed the parser/contracts on all six runners, kept both Linux tuples equal, and
isolated the first native differences to macOS `pty.node` and Windows `conpty_console_list.node`
under E-M3-REPRODUCIBILITY-DIAGNOSTIC-CI-RED-001. Artifact consumers, publication, the
repository-wide node-pty patch, and the legacy/default path remain unchanged.
**Active correction — 2026-07-14, Codex implementation owner:** exact-head run 29351557922 proves
the parser and `/Brepro` correction on both Windows architectures, with complete equality on x64.
Windows arm64 builds, verifies, and smokes both complete outputs but first differs at copied-artifact
`conpty_console_list.node`, so the comparator rejects the cell and uploads neither output under
E-M3-REPRODUCIBILITY-WINDOWS-ARM64-CI-RED-001. The active bounded package adds a test-covered PE
mismatch diagnostic before cleanup: hashes, sizes, coalesced differing byte ranges, and relevant PE
headers only, with bounded reads/output and no failed-binary upload. Exact-head repeat run
29352510414 reproduces the same arm64-only drift while all five controls compare and upload under
E-M3-REPRODUCIBILITY-WINDOWS-ARM64-REPEAT-CI-RED-001. No comparator weakening, post-build
normalization, producer correction, repository-wide node-pty change, tuple enablement, or production
consumer is authorized without the diagnostic evidence. Exact implementation commit `39ee3451b` is
locally green under E-M3-WINDOWS-PE-DIAGNOSTIC-LOCAL-001. Exact-head run 29353432240 proves the x64
control and real arm64 parser, but its 128 detailed ranges are exhausted by `.text`; the active
diagnostic-only correction adds bounded full-scan section totals/samples before any producer change.
Exact implementation commit `cd7f94136` is locally green under
E-M3-WINDOWS-PE-FULL-SCAN-LOCAL-001. Exact-head run 29354676731 then classifies the complete
arm64 drift under E-M3-WINDOWS-PE-FULL-SCAN-CI-RED-001: 2,879 one-byte `.text` differences at
16-byte intervals plus 68 `/Brepro`-derived metadata bytes, with five controls reproducible and
uploaded and no rejected arm64 upload. Exact implementation commit `6546f54d5` applies the native
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. 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. Exact-head run
29357355064 proves both generated option blocks twice on Windows x64 but fails closed on native
Windows arm64 before staging because the Release group lookup does not accept the runner's lowercase
`arm64` platform spelling (E-M3-WINDOWS-MSBUILD-PLATFORM-CASE-CI-RED-001).
Exact-head run 29358223742 then proves that correction on native Windows arm64 and retains all five
reproducible controls. Both arm64 clean builds log the required compiler/linker options, assemble,
verify, and execute, but strict comparison still rejects `conpty_console_list.node` and uploads no
arm64 artifact. The complete PE scan reports 5,826 differing bytes: 5,758 bytes across 2,879
two-byte `.text` ranges exactly 16 bytes apart plus 68 derived COFF/debug/CodeView bytes. Paired
disassembly proves each 16-byte function thunk has byte-identical `adrp x16`, `add x16`, and
`br x16` instructions; only the unreachable fourth instruction changes from `udf #0x24d` to
`udf #0x16d` (E-M3-WINDOWS-ARM64-THUNK-DISASSEMBLY-CI-RED-001).
Exact-head run 29359948742 proves `MSBuild.exe -getProperty:LinkIncremental` returns an empty value
after each native Windows build. The strict parser rejects that value before staging on x64 and
arm64; all four POSIX controls compare exactly and upload, and neither Windows job uploads. This is
valid negative evidence under E-M3-WINDOWS-LINK-INCREMENTAL-CI-RED-001, but an unset evaluated
property does not classify the actual linker command or authorize a producer change.
**In progress — 2026-07-14, Codex implementation owner:** the disproved property oracle is replaced
locally by a bounded, post-build parser for the target's actual MSBuild linker-command tracking
record under E-M3-WINDOWS-LINK-COMMAND-TRACKING-LOCAL-001. The file read is capped at 256 KiB plus
one rejection byte; logs contain only an allowlisted summary of `/INCREMENTAL`, `/GUARD`, `/DEBUG`,
`/OPT`, `/Brepro`, and `/experimental:deterministic` switches; missing, duplicate, oversized,
malformed, or ambiguous inputs fail before staging. The active gate is the exact-head six-cell
native run. Retain the existing architecture, generated-option, strict comparison, and no-upload
gates. Do not normalize bytes, change the producer, modify repository-wide node-pty, or connect a
production consumer.
Exact-head run 29361673339 proves the assumed fixed tracking path is absent on both native Windows
architectures after the target compiles successfully. The active correction must discover
`link.command.1.tlog` candidates under a bounded build-tree entry/depth/cardinality budget, select
exactly one whose bounded decoded record names `conpty_console_list.node`, and retain the existing
strict parser and no-upload boundary. It must not log command contents or authorize a producer
change (E-M3-WINDOWS-LINK-COMMAND-PATH-CI-RED-001).
The bounded discovery correction is locally green under
E-M3-WINDOWS-LINK-COMMAND-DISCOVERY-LOCAL-001: it scans at most 10,000 entries and eight levels,
rejects symbolic links and more than 32 tracking candidates, reads each candidate under the
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.
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.
Exact-head run 29364581781 proves both Windows architectures create a stable target `.ilk` in each
clean build: 4,238,838 bytes on x64 and 4,980,517 bytes on arm64. Microsoft documents that
`/DEBUG` implies `/INCREMENTAL`, incremental linking creates the `.ilk`, and `/INCREMENTAL:NO` is
the explicit override. Five controls compare and upload; arm64 retains the exact thunk drift and
fails before upload (E-M3-WINDOWS-INCREMENTAL-DATABASE-CI-RED-001). This authorizes one narrow
producer correction: add `/INCREMENTAL:NO` only to the copied node-pty Windows linker options,
retain `/guard:cf`, and fail closed unless the generated project and actual command each contain
exactly one disable switch and the clean output tree contains no target `.ilk`.
Exact-head run 29365815434 passes all six target-native jobs. Both Windows architectures propagate
exactly one disable switch in both clean builds, retain `/guard:cf`, report no target `.ilk`, execute
the full bundled runtime smoke, compare every runtime/archive/identity/SBOM/provenance byte exactly,
and upload. Windows arm64 now has one stable content ID and archive digest, closing the native
clean-build reproducibility gap without post-build normalization (E-M3-REPRODUCIBILITY-CI-001).
Exact implementation commit `ec5461aff` replaces workflow-only prohibited-file checks as the
authoritative boundary with an exact builder-enforced per-tuple closure. It pins 34 Linux, 35 macOS,
and 42 Windows files; exact package metadata and dependency versions; exactly one tuple-native
watcher; file roles/modes; runtime metadata; and ordered, non-empty license sections. The local
hostile suite and all six downloaded prior candidate archives pass under
E-M3-RUNTIME-CLOSURE-LOCAL-001. Target-native execution of the new gate remains required before the
related implementation claims are checked.
Each runtime must contain only the executable closure required by the relay.
- [x] Replace or extend `config/scripts/build-relay.mjs` without weakening its existing relay and
watcher content-hash guarantees. (E-M3-RUNTIME-CLOSURE-CI-001)
- [x] Add a clearly named runtime assembly script, for example
`config/scripts/build-ssh-relay-runtime.mjs`.
(E-M3-RUNTIME-LOCAL-001)
- [x] Pin Node and verify downloaded source/binary checksums and upstream signatures.
(E-M3-NODE-PROVENANCE-001; real archive execution remains a separate per-tuple gate)
- [x] Extend the immutable Node input contract for Windows to include the signed exact-version
headers archive and tuple-specific `node.lib`; verify/copy them into an exclusive local build
root and configure `node-gyp` to fail rather than fetch an unstaged input.
(E-M3-WINDOWS-INPUT-001; successful target-native offline build remains a per-tuple gate)
- [x] Build Orca’s patched `node-pty@1.1.0` against the exact bundled Node runtime.
(E-M3-RUNTIME-CLOSURE-CI-001)
- [x] Assert Orca-required patched exports/diagnostics exist; do not silently use an upstream
prebuild that omits the patch. (E-M3-RUNTIME-CLOSURE-CI-001)
- [x] For Windows, copy the tuple-architecture `conpty.dll` and `OpenConsole.exe` from the pinned
node-pty source into `build/Release/conpty`, hash them into the runtime identity as native
runtime files, and prove PTY spawn/resize/exit with `useConptyDll: true`. Do not substitute a
system-ConPTY smoke for the production path. (E-M3-WINDOWS-CONPTY-GAP-001,
E-M3-WINDOWS-CI-001)
- [x] Include exactly one compatible `@parcel/watcher@2.5.6` native optional package.
(E-M3-RUNTIME-CLOSURE-CI-001)
- [x] Include relay JavaScript, watcher child, required runtime JavaScript closure, licenses, SBOM,
provenance, and runtime metadata. (E-M3-RUNTIME-CLOSURE-CI-001, E-M3-METADATA-CI-001)
- [x] Exclude package managers, development dependencies, compilers, sources, caches, build
directories, and Orca-built debug symbols unless an approved diagnostics requirement needs
them. Preserve verified official Node executable bytes without stripping or rewriting them,
even when the upstream binary contains debug metadata. (E-M3-RUNTIME-CLOSURE-CI-001)
- [x] Make POSIX `tar.xz` and Windows ZIP output deterministic for the same tree, epoch, and pinned
compression toolchain. (E-M3-RUNTIME-LOCAL-001, E-M3-REPRODUCIBILITY-CI-001,
E-M3-RUNTIME-CLOSURE-CI-001)
- [x] Verify required executable modes before archiving. (E-M3-RUNTIME-LOCAL-001)
- [ ] Sign native code according to the platform decisions in Milestone 1.
- [ ] Verify platform-native signatures/policy on target-native runners after signing and before
aggregation; attest the exact verified bytes for the signed manifest.
- [x] Run target-native archive inspection and target-runtime smoke before upload for every current
glibc/macOS/Windows candidate. (E-M3-RUNTIME-LOCAL-001, E-M3-CI-001,
E-M3-WINDOWS-CI-001)
### Per-tuple build and executable proof
| Runtime tuple | Build/provenance | Bundled Node | `node-pty` load + real PTY | Watcher events | Oldest baseline | Native trust | Evidence |
| ----------------- | ---------------- | ------------ | -------------------------- | -------------- | --------------- | ------------ | --------------------------------------------------- |
| linux-x64-glibc | [x] | [x] | [x] | [x] | [ ] | [ ] | E-M3-LINUX-NATIVE-USERLAND-CI-001; kernel 4.18 open |
| linux-arm64-glibc | [x] | [x] | [x] | [x] | [ ] | [ ] | E-M3-LINUX-NATIVE-USERLAND-CI-001; kernel 4.18 open |
| linux-x64-musl | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] | — |
| linux-arm64-musl | [ ] | [ ] | [ ] | [ ] | [ ] | [ ] | — |
| darwin-x64 | [x] | [x] | [x] | [x] | [ ] | [ ] | E-M3-CI-001 |
| darwin-arm64 | [x] | [x] | [x] | [x] | [ ] | [ ] | E-M3-CI-001 |
| win32-x64 | [x] | [x] | [x] | [x] | [x] | [ ] | E-M3-WINDOWS-X64-BASELINE-CI-001 |
| win32-arm64 | [x] | [x] | [x] | [x] | [ ] | [ ] | E-M3-WINDOWS-ARM64-BASELINE-CI-RED-001 |
Rules:
- [ ] Real hardware or native virtualized execution is required for release promotion. QEMU or
cross-compilation may add coverage but cannot fill the evidence column alone.
- [ ] A tuple without a trustworthy runtime source or real runner stays disabled.
- [x] Every current candidate archive executes the exact bundled Node, loads both native
dependencies, spawns a real PTY, performs input/resize/exit, and observes
create/modify/rename/delete watcher events. (E-M3-REPRODUCIBILITY-CI-001)
- [x] Every build records compiler/toolchain/container image digests and runner architecture.
Current jobs use no build container; each hosted runner records its requested label, resolved
image/version, native architecture, exact tool versions, and executable/code SHA-256 values.
(E-M3-METADATA-CI-001)
## Milestone 4 — Make Relay Artifacts Prerequisites of Desktop Builds
- [x] Add a reusable target-native runtime
build prerequisite contract for every candidate tuple; do not treat a cross-build alone as
native execution evidence. Keep release-cut and desktop builds disconnected until the
remaining exact-floor, signing/trust, aggregate, publication/read-back, and embedding gates
pass. (E-M4-BUILD-PREREQUISITE-LOCAL-RED-001,
E-M4-BUILD-PREREQUISITE-LOCAL-001, E-M4-BUILD-PREREQUISITE-CI-001)
- [ ] **In progress — 2026-07-15, Codex implementation owner:** add platform-native signing jobs.
Signed macOS and Windows runtime bytes must return as immutable outputs before final hashes
are computed. Start with a disconnected purpose-named RED; real Apple/SignPath and native
trust remain required before this box can close.
- [ ] Add one fail-closed aggregate job that waits for all required native build/signing outputs,
validates them, computes final hashes, builds the canonical manifest, and signs it.
- [ ] Make Linux, Windows, and macOS desktop build jobs depend on the successful aggregate output.
- [ ] Download the immutable manifest artifact into every desktop build workspace.
- [ ] Embed the exact signed manifest and accepted public keys in the packaged desktop.
- [ ] Prove all desktop variants embed byte-identical manifest contents.
- [ ] Ensure development builds can use a deterministic local unsigned/development manifest without
weakening official-build verification.
- [ ] Upload the exact prebuilt runtime bytes—not rebuilt equivalents—to the same draft GitHub
Release as the app.
- [ ] Aggregate platform job outputs without clobbering or duplicating asset names.
- [ ] Extend `config/scripts/verify-release-required-assets.mjs` or add a narrowly named relay gate
that verifies every enabled asset, manifest, signature, size, and upload state.
- [ ] Download every draft asset back through the authenticated release API, verify byte identity,
and execute the archive before allowing publication.
- [ ] Confirm stable, RC, and perf tag identities remain exact and cannot cross channels.
- [ ] Confirm a partial or failed relay build leaves the release draft and blocks publication.
- [ ] Confirm artifact upload retries do not change signed bytes or silently replace the manifest.
- [ ] Define bounded retry/timeout behavior for every native build, signing, aggregate, upload, and
read-back job; exhaustion must block downstream jobs.
- [ ] Make manual signing approval absence, denial, or timeout fail closed rather than allowing an
unsigned or stale asset through the aggregate.
- [ ] Rehearse signing-service failure and recovery of the same draft without changing already signed
bytes or accidentally publishing it.
Completion evidence required: release workflow tests, a draft rehearsal, read-back hashes, embedded
manifest extraction from every packaged app, and blocked-publication failure rehearsal.
## Milestone 5 — Implement Desktop Artifact Selection, Download, and Cache
Suggested concrete modules:
- `src/main/ssh/ssh-relay-artifact-selector.ts`
- `src/main/ssh/ssh-relay-libc-detection.ts`
- `src/main/ssh/ssh-relay-artifact-download.ts`
- `src/main/ssh/ssh-relay-artifact-cache.ts`
- `src/main/ssh/ssh-relay-artifact-extraction.ts`
### Platform and libc selection
- [ ] Reuse current OS/architecture detection without changing supported relay-platform parsing.
- [ ] Add marked, noise-resistant, no-Node libc probes.
- [ ] Prefer `getconf GNU_LIBC_VERSION` when present; parse only output following Orca’s marker.
- [ ] Detect musl through marked `ldd --version` output and known loader paths without treating
arbitrary startup text as evidence.
- [ ] Validate required libc/libstdc++/kernel/OS versions against manifest constraints.
- [ ] Treat absent, ambiguous, conflicting, or unparseable results as unknown and choose proven
legacy behavior in `auto` mode.
- [ ] Cover GNU coreutils, BusyBox, Alpine, containers, old glibc, Rosetta, Windows, macOS, startup
noise, missing commands, localization, cancellation, and `MaxSessions=1`.
### Manifest verification and exact URL resolution
- [ ] Load the embedded manifest for official builds and verify its signature before trusting fields.
- [ ] Verify the manifest-authenticated target-native attestation and exact byte hashes portably; do
not assume a macOS client can run Authenticode tooling or a Windows client can run `codesign`.
- [ ] Resolve the expected tuple and content ID while fully offline.
- [ ] Construct the exact `/releases/download/<tag>/<asset>` URL without an API lookup.
- [ ] Reject redirects that violate the approved GitHub release-asset origin policy.
- [ ] Ensure authorization, cookies, proxy credentials, and custom headers do not leak across redirect
origins.
- [ ] Use Electron networking that respects supported system proxy and certificate behavior.
### Download and local cache
- [ ] Store archives and extracted trees under an app-owned cache, keyed by signed content identity.
- [ ] Stream downloads into exclusive temporary files; never buffer a full runtime in memory.
- [ ] Apply download size and time budgets while streaming.
- [ ] Verify archive SHA-256 before extraction.
- [ ] Extract into an exclusive temporary directory with all archive-safety checks from Milestone 2.
- [ ] Verify the exact expanded tree before atomically publishing the cache entry.
- [ ] Coordinate cache ownership across multiple Orca processes and windows.
- [ ] Recover stale download/extraction locks without deleting an active writer.
- [ ] Never select partial files, partial directories, or entries with a failed verification record.
- [ ] Re-verify cached metadata and expected identity before use; define when full file rehashing is
required.
- [ ] Implement bounded eviction that never removes an in-use entry.
- [ ] Handle read-only cache, permission failures, disk full, quota, inode exhaustion, cancellation,
crash, corruption, and concurrent download deterministically.
- [ ] Preserve `ORCA_RELAY_PATH` for explicit development/test use with an official-build safety
boundary.
- [ ] Prefetch only last-known target tuples under an explicit size/network policy; prefetch must not
block app startup or a normal connection.
### Required offline/cache cases
| Remote runtime | Local verified cache | Client internet | Expected bundled behavior | Legacy/error behavior | Evidence |
| ----------------- | -------------------- | --------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------ | -------- |
| Present, matching | Any | Offline | Launch remote cache without GitHub | None | — |
| Missing | Present | Offline | Transfer local cache over SSH | None | — |
| Missing | Missing | Online | Download locally, verify, transfer | Fallback only on eligible failure | — |
| Missing | Missing | Offline | Bundled unavailable | Proven legacy or precise error | — |
| Partial/corrupt | Present | Offline | Quarantine remote entry; replace from verified local cache | Fail closed if verified reinstall fails; no automatic legacy | — |
| Missing | Corrupt | Online | Quarantine local entry; redownload and fully verify | Fail closed if recovery fails; no automatic legacy | — |
| Missing | Corrupt | Offline | Quarantine and reject corrupt cache | Fail closed; no automatic legacy | — |
| Corrupt | Missing | Any | Quarantine remote entry; recover only from newly verified bundled bytes | Fail closed if recovery is unavailable/fails | — |
## Milestone 6 — Add Bounded Runtime Transfer for Every SSH Transport
Current behavior must not be assumed adequate for a much larger runtime:
- POSIX system SSH currently streams a tar archive and requires remote `tar`.
- Windows system SSH currently collects the tree and sends one JSON/base64 package.
- SFTP currently walks files serially and does not preserve executable modes.
### Shared transfer contract
- [ ] Define one transport-neutral source-tree contract based on the verified manifest.
- [ ] Pre-scan and reject local source mutation, symlinks, special files, extra files, and path
collisions before creating remote files.
- [ ] Stream files with bounded buffers; prohibit whole-tree memory materialization.
- [ ] Pass one AbortSignal through enumeration, channel creation, reads, writes, permission repair,
and remote cleanup.
- [ ] Close and await every local stream, SSH channel, child process, SFTP session, and cleanup task
on success, failure, cancellation, and timeout.
- [ ] Track transferred bytes/file counts for progress and bounded diagnostics without logging paths.
- [ ] Restore every executable mode declared by the manifest, including bundled Node and
`spawn-helper`, before validation.
- [ ] Require exclusive per-file staging so no concurrent writer or launcher can observe a partial
file as complete.
### POSIX system SSH
- [ ] Capability-probe remote tar with a narrow cache scoped to the SSH host/connection.
- [ ] Keep streaming tar as an optional fast path when proven available and compatible.
- [ ] Add a no-tar bounded file-stream path: frame each manifest file locally, open an authenticated
SSH exec channel, and stream raw bytes through stdin into its exclusive staged path using only
the declared POSIX shell/file primitives.
- [ ] Prove the no-tar path does not invoke remote Node, Python, Perl, archive tools, `sha256sum`, or
`shasum`.
- [ ] Preserve remote path quoting and avoid shell injection for spaces and non-ASCII homes.
- [ ] Verify local and remote tar failures, pipeline failures, and cancellation are all observed and
joined.
- [ ] Fail with a compatibility classification when a required POSIX primitive is missing or has
incompatible semantics; do not improvise a text/base64 transfer.
### Windows system SSH
- [ ] Replace whole-tree JSON/base64 buffering with a framed or per-file bounded binary stream.
- [ ] Implement against the declared PowerShell/.NET baseline using binary stdin/file APIs and
exclusive staged paths; do not depend on implicit console text encodings.
- [ ] Avoid command-line length, PowerShell string, and full-input buffering limits.
- [ ] Handle case-insensitive collisions, reserved names, long paths, endpoint-protection locks, and
partial writes.
- [ ] Prove binary fidelity without relying on text encoding.
- [ ] Fail with a compatibility classification when the declared PowerShell/.NET primitives are
missing or incompatible.
### SFTP
- [ ] Add bounded concurrency without exceeding restrictive server session/channel limits.
- [ ] Preserve per-file abortability and close handles deterministically.
- [ ] Restore modes after upload and verify mode-repair failure is fatal before finalization.
- [ ] Compare serial and bounded-concurrency behavior on high-latency SSH.
### Transfer validation
- [ ] Test zero-byte, large, many-small-file, and maximum-allowed trees.
- [ ] Test required-command absence one primitive at a time on POSIX and Windows.
- [ ] Test supported and unsupported BusyBox command variants, including byte fidelity and exit-code
behavior.
- [ ] Test source mutation and local symlink replacement during upload.
- [ ] Test network interruption at beginning, middle, final file, permission repair, and sentinel
write.
- [ ] Test local and remote disk full, quota, inode exhaustion, read-only target, noexec target,
Windows antivirus lock, and SSH channel closure.
- [ ] Measure peak RSS, bytes buffered, open file handles, channels, duration, and cancellation
settlement against Milestone 1 budgets.
- [ ] Prove cancelled transfer performs no later writes.
## Milestone 7 — Install, Verify, Launch, Reconnect, and Garbage-Collect
Suggested concrete modules:
- `src/main/ssh/ssh-relay-runtime-transfer.ts`
- `src/main/ssh/ssh-relay-runtime-validation.ts`
- `src/main/ssh/ssh-relay-bootstrap-mode.ts`
- [ ] Refactor `ssh-relay-deploy.ts` without adding a max-lines disable; split by domain
responsibility where necessary.
- [ ] Resolve expected bundled content identity before remote install-state probing.
- [ ] Verify embedded manifest signature, tuple, limits, archive SHA-256, and exact extracted tree on
the client before transfer begins.
- [ ] Use mode-qualified, content-addressed remote directories and locks.
- [ ] Upload into a mode-qualified partial/staging directory that no launcher or GC can treat as
complete.
- [ ] Treat local verification plus authenticated SSH transfer into exclusive staging as the
pre-execution integrity boundary; document that a hostile authenticated account is out of scope.
- [ ] Do not require a remote hash utility. Run bundled Node from the transferred staging path as the
first staged binary execution, verify its exact version, and use it to hash every manifest file.
- [ ] Compare the complete staged-tree sizes and SHA-256 values before any sentinel or publish step.
- [ ] Load `node-pty` and `@parcel/watcher` through bundled Node.
- [ ] Repeat target-native execution/policy probes before finalization; any native-trust failure is an
integrity/security failure even though transfer may already have occurred.
- [ ] Run a minimal real PTY input/resize/exit smoke and watcher event smoke before finalization.
- [ ] Write structured `.install-complete` contents containing schema, mode, content ID, manifest
digest, and validation version; do not use an empty sentinel.
- [ ] Assert the ordering: full-tree hash comparison, native loads, PTY/watcher smoke, then completion
sentinel and atomic publication. No earlier stage may write a success sentinel.
- [ ] Atomically publish the completed install or otherwise prove no observer can see it as complete
before validation finishes.
- [ ] On warm reconnect, require the expected structured sentinel identity plus required-file
presence and signed-manifest size metadata before treating the directory as initially validated.
- [ ] Do not full-tree rehash every warm launch. Trust the structured initial-install proof under the
completed-directory immutability assumption to protect latency; explicitly document that the
sentinel is not ongoing proof against post-install filesystem mutation.
- [ ] Treat any detected warm-cache absence, size/hash mismatch, unexpected file, or changed sentinel
as integrity failure: quarantine it, recover only from freshly verified bundled bytes, and fail
closed without automatic legacy if recovery cannot complete.
- [ ] Launch `relay.js` with bundled Node and an environment that cannot accidentally resolve remote
user packages ahead of bundled dependencies.
- [ ] Preserve protocol-handshake and version-mismatch behavior.
- [ ] Preserve `MaxSessions=1` sequential fallback for probes.
- [ ] Preserve concurrent install locking, stale-lock recovery, cross-version isolation, reconnect,
PTY reattach, watcher isolation, and best-effort GC.
- [ ] Ensure GC recognizes bundled, legacy, partial, locked, active, and malformed directories and
never deletes a live version.
- [ ] Ensure a failed bundled install never mutates a completed legacy install or running relay.
- [ ] Confirm primary-path command capture contains no npm, curl, wget, registry, compiler, Python,
system-Node, `sha256sum`, or `shasum` invocation.
Completion evidence required: deterministic install/failure tests, built-runtime harness, live SSH
connect/reconnect/upgrade/downgrade, PTY/watcher proof, and command audit.
## Milestone 8 — Implement a Safe, Explicit Fallback State Machine
Modes:
- `auto`: bundled primary; eligible availability/compatibility failures may use proven legacy.
- `bundled`: bundled only; fail with exact stage and recovery guidance.
- `legacy`: current embedded relay plus coherent remote Node/npm behavior.
The public per-target Beta choice maps `bundled-auto` configuration to internal `auto` behavior.
Missing, unknown, or disabled configuration maps to `legacy`; forced `bundled` remains an
engineering/support control.
- [ ] Add the versioned per-target runtime-mode field and prove existing, missing, malformed,
imported, and newly created target configurations resolve to `legacy` unless explicitly
opted in.
- [ ] Add the Beta-tagged option to SSH target add and edit surfaces using the existing design-system
Beta treatment; persist it only for that target.
- [ ] Prove the add-target control is visibly off, the edit-target control reflects only that
target's persisted mode, and saving or reconnecting one target cannot change another target.
- [ ] Prove an off, absent, unknown, malformed, existing, or imported setting routes directly through
the current legacy bootstrap without entering bundled manifest, cache, download, transfer, or
install work.
- [ ] Prove toggling the option does not mutate or restart a live relay and takes effect only on the
next connection or explicit reconnect.
- [ ] For fail-closed Beta errors, provide an explicit local “disable Beta and reconnect” recovery
action that updates the target before starting legacy; never disguise it as automatic fallback.
- [ ] Record privacy-safe tuple, transport, stage, duration, outcome, and fallback reason under
existing telemetry consent without hostname, username, path, command, or target identity.
### State and cancellation
- [ ] Model explicit states for manifest resolution, local-cache lookup, download, extraction,
transfer, remote verification, launch, bundled cleanup, legacy bootstrap, and connected.
- [ ] Give every state a named timeout budget and child AbortSignal derived from one parent.
- [ ] Replace timeout-only `Promise.race` behavior where underlying deployment can continue after the
caller fails.
- [ ] On eligible bundled failure, abort, close, and await all bundled work before legacy begins.
- [ ] Invalidate callbacks by generation so late completion cannot write a sentinel, launch a relay,
report success, or mutate cache/install state.
- [ ] Use separate bundled/legacy identities, locks, partial dirs, completion records, and GC rules.
- [ ] Ensure two simultaneous clients choosing different modes cannot modify one another’s install.
- [ ] Preserve the original bundled failure and fallback outcome in bounded diagnostics.
### Failure classification
- [ ] Classify GitHub unavailable, client offline, asset missing, approved redirect failure, proxy
failure, local cache unavailable, unsupported tuple, and bundled runtime incompatibility.
- [ ] Classify signature mismatch, archive hash mismatch, unsafe archive, extracted/transferred-tree
mismatch, bundled-Node corruption, and native-signature failure as integrity/security failures.
- [ ] Permit automatic legacy only for explicitly classified availability/compatibility failures and
only for remote tuples with current legacy evidence.
- [ ] Make every integrity/security failure fail closed in `auto`; assert no legacy process, lock,
partial directory, or diagnostic “fallback success” is created.
- [ ] Never execute rejected bytes. Delete/quarantine them according to an explicit policy.
- [ ] If legacy prerequisites are unproved or fail, return an error that includes bundled stage,
fallback stage, actionable recovery, and no sensitive paths.
- [ ] Forced `bundled` never silently changes mode.
- [ ] Forced `legacy` never performs a GitHub runtime download.
### Race and fallback proof
- [ ] Timeout during download, extraction, SFTP transfer, system-SSH transfer, chmod, hash, PTY
smoke, watcher smoke, sentinel write, and launch.
- [ ] Cancellation while a sibling connection waits on the bundled lock.
- [ ] Bundled failure while an old bundled relay remains live.
- [ ] Bundled failure while legacy install is complete and live.
- [ ] Legacy failure after bundled cleanup.
- [ ] App shutdown during every state.
- [ ] Assert zero post-fallback bundled writes, processes, channels, locks, and callbacks.
## Milestone 9 — Diagnostics, Progress, Support, and Privacy
- [ ] Define stable stage codes for selection, manifest, cache, download, extraction, transfer,
permission repair, remote hash, native probe, smoke, launch, fallback, and connected.
- [ ] Define stable fallback reason codes without embedding remote output, usernames, hostnames, IPs,
repository names, or paths.
- [ ] Preserve exact low-level errors in local diagnostic logs with existing redaction boundaries.
- [ ] Add aggregate duration/byte/count metrics only through existing authorized diagnostics or
telemetry mechanisms; do not imply authorization for a new backend.
- [ ] Provide progress labels for operations exceeding the style-guide thresholds; avoid flashing
progress for warm cache hits.
- [ ] Keep connection controls disabled immediately while maintaining stable focus.
- [ ] Document `auto`, `bundled`, and `legacy` support overrides and their intended support use.
- [ ] Add troubleshooting for client offline, remote offline, missing asset, unsupported tuple,
signature failure, noexec home, disk full, proxy, and fallback failure.
- [ ] Make user-visible wording state facts only after the corresponding stage result exists.
- [ ] Add tests for diagnostic bounds, redaction, stage ordering, duplicate suppression, and
cancellation/fallback reporting.
## Milestone 10 — Deterministic Test and Fault-Injection Coverage
### Schema, selector, and trust
- [ ] Canonical manifest serialization golden vectors.
- [ ] Valid/invalid signatures, unknown key IDs, rotated keys, revoked keys, wrong tag, rollback, and
unsupported schema.
- [ ] Valid/tampered/missing target-native trust attestations and attested-byte hash mismatches,
verified from clients running a different OS than the target tuple.
- [ ] Every OS/architecture/libc selection plus unknown/conflicting/noisy probes.
- [ ] Minimum-version boundaries for libc, libstdc++, kernel, macOS, and Windows.
- [ ] Exact stable/RC/perf URL and channel mapping.
### Cache and download
- [ ] 200 and approved redirects, redirect loop, wrong origin, missing `Location`, 404, 429 with
retry policy, 5xx, timeout, proxy auth, certificate failure, truncated body, oversized body,
wrong content length, wrong hash, and deleted asset.
- [ ] Cold, warm, offline, corrupt, partial, concurrent, multi-process, stale-lock, eviction, read-only,
permission, local disk full, quota, and inode cases.
- [ ] Archive traversal, absolute path, symlink/hardlink/device, Windows name/path, case collision,
archive bomb, too many files, deep nesting, unexpected file, and source mutation cases.
- [ ] Assert bad manifest signature, archive hash, archive safety, extracted-tree hash, and native
signature each fail closed in `auto` without entering legacy.
### Install and fallback
- [ ] Full identity change and remote-directory change for every executable component.
- [ ] Lock first acquisition, waiter, concurrent probe, stale recovery, cancellation, and host
isolation.
- [ ] Partial install is never complete; structured sentinel must match expected mode/content/schema.
- [ ] Transfer corruption is detected before finalization.
- [ ] Missing remote `sha256sum`/`shasum` still succeeds through bundled-Node full-tree hashing.
- [ ] Corrupt one uploaded file after transfer and before verification; prove no sentinel is written
and no relay launches.
- [ ] Corrupt or prevent execution of the transferred bundled Node; prove verification fails before
sentinel and does not automatically enter legacy as an integrity failure.
- [ ] Corrupt local and completed remote caches; prove quarantine plus recovery from freshly verified
bytes, or fail-closed behavior with zero automatic legacy when recovery is unavailable/fails.
- [ ] Mutate a warm remote file/sentinel and prove every detected case fails closed. Separately prove
an unchanged warm path trusts initial-install proof without a full-tree rehash and meets latency.
- [ ] Instrument stage ordering and prove tree hash → native loads → PTY/watcher smoke → sentinel →
publish/launch with no alternative success path.
- [ ] Existing legacy and bundled installs never overlap or mutate.
- [ ] All fallback transition and stale-generation cases from Milestone 8.
### Relay behavior
- [ ] Protocol handshake and frame compatibility.
- [ ] PTY spawn, attach, input, resize, signal, exit, reconnect, and error mapping.
- [ ] Filesystem read/write/stat/readdir/search and bulk streaming.
- [ ] Filesystem watch registration, overflow, cancellation, crash isolation, and recovery.
- [ ] Git status/diff/blob/worktree/submodule/ignore and response streaming using Git 2.25-compatible
commands and existing capability rules.
- [ ] Agent hooks, managed hook installation, remote CLI, preflight, port scan, subprocess, and aborts.
- [ ] Grace-period detach/reattach, two clients, app restart, remote restart, upgrade, downgrade, and
GC.
## Milestone 11 — Live Platform and Environment Matrix
Use a risk-based two-layer matrix. This does **not** claim every client × remote tuple combination.
Every required cell must contain one or more evidence IDs rather than a bare checkmark or prose.
### Layer A — every enabled remote tuple across both transport families
Each cell’s evidence must cover a native real runner, no Node/npm/compiler, blocked remote egress,
PTY, watcher, every relay RPC family, reconnect/upgrade, and eligible legacy fallback. POSIX system
SSH evidence includes the no-tar path; Windows system SSH is a mandatory distinct path.
| Remote tuple | Built-in SSH/SFTP evidence ID | System SSH evidence ID | `MaxSessions=1` evidence ID | Baseline/native-policy evidence ID |
| ----------------- | ----------------------------- | ---------------------- | --------------------------- | ---------------------------------- |
| linux-x64-glibc | — | — | — | — |
| linux-arm64-glibc | — | — | — | — |
| linux-x64-musl | — | — | — | — |
| linux-arm64-musl | — | — | — | — |
| darwin-x64 | — | — | — | — |
| darwin-arm64 | — | — | — | — |
| win32-x64 | — | — | — | — |
| win32-arm64 | — | — | — | — |
### Layer B — every supported client against representative remote families
Each supported client OS/architecture must prove resolver/cache behavior and both transfer families
against representative POSIX and Windows remotes. This layer catches client-specific process,
filesystem, proxy/certificate, executable-bit, quoting, and cache behavior without pretending to be
a full Cartesian product.
| Client | Resolver/cache evidence ID | Built-in → POSIX evidence ID | Built-in → Windows evidence ID | System SSH → POSIX evidence ID | System SSH → Windows evidence ID |
| ------------- | -------------------------- | ---------------------------- | ------------------------------ | ------------------------------ | -------------------------------- |
| macOS x64 | — | — | — | — | — |
| macOS arm64 | — | — | — | — | — |
| Linux x64 | — | — | — | — | — |
| Linux arm64 | — | — | — | — | — |
| Windows x64 | — | — | — | — | — |
| Windows arm64 | — | — | — | — | — |
- [ ] Define and record the representative POSIX and Windows remotes used by Layer B.
- [ ] Require Windows remote/system-SSH and `MaxSessions=1` evidence before any Windows remote tuple
is enabled.
- [ ] Reject promotion if any required cell still contains `—`; do not roll up partial evidence into
an unsupported “all combinations” claim.
### Required environment variants
- [ ] Exact #8450: system Node without npm plus usable NVM below `.bashrc` non-interactive guard.
- [ ] No Node, npm, Python, make, compiler, registry, curl, or wget.
- [ ] No tar, `sha256sum`, or `shasum`; no-tar transfer and bundled-Node verification still succeed.
- [ ] Remove each required POSIX and Windows bootstrap primitive in turn and verify deterministic
compatibility classification.
- [ ] Remote egress denied at the network layer and audited for attempted connections.
- [ ] `~/.npmrc` with `ignore-scripts=true`, broken registry, and read-only npm cache.
- [ ] `MaxSessions=1`, noisy startup, slow SSH, packet interruption, proxy jump, and system SSH.
- [ ] Spaces, Unicode, long paths, case collisions, restrictive umask, read-only home, noexec home,
disk quota, inode exhaustion, and endpoint-protection locks.
- [ ] Supported and unsupported BusyBox/Alpine primitive variants, old supported glibc boundary,
containerized host, Rosetta, Windows OpenSSH, and enterprise native-code policy.
- [ ] Two Orca clients connecting/installing simultaneously.
- [ ] Existing live PTY during app/relay upgrade and downgrade.
- [ ] Remote reboot, app crash/restart, interrupted first install, stale lock, and GC with a live old
relay.
## Milestone 12 — Performance and Resource Regression Gates
Baseline measurements must be captured before product behavior changes.
- [ ] Record legacy cold install p50/p95, warm connect p50/p95, transferred bytes, remote CPU/RSS,
desktop CPU/RSS, process/channel/file counts, and failure timeout on the same machines used for
comparison.
- [ ] Measure bundled cold download + transfer, local-cache transfer, remote-cache launch, GitHub
failure-to-fallback, and client-offline behavior.
- [ ] Test at 1, 10, and 100 Mbps with 50, 100, and 200 ms latency and defined loss/jitter.
- [ ] Prove remote-cache warm connect meets the numeric Milestone 1 budget.
- [ ] Prove local-cache transfer and cold download meet the numeric Milestone 1 budgets.
- [ ] Prove SFTP and system-SSH transfer peak memory remain bounded by the numeric budgets.
- [ ] Prove file count does not cause unbounded sequential round trips or channel fanout.
- [ ] Prove cache verification/eviction does not block Electron startup or the renderer main thread.
- [ ] Prove failed bundled attempts do not add an unacceptable delay before eligible legacy fallback.
- [ ] Record before/after results, machine identity, network shaping, commit SHA, command, raw artifact,
and statistical interpretation.
- [ ] Add demotion thresholds for latency, memory, transfer flakes, cache corruption, and fallback
delay.
## Milestone 13 — Supply-Chain and Security Completion
- [ ] Write the explicit threat model and trust boundaries.
- [ ] Generate and publish an SBOM per runtime and aggregate release.
- [ ] Record build provenance, source revisions, toolchain/container digests, and native signatures.
- [ ] Verify official Node checksums/signatures before assembly and preserve native trust where
possible.
- [ ] Verify Orca-built native code signatures on target macOS and Windows policies.
- [ ] Verify target-native attestation generation/read-back, signed-manifest authentication, portable
client verification, and pre-finalization target policy probes on exact bytes.
- [ ] Exercise manifest key rotation and dual-key migration in a release rehearsal.
- [ ] Exercise compromised/revoked-key response by shipping a new desktop build with newly embedded
keys/manifest; prove there is no mutable freshness or `latest` lookup.
- [ ] Exercise anti-rollback across stable, RC, perf, desktop upgrade, and desktop downgrade.
- [ ] Add dependency and Node CVE monitoring with a named owner and response SLA.
- [ ] Exercise an emergency runtime refresh through a new desktop tag/build, embedded manifest,
identity, release, download, remote coexistence, and GC; prove an installed old client remains
pinned to its original manifest.
- [ ] Review archive parsing, redirect handling, cache permissions, local TOCTOU, remote quoting,
native loading search paths, and diagnostic redaction.
- [ ] Complete security review before `auto` becomes default for any stable tuple.
## Milestone 14 — Release, Rollout, Rollback, and Fallback Retirement
### Asset-only
- [ ] Publish complete runtime assets and signed manifest without production consumption.
- [ ] Run read-back, direct public URL, archive execution, and packaged-manifest comparison.
- [ ] Accumulate build/release flake and duration evidence.
- [ ] Rehearse native build/signing timeout, bounded retry success/exhaustion, manual approval
absence/denial, signing failure, aggregate failure, and recovery of an unpublished draft.
### Per-target Beta — legacy remains default
- [ ] Ship the Beta-tagged per-target option in RC and stable builds with every existing and new
target defaulting to `legacy`.
- [ ] Enable forced `bundled` only for engineering and support diagnostics; normal testers use the
per-target `bundled-auto` Beta choice.
- [ ] Verify diagnostics and support recovery for every failure class.
- [ ] Run the full enabled tuple matrix and security/performance gates.
- [ ] Exercise forced `legacy` rollback from the same build.
- [ ] Accumulate approved privacy-safe Beta usage, success, classified fallback, integrity failure,
latency, PTY/watcher, reconnect, and support evidence per exact tuple.
### Future default-on evaluation — separately authorized
- [ ] Obtain a separate reviewed decision before changing any target's default from `legacy`; this
issue and the Beta implementation do not authorize that change.
- [ ] Consider default `auto` only for tuples whose artifact, live matrix, Beta usage, and support
evidence are complete.
- [ ] Require three consecutive RC builds with no unexplained fallback, cache-corruption, PTY,
watcher, reconnect, native-policy, or release failures.
- [ ] Test GitHub outage, client offline, remote offline, missing asset, unsupported tuple, and
integrity failure from the packaged RC.
- [ ] Prove every integrity/security failure in that RC fails closed without automatic legacy.
- [ ] Confirm non-enabled tuples deterministically retain proven legacy behavior.
### Stable Beta soak
- [ ] Publish the opt-in Beta to stable only after its release-blocking gates pass against exact
uploaded bytes; stable publication still leaves every target on `legacy` unless opted in.
- [ ] Keep automatic legacy fallback for at least the decided number of stable cycles.
- [ ] Monitor approved privacy-safe success/fallback/error signals and support reports.
- [ ] Define immediate demotion/rollback signals and owner.
- [ ] Exercise rollback without deleting live bundled or legacy remote installs.
- [ ] Do not narrow fallback until every retirement criterion below is satisfied.
### Fallback retirement criteria
- [ ] Every claimed supported tuple has stable real-environment bundled proof.
- [ ] Both layers of the risk-based client/transport/environment matrix are complete with an evidence
ID in every required cell.
- [ ] Soak duration and release count meet the Milestone 1 policy.
- [ ] No unexplained fallback remains.
- [ ] GitHub outage and offline behavior remain acceptable without hidden remote requirements.
- [ ] Support has a tested downgrade/recovery path for old app versions and old remote installs.
- [ ] A separate reviewed decision explicitly authorizes removing or narrowing remote npm fallback.
## Proposed PR / Work-Package Split
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 build/source trust green; real signing/trust pending | `be32653a7`; E-M3-METADATA-CI-001, E-M3-WINDOWS-SOURCE-SIGNATURE-CI-001 |
| 3. Release publication | Prerequisite DAG, embedded manifest, draft upload/read-back gates | Asset-only | **In progress — 2026-07-15, Codex implementation owner** | E-M4-RELEASE-DAG-CI-001; E-M4-AGGREGATE-READBACK-CI-001 |
| 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:
- [ ] Named invariant and motivating issue.
- [ ] Exact product behavior changed and deliberately unchanged.
- [ ] Performance-risk inventory and numeric budgets.
- [ ] Correctness oracle and exact commands.
- [ ] Platform/provider/transport coverage: covered, unaffected, or accepted gap.
- [ ] Red/green evidence where a bug or failure contract is added.
- [ ] Residual gaps and fallback behavior.
- [ ] Rollback/demotion rule.
- [ ] Checklist and HTML plan updates.
- [ ] No unrelated worktree changes included.
## Verification Command Inventory
Do not mark commands passed here until they have actually run on the implementation commit. Add new
focused commands as their scripts/tests are introduced.
### Existing focused commands
- [x] `pnpm exec vitest run --config config/vitest.config.ts src/main/ssh/ssh-remote-node-resolution.test.ts` (E-M0-UNIT-001)
- [x] `pnpm exec vitest run --config config/vitest.config.ts src/main/ssh/ssh-relay-native-deps-install.test.ts` (E-M0-UNIT-001)
- [x] `pnpm exec vitest run --config config/vitest.config.ts src/main/ssh/ssh-relay-versioned-install.test.ts` (E-M0-UNIT-001)
- [x] `pnpm exec vitest run --config config/vitest.config.ts src/main/ssh/ssh-relay-deploy.test.ts` (E-M0-UNIT-001)
- [x] `pnpm exec vitest run --config config/vitest.config.ts src/main/ssh/ssh-relay-cross-version-isolation.test.ts` (E-M0-UNIT-001)
- [x] `pnpm exec vitest run --config config/vitest.config.ts src/main/ssh/ssh-remote-platform-detection.test.ts` (E-M0-UNIT-001)
- [ ] `pnpm exec vitest run --config config/vitest.config.ts src/relay/pty-handler.test.ts src/relay/fs-handler.test.ts src/relay/subprocess.test.ts`
- [x] `pnpm run build:relay` (E-M0-LIVE-001)
- [ ] `node config/scripts/relay-watcher-fault-harness.mjs`
- [ ] `pnpm run test:e2e:ssh-docker-watcher-isolation`
- [ ] `pnpm run test:e2e:ssh-docker-perf`
- [x] `pnpm run typecheck` (E-M0-STATIC-001, E-M0-STATIC-002, E-M0-CI-001)
- [x] `pnpm run lint` (E-M0-STATIC-002, E-M0-CI-001)
- [x] `pnpm run check:max-lines-ratchet` (E-M0-STATIC-001, E-M0-STATIC-002, E-M0-CI-001)
### Milestone 0 commands added
- [x] `pnpm exec vitest run --config config/vitest.config.ts src/main/ssh/ssh-remote-node-toolchain-resolution.test.ts` (E-M0-UNIT-001)
- [x] `pnpm run test:e2e:ssh-node-toolchain-resolution` (E-M0-LIVE-001)
### Milestone 3 commands added
- [x] `pnpm exec vitest run --config config/vitest.config.ts config/scripts/ssh-relay-node-release-verification.test.mjs` (E-M3-NODE-RED-001, E-M3-NODE-PROVENANCE-001)
- [x] `node config/scripts/verify-ssh-relay-node-release-inputs.mjs --inputs-directory <verified-input-directory> --archive linux-x64-glibc` (E-M3-NODE-PROVENANCE-001; metadata and archive verification only)
- [x] `pnpm exec vitest run --config config/vitest.config.ts config/scripts/ssh-relay-node-zip-inspection.test.mjs config/scripts/ssh-relay-runtime-zip.test.mjs` (E-M3-WINDOWS-ZIP-RED-001, E-M3-WINDOWS-INPUT-001; synthetic ZIP/input contracts only)
- [x] `pnpm exec vitest run --config config/vitest.config.ts config/scripts/ssh-relay-runtime-windows-tree.test.mjs` (E-M3-WINDOWS-LOCAL-002; structural Windows ConPTY closure only, no execution)
- [x] `pnpm exec vitest run --config config/vitest.config.ts config/scripts/ssh-relay-runtime-pty-smoke.test.mjs` (E-M3-WINDOWS-SMOKE-SETTLEMENT-LOCAL-RED-001, E-M3-WINDOWS-SMOKE-SETTLEMENT-LOCAL-001; native evidence remains pending)
- [x] `pnpm exec vitest run --config config/vitest.config.ts config/scripts/ssh-relay-runtime-resource-diagnostics.test.mjs` (E-M3-WINDOWS-RESOURCE-DIAGNOSTIC-LOCAL-001; native classification pending)
- [x] `pnpm exec vitest run --config config/vitest.config.ts config/scripts/ssh-relay-node-pty-windows-settlement.test.mjs` (E-M3-WINDOWS-CONPTY-WORKER-LOCAL-RED-001, E-M3-WINDOWS-CONPTY-WORKER-LOCAL-001; native settlement pending)
- [x] `pnpm exec vitest run --config config/vitest.config.ts config/scripts/ssh-relay-runtime-reproducibility.test.mjs config/scripts/ssh-relay-runtime-workflow.test.mjs` (E-M3-REPRODUCIBILITY-LOCAL-001; synthetic comparator/workflow contract only, native execution pending)
- [x] `pnpm exec vitest run --config config/vitest.config.ts config/scripts/ssh-relay-node-pty-build.test.mjs config/scripts/ssh-relay-node-pty-windows-build-determinism.test.mjs config/scripts/ssh-relay-runtime-build.test.mjs config/scripts/ssh-relay-runtime-workflow.test.mjs` (E-M3-REPRODUCIBILITY-LINKER-LOCAL-001; command/linker/work-path contracts plus local macOS native proof; Windows native equality pending)
- [x] `node --check config/scripts/build-ssh-relay-runtime.mjs && node --check config/scripts/ssh-relay-runtime-build.test.mjs` (E-M3-REPRODUCIBILITY-BUILDER-PARSER-LOCAL-001; exact local parser proof; native Windows remains pending)
- [x] `node config/scripts/verify-ssh-relay-node-release-inputs.mjs --inputs-directory <verified-windows-input-directory> --archive win32-x64` (E-M3-WINDOWS-INPUT-001; signed real Node ZIP, headers, and import library; no Windows execution)
- [x] `node config/scripts/build-ssh-relay-runtime.mjs --tuple linux-arm64-glibc --inputs-directory <verified-input-directory> --output-directory <exclusive-output> --work-directory <exclusive-stable-work> --source-date-epoch <epoch> --git-commit <full-sha>` (E-M3-RUNTIME-LOCAL-001, E-M3-REPRODUCIBILITY-LINKER-LOCAL-001; local native Linux arm64 history plus current stable-work contract)
- [x] `node config/scripts/verify-ssh-relay-runtime.mjs --runtime-directory <runtime-tree> --identity <identity.json> --archive <runtime.tar.xz>` (E-M3-RUNTIME-LOCAL-001; local native Linux arm64 only)
- [x] `pnpm exec vitest run --config config/vitest.config.ts config/scripts/ssh-relay-*.test.mjs` (E-M3-RUNTIME-CLOSURE-LOCAL-001; 68 local artifact-contract tests plus static reuse of six prior candidate archives; new target-native builder execution remains pending)
- [x] `pnpm exec vitest run --config config/vitest.config.ts config/scripts/ssh-relay-*.test.mjs && pnpm run typecheck && pnpm run lint && pnpm run check:max-lines-ratchet` (E-M3-METADATA-LOCAL-001; 76 local artifact-contract tests, typecheck, full lint, reliability gates, localization gates, and max-lines ratchet; native metadata/toolchain proof remains pending)
### Milestone 4 commands added
- [x] `pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-release-stage-gate.test.mjs config/scripts/ssh-relay-runtime-draft-recovery.test.mjs` (E-M4-RELEASE-DAG-LOCAL-RED-001, E-M4-RELEASE-DAG-LOCAL-001; disconnected credential-free stage/recovery contract only)
- [x] `pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-release-stage-gate.test.mjs config/scripts/ssh-relay-runtime-draft-recovery.test.mjs config/scripts/ssh-relay-runtime-workflow.test.mjs` (E-M4-RELEASE-DAG-LOCAL-001; static native-job wiring only, no real release/signing execution)
- [x] `pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-aggregate-input.test.mjs config/scripts/ssh-relay-runtime-draft-readback.test.mjs` (E-M4-AGGREGATE-READBACK-LOCAL-RED-001, E-M4-AGGREGATE-READBACK-LOCAL-001; local filesystem plus mocked GitHub responses only)
- [x] `pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-aggregate-input.test.mjs config/scripts/ssh-relay-runtime-draft-readback.test.mjs config/scripts/ssh-relay-runtime-workflow.test.mjs` (E-M4-AGGREGATE-READBACK-LOCAL-001; static native-job wiring only)
- [x] `pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-compatibility.test.mjs` (E-M4-WINDOWS-MANIFEST-PARITY-LOCAL-RED-001, E-M4-WINDOWS-MANIFEST-PARITY-LOCAL-001; exact Windows compatibility discriminator and canonical vector)
- [x] `pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-compatibility.test.mjs config/scripts/ssh-relay-runtime-workflow.test.mjs src/main/ssh/ssh-relay-artifact-schema.test.ts` (E-M4-WINDOWS-MANIFEST-PARITY-LOCAL-RED-001, E-M4-WINDOWS-MANIFEST-PARITY-LOCAL-001; build/desktop contract parity and static native-job wiring)
- [x] `pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-manifest-assembly.test.mjs config/scripts/ssh-relay-runtime-manifest-signing-handoff.test.mjs` (E-M4-MANIFEST-HANDOFF-LOCAL-RED-001, E-M4-MANIFEST-HANDOFF-LOCAL-001)
- [x] `pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-manifest-aggregate.test.mjs` (E-M4-MANIFEST-AGGREGATE-LOCAL-RED-001, E-M4-MANIFEST-AGGREGATE-LOCAL-001)
- [x] `pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-manifest-aggregate.test.mjs config/scripts/ssh-relay-runtime-aggregate-input.test.mjs config/scripts/ssh-relay-runtime-workflow.test.mjs` (E-M4-MANIFEST-AGGREGATE-LOCAL-001; exact-file boundary and all-six workflow-source wiring)
- [x] Exact-head Node 24 native workflow execution of
`config/scripts/ssh-relay-runtime-manifest-aggregate.test.mjs` on all six runner families
(E-M4-MANIFEST-AGGREGATE-CI-001)
- [x] `pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-manifest-tuple.test.mjs` (E-M4-MANIFEST-TUPLE-LOCAL-RED-001, E-M4-MANIFEST-TUPLE-SCHEMA-RED-001, E-M4-MANIFEST-TUPLE-LOCAL-001)
- [x] Exact-head Node 24 native workflow execution of
`config/scripts/ssh-relay-runtime-manifest-tuple.test.mjs` on all six runner families
(E-M4-MANIFEST-TUPLE-CI-001)
- [x] `pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-post-sign-metadata.test.mjs config/scripts/ssh-relay-runtime-provenance.test.mjs config/scripts/ssh-relay-runtime-sbom.test.mjs config/scripts/ssh-relay-runtime-manifest-tuple.test.mjs config/scripts/ssh-relay-runtime-workflow.test.mjs` (E-M4-POST-SIGN-METADATA-LOCAL-001)
- [x] Exact-head Node 24 native workflow execution of
`config/scripts/ssh-relay-runtime-post-sign-metadata.test.mjs` on all six runner families
(E-M4-POST-SIGN-METADATA-CI-001)
- [x] `pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-build-prerequisite.test.mjs config/scripts/ssh-relay-runtime-workflow.test.mjs` (E-M4-BUILD-PREREQUISITE-LOCAL-RED-001, E-M4-BUILD-PREREQUISITE-LOCAL-001)
- [x] Exact-head Node 24 native workflow execution of
`config/scripts/ssh-relay-runtime-build-prerequisite.test.mjs` on all six runner families
(E-M4-BUILD-PREREQUISITE-CI-001)
- [x] `pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay*.test.mjs` (E-M4-MANIFEST-HANDOFF-LOCAL-002; all release-side SSH-relay contracts)
- [x] `pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 src/main/ssh/ssh-relay-artifact-schema.test.ts src/main/ssh/ssh-relay-manifest-signature.test.ts src/main/ssh/ssh-relay-release-asset.test.ts` (E-M4-MANIFEST-HANDOFF-LOCAL-002; desktop schema/signature parity)
### Commands/scripts that must be added or formally identified
- [x] Manifest/schema/identity/signature/selector unit-test command. (E-M2-CONTRACT-001)
- [x] Per-tuple POSIX runtime assembly command. (E-M3-RUNTIME-LOCAL-001; Windows command remains open)
- [x] Per-tuple POSIX archive inspection and native smoke command. (E-M3-RUNTIME-LOCAL-001; Windows command remains open)
- [ ] Embedded-manifest extraction/comparison command for every packaged app.
- [ ] Draft release relay-asset completeness/read-back command.
- [ ] Live release-DAG failure rehearsal covering native signing, aggregate, timeout/retry/manual
approval, and recovered draft behavior. The disconnected contract is implemented under
E-M4-RELEASE-DAG-LOCAL-001; real workflow/service evidence remains open.
- [ ] Hostile-archive and cache fault suite.
- [ ] Full-size transfer memory/cancellation suite for SFTP, POSIX system SSH, and Windows system SSH.
- [ ] Remote primitive/binary-fidelity suite for missing commands, BusyBox variants, no-tar POSIX,
and bounded PowerShell/.NET Windows transfer.
- [ ] Remote verification-order suite for absent hash tools, corrupt upload, broken bundled Node, and
sentinel/publish ordering.
- [ ] No-Node/no-egress packaged Electron SSH E2E.
- [ ] Full relay RPC conformance E2E using the packaged runtime.
- [ ] Upgrade/downgrade/concurrent-client/live-PTY E2E.
- [ ] macOS Gatekeeper and Windows Authenticode/WDAC/AV rehearsal commands.
- [ ] Network-shaped cold/warm/fallback performance report.
- [ ] Manifest key rotation/revocation/anti-rollback rehearsal.
## Verification Evidence Ledger
Append entries; do not rewrite history. If evidence becomes invalid after code or matrix changes,
mark it superseded and link the replacement.
Required entry format:
```text
### E-<AREA>-<NNN> — <short title>
- Date:
- Commit SHA / PR:
- Runner: <OS, version, architecture, native/emulated>
- Remote: <OS, version, architecture, libc, relevant restrictions>
- Transport/network:
- Exact command:
- Result: PASS | FAIL | FLAKE | SUPERSEDED
- Duration and resource metrics:
- Artifact/log/trace link:
- Oracle proved:
- Does not prove:
- Checklist items satisfied:
- Follow-up:
```
### E-PLAN-001 — Initial checklist creation
- Date: 2026-07-14
- Commit SHA / PR: uncommitted working tree
- Runner: documentation-only local worktree
- Remote: not applicable
- Transport/network: not applicable
- Exact command:
````sh
node --input-type=module -e 'import fs from "node:fs"; import path from "node:path"; import { marked } from "marked"; const file="docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md"; const source=fs.readFileSync(file,"utf8"); const html=marked.parse(source); const links=[...source.matchAll(/\[[^\]]+\]\(([^)]+)\)/g)].map(m=>m[1]).filter(h=>!(/^(https?:|#)/.test(h))); for(const href of links){if(!fs.existsSync(path.resolve(path.dirname(file),href))) throw new Error(`Missing link: ${href}`)} const fences=(source.match(/^```/gm)||[]).length; if(fences%2) throw new Error(`Unbalanced fences: ${fences}`); const open=(source.match(/^- \[ \]/gm)||[]).length; const done=(source.match(/^- \[[xX]\]/gm)||[]).length; if(done) throw new Error(`Unexpected completed boxes: ${done}`); if(!html.includes("type=\"checkbox\"")) throw new Error("Task lists did not render"); console.log(`PASS links=${links.length} fences=${fences} open=${open} complete=${done}`)'
````
- Result: SUPERSEDED after subsequent review-driven plan expansion; originally PASS for document
creation only.
- Duration and resource metrics: 1.0 second; `links=1 fences=2 open=349 complete=0`.
- Artifact/log/trace link: this file and the linked HTML plan
- Oracle proved: the living checklist exists and covers implementation, validation, release, and
rollback work.
- Does not prove: any product behavior, artifact build, SSH runtime, platform, security, release, or
performance claim.
- Checklist items satisfied: none of the implementation milestones.
- Follow-up: replaced by E-PLAN-002; close Milestone 1 decisions before production implementation.
### E-PLAN-002 — Post-round-3 plan validation
- Date: 2026-07-14
- Commit SHA / PR: uncommitted planning worktree; implementation not started
- Runner: macOS arm64 local documentation validation
- Remote: not applicable
- Transport/network: local file rendering only
- Exact command:
````sh
git diff --check
node --input-type=module - <<'NODE'
import fs from 'node:fs'
import path from 'node:path'
import { marked } from 'marked'
import { parse } from 'parse5'
const mdFile = 'docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md'
const source = fs.readFileSync(mdFile, 'utf8')
const rendered = marked.parse(source)
const links = [...source.matchAll(/\[[^\]]+\]\(([^)]+)\)/g)].map(m => m[1]).filter(h => !/^(https?:|#)/.test(h))
for (const href of links) if (!fs.existsSync(path.resolve(path.dirname(mdFile), href))) throw new Error(`Missing link: ${href}`)
const fences = (source.match(/^```/gm) || []).length
const open = (source.match(/^- \[ \]/gm) || []).length
const done = (source.match(/^- \[[xX]\]/gm) || []).length
if (fences % 2 || done || !rendered.includes('type="checkbox"')) throw new Error('Invalid Markdown checklist')
const html = fs.readFileSync('docs/reference/plans/2026-07-14-ssh-relay-github-release-plan.html', 'utf8')
const errors = []
parse(html, { onParseError: error => errors.push(error) })
const ids = [...html.matchAll(/\bid="([^"]+)"/g)].map(m => m[1])
const hrefs = [...html.matchAll(/href="#([^"]+)"/g)].map(m => m[1])
if (errors.length || new Set(ids).size !== ids.length || hrefs.some(id => !ids.includes(id))) throw new Error('Invalid HTML plan')
console.log({ links: links.length, fences, open, done, htmlIds: ids.length, fragmentLinks: hrefs.length })
NODE
````
- Result: SUPERSEDED after the round-4 tuple-status correction; originally PASS for the working-tree
artifacts after round-3 findings were resolved.
- Duration and resource metrics: 7.1 seconds; `links=1 fences=2 open=402 complete=0
htmlIds=11 fragmentLinks=9`.
- Artifact/log/trace link: this file, the linked HTML plan, and local screenshots
`/tmp/relay-plan-desktop-light.png` and `/tmp/relay-plan-mobile-dark.png`.
- Oracle proved: Markdown rendered with balanced fences, valid local links, and no prematurely
completed implementation boxes; HTML parsed without parse errors, duplicate IDs, or broken
fragment links; `git diff --check` passed. HTML SHA-256 was
`375659e4ed3c4ec06b8077cae5badf39761ea5d92267612081195d6a027e073f`; the checklist prefix
before this ledger was `b599bf0c7ce6ca5ceb6188a153deb3437443f61d8a09069c8dc8dd6f21cdf9ad`.
- Does not prove: any product behavior, artifact build, SSH runtime, platform, security, release, or
performance claim. Visual mobile emulation must be repeated after the final review because the
first CLI session relaunched at its default viewport.
- Checklist items satisfied: none of the implementation milestones.
- Follow-up: replaced by E-PLAN-003; complete final visual validation before implementation handoff.
### E-PLAN-003 — Post-round-4 static validation
- Date: 2026-07-14
- Commit SHA / PR: uncommitted planning worktree; implementation not started
- Runner: macOS arm64 local documentation validation
- Remote: not applicable
- Transport/network: local file parsing only
- Exact command: the exact `git diff --check` and inline `marked`/`parse5` command block recorded in
E-PLAN-002, followed by `shasum -a 256` for the HTML and the checklist prefix before this ledger.
- Result: PASS for current static planning artifacts.
- Duration and resource metrics: under 1 second; `links=1 fences=2 open=402 complete=0 htmlIds=11
fragmentLinks=9`.
- Artifact/log/trace link: this file and the linked HTML plan.
- Oracle proved: Markdown/HTML structure, links, task-state integrity, fragment IDs, whitespace, and
current artifact identity. HTML SHA-256 is
`728fa4edcf37e834f064a32308b2901a455402a61016bd7b047b151a75100bf1`; the checklist prefix
before this ledger is `b599bf0c7ce6ca5ceb6188a153deb3437443f61d8a09069c8dc8dd6f21cdf9ad`.
- Does not prove: any product behavior or final visual responsiveness.
- Checklist items satisfied: none of the implementation milestones.
- Follow-up: obtain an explicit clean independent review, then run final desktop/mobile visual
validation and implementation handoff.
### E-PLAN-004 — Clean review and final visual validation
- Date: 2026-07-14
- Commit SHA / PR: uncommitted planning worktree; implementation not started
- Runner: macOS arm64, agent-browser Chromium
- Remote: not applicable
- Transport/network: local `file://` rendering
- Exact command: independent subagent round 5 reviewed both files completely and returned `CLEAN`;
agent-browser opened the HTML at 1440×1000 light mode and 390×844 @3x dark/reduced-motion mode,
captured screenshots, queried document/table widths and media state, and checked page errors.
- Result: PASS.
- Duration and resource metrics: desktop `documentWidth=1440`, no page overflow, both tables
`clientWidth=scrollWidth=966`; mobile `documentWidth=390`, no page overflow, table regions scroll
internally at `352→363` and `352→505`; dark mode and reduced motion both active; no page errors.
- Artifact/log/trace link: `/tmp/relay-plan-final-desktop.png` and
`/tmp/relay-plan-final-mobile.png` in the handoff machine, plus the round-5 `CLEAN` verdict.
- Oracle proved: current plan is visually usable at representative desktop/mobile widths, table
overflow is contained, dark/reduced-motion media behavior activates, and an independent reviewer
found no remaining actionable implementation, regression, security, cross-platform, release,
evidence, HTML, or Markdown issue.
- Does not prove: product implementation or runtime behavior; all implementation checklist boxes
remain open until backed by implementation evidence.
- Checklist items satisfied: planning review/validation only; none of Milestones 0–14.
- Follow-up: implementation agent must begin at Milestone 0/1, maintain this checklist, and attach
evidence before marking any product item complete.
### E-M0-UNIT-001 — Coherent Node/npm resolver and legacy deploy regression suite
- Date: 2026-07-14
- Commit SHA / PR: `1ef0551bc138724d736583eac788f4183bef07e2` plus uncommitted Work Package 0 changes; no PR created
- Runner: macOS 26.2 arm64, native; Node v26.0.0 and pnpm 10.24.0 (repository requests Node 24)
- Remote: local POSIX shell fixture for the guarded-NVM case; mocked Windows PowerShell command
construction; no live SSH remote in this entry
- Transport/network: local Vitest only
- Exact command:
```sh
pnpm exec vitest run --config config/vitest.config.ts src/main/ssh/ssh-remote-node-resolution.test.ts
pnpm exec vitest run --config config/vitest.config.ts src/main/ssh/ssh-remote-node-toolchain-resolution.test.ts
pnpm exec vitest run --config config/vitest.config.ts src/main/ssh/ssh-relay-native-deps-install.test.ts
pnpm exec vitest run --config config/vitest.config.ts src/main/ssh/ssh-relay-versioned-install.test.ts
pnpm exec vitest run --config config/vitest.config.ts src/main/ssh/ssh-relay-deploy.test.ts
pnpm exec vitest run --config config/vitest.config.ts src/main/ssh/ssh-relay-cross-version-isolation.test.ts
pnpm exec vitest run --config config/vitest.config.ts src/main/ssh/ssh-remote-platform-detection.test.ts
```
- Result: PASS; respectively 32/32, 8/8, 16/16, 26/26, 21/21, 1/1, and 6/6 tests
- Duration and resource metrics: respectively 577 ms, 1.21 s, 634 ms, 538 ms, 642 ms, 546 ms,
and 156 ms Vitest duration; resource usage not instrumented
- Artifact/log/trace link: local command output; source fixtures in
`ssh-remote-node-toolchain-resolution.test.ts`
- Oracle proved: POSIX and Windows probes require colocated Node/npm, Node 18 minimum remains,
missing/failing/no-op npm candidates are skipped, guarded NVM is found without sourcing it,
startup noise is marker-bounded, non-POSIX login shells receive a `/bin/sh`-wrapped toolchain
probe, strict session-limit errors/cancellation remain classified, and the selected NVM bin
directory reaches legacy `npm install`.
- Does not prove: live SSH, live Windows, system SSH, `MaxSessions=1` on a real server, release
artifacts, or an executable red run against the pre-fix source. The original #8450 report is the
field red observation; these green tests are discriminating but were not run after temporarily
reverting user-owned code.
- Checklist items satisfied: Milestone 0 coherent pairing, negative cases, version enforcement,
strategy/cancellation/session-limit preservation, and focused resolver/deploy verification.
- Follow-up: keep this work package separate; add live Windows or `MaxSessions=1` evidence only if
those claims are needed for a later support matrix.
### E-M0-LIVE-001 — Ubuntu 24.04 guarded-NVM relay and PTY reproduction
- Date: 2026-07-14
- Commit SHA / PR: `1ef0551bc138724d736583eac788f4183bef07e2` plus uncommitted Work Package 0 changes; no PR created
- Runner: macOS 26.2 arm64 native client; Docker 29.2.1; Electron 43.1.0
- Remote: Ubuntu 24.04 Linux arm64/glibc container
(`sha256:4fbb8e6a8395de5a7550b33509421a2bafbc0aab6c06ba2cef9ebffbc7092d90`);
system Node v18.19.1 with no sibling npm; NVM-layout Node v22.22.3/npm 10.9.8 below a
non-interactive `.bashrc` return guard; build-essential and Python present for the legacy native
dependency install
- Transport/network: authenticated built-in SSH2 over Docker loopback; SFTP relay upload; remote
registry and Node header egress available for the legacy npm install
- Exact command:
```sh
pnpm run test:e2e:ssh-node-toolchain-resolution
SKIP_BUILD=1 pnpm run test:e2e:ssh-node-toolchain-resolution
```
- Result: PASS twice; one purpose-named Playwright test passed on each run
- Duration and resource metrics: fresh Electron/relay build plus E2E 1.8 minutes; repeated E2E 1.2
minutes with test evidence `durationMs=62553`; memory/channel/file counts not instrumented for this
narrow legacy resolver proof
- Artifact/log/trace link: local Playwright stdout included
`systemNode=v18.19.1 nvmNode=v22.22.3 npm=10.9.8 selected=nvm relayPty=pass`;
fixture and runner are checked into this worktree
- Oracle proved: non-interactive and login-shell PATH both expose the incomplete system Node, the
complete NVM directory remains discoverable below the guard, Orca connects, the detached relay's
argv[0] is the NVM Node path, and a marker round-trips through a real remote PTY.
- Does not prove: Linux x64, musl, Windows, macOS remote, system SSH, `MaxSessions=1`, blocked remote
egress, absence of build tools, fallback behavior, performance budgets, or bundled runtimes.
- Checklist items satisfied: Milestone 0 exact live #8450 reproduction and documented passing legacy
tuple.
- Follow-up: keep this evidence scoped to the one declared legacy tuple; do not generalize it into a
bundled or cross-platform support claim.
### E-M0-STATIC-001 — Work Package 0 type, format, line-budget, and diff gates
- Date: 2026-07-14
- Commit SHA / PR: `1ef0551bc138724d736583eac788f4183bef07e2` plus uncommitted Work Package 0 changes
- Runner: macOS 26.2 arm64 native; Node v26.0.0 and pnpm 10.24.0
- Remote: not applicable
- Transport/network: local only
- Exact command:
```sh
pnpm run typecheck
pnpm exec oxlint src/main/ssh/ssh-remote-node-resolution.ts src/main/ssh/ssh-remote-node-toolchain-probe.ts src/main/ssh/ssh-remote-node-resolution.test.ts src/main/ssh/ssh-remote-node-toolchain-resolution.test.ts src/main/ssh/ssh-relay-native-deps-install.test.ts tests/e2e/helpers/docker-ssh-relay-target.ts tests/e2e/helpers/docker-ssh-relay-processes.ts tests/e2e/ssh-node-toolchain-resolution.spec.ts
pnpm exec oxfmt --check src/main/ssh/ssh-remote-node-resolution.ts src/main/ssh/ssh-remote-node-toolchain-probe.ts src/main/ssh/ssh-remote-node-resolution.test.ts src/main/ssh/ssh-remote-node-toolchain-resolution.test.ts src/main/ssh/ssh-relay-native-deps-install.test.ts tests/e2e/helpers/docker-ssh-relay-target.ts tests/e2e/helpers/docker-ssh-relay-processes.ts tests/e2e/ssh-node-toolchain-resolution.spec.ts config/scripts/run-ssh-node-toolchain-resolution-e2e.mjs package.json
pnpm run check:max-lines-ratchet
git diff --check
```
- Result: PASS
- Duration and resource metrics: typecheck 7.94 s; formatting check 144 ms; other gates under 1 s;
resource usage not instrumented
- Artifact/log/trace link: local command output
- Oracle proved: Node/CLI/web TypeScript projects compile, touched TypeScript has no oxlint errors,
all touched files are formatted, no new max-lines bypass exists, and the diff has no whitespace
errors.
- Does not prove: repository-wide lint completion; see E-M0-LINT-001.
- Checklist items satisfied: Milestone 0 typecheck and max-lines/diff handoff gates.
- Follow-up: resolve or explicitly baseline E-M0-LINT-001 before calling the full lint gate green.
### E-M0-LINT-001 — Repository-wide lint blocked outside Work Package 0
- Date: 2026-07-14
- Commit SHA / PR: `1ef0551bc138724d736583eac788f4183bef07e2` plus uncommitted Work Package 0 changes
- Runner: macOS 26.2 arm64 native; Node v26.0.0 and pnpm 10.24.0
- Remote: not applicable
- Transport/network: local only
- Exact command: `pnpm run lint`
- Result: SUPERSEDED for current PR by E-M0-STATIC-002 after rebasing onto `origin/main`; originally
FAIL after 4.56 s
- Duration and resource metrics: 4.56 s; resource usage not instrumented
- Artifact/log/trace link: local lint output
- Oracle proved: repository-wide oxlint completed with warnings only, then the type-aware
switch-exhaustiveness subgate failed at the untouched
`src/renderer/src/components/tab-bar/TerminalTabLeadingIcon.tsx:31` because `active | inactive`
cases are unhandled.
- Does not prove: a WP0 lint regression. The failing renderer file is clean in `git status` and is
outside this work package; touched-file oxlint passes in E-M0-STATIC-001.
- Checklist items satisfied: none; the full `pnpm run lint` checkbox remains open.
- Follow-up: none for WP0. Upstream `main` added the missing cases before this branch rebased; the
full lint command now passes at `c4259d94f` without an authored renderer change in this PR.
### E-M0-UNIT-002 — Rebased Work Package 0 focused regression suites
- Date: 2026-07-14
- Commit SHA / PR: `c4259d94fccf8d1465280b8e69c22db328710f9e`; draft PR
[#8724](https://github.com/stablyai/orca/pull/8724)
- Runner: macOS 26.2 arm64 native; Node v26.0.0 and pnpm 10.24.0 (repository requests Node 24)
- Remote: local POSIX fixture and mocked Windows PowerShell command construction; no live SSH remote
- Transport/network: local Vitest only
- Exact command:
```sh
pnpm exec vitest run --config config/vitest.config.ts src/main/ssh/ssh-remote-node-resolution.test.ts
pnpm exec vitest run --config config/vitest.config.ts src/main/ssh/ssh-remote-node-toolchain-resolution.test.ts
pnpm exec vitest run --config config/vitest.config.ts src/main/ssh/ssh-relay-native-deps-install.test.ts
pnpm exec vitest run --config config/vitest.config.ts src/main/ssh/ssh-relay-versioned-install.test.ts
pnpm exec vitest run --config config/vitest.config.ts src/main/ssh/ssh-relay-deploy.test.ts
pnpm exec vitest run --config config/vitest.config.ts src/main/ssh/ssh-relay-cross-version-isolation.test.ts
pnpm exec vitest run --config config/vitest.config.ts src/main/ssh/ssh-remote-platform-detection.test.ts
```
- Result: PASS; respectively 32/32, 8/8, 16/16, 26/26, 21/21, 1/1, and 6/6 tests (110 total)
- Duration and resource metrics: respectively 461 ms, 1.73 s, 324 ms, 339 ms, 284 ms, 245 ms, and
189 ms Vitest duration; 10.52 s aggregate wall time; resource usage not instrumented
- Artifact/log/trace link: local command output and the exact sources in PR #8724
- Oracle proved: the focused resolver/deploy contracts from E-M0-UNIT-001 remain green after rebasing
onto `9d5173252`, including colocated toolchains, guarded NVM, shell-noise markers, cancellation,
session-limit classification, and propagation of the selected bin directory to npm install.
- Does not prove: live SSH, live Windows, system SSH, a real `MaxSessions=1` server, or bundled runtime
behavior.
- Checklist items satisfied: refreshed Milestone 0 focused regression gate on the exact PR commit.
- Follow-up: use E-M0-LIVE-002 for the one claimed live tuple and PR CI for additional runner signal.
### E-M0-STATIC-002 — Rebased Work Package 0 full static and repository lint gates
- Date: 2026-07-14
- Commit SHA / PR: `c4259d94fccf8d1465280b8e69c22db328710f9e`; draft PR
[#8724](https://github.com/stablyai/orca/pull/8724)
- Runner: macOS 26.2 arm64 native; Node v26.0.0 and pnpm 10.24.0 (repository requests Node 24)
- Remote: not applicable
- Transport/network: local only
- Exact command:
```sh
pnpm run typecheck
pnpm run check:max-lines-ratchet
pnpm exec oxfmt --check src/main/ssh/ssh-remote-node-resolution.ts src/main/ssh/ssh-remote-node-toolchain-probe.ts src/main/ssh/ssh-remote-node-resolution.test.ts src/main/ssh/ssh-remote-node-toolchain-resolution.test.ts src/main/ssh/ssh-relay-native-deps-install.test.ts tests/e2e/helpers/docker-ssh-relay-target.ts tests/e2e/helpers/docker-ssh-relay-processes.ts tests/e2e/ssh-node-toolchain-resolution.spec.ts config/scripts/run-ssh-node-toolchain-resolution-e2e.mjs package.json docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md docs/reference/plans/2026-07-14-ssh-relay-github-release-plan.html
git diff --check
pnpm run lint
```
- Result: PASS; typecheck, 355-entry max-lines ratchet, 12-file formatting check, diff check, and the
complete repository lint/reliability/localization chain all exited zero
- Duration and resource metrics: typecheck/max-lines/format/diff group 7.39 s; full lint 14.11 s;
resource usage not instrumented
- Artifact/log/trace link: local command output; exact PR commits
- Oracle proved: the exact rebased PR commit compiles, adds no line-budget bypass, is formatted, has
no tracked whitespace errors, and passes the full repository lint chain. E-M0-LINT-001 is no
longer a current blocker; its renderer fix came from upstream `main`, not this PR's authored diff.
- Does not prove: packaged runtime behavior, live SSH, or GitHub-hosted runner behavior.
- Checklist items satisfied: Milestone 0 typecheck, full lint, max-lines, format, and diff gates.
- Follow-up: record the GitHub-hosted `verify` result separately when PR #8724 completes.
### E-M0-LIVE-002 — Rebased Ubuntu 24.04 guarded-NVM relay and PTY reproduction
- Date: 2026-07-14
- Commit SHA / PR: `c4259d94fccf8d1465280b8e69c22db328710f9e`; draft PR
[#8724](https://github.com/stablyai/orca/pull/8724)
- Runner: macOS 26.2 arm64 native client; Docker 29.2.1; Node v26.0.0; pnpm 10.24.0
- Remote: Ubuntu 24.04 Linux arm64/glibc container,
`ubuntu@sha256:4fbb8e6a8395de5a7550b33509421a2bafbc0aab6c06ba2cef9ebffbc7092d90`;
system Node v18.19.1 with no sibling npm; guarded NVM-layout Node v22.22.3/npm 10.9.8
- Transport/network: authenticated built-in SSH2 over Docker loopback; SFTP relay upload; remote
registry and Node-header egress available for the legacy native dependency install
- Exact command: `pnpm run test:e2e:ssh-node-toolchain-resolution`
- Result: PASS; one purpose-named Playwright test passed
- Duration and resource metrics: test oracle `durationMs=144224`; full build plus E2E 3.2 minutes;
memory/channel/file counts not instrumented for this narrow legacy resolver proof
- Artifact/log/trace link: local Playwright stdout recorded
`remote=ubuntu-24.04 architecture=arm64 systemNode=v18.19.1 nvmNode=v22.22.3 npm=10.9.8 selected=nvm relayPty=pass durationMs=144224`
- Oracle proved: the exact rebased app/relay build selects the complete guarded NVM toolchain,
launches the detached relay with that Node, and round-trips a marker through a real remote PTY.
- Does not prove: Linux x64, musl, Windows, macOS remote, system SSH, `MaxSessions=1`, blocked remote
egress, fallback behavior, performance budgets, or bundled runtimes.
- Checklist items satisfied: refreshed Milestone 0 exact live #8450 reproduction on the PR commit.
- Follow-up: retain this narrow tuple claim and use later matrix work for all broader coverage.
### E-M0-PR-001 — Independent draft PR boundary
- Date: 2026-07-14
- Commit SHA / PR: plan/checklist `2b67de870120b9a9230cb4464bff39665fa9bb44`; WP0 code
`c4259d94fccf8d1465280b8e69c22db328710f9e`; draft PR
[#8724](https://github.com/stablyai/orca/pull/8724)
- Runner: GitHub PR metadata; execution checks still running when recorded
- Remote: not applicable
- Transport/network: authenticated Git push and GitHub API
- Exact command:
```sh
git push -u origin Jinwoo-H/bug-8450-ssh-node-npm-toolchain
gh pr create --repo stablyai/orca --draft --base main --head Jinwoo-H/bug-8450-ssh-node-npm-toolchain
gh pr view 8724 --repo stablyai/orca --json number,url,isDraft,state,headRefOid,baseRefOid,mergeStateStatus,statusCheckRollup
```
- Result: PASS for the independent review boundary; PR is open and draft with the expected head/base
- Duration and resource metrics: push and PR creation 7.1 s; metadata read 0.8 s
- Artifact/log/trace link: https://github.com/stablyai/orca/pull/8724
- Oracle proved: reviewed planning artifacts and the WP0 resolver correction are separate commits;
no bundled-runtime distribution implementation is present; GitHub Actions checks were triggered.
- Does not prove: CI success, reviewer approval, mergeability after later base changes, or any bundled
runtime behavior.
- Checklist items satisfied: Milestone 0 separate commit/PR boundary.
- Follow-up: GitHub-hosted runner/check details were appended as E-M0-CI-001 after completion.
### E-M0-CI-001 — Draft PR full regression and packaged-app checks
- Date: 2026-07-14
- Commit SHA / PR: `94e58d83eabfba30b90e9714e91485ba5e3cf8d7`; draft PR
[#8724](https://github.com/stablyai/orca/pull/8724)
- Runner: GitHub-hosted native runners:
- `ubuntu-latest` resolved to x64 `ubuntu-24.04` image `20260705.232.1` for verify and Linux
golden jobs; runner image provisioner `20260624.560`
- `macos-15` resolved to arm64 `macos-15-arm64` image `20260706.0213.1` for the macOS golden job;
runner image provisioner `20260624.560`
- Remote: not applicable; these workflows did not provision or connect to an SSH server
- Transport/network: GitHub Actions checkout/package-network traffic only; no built-in SFTP or
system-SSH relay transport was exercised
- Exact command:
```sh
gh run watch 29325885071 --repo stablyai/orca --exit-status
gh pr view 8724 --repo stablyai/orca --json url,state,isDraft,headRefOid,baseRefOid,mergeStateStatus,statusCheckRollup
gh api repos/stablyai/orca/actions/jobs/87061960266
gh api repos/stablyai/orca/actions/jobs/87061960006
gh api repos/stablyai/orca/actions/jobs/87061960091
gh run view 29325885071 --repo stablyai/orca --job 87061960266 --log
gh run view 29325884997 --repo stablyai/orca --job 87061960006 --log
gh run view 29325884997 --repo stablyai/orca --job 87061960091 --log
```
- Result: PASS; `verify`, `golden e2e linux experiment`, and `golden e2e mac experiment` all
completed successfully on the expected PR head
- Duration and resource metrics: verify job 13m13s; Linux golden job 4m23s; macOS golden job 5m57s;
verify configured a 4 GiB Node heap ceiling but the workflows did not report peak process memory,
channels, or file counts
- Artifact/log/trace link:
- verify run/job: https://github.com/stablyai/orca/actions/runs/29325885071/job/87061960266
- golden Linux job: https://github.com/stablyai/orca/actions/runs/29325884997/job/87061960006
- golden macOS job: https://github.com/stablyai/orca/actions/runs/29325884997/job/87061960091
- Oracle proved: the PR head passes repository lint, reliability and max-lines gates, typecheck, Git
2.25 compatibility, full tests, unpacked-app packaging, packaged CLI smoke, and the existing Linux
and macOS golden Electron suites.
- Does not prove: live SSH, Windows, Linux arm64, musl, system SSH, SFTP bootstrap transfer,
`MaxSessions=1`, no-egress remotes, full-size runtime transfer, cancellation/resource budgets, or
any bundled-runtime behavior. E-M0-LIVE-002 remains the only live SSH claim for WP0.
- Checklist items satisfied: Work Package 0 required PR checks, full repository lint, and independent
CI boundary.
- Follow-up: keep PR #8724 limited to WP0; use separate work-package branches and purpose-built SSH
workflows for all later tuple claims.
### E-M1-RUNNER-DECISION-001 — GitHub Actions validation topology decision
- Date: 2026-07-14
- Commit SHA / PR: `1ef0551bc138724d736583eac788f4183bef07e2` plus uncommitted planning and Work Package 0 changes
- Runner: documentation decision in the macOS 26.2 arm64 native worktree
- Remote: not applicable; exact native runner labels and representative remotes remain open
- Transport/network: not applicable
- Exact command: no executable runner command applies to the policy decision; both artifacts were
structurally validated by the exact command recorded in E-M1-ROLLOUT-DECISION-001.
- Result: PASS for recording the user-authorized decision; no runner cell is claimed complete.
- Duration and resource metrics: not applicable to the decision; shared structural validation took
46 ms.
- Artifact/log/trace link: the Milestone 1 “Validation runner and network topology” section and the
HTML “GitHub Actions runner policy” callout
- Oracle proved: both planning artifacts name GitHub Actions as the primary orchestrator and define
when hosted, ephemeral, or self-hosted native execution may fill an evidence cell.
- Does not prove: availability, capacity, permissions, networking, signing access, native execution,
or any live matrix cell for a concrete runner label.
- Checklist items satisfied: Milestone 1 runner-provider and qualification-policy decisions only.
- Follow-up: inventory exact labels/images and pin representative POSIX/Windows remotes before
claiming any tuple.
### E-M1-ROLLOUT-DECISION-001 — Per-SSH-target Beta with legacy default
- Date: 2026-07-14
- Commit SHA / PR: `1ef0551bc138724d736583eac788f4183bef07e2` plus uncommitted planning and Work Package 0 changes
- Runner: macOS 26.2 arm64 native; Node v26.0.0 and pnpm 10.24.0
- Remote: not applicable; documentation/content validation only
- Transport/network: local files only
- Exact command:
````sh
node --input-type=module - <<'NODE'
import fs from 'node:fs'
import path from 'node:path'
import { marked } from 'marked'
import { parse } from 'parse5'
const started = performance.now()
const mdFile = 'docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md'
const htmlFile = 'docs/reference/plans/2026-07-14-ssh-relay-github-release-plan.html'
const source = fs.readFileSync(mdFile, 'utf8')
const rendered = marked.parse(source)
const links = [...source.matchAll(/\[[^\]]+\]\(([^)]+)\)/g)].map(match => match[1]).filter(href => !/^(https?:|#)/.test(href))
for (const href of links) if (!fs.existsSync(path.resolve(path.dirname(mdFile), href))) throw new Error(`Missing link: ${href}`)
const fences = (source.match(/^```/gm) || []).length
const open = (source.match(/^- \[ \]/gm) || []).length
const done = (source.match(/^- \[[xX]\]/gm) || []).length
if (fences % 2 || !rendered.includes('type="checkbox"')) throw new Error('Invalid Markdown checklist')
const html = fs.readFileSync(htmlFile, 'utf8')
const errors = []
parse(html, { onParseError: error => errors.push(error) })
const ids = [...html.matchAll(/\bid="([^"]+)"/g)].map(match => match[1])
const hrefs = [...html.matchAll(/href="#([^"]+)"/g)].map(match => match[1])
if (errors.length || new Set(ids).size !== ids.length || hrefs.some(id => !ids.includes(id))) throw new Error('Invalid HTML plan')
const requiredMd = ['Per-target Beta rollout decision', 'E-M1-ROLLOUT-DECISION-001', 'missing, malformed,', 'separate reviewed rollout decision']
const requiredHtml = ['Per-target Beta contract', 'bundled-auto', 'Future default review']
for (const value of requiredMd) if (!source.includes(value)) throw new Error(`Missing checklist contract: ${value}`)
for (const value of requiredHtml) if (!html.includes(value)) throw new Error(`Missing HTML contract: ${value}`)
console.log(JSON.stringify({ result: 'PASS', links: links.length, fences, open, done, htmlIds: ids.length, fragmentLinks: hrefs.length, durationMs: Math.round(performance.now() - started) }))
NODE
pnpm exec oxfmt --check docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md docs/reference/plans/2026-07-14-ssh-relay-github-release-plan.html
git diff --check
````
- Result: PASS; `links=1 fences=2 open=393 complete=33 htmlIds=11 fragmentLinks=9` and no
`git diff --check` findings; both planning artifacts pass `oxfmt --check`.
- Duration and resource metrics: 46 ms for Markdown/HTML parsing; resource usage not instrumented.
- Artifact/log/trace link: this checklist and the linked HTML plan
- Oracle proved: both artifacts record a Beta-tagged per-target opt-in, conservative legacy
deserialization, next-connection-only application, classified fallback, explicit fail-closed
recovery, and separate authorization before any default change.
- Does not prove: configuration migration, add/edit UI, Beta badge rendering, live-session
preservation, telemetry, fallback behavior, or any bundled runtime execution.
- Checklist items satisfied: Milestone 1 rollout-control mechanism and per-target Beta policy
decisions only; implementation boxes in Milestones 8 and 14 remain open.
- Follow-up: implement and test the target configuration/UI in its reviewable work package after the
Work Package 0 boundary and remaining Milestone 1 blockers are closed.
### E-M1-BASELINE-001 — Conservative initial runtime eligibility baselines
- Date: 2026-07-14
- Commit SHA / PR: `a84d52dc6`; stacked draft PR
[#8728](https://github.com/stablyai/orca/pull/8728)
- Runner: macOS 26.2 arm64 native; authoritative Node v24.18.0 release/build metadata fetched over
HTTPS
- Remote: no SSH remote; local AlmaLinux 8 arm64 container reported glibc 2.28 and
`libstdc++-8.5.0`
- Transport/network: HTTPS to nodejs.org and raw.githubusercontent.com; local Docker execution only
- Exact command:
```sh
curl -fsSL https://nodejs.org/dist/index.json | jq -r '[.[] | select(.version | startswith("v24."))][0] | {version,date,lts,security,files}'
curl -fsSL https://raw.githubusercontent.com/nodejs/node/v24.18.0/BUILDING.md | sed -n '65,190p'
docker run --rm almalinux:8 sh -lc 'uname -m; getconf GNU_LIBC_VERSION; rpm -q libstdc++ glibc'
```
- Result: PASS for a decision record. Node v24.18.0 is LTS and publishes official Linux glibc,
macOS, and Windows archives for x64/arm64. Its supported-platform contract states Linux kernel
4.18, glibc 2.28, libstdc++ 6.0.25/`GLIBCXX_3.4.25`, macOS 13.5, Windows 10/Server 2016 x64,
and Windows 10 arm64 minimums. Orca adopts those Linux/macOS floors and stricter Windows floors
aligned with the declared SSH bootstrap primitives.
- Duration and resource metrics: network reads under 1 s each; local AlmaLinux probe 0.6 s; no
runtime load or memory metric applies to the policy decision
- Artifact/log/trace link:
- https://nodejs.org/dist/v24.18.0/
- https://github.com/nodejs/node/blob/v24.18.0/BUILDING.md#supported-platforms
- Oracle proved: the recorded minimums do not claim compatibility below the upstream official Node
binary ABI/OS floors, and musl is excluded because Node publishes no official musl archive.
- Does not prove: any Orca runtime archive, native module, SSH primitive, Rosetta behavior, Windows
host, minimum-kernel VM, or enabled tuple. Every candidate remains disabled pending live evidence.
- Checklist items satisfied: Milestone 1 glibc, libstdc++, kernel, musl, macOS, Windows, and Rosetta
eligibility decisions.
- Follow-up: encode these floors in the manifest/selector contract and fill every target-native live
cell before enabling a tuple.
### E-M1-NODE-PROVENANCE-001 — Pinned official Node 24 LTS provenance policy
- Date: 2026-07-14
- Commit SHA / PR: `a84d52dc6`; stacked draft PR
[#8728](https://github.com/stablyai/orca/pull/8728)
- Runner: macOS 26.2 arm64 native orchestrating an Ubuntu 24.04 arm64 Docker container for GPG
verification
- Remote: not applicable; provenance inputs were verified locally before any extraction or transfer
- Transport/network: HTTPS to nodejs.org and the Node release-key repository; no SSH
- Exact command:
```sh
curl -fsSL https://nodejs.org/dist/v24.18.0/SHASUMS256.txt | rg 'node-v24\.18\.0-(linux-(x64|arm64)|darwin-(x64|arm64)|win-(x64|arm64))\.(tar\.xz|zip)$'
docker run --rm ubuntu:24.04 bash -lc 'apt-get update -qq && apt-get install -y -qq ca-certificates curl gpgv >/dev/null && curl -fsSL https://github.com/nodejs/release-keys/raw/refs/heads/main/gpg-only-active-keys/pubring.kbx -o /tmp/nodejs-active.kbx && curl -fsSL https://nodejs.org/dist/v24.18.0/SHASUMS256.txt -o /tmp/SHASUMS256.txt && curl -fsSL https://nodejs.org/dist/v24.18.0/SHASUMS256.txt.sig -o /tmp/SHASUMS256.txt.sig && gpgv --keyring /tmp/nodejs-active.kbx /tmp/SHASUMS256.txt.sig /tmp/SHASUMS256.txt && sha256sum /tmp/SHASUMS256.txt'
```
- Result: PASS; detached signature timestamp `2026-06-23T23:07:59Z` verified with active Node release
key `C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C` (Richard Lau); verified checksum-file SHA-256
`3927bab574a00ca0560c9583fe19655ba19603a1c5851414e4325d34ac50e469`
- Duration and resource metrics: checksum fetch 0.3 s; clean-container key/signature verification
11.9 s including package installation; resource usage not instrumented
- Artifact/log/trace link:
- https://nodejs.org/dist/v24.18.0/SHASUMS256.txt
- https://nodejs.org/dist/v24.18.0/SHASUMS256.txt.sig
- https://github.com/nodejs/release-keys
- Oracle proved: the selected six upstream archives exist and their checksum list has a valid
signature from the active Node release keyring. The policy pins the exact patch and requires a
new desktop identity for every refresh.
- Does not prove: that future CI pins rather than mutably fetches the keyring, verifies archives,
preserves native signatures, builds native modules, meets the CVE SLA, or signs Orca artifacts.
Those remain implementation/release gates.
- Checklist items satisfied: Milestone 1 Node version, provenance, musl-source, update/CVE, refresh
identity, and upstream-signature decisions.
- Follow-up: vendor a reviewed keyring/input digest into the build contract, implement fail-closed
verification, and add target-native signing/provenance jobs.
### E-M1-RUNNER-INVENTORY-001 — Native GitHub-hosted runner catalog
- Date: 2026-07-14
- Commit SHA / PR: `a84d52dc6`; stacked draft PR
[#8728](https://github.com/stablyai/orca/pull/8728)
- Runner: macOS 26.2 arm64 native; GitHub runner-image catalog plus repository workflow inventory
- Remote: not applicable; no SSH target is claimed
- Transport/network: HTTPS to the GitHub runner-image catalog and GitHub Actions logs
- Exact command:
```sh
curl -fsSL https://raw.githubusercontent.com/actions/runner-images/main/README.md | sed -n '/Available Images/,/Beta Images/p'
rg -n 'runs-on:' .github/workflows
gh run view 29325885071 --repo stablyai/orca --job 87061960266 --log
gh run view 29325884997 --repo stablyai/orca --job 87061960091 --log
```
- Result: PASS for inventory. The catalog exposes native x64/arm64 Linux, macOS, and Windows labels
selected above and documents weekly image refresh. PR evidence independently resolved
`ubuntu-latest` to x64 `ubuntu-24.04` image `20260705.232.1` and `macos-15` to arm64
`macos-15-arm64` image `20260706.0213.1`.
- Duration and resource metrics: catalog fetch 0.2 s; workflow scan 0.1 s; prior log reads under 3 s;
hosted capacity is unreserved and queue-dependent rather than a fixed resource guarantee
- Artifact/log/trace link:
- https://github.com/actions/runner-images#available-images
- E-M0-CI-001 job links
- Oracle proved: explicit native labels exist for the six client/build architectures and new relay
workflows can avoid mutable `latest` aliases while recording exact resolved images.
- Does not prove: repository access to paid capacity at a future run, runner availability, SSH
server reachability, cross-family networking, image stability, or any runtime tuple. No approved
self-hosted target pool was found or inferred.
- Checklist items satisfied: Milestone 1 runner-label/architecture/image-update/capacity inventory.
- Follow-up: pin representative remote images/snapshots, provision cross-family endpoints, and run
a minimal native label smoke before assigning any evidence cell.
### E-M1-DECISION-DOC-001 — Baseline/provenance plan-content validation
- Date: 2026-07-14
- Commit SHA / PR: `a84d52dc6`; stacked draft PR
[#8728](https://github.com/stablyai/orca/pull/8728)
- Runner: macOS 26.2 arm64 native; Node v26.0.0 and pnpm 10.24.0
- Remote: not applicable; documentation/content validation only
- Transport/network: local files only
- Exact command: purpose-built inline Node validation using `marked` and `parse5`, followed by
`pnpm exec oxfmt --check` for both plan artifacts and `git diff --check`
- Result: PASS; `links=1 fences=2 htmlIds=11 fragmentLinks=9`, no parse/fragment/duplicate-ID,
formatting, or whitespace findings
- Duration and resource metrics: structural validation 42 ms; formatter check 243 ms; resource
usage not instrumented
- Artifact/log/trace link: this checklist and the linked HTML plan
- Oracle proved: both artifacts contain the baseline, Node provenance, musl legacy-only, and explicit
native-runner inventory decisions and remain structurally valid.
- Does not prove: implementation, live compatibility, runner access, SSH transport, signing, or any
enabled tuple.
- Checklist items satisfied: evidence-backed synchronization of the Milestone 1 decision content in
both required plan artifacts.
- Follow-up: continue the remaining Milestone 1 gates and keep contract implementation in stacked
draft PR #8728 with no default behavior change.
### E-M1-LEGACY-INVENTORY-001 — Current legacy families versus bundled candidates
- Date: 2026-07-14
- Commit SHA / PR: `5c37e8efe`; stacked draft PR
[#8728](https://github.com/stablyai/orca/pull/8728)
- Runner: macOS 26.2 arm64 native; Vitest Node environment
- Remote: none; source-declared platform identities and deterministic tests only
- Transport/network: local files only
- Exact command:
`pnpm exec vitest run --config config/vitest.config.ts src/main/ssh/relay-protocol.test.ts src/main/ssh/ssh-remote-platform-detection.test.ts`
- Result: PASS; 35/35 tests across two files, including Linux/macOS/Windows x64/arm64 parsing and
conservative unsupported-platform rejection
- Duration and resource metrics: 253 ms; memory, channels, and files not instrumented
- Artifact/log/trace link: local Vitest stdout; current `RelayPlatform` source and the living table
- Oracle proved: current source has six deterministic legacy platform identities and rejects unknown
OS/architectures; the plan now separates those identities from libc-aware bundled candidates and
from live fallback claims.
- Does not prove: a live SSH connection, native npm install, PTY/watcher health, libc compatibility,
or fallback on any family. E-M0-LIVE-002 remains the only live legacy evidence in this project.
- Checklist items satisfied: Milestone 1 legacy-versus-bundled family inventory.
- Follow-up: fill current legacy E2E cells before allowing automatic fallback for each corresponding
bundled tuple.
### E-M1-BOOTSTRAP-DECISION-001 — No-Node POSIX and bounded Windows primitive contract
- Date: 2026-07-14
- Commit SHA / PR: `5c37e8efe`; stacked draft PR
[#8728](https://github.com/stablyai/orca/pull/8728)
- Runner: macOS 26.2 arm64 native; Docker Desktop native arm64 Linux containers
- Remote: local Ubuntu 24.04, Debian 12/bookworm-slim, and AlmaLinux 8 arm64 containers; no SSH
daemon, Windows host, or BusyBox image
- Transport/network: Docker stdin/stdout only; the fixture exercised the proposed raw per-file
stream but not an authenticated SSH channel
- Exact command: inline Node harness spawned each image with `docker run --rm -i ... sh -c`, sent a
ten-byte fixture containing NUL/CR/LF/high-bit bytes, and required exact output after
`mkdir`/`cat`/`chmod`/`mv`/`test`/`nohup`/`rm`
- Result: PASS; exact ten-byte round trip on Ubuntu 24.04, Debian bookworm-slim, and AlmaLinux 8
- Duration and resource metrics: Ubuntu 4,384 ms, Debian 569 ms, AlmaLinux 506 ms including container
startup; one stdin/stdout stream; peak memory and open-file counts not instrumented
- Artifact/log/trace link: local harness stdout recorded in the implementation session
- Oracle proved: the declared POSIX command subset can preserve the binary fixture without Node,
Python, Perl, tar, base64, or checksum tools on three glibc userlands.
- Does not prove: SSH framing, cancellation, short/extra input rejection, concurrency,
`MaxSessions=1`, BusyBox, Windows PowerShell/.NET, exclusive lock races, full-size transfer, or
complete-tree verification.
- Checklist items satisfied: Milestone 1 POSIX/Windows primitive, per-connection probe, and
compatibility-failure decisions only. Windows is a specified contract, not executable evidence.
- Follow-up: turn this into purpose-named unit/live tests, add BusyBox and bounded Windows binary
transfer, and do not enable any tuple from this local semantic probe.
### E-M1-BUSYBOX-001 — BusyBox-only primitive baseline fails closed
- Date: 2026-07-14
- Commit SHA / PR: `5c37e8efe`; stacked draft PR
[#8728](https://github.com/stablyai/orca/pull/8728)
- Runner: macOS 26.2 arm64 native; Ubuntu 24.04 arm64 Docker container
- Remote: BusyBox v1.36.1, Ubuntu package `1:1.36.1-6ubuntu3.1`; no SSH daemon
- Transport/network: Docker stdin and Ubuntu package mirror; no SSH
- Exact command: install BusyBox, enumerate applets, install its applet symlinks into an isolated
`PATH`, then run the declared `sh`/`cat`/`mkdir`/`rm`/`mv`/`chmod`/`test`/`nohup` semantic probe
- Result: PASS for fail-conservative classification; the probe exited 127 because this BusyBox build
provides all declared applets except `nohup`, so it is ineligible and must select legacy
- Duration and resource metrics: 4.6 s including package installation; one container/process stream;
peak memory not instrumented
- Artifact/log/trace link: local stdout recorded
`BusyBox v1.36.1 (Ubuntu 1:1.36.1-6ubuntu3.1) multi-call binary`; applet inventory omitted `nohup`
- Oracle proved: the selector cannot infer compatibility from “BusyBox 1.36.1” alone and the exact
declared primitive probe rejects this variant rather than attempting a partial bundled install.
- Does not prove: Alpine's BusyBox build, BusyBox plus an external `nohup`, SSH behavior, or any
passing BusyBox tuple. No BusyBox bundled support is claimed.
- Checklist items satisfied: Milestone 1 initial BusyBox variant record and deterministic disable
rule.
- Follow-up: add this missing-`nohup` case to the committed selector/primitive suite and retain
legacy unless a complete BusyBox environment passes live SSH evidence.
### E-M1-BUDGET-DECISION-001 — Fail-closed resource, timeout, and rollout budgets
- Date: 2026-07-14
- Commit SHA / PR: `5c37e8efe`; stacked draft PR
[#8728](https://github.com/stablyai/orca/pull/8728)
- Runner: documentation decision in the macOS 26.2 arm64 native worktree
- Remote: not applicable; measured legacy and bundled baselines remain open
- Transport/network: not applicable; the decision defines later 1/10/100 Mbps and 50/100/200 ms
shaped tests
- Exact command: plan/checklist content validation plus arithmetic review of every byte/count/time
ceiling; no runtime benchmark is represented by this entry
- Result: PASS for recording release-blocking upper bounds and paired comparison rules; no
performance gate is claimed passed
- Duration and resource metrics: decision/content validation only; runtime metrics intentionally
absent until the baseline harness is implemented
- Artifact/log/trace link: “Operational budgets and rollout policy” in this checklist and “Hard
resource and latency budgets” in the HTML plan
- Oracle proved: implementation now has explicit rejection, cache, memory, concurrency, timeout,
cancellation, warm/cold latency, fallback-delay, and legacy-retention thresholds to test against.
- Does not prove: that the limits fit the final full-size archive, that either implementation stays
below them, hosted-runner stability, or any baseline/regression result. Those boxes remain open.
- Checklist items satisfied: Milestone 1 cache/archive/time/memory/channel/latency/fallback-duration,
paired-runner-method, and offline/missing-asset policy decisions.
- Follow-up: measure legacy first, instrument file/channel/memory/cancellation metrics, and revise
both plan files before implementation only if evidence proves a limit infeasible.
### E-M1-TRUST-DECISION-001 — Manifest and native-signing trust policy
- Date: 2026-07-14
- Commit SHA / PR: `5c37e8efe`; stacked draft PR
[#8728](https://github.com/stablyai/orca/pull/8728)
- Runner: macOS 26.2 arm64 native for local Ed25519 probe; historical native Windows Server 2022 x64
GitHub-hosted signing rehearsal jobs
- Remote: not applicable; no SSH transfer or target-native execution of a relay artifact
- Transport/network: local `tweetnacl` sign/verify plus GitHub Actions/SignPath artifact round trips
- Exact command:
```sh
rg -n 'tweetnacl|CSC_LINK|APPLE_ID|SIGNPATH|SignPath|Get-AuthenticodeSignature' package.json .github/workflows config
node --input-type=module <inline-tweetnacl-sign-mutate-verify-harness>
gh run view 28987534795 --repo stablyai/orca --json status,conclusion,createdAt,updatedAt,url,jobs
gh run view 28988432001 --repo stablyai/orca --json status,conclusion,createdAt,updatedAt,url,jobs
```
- Result: PASS for technical feasibility and existing Windows signing evidence. The local probe made
and verified a 64-byte Ed25519 signature with `tweetnacl`, derived the SHA-256 public-key ID, and
rejected a changed payload. SignPath test-policy run `28987534795` and release-policy run
`28988432001` both signed/restored inner PE files, rebuilt/signed the installer, and passed
end-to-end signature verification.
- Duration and resource metrics: local Ed25519 probe under 0.1 s; test SignPath job 10m7s; production
SignPath rehearsal 17m24s; signing memory not instrumented
- Artifact/log/trace link:
- https://github.com/stablyai/orca/actions/runs/28987534795/job/86019904578
- https://github.com/stablyai/orca/actions/runs/28988432001/job/86022677749
- Oracle proved: the chosen signature primitive works through an already packaged dependency, and
the repository's existing Windows release machinery can return signed inner native bytes before
final packaging/hashing.
- Does not prove: canonical serializer implementation, protected manifest environment/secret,
dual-key rotation, revocation, action-SHA pinning, artifact attestations, macOS relay-native
signing/notarization, key custody, WDAC/Gatekeeper/AV, or any signed relay runtime. Those remain
release-blocking implementation/operational gates.
- Checklist items satisfied: Milestone 1 algorithm, canonical-byte, key-custody policy, rotation,
anti-rollback, keyless-provenance, and native macOS/Windows signing decisions only.
- Follow-up: implement hostile-input/canonical/signature tests without real secrets, then provision
and rehearse the protected environment before any release workflow can sign a manifest.
### E-M1-ENDPOINT-DECISION-001 — Native trust validation environment contract
- Date: 2026-07-14
- Commit SHA / PR: `5c37e8efe`; stacked draft PR
[#8728](https://github.com/stablyai/orca/pull/8728)
- Runner: documentation decision in the macOS 26.2 arm64 native worktree
- Remote: no approved macOS 13.5, Windows Server 2022/Windows 11 arm64, or WDAC-enforced snapshot was
executed
- Transport/network: not applicable
- Exact command: repository signing-workflow inspection plus synchronized checklist/HTML content
validation; no endpoint-protection command is represented by this decision entry
- Result: PASS for defining exact target-native environments and fail-closed outcomes; all execution
gates remain open
- Duration and resource metrics: decision/content validation only
- Artifact/log/trace link: Milestone 1 trust section and HTML “OS-native trust controls” risk
- Oracle proved: future Gatekeeper/Defender/WDAC evidence has concrete OS/architecture, quarantine,
policy mode, identity logging, and release-blocking requirements.
- Does not prove: snapshot/provider availability, policy ownership, actual signature acceptance,
antivirus behavior, native loading, PTY/watcher smoke, or any endpoint-protection pass.
- Checklist items satisfied: Milestone 1 endpoint-protection environment decision only.
- Follow-up: provision or approve the snapshot pool and keep every affected tuple disabled until the
target-native runs pass.
### E-M1-DECISION-DOC-002 — Remaining Milestone 1 plan-content validation
- Date: 2026-07-14
- Commit SHA / PR: `5c37e8efe`; stacked draft PR
[#8728](https://github.com/stablyai/orca/pull/8728)
- Runner: macOS 26.2 arm64 native; Node v26.0.0 and pnpm 10.24.0
- Remote: not applicable; documentation/content validation only
- Transport/network: local files only
- Exact command: purpose-built inline Node validation using `marked` and `parse5`, required-content
assertions for all newly recorded Milestone 1 decisions, `pnpm exec oxfmt --check` on both
artifacts, and `git diff --check`
- Result: PASS; `links=1 fences=2 htmlIds=11 fragmentLinks=9`, no
parse/fragment/duplicate-ID/content/format/whitespace findings
- Duration and resource metrics: structural validation 42 ms; formatter check 253 ms; resource
usage not instrumented
- Artifact/log/trace link: this checklist and the linked HTML plan
- Oracle proved: both artifacts contain synchronized legacy-family, bootstrap, BusyBox,
offline/fallback, numeric-budget, manifest-trust, native-signing, and endpoint-environment decisions
and remain structurally valid.
- Does not prove: implementation, measured budget compliance, key provisioning, native trust, live
transfer, or any enabled tuple.
- Checklist items satisfied: evidence-backed synchronization of the remaining safely decidable
Milestone 1 policy content.
- Follow-up: keep unresolved remote-pool and measured-baseline gates open while contract-only work
proceeds without secrets or a runtime behavior switch.
### E-M2-RED-001 — Missing contract modules and canonical-vector red baseline
- Date: 2026-07-14
- Commit SHA / PR: `959bc05caca7e5ccb4c69b47c1bf6f5b47671c57` plus uncommitted Work
Package 1 tests; stacked draft PR [#8728](https://github.com/stablyai/orca/pull/8728)
- Runner: macOS 26.2 arm64 native; Node v26.0.0 and pnpm 10.24.0
- Remote: not applicable; pure local contract tests
- Transport/network: local Vitest only; no SSH or GitHub request
- Exact command:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
src/main/ssh/ssh-relay-artifact-schema.test.ts \
src/main/ssh/ssh-relay-runtime-identity.test.ts \
src/main/ssh/ssh-relay-manifest-signature.test.ts \
src/main/ssh/ssh-relay-release-asset.test.ts \
src/main/ssh/ssh-relay-artifact-selector.test.ts
```
- Result: FAIL as the intended executable red baseline: signature and selector suites failed to
import because their production modules did not exist; the identity vector still contained its
explicit replacement marker; and one native-package fixture reached the undeclared-parent guard
before the intended native-package guard. Four files failed, one passed, with 35 tests executed
(33 passed and 2 failed) plus two import-failed suites.
- Duration and resource metrics: 292 ms Vitest duration; no runtime-transfer resources apply.
- Artifact/log/trace link: local command output retained in the implementation session; test paths
above are the durable repro.
- Oracle proved: the new tests were discriminating before the missing signature/selector modules and
canonical vector were implemented, and the native-package fixture needed to preserve tree
consistency to reach its intended oracle.
- Does not prove: behavior before all schema/identity files existed, live SSH, a real archive,
cryptographic key custody, target-native execution, or any production-path failure.
- Checklist items satisfied: red half of the Work Package 1 contract-test gate only.
- Follow-up: implemented and superseded for green behavior by E-M2-CONTRACT-001; retained as red
history.
### E-M2-CONTRACT-001 — Manifest, identity, signature, URL, and selector contracts
- Date: 2026-07-14
- Commit SHA / PR: `b9d80a4cbca43c344a3a5fbdc669fa97c7527da0`; stacked draft PR
[#8728](https://github.com/stablyai/orca/pull/8728); PR CI evidence pending
- Runner: macOS 26.2 arm64 native; Node v26.0.0 and pnpm 10.24.0 (repository requests Node 24)
- Remote: not applicable; pure local schema, cryptography, identity, release-name, and selection tests
- Transport/network: local Vitest/static tools only; no SSH, release download, or GitHub API call
- Exact command:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
src/main/ssh/ssh-relay-artifact-schema.test.ts \
src/main/ssh/ssh-relay-runtime-identity.test.ts \
src/main/ssh/ssh-relay-manifest-signature.test.ts \
src/main/ssh/ssh-relay-release-asset.test.ts \
src/main/ssh/ssh-relay-artifact-selector.test.ts
pnpm run typecheck
pnpm run lint
pnpm run check:max-lines-ratchet
pnpm exec oxfmt --check \
src/main/ssh/ssh-relay-artifact-consistency.ts \
src/main/ssh/ssh-relay-artifact-path-policy.ts \
src/main/ssh/ssh-relay-artifact-schema.ts \
src/main/ssh/ssh-relay-artifact-selector.ts \
src/main/ssh/ssh-relay-manifest-signature.ts \
src/main/ssh/ssh-relay-release-asset.ts \
src/main/ssh/ssh-relay-runtime-identity.ts \
src/main/ssh/ssh-relay-artifact-schema.test.ts \
src/main/ssh/ssh-relay-artifact-selector.test.ts \
src/main/ssh/ssh-relay-manifest-signature.test.ts \
src/main/ssh/ssh-relay-release-asset.test.ts \
src/main/ssh/ssh-relay-runtime-identity.test.ts \
src/main/ssh/ssh-relay-artifact-test-manifest.ts \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md
git diff --cached --check
```
- Result: PASS locally. Five suites passed with 68/68 tests; Node/CLI/web typecheck passed; the full
repository lint/reliability/localization chain exited zero with pre-existing warnings only; the
355-entry max-lines ratchet reported no new bypass; touched-file formatting and tracked diff checks
passed.
- Duration and resource metrics: final Vitest duration 540 ms (1.33 s wall); typecheck 3.91 s; full
lint 23.62 s; formatting check 874 ms; max-lines and diff checks under 1 s. Runtime memory,
channels, handles, files, and cancellation do not apply to this disconnected pure contract layer
and were not instrumented.
- Artifact/log/trace link: local command output; canonical runtime identity vector
`sha256:5afe9c8094ec61a5eec6f7be6d1035faacee7362871985c74cc6ee6aceea8677`; canonical
unsigned-manifest byte hash `e78bf4416628a91055035dc7926035cbf633f29d3618be34e041c6dc5e0794fb`;
draft PR #8728
- Oracle proved: strict versioned parsing; bounded sizes/counts; portable path and special-entry
rejection; required runtime closure and executable Node mode; tuple/archive/attestation
cross-consistency; stable content identity; exact stable/RC/perf tag and direct-URL rules; initial
and dual Ed25519 signing with canonical unsigned bytes; unknown/malformed/duplicate/mismatched
key failure; conservative Linux glibc/musl, macOS, Windows-bootstrap, translated-process, unknown,
old, unavailable, and ambiguous selection.
- Does not prove: Node 24 execution, real archive parsing/extraction, local cache/download, target
probes, SSH/SFTP/system-SSH transfer, runtime build/native loading, signing environment custody,
release publication, fallback state, UI rollout, performance, or any live matrix cell. No module
is connected to a production call site and no tuple is enabled.
- Checklist items satisfied: Milestone 2 manifest-schema, signed-content, content-identity,
release-name/URL, schema-level hostile path/type, and pure selector contract items explicitly
marked above; verification command inventory entry.
- Follow-up: push and record the exact GitHub Actions result, then begin Work Package 2 target-native
runtime assembly without production consumption.
### E-M2-CI-001 — Work Package 1 full PR verification and packaging gate
- Date: 2026-07-14
- Commit SHA / PR: exact checked head `6732d911a8e81ad071925e68d3a60fec2e3e452a`, containing
implementation commit `b9d80a4cbca43c344a3a5fbdc669fa97c7527da0`; stacked draft PR
[#8728](https://github.com/stablyai/orca/pull/8728)
- Runner: GitHub-hosted native x64 `ubuntu-latest`, resolved to Ubuntu 24.04 image
`20260705.232.1`; image provisioner `20260624.560`; runner `2.335.1`; Node v24.18.0
- Remote: not applicable; the workflow provisioned no SSH server and exercised no remote tuple
- Transport/network: GitHub Actions checkout/package traffic only; no SSH/SFTP/system-SSH runtime
transfer
- Exact command:
```sh
gh run watch 29329963564 --repo stablyai/orca --exit-status
gh pr view 8728 --repo stablyai/orca \
--json url,isDraft,state,headRefOid,baseRefOid,mergeStateStatus,statusCheckRollup
gh api repos/stablyai/orca/actions/jobs/87075275741
gh run view 29329963564 --repo stablyai/orca --job 87075275741 --log
```
- Result: PASS. The `verify` job completed successfully on the exact PR head; repository lint,
reliability gates, max-lines, typecheck, Git 2.25 compatibility, 2,803 passing test files with
29,695 passing tests, unpacked Linux app packaging, packaged daemon load, and packaged CLI smoke
all passed. Nine test files and 55 tests were intentionally skipped by the existing suite.
- Duration and resource metrics: 11m52s from `2026-07-14T11:44:44Z` to
`2026-07-14T11:56:36Z`; the workflow did not report peak memory, channel, handle, or file counts.
- Artifact/log/trace link:
https://github.com/stablyai/orca/actions/runs/29329963564/job/87075275741
- Oracle proved: Work Package 1 compiles and passes the repository's full PR regression/package gate
under the pinned Node 24 runtime on a native Linux x64 runner; PR #8728 is draft, open, and reports
a clean merge state at the checked head.
- Does not prove: live SSH, Linux arm64, macOS, Windows, musl, archive assembly/extraction, native
runtime execution, signing, release assets, download/cache, transfer/install, fallback, UI,
performance budgets, or any enabled tuple. The existing relay build exercised by packaging remains
the legacy JavaScript build, not a self-contained runtime artifact.
- Checklist items satisfied: Work Package 1 exact-head PR CI gate only; no live matrix or runtime
tuple cell.
- Follow-up: keep PR #8728 draft and isolated; begin Work Package 2 on a new stacked branch with no
production consumer.
### E-M3-NODE-RED-001 — Node release verifier red gate
- Date: 2026-07-14
- Commit SHA / PR: `0c299fe189310b6dbd539f0f0f506b240524ba6a` plus uncommitted Work Package 2 test; no Work Package 2 PR yet
- Runner: macOS 26.2 arm64 native; Node v26.0.0 and pnpm 10.24.0
- Remote: not applicable; local test discovery only
- Transport/network: none
- Exact command:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-node-release-verification.test.mjs
```
- Result: expected FAIL before implementation. Vitest could not import the intentionally missing
`config/scripts/ssh-relay-node-release-verification.mjs`; one suite failed before collecting tests.
- Duration and resource metrics: 136 ms Vitest duration; archive/runtime resources do not apply.
- Artifact/log/trace link: durable test path above; local command output retained in the
implementation session.
- Oracle proved: the focused suite was discriminating before the verifier facade and domain modules
existed.
- Does not prove: any validation behavior, cryptographic verification, downloaded byte, archive,
extraction, runtime execution, SSH behavior, or platform tuple.
- Checklist items satisfied: red half of the Milestone 3 Node provenance implementation gate only.
- Follow-up: green implementation and real release-input proof are recorded in
E-M3-NODE-PROVENANCE-001.
### E-M3-NODE-PROVENANCE-001 — Pinned Node metadata and archive verification
- Date: 2026-07-14
- Commit SHA / PR: implementation commit `f2b387b21bbe6a3863ff1a492a1a03b65e0a0477` in stacked
draft PR [#8741](https://github.com/stablyai/orca/pull/8741); native PR CI pending
- Runner: focused tests on macOS 26.2 arm64 with Node v26.0.0/pnpm 10.24.0; real proof in
Docker Engine 29.2.1 on Linux/arm64 using `node:24-bookworm` resolved to
`node@sha256:032e78d7e54e352129831743737e3a83171d9cc5b5896f411649c597ce0b11ea`,
Node v24.17.0, and GnuPG/gpgv 2.2.40
- Remote: not applicable; local container build-input verification only
- Transport/network: HTTPS downloads from exact `https://nodejs.org/dist/v24.18.0/` URLs; Debian
package mirrors supplied `ca-certificates`, `curl`, `gnupg`, and `gpgv`; no SSH transport
- Exact command:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-node-release-verification.test.mjs
docker run --rm -v "$PWD:/workspace:ro" -w /workspace node:24-bookworm \
bash -lc 'set -euo pipefail
apt-get update -qq
DEBIAN_FRONTEND=noninteractive apt-get install -y -qq ca-certificates curl gnupg gpgv >/dev/null
mkdir -p /tmp/node-inputs
curl --fail --silent --show-error --location --proto "=https" --tlsv1.2 https://nodejs.org/dist/v24.18.0/SHASUMS256.txt --output /tmp/node-inputs/SHASUMS256.txt
curl --fail --silent --show-error --location --proto "=https" --tlsv1.2 https://nodejs.org/dist/v24.18.0/SHASUMS256.txt.sig --output /tmp/node-inputs/SHASUMS256.txt.sig
curl --fail --silent --show-error --location --proto "=https" --tlsv1.2 https://nodejs.org/dist/v24.18.0/node-v24.18.0-linux-x64.tar.xz --output /tmp/node-inputs/node-v24.18.0-linux-x64.tar.xz
node config/scripts/verify-ssh-relay-node-release-inputs.mjs --inputs-directory /tmp/node-inputs --archive linux-x64-glibc'
```
- Result: PASS. Seven focused tests passed. The real verifier accepted the pinned release-key hash
`84b1ca614406f341cb86e72920f5a64687a13ab67ab84038bcf2abba97898a84`, exact signer
`C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C`, authenticated checksum-document hash
`3927bab574a00ca0560c9583fe19655ba19603a1c5851414e4325d34ac50e469`, all six pinned
checksum entries, and the 31,511,588-byte Linux x64 archive hash
`55aa7153f9d88f28d765fcdad5ae6945b5c0f98a36881703817e4c450fa76742`.
- Duration and resource metrics: final focused Vitest duration 160 ms; container provisioning,
metadata download, archive download, and verification completed in approximately 11 seconds.
Peak memory and network bytes were not instrumented; the accepted archive size was 31,511,588
bytes and hashing was streaming/bounded.
- Artifact/log/trace link: committed contract, pinned ASCII release key, purpose-named verifier
modules/CLI, and local command output; no artifact was published or retained in the repository.
- Oracle proved: strict immutable six-tuple contract validation; bounded metadata/archive hashing;
exact release-key bytes; detached-signature success through gpgv; exact signer fingerprint;
authenticated checksum-to-archive cross-checking; duplicate/malformed/missing/mismatched input
rejection in focused tests; and one real official Linux x64 archive byte hash.
- Does not prove: archive safety or extraction, Linux x64 execution (the container was arm64), any
bundled Node/native dependency/PTY/watcher behavior, the other five archive downloads, target-native
assembly/signing, SSH transfer, release publication, cache behavior, or any enabled tuple.
- Checklist items satisfied: Milestone 3 pinned Node/downloaded-binary checksum/upstream-signature
implementation gate and the two Milestone 3 verification-command inventory entries only.
- Follow-up: assemble the first runtime on a target-native runner, inspect its archive, execute its
bundled Node and native dependencies, then fill only the evidence cells actually proved.
### E-M3-WINDOWS-CONPTY-GAP-001 — Candidate omitted the production ConPTY runtime closure
- Date: 2026-07-14
- Commit SHA / PR: source audit while preparing implementation commit
`922edb6ff28199b394f508731fd18a635bec49a0`; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: macOS 26.2 arm64; source and installed-package inspection only
- Remote and transport: none
- Exact commands:
```sh
rg -n "useConpty|nodePty\\.spawn|pty\\.spawn" src/main src/shared
sed -n '470,515p' src/main/daemon/pty-subprocess.ts
sed -n '1,130p' node_modules/node-pty/scripts/post-install.js
find node_modules/node-pty/third_party/conpty -maxdepth 3 -type f -print | sort
rg -n "conpty\\.dll|OpenConsole|useConptyDll" \
config/scripts/ssh-relay-runtime-tree.mjs \
config/scripts/ssh-relay-runtime-smoke-child.cjs
```
- Result: discriminating discovery. Orca's daemon PTY spawn passes `useConptyDll: true` on Windows.
Pinned `node-pty@1.1.0` supplies architecture-specific `conpty.dll` and `OpenConsole.exe` under
`third_party/conpty/1.23.251008001/win10-{x64,arm64}` and its postinstall copies those files to
`build/Release/conpty`. The candidate directly invoked `node-gyp`, copied only `conpty.node` and
`conpty_console_list.node`, and smoked with `useConpty: true` but not `useConptyDll: true`.
- Oracle proved: the candidate artifact could pass its proposed smoke while omitting files required
by the production relay PTY configuration. Both plan artifacts now require the exact ConPTY
runtime closure and production-mode smoke before a Windows executable cell can pass.
- Does not prove: corrected staging, artifact-tree identity, ConPTY execution, Authenticode/native
trust, Windows build, SSH, transfer, install, or any enabled tuple.
- Checklist items satisfied: none; this is a red gap record and its implementation item remains open.
- Follow-up: stage the tuple-specific files without running an implicit downloader, copy and hash
them into the runtime, use `useConptyDll: true` in native smoke, and obtain Windows x64/arm64 CI
evidence before checking the implementation item.
### E-M3-WINDOWS-INPUT-GAP-001 — Windows ZIP lacks native build inputs
- Date: 2026-07-14
- Commit SHA / PR: investigation while implementing the Windows artifact-only slice in draft PR
[#8741](https://github.com/stablyai/orca/pull/8741); no Windows artifact was produced or enabled
- Runner: macOS 26.2 arm64; `curl` plus system `unzip`; inspection only
- Remote and transport: exact HTTPS download from
`https://nodejs.org/dist/v24.18.0/node-v24.18.0-win-x64.zip`; no SSH or release upload
- Exact commands:
```sh
curl --fail --silent --show-error --location --proto '=https' --tlsv1.2 \
--connect-timeout 20 --max-time 300 --retry 2 --retry-delay 2 --retry-all-errors \
https://nodejs.org/dist/v24.18.0/node-v24.18.0-win-x64.zip \
--output /tmp/orca-node-win-input-check/node-v24.18.0-win-x64.zip
unzip -l /tmp/orca-node-win-input-check/node-v24.18.0-win-x64.zip | \
rg 'node\\.exe$|include/node/node\\.h$|node\\.lib$|LICENSE$'
curl --fail --silent --show-error --location --proto '=https' --tlsv1.2 \
https://nodejs.org/dist/v24.18.0/SHASUMS256.txt | \
rg 'headers|win-(x64|arm64)/node\\.lib|win-(x64|arm64)\\.zip'
```
- Result: discriminating discovery. The authenticated x64 ZIP contains 2,449 files and 105,728,964
expanded bytes, including the 92,534,088-byte `node.exe` and root `LICENSE`, but no
`include/node/node.h` and no `node.lib`. The same signed checksum document authenticates
`node-v24.18.0-headers.tar.gz` as
`6c7d41d83c3481d2301115b8ce4a44b7d4fbfa52859b1aac14f445d460137887`,
`win-x64/node.lib` as
`589684168a73547ca47cd22d76a4e465ef561abe89fb1b2b23fe35bbe857d505`, and
`win-arm64/node.lib` as
`7da03c5111815b69bbe63ffd2e51b28cd69eec9f545b7ccb8756efffdbb88dc2`.
- Oracle proved: the original six-binary-archive contract is insufficient to build `node-pty` on
Windows without an unrecorded `node-gyp` download. Both plan artifacts now require the signed
headers archive and per-architecture import library as explicit immutable build inputs.
- Does not prove: headers/import-library download or extraction, Windows build, ZIP determinism,
bundled Node/ConPTY/watcher execution, signing/trust, SSH, or any enabled tuple.
- Checklist items satisfied: Windows build-input policy correction only; implementation remains
unchecked.
- Follow-up: extend the signed input schema/verifier and hostile-input tests, stage only the required
headers and `node.lib`, then run the native Windows build with implicit downloads disabled.
### E-M3-WINDOWS-ZIP-RED-001 — Windows ZIP/input contract red gate
- Date: 2026-07-14
- Commit SHA / PR: uncommitted Windows artifact-only tests on top of `c308107a9`; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: macOS 26.2 arm64; Node v26.0.0 and pnpm 10.24.0
- Remote and transport: none; synthetic local test discovery only
- Exact command:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-runtime-zip.test.mjs \
config/scripts/ssh-relay-node-zip-inspection.test.mjs
```
- Result: expected FAIL before implementation. Both suites failed at import because the deliberately
missing `ssh-relay-runtime-zip.mjs` and `ssh-relay-node-zip-inspection.mjs` modules did not exist;
zero tests were collected.
- Duration and resource metrics: 196 ms Vitest duration; archive/runtime resources do not apply.
- Oracle proved: both Windows ZIP boundaries were discriminating before their implementations.
- Does not prove: any ZIP validation, real Node input, Windows build/execution, SSH, or tuple support.
- Checklist items satisfied: red half of the Windows ZIP/input contract gate only.
- Follow-up: E-M3-WINDOWS-INPUT-001 records the first green implementation and real signed inputs.
### E-M3-WINDOWS-INPUT-001 — Signed Windows Node inputs and bounded selective extraction
- Date: 2026-07-14
- Commit SHA / PR: implementation commit `922edb6ff28199b394f508731fd18a635bec49a0`;
draft PR [#8741](https://github.com/stablyai/orca/pull/8741); native Windows CI pending
- Runners: focused tests and real selective extraction on macOS 26.2 arm64 with Node v26.0.0/pnpm
10.24.0; signature/checksum/file verification in native Linux arm64 container
`node@sha256:032e78d7e54e352129831743737e3a83171d9cc5b5896f411649c597ce0b11ea`
with GnuPG/gpgv 2.2.40
- Remote and transport: exact HTTPS inputs from `nodejs.org/dist/v24.18.0`; no SSH, release upload,
Windows execution, or remote-host egress
- Exact commands:
```sh
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-zip-inspection.test.mjs \
config/scripts/ssh-relay-runtime-artifact.test.mjs \
config/scripts/ssh-relay-runtime-zip.test.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs
docker run --rm \
-v "$PWD:/workspace:ro" -v /tmp/orca-node-win-input-check:/inputs:ro \
-w /workspace \
node@sha256:032e78d7e54e352129831743737e3a83171d9cc5b5896f411649c597ce0b11ea \
bash -lc 'set -euo pipefail
apt-get update -qq
DEBIAN_FRONTEND=noninteractive apt-get install -y -qq gnupg gpgv >/dev/null
node config/scripts/verify-ssh-relay-node-release-inputs.mjs \
--inputs-directory /inputs --archive win32-x64'
node --input-type=module -e \
"import {readFile} from 'node:fs/promises';
import {extractVerifiedSshRelayNodeZipBuildInputs} from
'./config/scripts/ssh-relay-node-zip-inspection.mjs';
const release=JSON.parse(await readFile(
'./config/ssh-relay-node-release-v24.18.0.json','utf8'));
console.log(await extractVerifiedSshRelayNodeZipBuildInputs(
release,'win32-x64','<node-zip>','<exclusive-destination>',
{headersArchivePath:'<headers.tar.gz>',importLibraryPath:'<win-x64/node.lib>'}));"
```
- Result: PASS. Six focused suites passed 19/19 tests. The real verifier authenticated signer
`C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C`, the exact signed checksum document, all nine pinned
release inputs, the 37,176,245-byte x64 ZIP, 9,951,449-byte headers archive, and 2,986,260-byte x64
import library. Bounded ZIP inspection consumed 2,449 entries/1,984 files/105,728,964 expanded
bytes and selectively staged only `node.exe` plus `LICENSE`. Bounded headers inspection consumed
3,326 entries/2,726 files/58,969,198 expanded bytes and staged only `include`; `node.lib` was
rehashed before and after exclusive copy to `Release/node.lib`.
- Resource and integrity details: all input hashing and archive entry verification streamed; each
file was bounded by 256 MiB, aggregate input expansion by 1 GiB, path depth by 32, path bytes by
512, and entries by 100,000. Synthetic runtime ZIP creation was byte-identical for the same tree
and epoch and rejected extra entries and content mismatch. Peak RSS, open files, and cancellation
settlement were not instrumented in this local slice.
- Oracle proved: exact schema and signed-checksum coverage for the Windows ZIP, common headers, and
tuple import library; missing/malformed input rejection; safe portable ZIP paths, traversal and
case-fold collision rejection; CRC-32 plus SHA-256 streaming; bounded selective extraction; exact
post-copy hashes; and deterministic synthetic runtime ZIP packing/inspection.
- Does not prove: native Windows `node-pty` build, that `node-gyp` succeeds offline, bundled
`node.exe`/ConPTY/watcher execution, full-runtime ZIP identity on Windows, Windows x64/arm64
signing/trust, oldest baseline, SSH/SFTP/system-SSH, release publication, cache/fallback/UI, or any
enabled tuple. Local `gpg`/`gpgv` were unavailable on macOS, so the signature proof is the pinned
Linux container command above; Windows jobs explicitly select Git for Windows' bundled tools.
- Checklist items satisfied: explicit signed Windows build-input contract and bounded local staging
only; no Windows per-tuple build/executable cell is checked.
- Follow-up: run the exact builder on native `windows-2022` and `windows-11-arm`, require the
loopback-only `node-gyp` fallback URL to remain unused, and record only the cells actually passed.
### E-M3-WINDOWS-LOCAL-002 — Corrected Windows artifact contracts and local static gates
- Date: 2026-07-14
- Commit SHA / PR: implementation commit `922edb6ff28199b394f508731fd18a635bec49a0`;
draft PR [#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: macOS 26.2 arm64; Node v26.0.0 and pnpm 10.24.0. The repository requires Node 24, so
exact-head draft-PR CI is the authoritative supported-Node result.
- Remote and transport: none; synthetic contracts and repository static checks only
- Exact commands:
```sh
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-zip-inspection.test.mjs \
config/scripts/ssh-relay-runtime-artifact.test.mjs \
config/scripts/ssh-relay-runtime-windows-tree.test.mjs \
config/scripts/ssh-relay-runtime-zip.test.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs
pnpm run typecheck
pnpm exec oxlint
pnpm run check:max-lines-ratchet
GOMAXPROCS=2 pnpm run lint
pnpm exec oxfmt --check \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md \
docs/reference/plans/2026-07-14-ssh-relay-github-release-plan.html
git diff --check
```
- Result: PASS. Seven focused suites passed 21/21 tests in 290 ms. Typecheck, oxlint, max-lines,
full lint/reliability/localization gates, plan formatting, and diff whitespace passed. Oxlint
reported only pre-existing warnings outside this package. Full lint used `GOMAXPROCS=2` because
the external Go type-aware linter had previously segfaulted on an existing dependency declaration
at unconstrained concurrency.
- Oracle proved: deterministic synthetic Windows ZIP packing and complete ZIP reinspection;
signed-input schema and bounded ZIP/header staging contracts; Windows-unsafe header path
rejection; the Windows runtime-tree identity contains `conpty.dll` and `OpenConsole.exe` as
native runtime files; the smoke configuration selects `useConptyDll: true`; the workflow declares
exact x64/arm64 native runners and has read-only, unpublished artifact authority.
- Resource metrics: focused Vitest duration 290 ms. Runtime RSS, open files/channels, cancellation
settlement, artifact size, and native build/smoke duration do not apply to these synthetic checks
and remain open for target-native evidence.
- Does not prove: Windows native compilation, offline `node-gyp`, staged ConPTY execution,
bundled-Node/PTY/watcher smoke, full artifact bytes or reproducibility, native trust/signing,
oldest baseline, SSH transfer/install, publication, resolver/cache/fallback/UI, or any enabled
tuple.
- Checklist items satisfied: the added purpose-named local Windows-tree command only. Windows
per-tuple build/executable and ConPTY implementation boxes remain unchecked pending native CI.
- Follow-up: push this exact implementation head and record exact Windows x64/arm64 jobs, images,
artifact IDs/hashes/sizes, build/verify/smoke durations, RSS, and any discriminating failure.
### E-M3-WINDOWS-CI-RED-002 — First Windows native jobs stopped at contract tests
- Date: 2026-07-14
- Commit SHA / PR: exact workflow head `539cd060e74386ba33bf1291c940b68fba9af13b` containing
implementation commit `922edb6ff28199b394f508731fd18a635bec49a0`; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Run: [SSH Relay Runtime Artifacts 29338911990](https://github.com/stablyai/orca/actions/runs/29338911990)
- Native jobs:
- x64 job `87105197603`: requested `windows-2022`; resolved `win22` image
`20260706.237.1`, GitHub-hosted X64, Windows Server 2022 Datacenter build 20348, Node v24.18.0;
failed after 1m17s.
- arm64 job `87105197605`: requested `windows-11-arm`; resolved `win11-arm64` image
`20260706.102.1`, GitHub-hosted ARM64, Windows 10 Enterprise build 26200, Node v24.18.0; failed
after 3m37s.
- Remote and transport: none. Both jobs stopped before Node input download, native build, runtime
smoke, or artifact upload.
- Exact commands:
```sh
gh api repos/stablyai/orca/actions/jobs/87105197603/logs > /tmp/orca-win-x64-red.log
gh api repos/stablyai/orca/actions/jobs/87105197605/logs > /tmp/orca-win-arm64-red.log
rg -n "requested_runner=|resolved_image_os=|resolved_image_version=|runner_arch=|WindowsProductName|WindowsVersion|OsBuildNumber|source_commit=|FAIL|SyntaxError|Node archive is missing" \
/tmp/orca-win-x64-red.log /tmp/orca-win-arm64-red.log
```
- Result: FAIL as a discriminating pre-build gate on both architectures. Each run reported three
failed and four passed suites, with one failed and ten passed collected tests. The x64 test phase
took 1.26s; arm64 took 1.33s. `ssh-relay-node-tar-inspection.test.mjs` created its POSIX tar
fixture from an NTFS file and therefore lost the declared `bin/node` execute bit; the production
inspector correctly rejected it. `ssh-relay-node-release-verification.test.mjs` and
`ssh-relay-runtime-artifact.test.mjs` separately failed at import with only `SyntaxError: Invalid
or unexpected token`; the first logs did not identify a source location.
- Discriminating follow-up: exact head `55f7137c6e065481d2f58fed1353df9a75914fc8` reran in
[run 29339487426](https://github.com/stablyai/orca/actions/runs/29339487426). X64 job
`87107170544` proved the explicit tar-mode correction: five suites and all 11 collected tests
passed in 1.24s. Only the same two import-time syntax errors remained. Both failing suites import
a command-line `.mjs` file with a Unix shebang, while every supported call site already invokes
those files through `node`; the next correction removes only those unused shebangs and preserves
the CLI main guards.
- Second follow-up: exact head `ef94c90663740c657d44e93f758c99016e66b61a` reran in
[run 29339742904](https://github.com/stablyai/orca/actions/runs/29339742904). X64 job
`87108126824` collected all seven suites and 21 tests, proving the shebang correction. Eighteen
tests passed, one POSIX archive test skipped as designed, and two Windows-specific assertions
failed in 1.17s: Git checkout converted the pinned armored key from LF to CRLF, and a POSIX
`chmod(0o600)` rejection assertion ran even though the Windows verifier intentionally takes modes
from verified ZIP metadata. The received key hash
`25cc2da386fe54cfc6a3d683f1df2a5f636014a31be8efadd73a9ecc2208dbec` exactly matches
`sed 's/$/\r/' <pinned-key> | shasum -a 256`; the committed LF bytes remain
`84b1ca614406f341cb86e72920f5a64687a13ab67ab84038bcf2abba97898a84`.
- Oracle proved: both requested hosted runner labels resolve to native Node 24 environments, MSVC
setup succeeds, Git for Windows supplies both required GPG tools, frozen source installation
succeeds, and the test command stops the artifact build before any download or upload. It also
discriminated one cross-platform fixture assumption.
- Does not prove: that the explicit-mode fixture correction is green on Windows; the cause of the
two import-time syntax errors; Node input download/signature verification; native compilation;
offline `node-gyp`; bundled Node/ConPTY/watcher execution; ZIP output; native trust; SSH; or any
enabled tuple.
- Checklist items satisfied: exact Windows runner-label resolution only. No Windows build,
executable, archive, or artifact cell is checked.
- Follow-up: mark the pinned armored key `-text` so checkout preserves its authenticated bytes,
keep the filesystem-mode mutation assertion POSIX-only, and rerun both native architectures.
Continue to block input download/build until all seven suites pass.
### E-M3-WINDOWS-CI-RED-003 — Native Windows input verification exposed GPG path incompatibility
- Date: 2026-07-14
- Commit SHA / PR: exact workflow head `b387ac48cda70b60a5a148c03ce740f9afedf9cb`; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Run: [SSH Relay Runtime Artifacts 29339998273](https://github.com/stablyai/orca/actions/runs/29339998273)
- Native jobs:
- x64 job `87109014067`: requested `windows-2022`; resolved `win22` image
`20260706.237.1`, GitHub-hosted X64, Windows Server 2022 Datacenter build 20348, Node v24.18.0;
failed after 1m21s.
- arm64 job `87109014073`: requested `windows-11-arm`; resolved `win11-arm64` image
`20260706.102.1`, GitHub-hosted ARM64, Windows 10 Enterprise build 26200, Node v24.18.0; failed
after approximately 3m.
- Remote and transport: none. Each job downloaded exact HTTPS inputs from
`nodejs.org/dist/v24.18.0`; neither reached archive extraction, native compilation, smoke, ZIP
creation, or artifact upload.
- Exact commands:
```sh
gh run view 29339998273 --repo stablyai/orca \
--json databaseId,headSha,status,conclusion,url,createdAt,updatedAt,jobs
gh api repos/stablyai/orca/actions/jobs/87109014067/logs | \
rg -n -C 12 "SSH relay runtime build failed|gpgv rejected|invalid key resource|Process completed with exit code"
gh api repos/stablyai/orca/actions/jobs/87109014073/logs | \
rg -n -C 12 "SSH relay runtime build failed|gpgv rejected|invalid key resource|Process completed with exit code"
```
- Result: FAIL as a discriminating signed-input gate on both architectures. All seven focused suites
collected on each runner; 20 tests passed and one POSIX-only test skipped as designed in 1.17s on
x64 and 1.47s on arm64. Exact Node inputs downloaded successfully. Git for Windows `gpgv` then
rejected the exclusive verified-copy keyring path before signature acceptance:
`invalid key resource URL 'C:\\...\\release-key.gpg'`. GnuPG interprets the drive-letter colon
as a resource-URL scheme at this option boundary. Both runners failed closed with `No public key`;
no unverified archive was extracted or executed.
- Oracle proved: the preceding fixture, shebang, checkout-byte, and filesystem-mode corrections are
green on both native Windows architectures; exact release inputs are downloadable; the production
signature gate executes and prevents unverified bytes from progressing. The identical x64/arm64
failure isolates command-path representation rather than architecture-specific cryptography.
- Does not prove: successful Windows signature verification, archive/header/import-library
extraction, offline `node-gyp`, native compilation, bundled Node/ConPTY/watcher execution, ZIP
output or determinism, native trust/signing, oldest baseline, SSH, or any enabled tuple.
- Checklist items satisfied: Windows contract-test portability and fail-closed signed-input behavior
only. No Windows build, executable, archive, or artifact cell is checked.
- Follow-up: run both GPG commands in the exclusive verified-copy directory with cwd-relative paths,
assert the command boundary never receives an absolute drive-letter path, and rerun both native
architectures before any broader Windows correction.
### E-M3-WINDOWS-GPG-PATH-RED-001 — Relative verified-copy command boundary red gate
- Date: 2026-07-14
- Commit SHA / PR: red test introduced before its implementation in correction commit
`b6903b220`; exact base `b387ac48cda70b60a5a148c03ce740f9afedf9cb`; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: macOS 26.2 arm64; Node v26.0.0 and pnpm 10.24.0
- Remote and transport: none; mocked child-process command boundary only
- Exact command:
`pnpm exec vitest run --config config/vitest.config.ts config/scripts/ssh-relay-node-release-verification.test.mjs`
- Result: expected FAIL; one new test failed and seven existing tests passed in 163 ms. The failure
diff showed absolute temporary paths passed to both `gpg --output` and `gpgv --keyring`, while the
required oracle expected cwd-relative verified-copy names and a common exclusive working directory.
- Oracle proved: the regression test discriminates the exact command representation rejected by Git
for Windows in E-M3-WINDOWS-CI-RED-003 without weakening signature/fingerprint validation.
- Does not prove: real GPG execution, Windows compatibility, successful signature verification,
archive extraction/build/smoke, or any tuple support.
- Checklist items satisfied: red half of the Windows GPG path-portability correction only.
- Follow-up: add cwd support to the bounded command runner, pass only explicit relative verified-copy
names, rerun this focused suite, and require native x64/arm64 CI before claiming the correction.
### E-M3-WINDOWS-GPG-PATH-LOCAL-001 — Relative verified-copy command boundary correction
- Date: 2026-07-14
- Commit SHA / PR: implementation commit `b6903b220` on exact base
`b387ac48cda70b60a5a148c03ce740f9afedf9cb`; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: macOS 26.2 arm64; Node v26.0.0 and pnpm 10.24.0. The repository requires Node 24, so
exact-head draft-PR CI remains authoritative.
- Remote and transport: none; mocked GPG command-boundary regression plus local contract/static
checks
- Exact commands:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-node-release-verification.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-zip-inspection.test.mjs \
config/scripts/ssh-relay-runtime-artifact.test.mjs \
config/scripts/ssh-relay-runtime-windows-tree.test.mjs \
config/scripts/ssh-relay-runtime-zip.test.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs
pnpm run typecheck
pnpm exec oxlint
pnpm run check:max-lines-ratchet
GOMAXPROCS=2 pnpm run lint
pnpm exec oxfmt --check \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md \
docs/reference/plans/2026-07-14-ssh-relay-github-release-plan.html
git diff --check
```
- Result: PASS. The focused signature suite passed 8/8 tests in 151 ms; all seven artifact suites
passed 22/22 tests in 313 ms. Typecheck, full oxlint, max-lines ratchet, full
lint/reliability/localization gates, plan formatting, and diff whitespace passed. Oxlint reported
only existing warnings outside this package; full lint used `GOMAXPROCS=2` for the previously
recorded external Go linter stability constraint.
- Oracle proved: both GPG invocations share the exclusive verified-copy directory as their cwd and
receive only explicit `./` paths for the key, keyring, checksum, and signature; existing hash,
command-failure, and exact-fingerprint tests remain green.
- Does not prove: real GPG execution, Git for Windows compatibility, Node 24 support, Windows native
build/smoke, archive output, or any tuple support.
- Checklist items satisfied: local green half of the path-portability correction only. Native CI is
still mandatory before the E-M3-WINDOWS-CI-RED-003 failure is considered corrected.
- Follow-up: run the exact correction on Windows x64/arm64 and all four POSIX artifact jobs, then
record any next discriminating native boundary without broadening this work package.
### E-M3-WINDOWS-CI-RED-004 — Native Windows assembly reached an opaque bounded smoke timeout
- Date: 2026-07-14
- Commit SHA / PR: exact workflow head `42aa02fa9eccf81e40d80f87461ddd232a1cda1f`, containing
implementation commit `b6903b220`; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Run: [SSH Relay Runtime Artifacts 29340686444](https://github.com/stablyai/orca/actions/runs/29340686444),
conclusion `failure`; all four POSIX regression jobs passed and uploaded only unpublished
seven-day Actions artifacts.
- Native Windows jobs:
- x64 job `87111302431`: `windows-2022`, resolved `win22` image `20260706.237.1`, GitHub-hosted
X64, Windows Server 2022 Datacenter build 20348, Node v24.18.0; failed after 4m37s.
- arm64 job `87111302486`: `windows-11-arm`, resolved `win11-arm64` image `20260706.102.1`,
GitHub-hosted ARM64, Windows 10 Enterprise build 26200, Node v24.18.0; failed after 7m9s.
- Remote and transport: no SSH remote. Exact inputs came from `nodejs.org/dist/v24.18.0`; no release
publication or Windows artifact upload occurred.
- Exact commands:
```sh
gh run view 29340686444 --repo stablyai/orca \
--json databaseId,headSha,status,conclusion,url,createdAt,updatedAt,jobs
gh api repos/stablyai/orca/actions/jobs/87111302431/logs | \
rg -n -C 25 "SSH relay runtime verification failed|durationMs|contentId|Process completed with exit code"
gh api repos/stablyai/orca/actions/jobs/87111302486/logs | \
rg -n -C 25 "SSH relay runtime verification failed|durationMs|contentId|Process completed with exit code"
gh api --paginate repos/stablyai/orca/actions/runs/29340686444/artifacts
```
- Result: FAIL at the native bundled smoke on both architectures. Each runner passed all seven
contract suites with 21 passing and one intentionally skipped test, authenticated the exact Node
checksum/signature plus ZIP/headers/import library, compiled the patched native modules, assembled
and reinspected a 60-entry/42-file deterministic-format ZIP, and entered verification's smoke only
after archive/tree integrity checks. X64 produced a 37,212,065-byte ZIP expanding to 97,248,414
bytes, content ID `90823b2c6bf7dad748a4399fe74fdfa8be82ef4a00d727e3a6be173f274fd43f`,
archive SHA-256 `ee7634dea179026b3ba8232294016d939e32edc34e1fd3697dd9e11722285d6a`,
and 146,511.617 ms build duration. Arm64 produced a 33,261,531-byte ZIP expanding to 86,189,740
bytes, content ID `09ec2772bb8c47ee240fd226963b7e251a8060e7f84321cb24d2668bf993e2ca`,
archive SHA-256 `5cb50521ec88d491f1a4183fc13f0b0f688e242e290038c4d34e0125d8e8b2c2`,
and 176,108.728 ms build duration.
- Failure boundary: each bundled-Node smoke exceeded the parent command's 45-second timeout. The
child already bounds PTY and watcher waits at 15 seconds and writes its classified failure to
stderr, but `verify-ssh-relay-runtime.mjs` currently reports only the generic `execFile` stack.
The logs therefore cannot distinguish PTY, watcher, cleanup-handle, or combined failure. Upload
remained skipped. Smoke RSS, channel/file counts, and cancellation settlement were not emitted.
- Oracle proved: the GPG relative-path correction works through real Git-for-Windows GPG on native
x64 and arm64; signed-input gating, offline native build inputs, patched native compilation,
bundled Node v24.18.0 staging, ZIP construction/inspection, and pre-execution archive/tree gates
all precede the failing smoke. The four POSIX jobs remain green on the exact same source head.
- Does not prove: successful Windows PTY/ConPTY/watcher execution, which smoke substage failed,
prompt child-process settlement, ZIP clean-rebuild identity, durable Windows artifact bytes,
native trust/signing, oldest baseline, SSH, or any enabled tuple.
- Checklist items satisfied: native GPG path portability and pre-smoke Windows assembly progression
only. Windows per-tuple cells remain unchecked because executable smoke and artifact retention did
not pass.
- Follow-up: preserve bounded child stdout, stderr, timeout, exit, and signal details in the parent
diagnostic; add a failure-path unit test; rerun x64 first and change no PTY/watcher behavior until
the classified child failure is visible.
### E-M3-WINDOWS-SMOKE-DIAGNOSTIC-RED-001 — Bounded child-detail propagation red gate
- Date: 2026-07-14
- Commit SHA / PR: red test introduced before its implementation in `3aab5aff8`; exact base
`42aa02fa9eccf81e40d80f87461ddd232a1cda1f`; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: macOS 26.2 arm64; Node v26.0.0 and pnpm 10.24.0
- Remote and transport: none; synthetic child-process error object only
- Exact command:
`pnpm exec vitest run --config config/vitest.config.ts config/scripts/ssh-relay-runtime-artifact.test.mjs`
- Result: expected FAIL; the new diagnostic test failed and three existing tests passed in 239 ms
because `formatSshRelayRuntimeSmokeFailure` did not exist. The required oracle supplies timeout,
exit/signal state, partial stdout, and a greater-than-limit stderr whose final classified failure
must survive explicit truncation.
- Oracle proved: existing parent diagnostics cannot satisfy the bounded failure-detail contract and
the new test discriminates both missing metadata and unbounded/error-tail-losing implementations.
- Does not prove: child execution, Windows behavior, the actual PTY/watcher failure, cleanup
settlement, or any tuple support.
- Checklist items satisfied: red half of the smoke-diagnostic correction only.
- Follow-up: implement a 64-KiB tail-preserving formatter around the already 4-MiB-bounded child
process, wrap `execFile` failure with it, and rerun focused/static gates before native x64 CI.
### E-M3-WINDOWS-SMOKE-DIAGNOSTIC-LOCAL-001 — Bounded child-detail propagation correction
- Date: 2026-07-14
- Commit SHA / PR: implementation commit `3aab5aff8` on exact base
`42aa02fa9eccf81e40d80f87461ddd232a1cda1f`; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: macOS 26.2 arm64; Node v26.0.0 and pnpm 10.24.0. Exact-head Node 24 CI remains
authoritative.
- Remote and transport: none; synthetic child-process error plus local artifact contracts
- Exact commands:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-runtime-artifact.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-zip-inspection.test.mjs \
config/scripts/ssh-relay-runtime-artifact.test.mjs \
config/scripts/ssh-relay-runtime-windows-tree.test.mjs \
config/scripts/ssh-relay-runtime-zip.test.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs
pnpm run typecheck
pnpm exec oxlint \
config/scripts/verify-ssh-relay-runtime.mjs \
config/scripts/ssh-relay-runtime-artifact.test.mjs
pnpm exec oxlint
pnpm run check:max-lines-ratchet
GOMAXPROCS=2 pnpm run lint
pnpm exec oxfmt --check \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md \
docs/reference/plans/2026-07-14-ssh-relay-github-release-plan.html
git diff --check
```
- Result: PASS. The focused artifact suite passed 4/4 tests in 194 ms; all seven artifact suites
passed 23/23 tests in 293 ms. Typecheck, focused and full oxlint, max-lines ratchet, full
lint/reliability/localization gates, plan formatting, and diff whitespace passed. Full lint
reported only existing warnings outside this package and used the recorded `GOMAXPROCS=2`
stability constraint.
- Oracle proved: any failed bundled-smoke child now propagates the declared 45-second parent timeout,
exit code, kill state, signal, message, stdout, and stderr; each stream retains at most its final
64 KiB with an explicit omitted-byte count. The real command remains capped at 4 MiB and no
success-path parsing or smoke behavior changed.
- Does not prove: real child failure propagation on Windows, which PTY/watcher stage fails,
process-tree settlement after timeout, successful native smoke, or any tuple support.
- Checklist items satisfied: local green half of the bounded smoke-diagnostic correction only.
- Follow-up: rerun native Windows x64, capture the classified child tail, and make no execution-path
change until that evidence identifies the actual failure.
### E-M3-WINDOWS-SMOKE-SETTLEMENT-CI-RED-001 — Native Windows smoke succeeds but does not settle
- Date: 2026-07-14
- Commit SHA / PR: exact workflow head `df661e370102b9b66c26f4c708e641abef0aa1ae`; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Runners and jobs: GitHub Actions run
[29341643555](https://github.com/stablyai/orca/actions/runs/29341643555); Windows x64 job
[87114639412](https://github.com/stablyai/orca/actions/runs/29341643555/job/87114639412),
`windows-2022` image `20260706.237.1`, Windows Server 2022 10.0.20348, native x64, Node
v24.18.0; Windows arm64 job
[87114639449](https://github.com/stablyai/orca/actions/runs/29341643555/job/87114639449),
`windows-11-arm64` image `20260706.102.1`, Windows 11 Enterprise 10.0.26200, native arm64,
Node v24.18.0
- Remote and transport: no SSH remote; target-native artifact build and bundled-runtime execution
on the hosted runner; exact signed inputs downloaded from pinned nodejs.org URLs
- Exact command:
```sh
gh api repos/stablyai/orca/actions/jobs/87114639412/logs | \
rg -n -C 16 'Bundled runtime smoke command failed|timeoutMs=|Image:|Version:'
gh api repos/stablyai/orca/actions/jobs/87114639449/logs | \
rg -n -C 16 'Bundled runtime smoke command failed|timeoutMs=|Image:|Version:'
```
- Result: expected discriminating FAIL. The exact signed inputs, offline native build, archive and
complete-tree verification all passed. Bundled Node v24.18.0/ABI 137 then completed the patched
ConPTY smoke with exit 23, 101×37 resize, input marker, and both native modules loaded from
`build/Release`; watcher create, update, rename-as-delete/create, and delete also completed. The
x64 child emitted valid JSON after 3,357.413 ms with 56,905,728-byte RSS; arm64 emitted the same
functional result after 6,593.663 ms with 54,505,472-byte RSS. Both remained alive until the
parent killed them at 45 seconds (`code=null`, `killed=true`, `signal="SIGTERM"`, empty stderr).
- Artifact metrics: x64 content ID
`sha256:8cf9eb4e04459e25d710a28235a57e777d39f65168841c2408ab658243a21d94`; ZIP
37,212,068 bytes with SHA-256
`sha256:11f83971ed20cde7be41aa2f753cfd4350cd4a70a3fe46a27540ebc872c4ca56`; build
151,226.208 ms. Arm64 content ID
`sha256:dda60b6237b320c74236f57bece072d0f847479eb322f43f22c829daf2ce9bf6`; ZIP
33,261,533 bytes with SHA-256
`sha256:f3fefed7b959fb6c3945170e8f0f7d2766cf26240aef9928b0e25770e5b19a26`; 86,189,740
expanded bytes; build 248,307.259 ms. Uploads remained skipped because prompt process settlement
is part of executable proof.
- Oracle proved: Windows x64 and arm64 PTY/ConPTY and watcher functionality succeeds through each
exact bundled runtime, and the common remaining failure occurs after successful JSON emission in
child-process handle settlement rather than in PTY, watcher, archive, or tree validation.
- Does not prove: prompt cleanup, durable artifact upload, clean-rebuild identity, native
trust/signing, oldest baseline, SSH, or any enabled tuple. Both per-tuple rows remain unchecked
until the child exits normally and exact-head CI retains each artifact.
- Follow-up: retain and dispose the PTY listener subscriptions, call the supported Windows terminal
cleanup after a validated successful exit, and prove normal child settlement without
`process.exit()` on both native architectures.
### E-M3-WINDOWS-SMOKE-SETTLEMENT-LOCAL-RED-001 — PTY lifecycle cleanup contract red gate
- Date: 2026-07-14
- Commit SHA / PR: uncommitted contract test and behavior-preserving PTY-smoke module extraction on
exact base `df661e370102b9b66c26f4c708e641abef0aa1ae`; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: macOS 26.2 arm64; Node v26.0.0 and pnpm 10.24.0
- Remote and transport: none; injected terminal/listener lifecycle only
- Exact command:
`pnpm exec vitest run --config config/vitest.config.ts config/scripts/ssh-relay-runtime-pty-smoke.test.mjs`
- Result: expected FAIL in 122 ms. The Windows success case returned a valid exit result but called
`terminal.kill()` zero times; the POSIX success case and Windows case both disposed zero of their
three `onData`/`onExit` subscriptions. Two tests failed, with no timeout or synthetic forced exit.
- Oracle proved: the current success path lacks the exact listener and ConPTY cleanup operations
required by the native x64 diagnostic, and the purpose-named suite distinguishes Windows-only
terminal cleanup from platform-neutral listener disposal.
- Does not prove: the green implementation, actual Windows handle release, timeout/error cleanup,
full child-process settlement, arm64 behavior, or any tuple support.
- Checklist items satisfied: red half of the Windows PTY smoke-settlement correction only.
- Follow-up: add idempotent finally cleanup, preserve successful POSIX no-kill behavior, rerun this
suite and all artifact/static gates, then require exact-head native Windows CI.
### E-M3-WINDOWS-SMOKE-SETTLEMENT-LOCAL-001 — Explicit PTY resource settlement
- Date: 2026-07-14
- Commit SHA / PR: implementation commit
`ddf28eb8dba3ade4806082cfc5edd6526389cf94`; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: macOS 26.2 arm64; Node v26.0.0 and pnpm 10.24.0. Exact-head Node 24 native CI remains
authoritative.
- Remote and transport: none; injected terminal lifecycle plus local source/static verification
- Exact commands:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-runtime-pty-smoke.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-zip-inspection.test.mjs \
config/scripts/ssh-relay-runtime-artifact.test.mjs \
config/scripts/ssh-relay-runtime-pty-smoke.test.mjs \
config/scripts/ssh-relay-runtime-windows-tree.test.mjs \
config/scripts/ssh-relay-runtime-zip.test.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs
pnpm run typecheck
pnpm exec oxlint \
config/scripts/ssh-relay-runtime-smoke-child.cjs \
config/scripts/ssh-relay-runtime-pty-smoke.cjs \
config/scripts/ssh-relay-runtime-pty-smoke.test.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-runtime-smoke-child.cjs \
config/scripts/ssh-relay-runtime-pty-smoke.cjs \
config/scripts/ssh-relay-runtime-pty-smoke.test.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md
git diff --check
```
- Result: PASS. The lifecycle suite passed 2/2 tests in 117 ms; the eight artifact suites passed
25/25 tests in 417 ms. Typecheck, focused oxlint, max-lines ratchet, full
lint/reliability/localization checks, formatting, and diff whitespace passed. Full lint reported
only pre-existing warnings outside this package.
- Oracle proved: the success path retains and disposes both data subscriptions and the exit
subscription exactly once; a validated Windows exit additionally calls the supported node-pty
terminal cleanup exactly once, while a successful POSIX exit does not kill its terminal. Cleanup
is in `finally`, the existing timeout/error path still kills the terminal, and no `process.exit()`
was introduced. Both native workflow families now run the lifecycle contract.
- Does not prove: actual Windows ConPTY handle release, prompt bundled child-process exit, exact-head
Node 24 behavior, artifact retention, clean-rebuild identity, native trust, oldest baseline, SSH,
or any enabled tuple. Both Windows per-tuple cells remain unchecked.
- Checklist items satisfied: local green half of the PTY smoke-settlement correction and its
purpose-named verification-command inventory only.
- Follow-up: commit and push the isolated correction, run both target-native Windows jobs at the
exact head, and require normal smoke completion plus artifact upload before advancing.
### E-M3-WINDOWS-SMOKE-SETTLEMENT-CI-RED-002 — Explicit PTY cleanup is insufficient on native x64
- Date: 2026-07-14
- Commit SHA / PR: exact workflow head `b6291e55b1781b4c4e6f46a4965152f4a0d2334f`, containing
PTY settlement implementation `ddf28eb8dba3ade4806082cfc5edd6526389cf94`; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Runners and jobs: GitHub Actions run
[29342918504](https://github.com/stablyai/orca/actions/runs/29342918504); Windows x64 job
[87119092333](https://github.com/stablyai/orca/actions/runs/29342918504/job/87119092333),
`windows-2022` native x64 with Node v24.18.0; Windows arm64 job
[87119092293](https://github.com/stablyai/orca/actions/runs/29342918504/job/87119092293),
`windows-11-arm64` native arm64 with Node v24.18.0
- Remote and transport: no SSH remote; target-native artifact build and bundled-runtime execution
- Exact commands:
`gh api repos/stablyai/orca/actions/jobs/87119092333/logs | rg -n -C 20 'SSH relay runtime verification failed|timeoutMs=|durationMs|rssBytes|contentId'` and the same command for job `87119092293`
- Result: expected discriminating FAIL. The new 25/25 contract suite passed, followed by signed
inputs, offline native compilation, archive/tree inspection, and functional bundled smoke. The
child emitted PTY exit 23, 101×37 resize, input, patched native paths, all watcher events, and
valid JSON in 3,344.690 ms with 59,699,200-byte RSS, then again remained alive until the parent
killed it at 45 seconds with empty stderr. ZIP size was 37,212,067 bytes, content ID
`sha256:68a49782761c411494e677be9c2dc5038fb4f85f066316edc7b92ee25a3c3fbd`, archive SHA-256
`sha256:11688158da540cdfa1e10e5f632dac7487adf61e600e46d3fb0303fa42fc15b6`, and build duration
139,167.307 ms. Artifact upload remained skipped.
- Arm64 result: the same valid PTY/watcher JSON arrived in 3,772.018 ms with 54,095,872-byte RSS,
followed by the identical 45-second timeout and empty stderr. ZIP size was 33,261,534 bytes,
content ID `sha256:cff683eba32500f95d4a1a87d8f8a8eaf06613753b75d8eff55ccce23a0160c6`, archive
SHA-256 `sha256:12640e6003547cf94f6ab13c6fdecb6373254b724fb561aa38023a3d33b5fa17`, and build
duration 155,781.418 ms. Upload remained skipped.
- Oracle proved: disposing all public PTY subscriptions and calling public Windows terminal cleanup
after validated exit does not by itself settle the bundled child. The failure remains post-smoke
and is not a PTY/watcher functional failure, but the retained resource type is still unknown.
- Does not prove: which PTY worker/socket, watcher, stdio, timer, or other resource remains; safe
dependency-level remediation; normal child exit; artifact retention; or any tuple.
- Checklist items satisfied: none beyond a new native red boundary; Windows rows remain unchecked.
- Follow-up: emit bounded `process.getActiveResourcesInfo()` data after all smoke cleanup, retain it
through the existing parent diagnostic, and make no further cleanup change until the resource
class is visible on native Windows.
### E-M3-WINDOWS-RESOURCE-DIAGNOSTIC-LOCAL-001 — Bounded post-cleanup resource observation
- Date: 2026-07-14
- Commit SHA / PR: diagnostic implementation commit
`6bba900209543a53b7673ca12173159d40d9fc87`; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: macOS 26.2 arm64; Node v26.0.0 and pnpm 10.24.0. Native Windows classification remains
authoritative.
- Remote and transport: none; injected public active-resource lists plus local source/static gates
- Exact commands:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-runtime-resource-diagnostics.test.mjs \
config/scripts/ssh-relay-runtime-pty-smoke.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-zip-inspection.test.mjs \
config/scripts/ssh-relay-runtime-artifact.test.mjs \
config/scripts/ssh-relay-runtime-pty-smoke.test.mjs \
config/scripts/ssh-relay-runtime-resource-diagnostics.test.mjs \
config/scripts/ssh-relay-runtime-windows-tree.test.mjs \
config/scripts/ssh-relay-runtime-zip.test.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs
pnpm run typecheck
pnpm exec oxlint config/scripts/ssh-relay-runtime-resource-diagnostics.cjs \
config/scripts/ssh-relay-runtime-resource-diagnostics.test.mjs \
config/scripts/ssh-relay-runtime-smoke-child.cjs \
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-runtime-resource-diagnostics.cjs \
config/scripts/ssh-relay-runtime-resource-diagnostics.test.mjs \
config/scripts/ssh-relay-runtime-smoke-child.cjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md
git diff --check
```
- Result: PASS. The resource/PTY/workflow slice passed 6/6 tests in 173 ms; all nine artifact
suites passed 27/27 tests in 297 ms. Typecheck, focused oxlint, max-lines, full
lint/reliability/localization, formatting, and whitespace gates passed with only existing
out-of-package lint warnings.
- Oracle proved: Windows diagnostics use the public `process.getActiveResourcesInfo()` API, retain
only at most 256 resource type strings capped at 128 characters, report omitted counts, and take
snapshots immediately after all functional cleanup and after a two-second drain window. POSIX
smoke receives neither the delay nor a resource probe. Both native workflow families run the
contract.
- Does not prove: the actual retained native Windows resource types, whether the culprit is PTY or
watcher state, safe cleanup, normal child exit, artifact retention, or any tuple.
- Checklist items satisfied: bounded local diagnostic contract and verification-command inventory
only; no behavior, matrix, or tuple item.
- Follow-up: commit and push the diagnostic, capture both native Windows snapshots through the
existing 45-second failure formatter, then change only the resource owner identified by evidence.
### E-M3-WINDOWS-RESOURCE-DIAGNOSTIC-CI-RED-001 — Native Windows retains one `MessagePort`
- Date: 2026-07-14
- Commit SHA / PR: exact workflow head `2aaea70465dc80ced2ba4662b5bc1475a9c2f8c5`, containing
bounded diagnostic implementation `6bba900209543a53b7673ca12173159d40d9fc87`; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Runners and jobs: GitHub Actions run
[29343816558](https://github.com/stablyai/orca/actions/runs/29343816558); Windows x64 job
[87122172498](https://github.com/stablyai/orca/actions/runs/29343816558/job/87122172498),
`windows-2022` image `20260706.237.1`, native x64, runner `2.335.1`; Windows arm64 job
[87122172553](https://github.com/stablyai/orca/actions/runs/29343816558/job/87122172553),
`windows-11-arm64` image `20260706.102.1`, native arm64, runner `2.335.1`
- Remote and transport: no SSH remote; target-native artifact build and bundled-runtime execution
- Exact commands:
```sh
gh api 'repos/stablyai/orca/actions/runs/29343816558/jobs?per_page=100' \
--jq '.jobs[] | [.id,.name,.status,.conclusion,.head_sha,.html_url] | @tsv'
gh api repos/stablyai/orca/actions/jobs/87122172498/logs | \
rg -n -C 10 'resourceSettlement|Bundled runtime smoke command failed|timeoutMs=|contentId|durationMs|rssBytes'
gh api repos/stablyai/orca/actions/jobs/87122172553/logs | \
rg -n -C 10 'resourceSettlement|Bundled runtime smoke command failed|timeoutMs=|contentId|durationMs|rssBytes'
```
- Result: expected discriminating FAIL on both Windows jobs after 27/27 contract tests, exact signed
inputs, offline native compilation, archive/tree inspection, and valid functional smoke output.
Immediately after smoke each child reported three `PipeWrap` resources plus one `MessagePort`;
after the two-second observation window one `PipeWrap` settled but the `MessagePort` remained.
Each child then remained alive until the unchanged 45-second parent timeout sent `SIGTERM`.
- X64 metrics: functional smoke completed in 5,368.1555 ms with 60,022,784-byte RSS. The ZIP was
37,212,066 bytes with content ID
`sha256:4ee246445ad65eec49b70fceab92fbd954de2f7fd8608a0646cc9a79ce53e69a`, archive SHA-256
`sha256:20c98e2db2aaa9245fb2c632d37c4963e70f65a0e5257aff4e196dc64fb984dd`, and build
duration 143,545.9941 ms.
- Arm64 metrics: functional smoke completed in 5,873.1038 ms with 54,059,008-byte RSS. The ZIP was
33,261,530 bytes with content ID
`sha256:9418590ffa09d21145dd1ff4d8492d1ff8b0328df496e300edec1969365df3a3`, archive SHA-256
`sha256:52477f9714e7ac38b9f40ce5642b7f1c9e838f98af48387c7a88ef53b1dcf385`, and build
duration 169,800.5025 ms.
- POSIX control: Linux x64/arm64 and macOS x64/arm64 jobs at the same exact head all completed
successfully; the Windows-only observation did not add a POSIX delay or resource probe.
- Oracle proved: the retained native resource class is one persistent `MessagePort` on both Windows
architectures after successful PTY/ConPTY/watcher behavior and public PTY cleanup. The remaining
`PipeWrap` resources are the smoke child's parent stdio and are not sufficient to explain the
Windows-only non-exit because the same child-process boundary exits on POSIX.
- Does not prove: which dependency object owns the `MessagePort`, a safe correction, normal Windows
child exit, uploaded artifact retention, clean-rebuild identity, native trust, SSH, or any tuple.
Both Windows executable cells remain unchecked.
- Checklist items satisfied: native resource classification only.
- Follow-up: inspect the copied node-pty ConPTY worker lifecycle, add an exact-source fail-closed
transform contract scoped to Windows artifact staging, then require both native jobs to exit and
upload unpublished evidence before advancing.
### E-M3-WINDOWS-CONPTY-WORKER-LOCAL-RED-001 — Copied-source settlement contract red gate
- Date: 2026-07-14
- Commit SHA / PR: uncommitted red-test working tree based on
`2aaea70465dc80ced2ba4662b5bc1475a9c2f8c5`; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: macOS 26.2 arm64; Node v26.0.0 and pnpm 10.24.0. Node 24 and native Windows remain the
authoritative artifact environments.
- Remote and transport: none; synthetic copied-source fixtures only
- Exact command:
`pnpm exec vitest run --config config/vitest.config.ts config/scripts/ssh-relay-node-pty-windows-settlement.test.mjs`
- Result: expected discriminating FAIL, 4/4 tests failed in 136 ms. The copied Windows source was
unchanged, POSIX returned no explicit no-op result, and missing/duplicate source patterns did not
fail closed.
- Oracle proved: the new contract failed for each missing behavior before the correction existed.
- Does not prove: the green transform, production wiring, native Windows execution, prompt worker
settlement, or any tuple.
- Checklist items satisfied: red half of the copied ConPTY worker settlement correction only.
- Follow-up: implement the exact one-match transform against exclusive artifact staging and rerun
focused, artifact, and repository gates.
### E-M3-WINDOWS-CONPTY-WORKER-LOCAL-001 — Fail-closed artifact-only worker settlement
- Date: 2026-07-14
- Commit SHA / PR: implementation commit `c04b4f630`; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: macOS 26.2 arm64; Node v26.0.0 and pnpm 10.24.0. Node 24 and native Windows remain the
authoritative artifact environments.
- Remote and transport: none; pinned installed node-pty source, synthetic source-drift fixtures,
workflow contract, and repository static gates
- Exact commands:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-node-pty-windows-settlement.test.mjs
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-node-pty-windows-settlement.test.mjs \
config/scripts/ssh-relay-runtime-pty-smoke.test.mjs \
config/scripts/ssh-relay-runtime-resource-diagnostics.test.mjs \
config/scripts/ssh-relay-runtime-windows-tree.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-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-pty-smoke.test.mjs \
config/scripts/ssh-relay-runtime-resource-diagnostics.test.mjs \
config/scripts/ssh-relay-runtime-windows-tree.test.mjs \
config/scripts/ssh-relay-runtime-zip.test.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs
pnpm run typecheck
pnpm exec oxlint config/scripts/ssh-relay-node-pty-build.mjs \
config/scripts/ssh-relay-node-pty-windows-settlement.mjs \
config/scripts/ssh-relay-node-pty-windows-settlement.test.mjs \
.github/workflows/ssh-relay-runtime-artifacts.yml
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-build.mjs \
config/scripts/ssh-relay-node-pty-windows-settlement.mjs \
config/scripts/ssh-relay-node-pty-windows-settlement.test.mjs \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md
git diff --check
```
- Result: PASS. The purpose-named suite passed 5/5 tests in 124 ms; the settlement/PTY/resource/tree/
workflow slice passed 12/12 tests across five suites in 201 ms; all ten artifact suites passed
32/32 tests in 378 ms. Typecheck, focused oxlint, max-lines, full lint/reliability/localization,
formatting, and whitespace gates passed with only existing out-of-package lint warnings.
- Duration and resource metrics: the combined repository static command completed in approximately
12.4 seconds. Peak memory and open-file counts were not instrumented by these local static tests.
- Oracle proved: the transform accepts the exact pinned installed node-pty source, starts the
ConPTY `Worker` drain even when no later output arrives, preserves later-data timer resets, modifies
only the copied Windows artifact source after exclusive staging, and does not inspect a POSIX copy.
Missing, drifted, duplicate, or already-transformed source rejects before a write. Both native
workflow families run the purpose-named contract. The repository-wide
`config/patches/node-pty@1.1.0.patch` and legacy/default desktop node-pty behavior are unchanged.
- Does not prove: native Windows worker termination, normal smoke child exit, absence of a persistent
`MessagePort`, artifact upload, reproducibility, native trust, oldest baseline, SSH, or any tuple.
- Checklist items satisfied: purpose-named local copied-source settlement contract and verification
command inventory only; Windows executable rows remain unchecked.
- Follow-up: push the exact head and require both target-native Windows jobs to exit normally, show
no persistent `MessagePort` after the observation window, and upload unpublished evidence.
### E-M3-WINDOWS-CI-001 — Native Windows artifacts execute, settle, and upload
- Date: 2026-07-14
- Commit SHA / PR: exact workflow head `d9a556b9c8b3d3a639d4fc93a8ba25926089d20f`, containing
implementation commit `c04b4f630`; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Run: GitHub Actions
[29345126283](https://github.com/stablyai/orca/actions/runs/29345126283), completed success with all
six target-native jobs green
- Windows runners and jobs: x64 job
[87126693074](https://github.com/stablyai/orca/actions/runs/29345126283/job/87126693074),
`windows-2022` image `20260706.237.1`, Windows Server 2022 build 20348, native X64, Node v24.18.0;
arm64 job
[87126693105](https://github.com/stablyai/orca/actions/runs/29345126283/job/87126693105),
`windows-11-arm64` image `20260706.102.1`, Windows build 26200, native ARM64, Node v24.18.0
- Remote and transport: no SSH remote; target-native artifact build, bundled-runtime execution, and
GitHub Actions unpublished artifact upload
- Exact commands:
```sh
gh run watch 29345126283 --repo stablyai/orca --interval 10 --exit-status
gh api 'repos/stablyai/orca/actions/runs/29345126283/jobs?per_page=100' \
--jq '.jobs[] | [.id,.name,.status,.conclusion,.started_at,.completed_at,.head_sha,.html_url] | @tsv'
gh api repos/stablyai/orca/actions/jobs/87126693074/logs | \
rg -n -C 12 'resourceSettlement|contentId|archive|durationMs|rssBytes|Artifact .* has been successfully uploaded'
gh api repos/stablyai/orca/actions/jobs/87126693105/logs | \
rg -n -C 12 'resourceSettlement|contentId|archive|durationMs|rssBytes|Artifact .* has been successfully uploaded'
gh api 'repos/stablyai/orca/actions/runs/29345126283/artifacts?per_page=100' \
--jq '.artifacts[] | [.id,.name,.size_in_bytes,.expired,.created_at,.archive_download_url] | @tsv'
gh api repos/stablyai/orca/actions/artifacts/8315822805/zip > <temporary-x64-actions.zip>
gh api repos/stablyai/orca/actions/artifacts/8315904862/zip > <temporary-arm64-actions.zip>
shasum -a 256 <temporary-x64-actions.zip> <temporary-arm64-actions.zip>
unzip -l <temporary-x64-actions.zip>
unzip -p <temporary-x64-actions.zip> '*identity.json' | jq
unzip -l <temporary-arm64-actions.zip>
unzip -p <temporary-arm64-actions.zip> '*identity.json' | jq
```
- Result: PASS. Both Windows jobs passed 32/32 artifact contract tests, exact signed Node input
verification, offline target-native compilation, exact archive/tree inspection, bundled Node
v24.18.0, production-DLL ConPTY input/101×37 resize/exit 23, watcher lifecycle, normal child exit,
and unpublished upload. Immediately after smoke, each child reported three `PipeWrap` resources,
one `MessagePort`, and the diagnostic's own `Timeout`; after the two-second observation only the
two parent stdio `PipeWrap` resources remained. No `MessagePort` or timer survived, and neither
45-second parent timeout fired.
- X64 metrics and bytes: build 135,657.3557 ms; full verification 6,495.1387 ms; smoke 5,353.5073 ms
with 54,075,392-byte RSS. The 42-file ZIP was 37,212,121 bytes, expanded to 97,248,569 bytes, had
content ID `sha256:32efa708b1fbefb05a11b0de6703551e5680d64c8015bb956095db3b50292c92`, and archive
SHA-256 `sha256:2ec9db55b5c417ea7ed9ab6cf5a960be4b9c305e68c68f8123a11dab0e3119a4`.
Uploaded artifact
[8315822805](https://github.com/stablyai/orca/actions/runs/29345126283/artifacts/8315822805) was
37,075,355 bytes and downloaded with SHA-256
`d98d1c935514667ea5c48a160ef54b9674a93f995ca24df2c19759735c62eefb`; total job duration was
4m06s.
- Arm64 metrics and bytes: build 190,135.9561 ms; full verification 7,908.8115 ms; smoke 5,874.805 ms
with 51,843,072-byte RSS. The 42-file ZIP was 33,261,582 bytes, expanded to 86,189,895 bytes, had
content ID `sha256:e1d5eab84a7b1eb38d55acb9f87d852569995e22c47c02d202f29eb293467944`, and archive
SHA-256 `sha256:577285df23333a3de89489dec52027afd76aeb9ef23f74ffb6d5706e06a75ae8`.
Uploaded artifact
[8315904862](https://github.com/stablyai/orca/actions/runs/29345126283/artifacts/8315904862) was
33,137,908 bytes and downloaded with SHA-256
`77b78cb33117c8c8b4f5d639dada063651f7d303a815a097bfa36d9e651a2419`; total job duration was
7m09s.
- POSIX control: Linux x64/arm64 and macOS x64/arm64 passed the same exact-head contract, build,
verification, smoke, and unpublished upload steps. All six run artifacts exist with seven-day
retention; no release asset was published.
- Oracle proved: the copied-source correction terminates the node-pty ConPTY worker on both native
Windows architectures without masking the process with `process.exit()`, while preserving full
PTY/watcher behavior and the four POSIX controls. The exact uploaded evidence contains the runtime
ZIP, identity, SPDX SBOM, and provenance files.
- Does not prove: same-runner clean-rebuild identity, oldest baselines, Authenticode/native trust,
SSH/SFTP/system-SSH transfer, relay RPC behavior, cancellation, publication, or any enabled tuple.
- Checklist items satisfied: Milestone 3 Windows `conpty.dll`/`OpenConsole.exe` production-path item;
Windows x64 and arm64 build/provenance, bundled Node, real PTY, and watcher cells; target-native
pre-upload inspection/smoke command.
- Follow-up: add and execute the separately gated same-head/same-runner two-clean-build identity
oracle before oldest-baseline or trust work.
### E-M3-RUNTIME-LOCAL-001 — First target-native Linux arm64 runtime artifact
- Date: 2026-07-14
- Commit SHA / PR: implementation commit `f2b387b21bbe6a3863ff1a492a1a03b65e0a0477` in stacked
draft PR [#8741](https://github.com/stablyai/orca/pull/8741); native PR CI pending
- Runner: macOS 26.2 arm64 host with Docker Engine 29.2.1; native Linux/arm64 container
`node@sha256:032e78d7e54e352129831743737e3a83171d9cc5b5896f411649c597ce0b11ea`
(Debian bookworm, build Node v24.17.0), bundled Node v24.18.0 ABI 137, Python 3.11.2, GNU
C++ 12.2.0, GNU strip 2.40, XZ Utils 5.4.1, GnuPG/gpgv 2.2.40
- Remote: none; native container artifact build/execution only, not an SSH host or oldest-baseline VM
- Transport/network: exact HTTPS downloads from `nodejs.org/dist/v24.18.0`; Debian package mirrors
for build/signature-verification tools; no SSH, SFTP, system SSH, release upload, or remote egress
- Exact command:
```sh
docker run --rm \
-v "$PWD:/workspace" \
-v /tmp/orca-runtime-linux-arm64-v3:/evidence \
-w /workspace \
node@sha256:032e78d7e54e352129831743737e3a83171d9cc5b5896f411649c597ce0b11ea \
bash -lc 'set -euo pipefail
apt-get update -qq
DEBIAN_FRONTEND=noninteractive apt-get install -y -qq build-essential ca-certificates curl gnupg gpgv python3 xz-utils >/dev/null
mkdir -p /tmp/node-inputs
base=https://nodejs.org/dist/v24.18.0
for asset in SHASUMS256.txt SHASUMS256.txt.sig node-v24.18.0-linux-arm64.tar.xz; do
curl --fail --silent --show-error --location --proto "=https" --tlsv1.2 \
--connect-timeout 20 --max-time 300 --retry 2 --retry-delay 2 --retry-all-errors \
"$base/$asset" --output "/tmp/node-inputs/$asset"
done
output=/evidence/new-parent/artifact
node config/scripts/build-ssh-relay-runtime.mjs --tuple linux-arm64-glibc --inputs-directory /tmp/node-inputs --output-directory "$output" --source-date-epoch 1784030321 --git-commit 0c299fe189310b6dbd539f0f0f506b240524ba6a
identity="$output/orca-ssh-relay-runtime-linux-arm64-glibc.identity.json"
archive=$(find "$output" -maxdepth 1 -name "*.tar.xz" -print -quit)
node config/scripts/verify-ssh-relay-runtime.mjs --runtime-directory "$output/runtime" --identity "$identity" --archive "$archive"'
```
A second clean `createSshRelayRuntimeArchive` invocation used the same runtime tree,
`SOURCE_DATE_EPOCH`, container digest, Node tar implementation, and XZ 5.4.1, followed by `cmp`
and `sha256sum` against the first archive.
- Result: PASS. The target-native build authenticated the official Node metadata/archive, inspected
5,774 upstream tar entries before selective extraction, executed Node v24.18.0, source-built
Orca-patched `node-pty@1.1.0` against the exact Node 24 headers, stripped the resulting Linux
addon, copied exactly one Linux arm64 glibc watcher native package, and preserved the existing
relay/watcher content hash. Full archive and unpacked-tree verification agreed on content ID
`sha256:cf0acba7a8839d5ee422755562ce30ffa4433a663991054d0b5d9681ebc54832`.
The bundled runtime produced PTY input, 101×37 resize, and exit code 23 plus watcher create,
update, rename-as-delete/create, and delete events. The same tree repacked byte-for-byte
identically: both archives hashed to
`sha256:b1b9857a42d45a068f03f2484f98fcebe82b3d21ddd53eac7d0bdabf494a7f9e`.
- Duration and resource metrics: exclusive artifact staging to finalized identity took 138.666
seconds based on output birth/finalization timestamps; deterministic repack compression took
approximately 109 seconds; full archive/tree/native verification took 3,746.221 ms; bundled
PTY/watcher smoke took 248.879 ms with 35,328,000-byte RSS. The archive is 28,192,132 bytes,
expands to 122,865,156 bytes, and contains 34 files/49 total entries. Build peak memory, open-file
count, and cancellation settlement were not instrumented and remain CI follow-ups. After adding
bounded native-command/xz execution, compressed-size prechecks, exact mode verification, frozen
installs, and automatic parent creation, a fresh build into the previously absent
`/evidence/new-parent/artifact` completed in 89,580.560 ms and retained the exact content/archive
hashes above; verification took 3,515.039 ms and smoke took 192.609 ms with 34,885,632-byte RSS.
- Artifact/log/trace link: unpublished local artifact directory
`/tmp/orca-runtime-linux-arm64-v3/new-parent/artifact`; archive hash above; SBOM hash
`sha256:27f81b5650b088dc8e01563b0229c978f8ea05828e90a1a4fd0d11640d6cc54a`;
provenance hash
`sha256:dc1433c481b57de44929248ddb033f2a35bfdb40fc32d9f442b9d8f8ed7f816c`;
identity hash
`sha256:95b4ca6bcce846c65c6b15c35df548db0598d8156aee1c54c196b95f998824a6`.
- Oracle proved: one native Linux arm64 glibc artifact-only build; exact official Node signature and
archive input; bounded source-tar inspection; exclusive selective extraction; Node-ABI-matched
patched `node-pty`; one correct watcher package; runtime-only JavaScript/license closure; SPDX
SBOM/provenance/identity assets; executable modes; deterministic `tar.xz`; exact archive/tree
hashes; and direct bundled Node/native PTY/watcher execution before any upload.
- Does not prove: GitHub runner reproducibility, Linux x64, macOS, Windows/zip, musl, oldest glibc or
kernel, native code signing/trust, quarantine/Gatekeeper/WDAC/AV, SSH/SFTP/system-SSH transfer,
relay RPC conformance, cancellation/file-handle/peak-memory budgets, release publication, cache,
fallback, UI, or any enabled tuple. Docker Desktop architecture is native arm64 but this is not an
approved oldest-baseline or cross-family remote cell. The verified official Node binary reports
upstream debug metadata and was intentionally preserved byte-for-byte; only Orca-built
`pty.node` was stripped. Both plan artifacts now state that precedence explicitly.
- Checklist items satisfied: named assembly script; POSIX deterministic archive; pre-archive mode
verification; local POSIX archive/smoke commands; Linux arm64 build/provenance, bundled Node,
patched real PTY, and watcher cells only.
- Follow-up: run `.github/workflows/ssh-relay-runtime-artifacts.yml` on the exact draft-PR head,
record resolved runner image identities and artifacts, implement Windows zip/native assembly
separately, and leave every tuple disabled until oldest-baseline, trust, and both live SSH layers
are complete.
### E-M3-STATIC-001 — Work Package 2 focused and repository static gates
- Date: 2026-07-14
- Commit SHA / PR: implementation commit `f2b387b21bbe6a3863ff1a492a1a03b65e0a0477` in stacked
draft PR [#8741](https://github.com/stablyai/orca/pull/8741); native PR CI pending
- Runner: macOS 26.2 arm64; Node v26.0.0 and pnpm 10.24.0
- Remote and transport: not applicable; local source/static verification only
- Exact commands:
```sh
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-runtime-artifact.test.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs
pnpm run typecheck
pnpm run lint
pnpm exec oxfmt --check .github/workflows/ssh-relay-runtime-artifacts.yml \
config/scripts/*ssh-relay* config/ssh-relay-node-release-v24.18.0.json
pnpm run check:max-lines-ratchet
git diff --check
```
- Result: PASS. Four focused suites passed 15/15 tests in 993 ms; typecheck passed; repository lint
passed with only pre-existing warnings outside Work Package 2; formatting passed for 20 matched
files; max-lines reported 355 grandfathered suppressions and no new bypass; diff check passed.
- Duration and resource metrics: full lint completed in 20.438 seconds. Peak memory, open files, and
cancellation settlement were not instrumented by these static commands.
- Artifact/log/trace link: purpose-named tests and local command output; durable GitHub job links are
pending the draft PR.
- Oracle proved: hostile release-input/archive cases, canonical identity parity, deterministic
archive/exact-tree and permission rejection, workflow runner/action/no-publication/frozen-install
contracts, compilation, repository lint policy, formatting, line budget, and whitespace safety.
- Does not prove: Node 24 source-tool execution, target-native runners beyond E-M3-RUNTIME-LOCAL-001,
macOS/x64, signing/trust, oldest baselines, SSH transfer, relay RPCs, publication, cancellation
settlement, or any enabled tuple. The exact workflow head and Node 24 gates require PR CI.
- Checklist items satisfied: current Work Package 2 local handoff/static gate only.
- Follow-up: create the isolated stacked draft PR, run the four target-native POSIX jobs, and replace
uncommitted/local evidence with exact commit, run, job, image, artifact, and duration identifiers.
### E-M3-CI-RED-001 — Native macOS watcher path-oracle failure
- Date: 2026-07-14
- Commit SHA / PR: exact draft-PR head `f8a230ef301fc6f2bb76082f549e3b3ae725c142` in
[#8741](https://github.com/stablyai/orca/pull/8741)
- Runner and jobs: GitHub Actions run
[29335018198](https://github.com/stablyai/orca/actions/runs/29335018198); macOS arm64 job
[87092056703](https://github.com/stablyai/orca/actions/runs/29335018198/job/87092056703) used
`macos-15-arm64` image `20260706.0213.1`, macOS 15.7.7, runner arm64, and Node v24.18.0;
macOS x64 job
[87092056769](https://github.com/stablyai/orca/actions/runs/29335018198/job/87092056769) used
`macos-15` image `20260629.0276.1`, runner x64, and Node v24.18.0
- Remote and transport: no SSH remote; target-native artifact build and local execution on each
hosted runner; Node inputs downloaded from the exact pinned nodejs.org URLs
- Exact workflow/log commands:
```sh
gh run watch 29335018198 --repo stablyai/orca --exit-status --interval 10
gh api -H 'Accept: application/vnd.github+json' \
repos/stablyai/orca/actions/jobs/87092056703/logs
gh api -H 'Accept: application/vnd.github+json' \
repos/stablyai/orca/actions/jobs/87092056769/logs
```
- Result: expected discriminating FAIL. Both macOS jobs passed exact-head checkout, Node 24 setup,
frozen dependency install, 15/15 contract tests, authenticated Node input download, target-native
Node/`node-pty`/watcher assembly, deterministic archive inspection, and full tree hashing. Native
smoke then timed out after 15 seconds waiting for watcher `create`; evidence upload correctly did
not run. Both Linux jobs completed build, verification, smoke, and unpublished upload, but their
cells remain provisional until the corrected exact-head matrix reruns.
- Duration and resource metrics: macOS arm64 job failed in 1m51s after a 54,699.324 ms artifact
build; macOS x64 failed in 3m44s after a 105,665.482 ms artifact build. Each watcher wait settled
at its declared 15-second bound. Peak memory and open-file counts were not recorded in the failed
macOS smoke because no success payload was emitted.
- Artifact/log/trace link: run and job links above. The arm64 pre-smoke artifact had content ID
`sha256:cc205af32168718f9662e8513338ad844ba4c1210c247623d84f92778afa1610` and archive hash
`sha256:cd9cca6f56c9645a73b6b022515668ef7392c2eeb8f01d63b8a46b046cf337a3`;
the x64 pre-smoke artifact had content ID
`sha256:82a7017f6c1f703258a9d6b9f3d5ad4d5c57320f1b667fd87902cb1f4cd21cd3` and archive hash
`sha256:88670165fcdf55236fb2a81d70566b913b39824362b5cf5f0136e646bf9c9b2c`.
- Oracle proved: the native matrix and exact-head provenance gates discriminate after successful
builds; macOS FSEvents can report canonical `/private/var/...` paths while `tmpdir()` supplied the
`/var/...` symlink spelling, so the equality oracle could reject the same filesystem object.
- Does not prove: a passing macOS watcher, upload, native trust/signing, oldest baseline, SSH,
relay RPCs, Windows, or any enabled tuple. Successful Linux results from this failed aggregate do
not satisfy the final corrected-head evidence requirement.
- Checklist items satisfied: red half of the macOS target-native watcher-smoke gate only; no tuple
checkbox was changed.
- Follow-up: canonicalize the watched temporary directory before constructing expected event paths,
retain bounded observed-event diagnostics, rerun all four jobs, and require every upload to pass.
### E-M3-CI-001 — Corrected four-tuple POSIX native artifact run
- Date: 2026-07-14
- Commit SHA / PR: exact draft-PR head `151628992f8d05d11902604650b3ed884992da5c` in
[#8741](https://github.com/stablyai/orca/pull/8741)
- Workflow: GitHub Actions run
[29335399279](https://github.com/stablyai/orca/actions/runs/29335399279), conclusion `success`;
no release asset was published
- Exact evidence commands:
```sh
gh run view 29335399279 --repo stablyai/orca --json databaseId,headSha,status,conclusion,url,jobs
gh run view 29335399279 --repo stablyai/orca --job <job-id> --log
gh api --paginate repos/stablyai/orca/actions/runs/29335399279/artifacts
gh api repos/stablyai/orca/actions/artifacts/<artifact-id>/zip
unzip -p <downloaded-artifact.zip> '*.identity.json' | jq
```
- Native runner, artifact, identity, and resource results:
| Tuple | Job / requested runner / resolved image | Artifact ID / Actions ZIP bytes | Runtime archive bytes / expanded bytes / files | Content ID / archive SHA-256 | Build / full verify / smoke / RSS |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------- | ---------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- |
| `darwin-arm64` | [87093265074](https://github.com/stablyai/orca/actions/runs/29335399279/job/87093265074); `macos-15`; `macos15` `20260706.0213.1`; native ARM64 | `8311761833`; 24,755,748 | 24,742,840 / 122,027,869 / 35 | `16a9814a2af4adfbcce55ead3ab53f3982d8043d4b18d85762586212a481bdca` / `a7e31f92c1a0793b656f79ceff5fe63b7a1cf56a70394336a92c2ab207d30ea7` | 52,648.921 ms / 2,090.791 ms / 556.324 ms / 51,068,928 bytes |
| `darwin-x64` | [87093265143](https://github.com/stablyai/orca/actions/runs/29335399279/job/87093265143); `macos-15-intel`; `macos15` `20260629.0276.1`; native X64 | `8311834044`; 26,420,360 | 26,405,780 / 124,316,655 / 35 | `ad3a4cdaf25cd8f2657e348fca5c68df69923f9f50295afa2227a8c195e2014b` / `9b6c492b4fda250c6b6688e343499e79afc7ca53be355b1e687e61ed8430a759` | 108,328.464 ms / 1,956.297 ms / 325.008 ms / 40,546,304 bytes |
| `linux-x64-glibc` | [87093265139](https://github.com/stablyai/orca/actions/runs/29335399279/job/87093265139); `ubuntu-24.04`; `ubuntu24` `20260705.232.1`; native X64 | `8311766570`; 29,276,673 | 29,260,688 / 124,846,502 / 34 | `960546cd96c67fcf9bb0a61e96ecdbecbffd9104d3a495578f8bb19dd810649a` / `b28fc4837d17399246926ab4d565e30f21b6adc6c22401910627e820aca7c52b` | 61,805.875 ms / 2,288.790 ms / 159.950 ms / 56,315,904 bytes |
| `linux-arm64-glibc` | [87093265142](https://github.com/stablyai/orca/actions/runs/29335399279/job/87093265142); `ubuntu-24.04-arm`; `ubuntu24` `20260706.52.2`; native ARM64 | `8311785832`; 28,215,447 | 28,200,600 / 122,865,172 / 34 | `aa3aa8ae8b42334ba7b0dbe5c43fd1184e36b3f4f4a9bec0e990e9b78f090756` / `d73d03c0507408e538b93549d449359e78c986c45f1bd5811c15197720fc5da8` | 69,030.100 ms / 1,618.140 ms / 159.037 ms / 52,219,904 bytes |
- Result: PASS. All four jobs checked out the exact source head, used Node v24.18.0, authenticated
the pinned Node release metadata and tuple archive, used a frozen source install, passed 15/15
focused contracts, assembled on the target-native architecture, verified the complete archive and
unpacked tree before native execution, loaded the Orca-patched PTY addon, exercised a real PTY
input/101×37 resize/exit-23 lifecycle, observed bounded create/update/rename/delete watcher events,
and uploaded only an unpublished seven-day Actions artifact.
- Oracle proved: target-native build/provenance, bundled Node execution, patched native PTY load and
lifecycle, watcher lifecycle, exact archive/tree equality, size bounds, and artifact-only workflow
behavior for the four named POSIX tuples on the exact runner images above.
- Does not prove: deterministic native rebuilding. The local versus CI Linux arm64 runtime differed
in the Orca-built `pty.node`, and the red versus corrected macOS runs produced different content
identities despite no intended runtime-tree source change. The current jobs record image and
toolchain versions but do not pin all apt/Homebrew/compiler inputs or compare two clean native
builds on the same runner. This evidence also does not prove oldest OS/libc/kernel baselines,
native signing/trust, Windows/ZIP, musl, SSH/SFTP/system-SSH transfer, relay RPC conformance,
cancellation/file/channel peaks, release publication/read-back, cache, fallback, UI, or any
enabled tuple.
- Checklist items satisfied: build/provenance, bundled Node, real patched PTY, and watcher cells for
`linux-x64-glibc`, `linux-arm64-glibc`, `darwin-x64`, and `darwin-arm64` only. Oldest-baseline and
native-trust cells remain unchecked.
- Follow-up: add a same-head/same-runner two-clean-build identity comparison, implement bounded
deterministic Windows ZIP assembly and native Windows jobs, and leave all tuples disabled until
the remaining trust, baseline, and two-layer live SSH gates pass.
### E-M3-REPRODUCIBILITY-LOCAL-001 — Bounded two-clean-build identity oracle
- Date: 2026-07-14
- Commit SHA / PR: exact implementation commit
`c70e96374cafb681c52b3d60e42322ba5a76791c` in stacked draft PR
[#8741](https://github.com/stablyai/orca/pull/8741); native PR CI pending
- Runner: macOS 26.2 build 25C56 arm64, native; Node v26.0.0 and pnpm 10.24.0. Node v24.18.0 on
each target-native GitHub runner remains the authoritative artifact environment.
- Remote and transport: none; synthetic output trees and parsed GitHub Actions workflow only
- Exact commands:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-runtime-reproducibility.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-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-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-tree.test.mjs \
config/scripts/ssh-relay-runtime-zip.test.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs
pnpm run typecheck
pnpm exec oxlint config/scripts/ssh-relay-runtime-reproducibility.mjs \
config/scripts/ssh-relay-runtime-reproducibility.test.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-runtime-reproducibility.mjs \
config/scripts/ssh-relay-runtime-reproducibility.test.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md
git diff HEAD^ --check
```
- Result: PASS. The purpose-named comparator/workflow command passed 10/10 tests in 200 ms; the
complete artifact set passed 40/40 tests across 11 suites in 1.09 seconds. Typecheck, focused
oxlint, the 355-entry max-lines ratchet, full repository lint/reliability/localization, formatting,
and exact-commit diff checks all exited zero. Full lint emitted only pre-existing warnings outside
this package.
- Duration and resource metrics: purpose suite 0.87 seconds wall; full artifact suite 3.02 seconds;
typecheck 8.47 seconds; focused oxlint 1.94 seconds; max-lines 4.95 seconds; full lint 26.34 seconds;
formatting 5.56 seconds; diff check 90 ms. Comparator file reads are incremental, bounded to 250
MiB per file and 500 MiB per output, with 6,000 entries, 512-byte paths, depth 40, a five-minute
AbortSignal, and sequential tree walks. Peak RSS/open files were not instrumented for synthetic
fixtures; native CI remains responsible for real artifact duration and size evidence.
- Artifact/log/trace link: exact source and test files in commit `c70e96374`; durable target-native
run and job links pending
- Oracle proved: distinct real output roots are required; symlinks and special files reject before
hashing; complete runtime/archive/identity/SPDX/provenance output is mandatory; archive bytes must
match their identity; any path type, mode, size, or SHA-256 drift fails closed. Both POSIX and
Windows jobs build and independently verify/smoke two exclusive outputs, compare only afterward,
and copy/upload only the first verified equal output. The workflow retains read-only permissions,
exact-head checkout, SHA-pinned actions, explicit runner labels, and no release publication path.
- Does not prove: any real native build is reproducible, Node v24 execution, compiler/linker
determinism, Linux/macOS/Windows output equality, oldest baselines, native trust/signing, SSH,
publication, transfer, cache, fallback, UI, or an enabled tuple.
- Checklist items satisfied: purpose-named local reproducibility/workflow command and exact-commit
static handoff only; no per-tuple or native-trust checkbox changes.
- Follow-up: push the exact head, run all six native jobs, and record the exact differing path/field
for every red result before correcting producer nondeterminism without weakening this oracle.
### E-M3-REPRODUCIBILITY-CI-RED-001 — First native clean-build comparison
- Date: 2026-07-14
- Commit SHA / PR: exact head `09b047f4eee224b45ca337b46b8402016290a1a9` in stacked draft
PR [#8741](https://github.com/stablyai/orca/pull/8741)
- Run and jobs: [run 29347236627](https://github.com/stablyai/orca/actions/runs/29347236627);
Linux x64 `87134028593`, Linux arm64 `87134028669`, macOS arm64 `87134028547`, macOS x64
`87134028651`, Windows x64 `87134028652`, Windows arm64 `87134028632`
- Runners: `ubuntu-24.04` x64, `ubuntu-24.04-arm` arm64, `macos-15-intel` x64,
`macos-15` arm64, `windows-2022` x64, and `windows-11-arm` arm64; Node v24.18.0. The macOS
arm64 failure ran on macOS 15.7.7 image `20260706.0213.1`; the x64 failure ran on macOS 15.7.7
image `20260629.0276.1`. Both used Xcode 16.4 build 16F6.
- Remote and transport: none; GitHub-hosted target-native artifact jobs only
- Exact evidence commands:
```sh
gh run view 29347236627 --repo stablyai/orca \
--json databaseId,headSha,status,conclusion,url,jobs
gh api -H 'Accept: application/vnd.github+json' \
repos/stablyai/orca/actions/jobs/<completed-job-id>/logs
```
- Result: Linux x64 and arm64 independently built, verified, smoked, compared equal, and uploaded
unpublished evidence. macOS arm64 independently verified and smoked both outputs but failed the
equality gate: content IDs were
`sha256:f1bbc1de26d6e9aae3899754c4ac4aea694ad9f5197fcf1c773e29fc50401129` and
`sha256:c26eba0226e73542a0cd7aec0ca5fa7e3809051453e40095e47fe9d154ba944f`; archive
digests/sizes were
`sha256:9cd56317ff03eb4e89a811e46736dc7558e447b9f0cd2d7e20fdeb5e5c40114a` /
24,714,656 bytes and
`sha256:cde8fa92470fdf73ec02e8e6ebbf23417e43d98b465fa9c6bdea4373be8c3e84` /
24,714,700 bytes. macOS x64 likewise failed with content IDs
`sha256:b71d7d50bba78b6cf9e6dc24b006d48c709a784c7eb77f500e86ab5fe692690b` and
`sha256:ceae81924c97c917855af864239b87a7d2eecc28de7d00c21c32c47c5385354f`;
archive digests/sizes were
`sha256:01f7d4c6d54241e211c5063b89e92a3511433b18a50cb643bbfbe0384546a50e` /
26,384,540 bytes and
`sha256:f98dfdead87f4884382fedc3e3bff0197a3b2aa6981c38107e198cb38e8bdf67` /
26,384,576 bytes. The committed comparator first reported identity SHA-256 drift on both macOS
architectures. Windows x64 and arm64 stopped before downloading Node inputs or building artifacts
because Vitest collected zero comparator tests with `SyntaxError: Invalid or unexpected token`;
the other 10 suites passed with 31 tests passed and one skipped.
- Duration and resource metrics: Linux build/compare steps completed in 125 seconds (x64) and 131
seconds (arm64); macOS arm64 failed after 123 seconds in the build/compare step. Windows contract
suites completed in 1.54 seconds on arm64 and before artifact assembly on both architectures.
Peak RSS, file/channel counts, and cancellation settlement were not instrumented by this gate.
- Artifact/log/trace link: run and job links above. The two Linux evidence artifacts are unpublished;
failed cells uploaded no runtime artifact.
- Oracle proved: the equality gate accepts both Linux glibc tuples and detects real macOS
clean-build drift; Windows contract collection fails before unverified artifact work can start.
No asset was published and no production or default path changed.
- Does not prove: Windows parser correction, macOS producer determinism, oldest baselines, native
trust/signing, SSH, SFTP/system-SSH, release publication, resolver/cache,
transfer/install, fallback, UI, or any enabled tuple.
- Checklist items satisfied: none newly complete; native reproducibility remains open.
- Follow-up: remove the comparator shebang, add explicit native `node --check` gates, report
runtime-tree drift before derived metadata, rerun all six jobs, and correct the macOS producer only
after the exact differing runtime file is identified. Never ignore or normalize unequal bytes in
the comparator.
### E-M3-REPRODUCIBILITY-DIAGNOSTIC-LOCAL-001 — Windows parser and runtime-first drift diagnostics
- Date: 2026-07-14
- Commit SHA / PR: exact implementation commit
`e58913d1a571f4c578a7fe1dc51ef5c93e9b3136` in stacked draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: macOS 26.2 build 25C56 arm64, native; Node v26.0.0 and pnpm 10.24.0. Node v24.18.0
target-native GitHub execution remains pending.
- Remote and transport: none; local synthetic comparator fixtures and workflow source contract only
- Exact commands:
```sh
node --check config/scripts/ssh-relay-runtime-reproducibility.mjs
node --check config/scripts/ssh-relay-runtime-reproducibility.test.mjs
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-runtime-reproducibility.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-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-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-tree.test.mjs \
config/scripts/ssh-relay-runtime-zip.test.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs
pnpm run typecheck
pnpm exec oxlint config/scripts/ssh-relay-runtime-reproducibility.mjs \
config/scripts/ssh-relay-runtime-reproducibility.test.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-runtime-reproducibility.mjs \
config/scripts/ssh-relay-runtime-reproducibility.test.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md
git diff --check
```
- Result: PASS. Both new files passed `node --check`; the purpose suite passed 11/11 tests; the
complete artifact set passed 41/41 tests across 11 suites. Typecheck, focused oxlint, the
355-entry max-lines ratchet, full repository lint/reliability/localization, formatting, and diff
checks exited zero. Full lint emitted only pre-existing warnings outside this package.
- Duration and resource metrics: syntax checks 60 ms and 50 ms; purpose suite 850 ms wall; complete
artifact suite 1.27 seconds wall; typecheck 2.00 seconds; focused oxlint 480 ms; max-lines 780 ms;
full lint 11.96 seconds. Synthetic fixture peak RSS/open files were not instrumented.
- Artifact/log/trace link: exact sources in commit `e58913d1a`; target-native rerun pending
- Oracle proved: the comparator and its test import parse locally without the shebang; both POSIX
and Windows workflow contract stages run explicit syntax checks before Vitest or artifact inputs;
a simultaneous runtime/identity drift reports the runtime-tree path first. The comparator still
compares every byte and does not normalize or ignore drift.
- Does not prove: Windows x64/arm64 parsing, any native build, the differing macOS runtime path,
macOS determinism, oldest baselines, native trust, SSH, publication, transfer, fallback, UI, or an
enabled tuple.
- Checklist items satisfied: no native or tuple box; this closes only the local diagnostic
correction required after E-M3-REPRODUCIBILITY-CI-RED-001.
- Follow-up: push the exact commit, rerun all six native jobs, require both Windows syntax checks to
pass, and use the macOS runtime-first failure path to correct producer nondeterminism.
### E-M3-REPRODUCIBILITY-DIAGNOSTIC-CI-RED-001 — Native drift paths isolated on all six runners
- Date: 2026-07-14
- Commit SHA / PR: exact head `c62b0d0a9580b132fec5f11c3234a983503a011c`; stacked draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Run and jobs: [run 29348424235](https://github.com/stablyai/orca/actions/runs/29348424235),
conclusion `failure`; Linux x64 `87138091964`, Linux arm64 `87138091995`, macOS arm64
`87138091994`, macOS x64 `87138092013`, Windows x64 `87138091948`, and Windows arm64
`87138091977`
- Runners: `ubuntu-24.04` x64 image `20260705.232.1`, `ubuntu-24.04-arm` arm64 image
`20260706.52.2`, `macos-15` arm64 image `20260706.0213.1`, `macos-15-intel` x64 image
`20260629.0276.1`, `windows-2022` x64 image `20260706.237.1`, and `windows-11-arm` arm64
image `20260706.102.1`; all native and using Node v24.18.0
- Remote and transport: none; target-native artifact assembly/execution and unpublished Actions
artifact upload only
- Exact evidence commands:
```sh
gh run view 29348424235 --repo stablyai/orca \
--json databaseId,headSha,status,conclusion,url,createdAt,updatedAt,jobs
gh api -H 'Accept: application/vnd.github+json' \
repos/stablyai/orca/actions/jobs/<job-id>/logs
```
- Result: FAIL as an evidence-producing native gate. Every POSIX runner passed 41/41 contracts;
Windows passed 38 and skipped three POSIX-only tests. Linux x64 and arm64 built, verified,
smoked, compared exactly, and uploaded unpublished artifacts `8317161547` and `8317164595`.
macOS arm64 first differed at
`runtime/node_modules/node-pty/build/Release/pty.node`, with content IDs
`sha256:206de506d0499ded3c16913e28f76c528f5bead5214e6675ee4a5ee6bb0a642c` and
`sha256:68e23c3608b3d3bc95d591e6f99a5126ab6a6b0066c84c8340f4bc4195e64ac8`;
macOS x64 differed at the same path with
`sha256:eda4590b97d003f9a94fb59595a84273f3660fb920d85ff699c9d7925c52a7a2` and
`sha256:701b4310acbeb1f7340d50b554cfe65e2802c5346aca0036aae4ebb3f974becf`.
Windows x64 first differed at
`runtime/node_modules/node-pty/build/Release/conpty_console_list.node`, with content IDs
`sha256:df55ffd5a5614a61e5fd2ae8cd990f28b84b9a0d557df861989c92b9e66652eb` and
`sha256:1bbf496013af3d0172a275ba48dcb1a054aeb1b17261b606ecdd4c2dd3ce95fb`;
Windows arm64 differed at the same path with
`sha256:4d93459ffefb8f8b8250c6b0267e34f04a9ac5b5f99b60671f484fb34054519a` and
`sha256:844c6f07a92ed3602af74bba92c8c98047313b97080b668aeb0b3a51ef7d2db8`.
- Duration and resource metrics: build/compare steps were 138 seconds for Linux x64, 132 seconds
for Linux arm64, 100 seconds for macOS arm64, 301 seconds for macOS x64, 296 seconds for Windows
x64, and 285 seconds for Windows arm64. Both builds in every failing cell completed bundled
Node/native PTY/watcher smoke before comparison. Smoke RSS ranged from 40,615,936 to 53,633,024
bytes in failing cells. Peak build RSS, open files/channels, and cancellation settlement were not
instrumented by this gate.
- Artifact/log/trace link: run/job links above; Linux x64 upload
[8317161547](https://github.com/stablyai/orca/actions/runs/29348424235/artifacts/8317161547) and
Linux arm64 upload
[8317164595](https://github.com/stablyai/orca/actions/runs/29348424235/artifacts/8317164595);
failing cells correctly uploaded nothing
- Oracle proved: the parser and runtime-first diagnostic corrections execute on all native runner
families; Linux reproducibility remains green; macOS and Windows drift is inside native node-pty
outputs rather than archive/identity derivation; rejected cells cannot upload or publish bytes.
- Does not prove: either linker correction, macOS/Windows equality, cross-run identity, oldest
baselines, native trust/signing, SSH, transfer, publication, resolver/cache, fallback, UI, or an
enabled tuple.
- Checklist items satisfied: no new completion checkbox; this closes only the diagnostic run and
identifies the bounded producer corrections required next.
- Follow-up: retain the complete-output comparator, correct native producers without post-build
normalization, and require a new same-head six-runner pass before advancing.
### E-M3-REPRODUCIBILITY-LINKER-LOCAL-001 — Canonical work path and native linker correction
- Date: 2026-07-14
- Commit SHA / PR: implementation `a09b02ec4e623cc8cac8ece089e4ff734014dd5b`; canonical-path
follow-up `3e433b3438e8e1aa11d2728e3f2258996b3d37f2`; stacked draft PR
[#8741](https://github.com/stablyai/orca/pull/8741), push/native CI pending
- Runner: macOS 26.2 build 25C56, native Apple M4 arm64; local test/static process Node v26.0.0
and pnpm 10.24.0; native harness used official bundled Node v24.18.0, node-gyp 12.3.0,
Apple Clang/make, and Python 3.13.5
- Remote and transport: none; exact Node archive downloaded over HTTPS, then local native builds;
no SSH, publication, or production consumer
- Exact commands:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-node-pty-build.test.mjs \
config/scripts/ssh-relay-node-pty-windows-build-determinism.test.mjs \
config/scripts/ssh-relay-runtime-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-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/build-ssh-relay-runtime.mjs \
config/scripts/ssh-relay-runtime-build.test.mjs \
config/scripts/ssh-relay-node-pty-build.mjs \
config/scripts/ssh-relay-node-pty-build.test.mjs \
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-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/build-ssh-relay-runtime.mjs \
config/scripts/ssh-relay-runtime-build.test.mjs \
config/scripts/ssh-relay-node-pty-build.mjs \
config/scripts/ssh-relay-node-pty-build.test.mjs \
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-runtime-workflow.test.mjs
git diff HEAD --check
```
The native oracle downloaded `node-v24.18.0-darwin-arm64.tar.xz`, twice extracted it under the
fixed exclusive `/tmp/orca-ssh-relay-runtime-build-work/node-inputs` path, called
`buildPatchedSshRelayNodePty` twice with the same clean `node-pty` path, compared both outputs,
required one `LC_UUID` from `otool -l`, and then repeated the build in a separate process session
against the prior hashes.
- Result: PASS locally. The focused command passed 8/8 tests; all 14 artifact suites passed 47/47.
Typecheck, focused oxlint, the 355-entry max-lines ratchet, full repository
lint/reliability/localization, formatting, syntax, and diff gates exited zero. Full lint emitted
only pre-existing out-of-package warnings. Two clean native passes and the separate repeat session
produced byte-identical outputs: `pty.node` was 83,256 bytes with SHA-256
`e73f80560b8ecc0ae19421fc82fb612e4f50e66f17dfd491cdf95599bc7b685a`, and
`spawn-helper` was 50,192 bytes with SHA-256
`3396961b0f8f9cdb0fcd2155eb54035276ee7ee2813d84faa1dfae5ba84dc95d`.
Each retained exactly one `LC_UUID`, and every `buildPatchedSshRelayNodePty` call completed its
bundled-Node native-load oracle. A separate `-Wl,-no_uuid` diagnostic made bytes equal but caused
bundled Node/dlopen to reject `pty.node` with `missing LC_UUID load command`; that approach was
discarded and is not present in the implementation.
- Duration and resource metrics: focused tests 229 ms; exact-head full artifact suite 1.35 seconds;
parallel static gate 11.5 seconds; two-pass canonical native harness 11.126 seconds; separate
repeat native build 2.511 seconds excluding archive download/extraction. Native harness peak RSS,
file counts, and cancellation settlement were not instrumented.
- Artifact/log/trace link: exact source commits and local command output; no artifact was published
- Oracle proved: output/work overlap rejects; both paths are exclusive; a caller-provided canonical
work path is reused cleanly and safely; macOS configures then links with `-Wl,-reproducible`
without deleting `LC_UUID`; copied Windows `binding.gyp` receives exactly one `/Brepro` and source
drift fails closed; Linux and legacy/repository-wide node-pty behavior are unchanged; both native
workflow families use the same canonical runner-local path while retaining run-scoped outputs.
- Does not prove: native Windows `/Brepro` behavior, macOS x64, GitHub-hosted equality, different
runner-image/toolchain revisions, oldest baselines, native signatures/trust, SSH, transfer,
publication, resolver/cache, fallback, UI, or any enabled tuple.
- Checklist items satisfied: exact-head local linker/work-path contracts and macOS arm64 native
correction only; native reproducibility remains open until all six jobs pass together.
- Follow-up: push `3e433b343`, run all six target-native jobs, and require complete equality plus
upload in each cell without weakening the comparator.
### E-M3-REPRODUCIBILITY-LINKER-CI-RED-001 — POSIX equality and Windows builder parser boundary
- Date: 2026-07-14
- Commit SHA / PR: exact head `54df2cb998ae564c1a19cf32a8c93bf28770d07a`; stacked draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Run and jobs: [run 29350639822](https://github.com/stablyai/orca/actions/runs/29350639822),
conclusion `failure`; Linux x64 `87145674443`, Linux arm64 `87145674440`, macOS arm64
`87145674422`, macOS x64 `87145674490`, Windows x64 `87145674413`, and Windows arm64
`87145674455`
- Runners: `ubuntu-24.04` x64 image `20260705.232.1`, `ubuntu-24.04-arm` arm64 image
`20260706.52.2`, `macos-15` arm64 image `20260706.0213.1`, `macos-15-intel` x64 image
`20260629.0276.1`, `windows-2022` x64 image `20260706.237.1`, and `windows-11-arm` arm64
image `20260706.102.1`; all native, runner `2.335.1`, provisioner `20260624.560`, and Node
v24.18.0. Windows x64 was Server 2022 build 20348; arm64 was Windows Enterprise build 26200.
- Remote and transport: none; target-native artifact assembly/execution and unpublished Actions
artifact upload only
- Exact evidence commands:
```sh
gh run view 29350639822 --repo stablyai/orca \
--json databaseId,headSha,headBranch,status,conclusion,url,createdAt,updatedAt,jobs
gh api repos/stablyai/orca/actions/jobs/<job-id>/logs
gh api 'repos/stablyai/orca/actions/runs/29350639822/artifacts?per_page=100'
```
- Result: FAIL as an evidence-producing six-runner gate. Linux x64/arm64 and macOS x64/arm64 each
passed 47/47 contracts, authenticated exact Node inputs, performed two exclusive native builds,
fully inspected and smoked both outputs, compared the runtime tree/archive/identity/SPDX/
provenance byte-for-byte, and uploaded only the first equal output. Windows x64/arm64 each passed
42 tests and skipped three POSIX-only tests across 13 suites, then failed while collecting
`ssh-relay-runtime-build.test.mjs` with `SyntaxError: Invalid or unexpected token`: that test
imports `build-ssh-relay-runtime.mjs`, whose first line was an unused Unix shebang. Input download,
native build, verification, comparison, and upload were all skipped on both Windows jobs.
- Equal-output and upload details:
| Tuple | Content ID / runtime archive SHA-256 | Archive / expanded / files | Build 1 / build 2 / max smoke RSS | Actions artifact |
| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- | ------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| `linux-x64-glibc` | `960546cd96c67fcf9bb0a61e96ecdbecbffd9104d3a495578f8bb19dd810649a` / `1881a082b5c8ab1caf28801e42a8f62601b0275096ec67468498d1a370c4af3b` | 29,266,692 / 124,846,502 / 34 | 67,504 / 65,510 ms / 56,438,784 bytes | [8318063540](https://github.com/stablyai/orca/actions/runs/29350639822/artifacts/8318063540), 29,282,697 bytes |
| `linux-arm64-glibc` | `aa3aa8ae8b42334ba7b0dbe5c43fd1184e36b3f4f4a9bec0e990e9b78f090756` / `909a8f69acf9edb294e5d74b4323adc399821e049f0cba933206621f75c3effe` | 28,197,220 / 122,865,172 / 34 | 67,457 / 65,054 ms / 52,596,736 bytes | [8318072302](https://github.com/stablyai/orca/actions/runs/29350639822/artifacts/8318072302), 28,212,074 bytes |
| `darwin-arm64` | `40ff5d2036784b794e7b09f78596409f63f3145280c530bece5280d40897f6cb` / `132b0b6b3ecd4386ecf72119a950334f54ec34fe46e51c4f871d8c7878247775` | 24,736,104 / 122,027,869 / 35 | 55,320 / 52,391 ms / 51,658,752 bytes | [8318052438](https://github.com/stablyai/orca/actions/runs/29350639822/artifacts/8318052438), 24,749,047 bytes |
| `darwin-x64` | `585ea6034cdd07487d8667059f975a877c795a45dc0d6eeee1617f2e3749faa2` / `b47ed8b464989b1638a2024ac5980a45a494ff33f9a3dbe648c8f7974efb1e33` | 26,373,464 / 124,316,655 / 35 | 88,815 / 78,961 ms / 40,665,088 bytes | [8318098409](https://github.com/stablyai/orca/actions/runs/29350639822/artifacts/8318098409), 26,388,039 bytes |
- Duration and resource metrics: total jobs were 3m12s Linux x64, 3m28s Linux arm64, 2m50s macOS
arm64, 4m28s macOS x64, 1m19s Windows x64, and 3m42s Windows arm64. Windows contract collection
took 1.97s and 2.76s. POSIX comparison scanned 54/55 entries and 146.8–154.1 MB in 285–895 ms.
Build peak RSS, open files/channels, and cancellation settlement were not instrumented.
- Artifact/log/trace link: run/job links and four unpublished seven-day artifacts above; Windows
correctly produced no artifact
- Oracle proved: the canonical clean-work directory plus `-Wl,-reproducible` makes both native
macOS architectures byte-identical while retaining successful bundled-Node/native PTY/watcher
execution; both Linux controls remain equal; failed contract collection prevents Windows inputs,
execution, and upload. The parser boundary is the imported builder shebang, not `/Brepro` output.
- Does not prove: Windows builder parsing after correction, native `/Brepro` equality, a six-job
pass, cross-run identity, oldest baselines, native trust/signing, SSH, transfer, publication,
resolver/cache, fallback, UI, or an enabled tuple.
- Checklist items satisfied: native macOS linker reproducibility evidence only; native
reproducibility remains open until all six same-head jobs pass together.
- Follow-up: remove only the unused builder shebang, syntax-check the builder and its test on POSIX
and Windows before Vitest, rerun local gates, then require a new six-runner exact-head pass.
### E-M3-REPRODUCIBILITY-BUILDER-PARSER-LOCAL-001 — Imported builder parser correction
- Date: 2026-07-14
- Commit SHA / PR: exact implementation commit
`f864d3fa6df7a938e509c7622604e2fd2bd85493`; stacked draft PR
[#8741](https://github.com/stablyai/orca/pull/8741), push/native CI pending
- Runner: macOS 26.2 build 25C56, native Apple M4 arm64; Node v26.0.0 and pnpm 10.24.0. The
repository requires Node 24, so the new target-native run remains authoritative for Windows.
- Remote and transport: none; local syntax, contract, and repository static gates only
- Exact commands:
```sh
node --check config/scripts/build-ssh-relay-runtime.mjs
node --check config/scripts/ssh-relay-runtime-build.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-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/build-ssh-relay-runtime.mjs \
config/scripts/ssh-relay-runtime-build.test.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs \
.github/workflows/ssh-relay-runtime-artifacts.yml
pnpm run check:max-lines-ratchet
GOMAXPROCS=2 pnpm run lint
pnpm exec oxfmt --check .github/workflows/ssh-relay-runtime-artifacts.yml \
config/scripts/build-ssh-relay-runtime.mjs \
config/scripts/ssh-relay-runtime-build.test.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs
git diff HEAD --check
```
- Result: PASS at the exact implementation commit. Both syntax checks exited zero; all 14 artifact
suites passed 47/47 tests. Typecheck, focused oxlint, the 355-entry max-lines ratchet, full
repository lint/reliability/localization, formatting, and exact-head diff checks exited zero.
Full lint emitted only pre-existing warnings outside this package.
- Duration and resource metrics: full artifact command 3.08s wall; typecheck 3.30s; focused oxlint
0.49s; max-lines 0.76s; full lint 12.79s. Synthetic test peak RSS, open files/channels, and
cancellation settlement were not instrumented.
- Artifact/log/trace link: exact commit and local command output; no runtime artifact was produced
- Oracle proved: the builder and importing test parse after removing only the unused shebang; every
real builder invocation remains explicitly through `node`; both workflow families syntax-check
the builder and test before Vitest or Node input download; workflow source contracts require both
POSIX and Windows checks without changing permissions, artifact scope, or production behavior.
- Does not prove: native Windows parsing, Node 24 behavior, `/Brepro` output equality, any native
build, oldest baselines, native trust, SSH, transfer, publication, resolver/cache, fallback, UI,
or an enabled tuple.
- Checklist items satisfied: exact local builder parser/syntax-gate correction only; no native or
tuple checkbox.
- Follow-up: push the exact commit and require all six target-native jobs to pass together before
closing native reproducibility.
### E-M3-REPRODUCIBILITY-WINDOWS-ARM64-CI-RED-001 — Native arm64 residual binary drift
- Date: 2026-07-14
- Commit SHA / PR: exact head `de541efd11989d2e6dce0402307912afffae3510`; stacked draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Run and jobs: [run 29351557922](https://github.com/stablyai/orca/actions/runs/29351557922),
conclusion `failure`; Linux arm64 `87148758201`, Linux x64 `87148758213`, Windows x64
`87148758259`, macOS arm64 `87148758282`, macOS x64 `87148758287`, and failing Windows arm64
`87148758290`
- Runners: `ubuntu-24.04-arm` image `20260706.52.2`, `ubuntu-24.04` image `20260705.232.1`,
`windows-2022` image `20260706.237.1`, `macos-15-arm64` image `20260706.0213.1`, `macos-15`
image `20260629.0276.1`, and `windows-11-arm64` image `20260706.102.1`; all native, runner
`2.335.1`, provisioner `20260624.560`, and Node v24.18.0
- Remote and transport: none; target-native artifact assembly/execution and unpublished Actions
artifact upload only
- Exact evidence commands:
```sh
gh run view 29351557922 --repo stablyai/orca \
--json databaseId,headSha,headBranch,status,conclusion,url,createdAt,updatedAt,jobs
gh api repos/stablyai/orca/actions/jobs/<job-id>/logs
gh api 'repos/stablyai/orca/actions/runs/29351557922/artifacts?per_page=100'
```
- Result: FAIL as a six-runner reproducibility gate. All six jobs passed the builder/test syntax
checks and artifact contracts, authenticated the exact Node inputs, and completed two native
builds. Linux x64/arm64, macOS x64/arm64, and Windows x64 inspected and smoked both outputs,
compared every runtime/archive/identity/SPDX/provenance entry exactly, and uploaded only after
equality. Windows arm64 also inspected and smoked both complete 60-entry, 42-file, 86,189,895-byte
outputs, including PTY input/resize/exit, watcher lifecycle, and resource settlement, but the
comparator first found SHA-256 drift at
`runtime/node_modules/node-pty/build/Release/conpty_console_list.node`; no arm64 artifact uploaded.
- Equal-output artifacts: Linux x64 `8318426445` (29,283,624 bytes), Linux arm64 `8318449064`
(28,212,246 bytes), macOS arm64 `8318457230` (24,710,997 bytes), Windows x64 `8318478579`
(37,075,312 bytes), and macOS x64 `8318524353` (26,365,330 bytes), all unpublished seven-day
Actions artifacts. Their runtime content IDs are respectively `960546cd96c6`, `aa3aa8ae8b42`,
`40ff5d203678`, `2a6bfa06b445`, and `585ea6034cdd` (prefixes shown; full values remain in logs).
- Windows arm64 drift details: build one content ID `58afdfbe6b3e48ee1a46bcb09f20a9c7d4d6fe25bdf346e82038fa0a2211ea86`,
archive 33,261,552 bytes with SHA-256 `0277fa35bb1ec644a509e3068bf120294c99484ac3638fdd352ae386f83bdd2f`;
build two content ID `6e64071c12f58b0f73a34339c6f1f1dac725d852224537c32d2c87f8e587bdb9`,
archive 33,261,545 bytes with SHA-256 `234aa56026009c91abdfa37abae484723a39f027f8afa00760afc784a3ecfd05`.
- Duration and resource metrics: jobs were 3m43s Linux arm64, 2m57s Linux x64, 4m54s Windows x64,
4m7s macOS arm64, 6m34s macOS x64, and 10m37s Windows arm64. Windows arm64 native builds took
152,711 ms and 132,480 ms; smoke took 5,845 ms and 5,408 ms at 53,018,624 and 51,732,480 bytes
RSS. Build peak RSS, open files/channels, and cancellation settlement were not instrumented.
- Oracle proved: the parser correction works natively on both Windows architectures; `/Brepro`
yields complete equality on Windows x64; all four POSIX controls remain equal; a native arm64
residual is isolated to the copied node-pty `conpty_console_list.node`; mismatch prevents upload.
- Does not prove: the differing byte region or PE field, a Windows arm64 correction, all-six
equality, cross-run identity, oldest baselines, native trust/signing, SSH, transfer, publication,
resolver/cache, fallback, UI, or an enabled tuple.
- Checklist items satisfied: native parser boundary and five same-head reproducibility cells only;
native reproducibility remains open.
- Follow-up: add a bounded PE-diff diagnostic for the two Windows arm64 binaries, record byte ranges
and headers, then correct only the copied artifact build if evidence identifies a safe source.
Do not weaken comparison, upload failed outputs, or change repository-wide/legacy node-pty.
### E-M3-REPRODUCIBILITY-WINDOWS-ARM64-REPEAT-CI-RED-001 — Independent repeat of arm64-only drift
- Date: 2026-07-14
- Commit SHA / PR: documentation-only exact head `a7151f9750fd9bfcdcff8c01c1fd6caff2e6116a`;
implementation bytes remain `de541efd11989d2e6dce0402307912afffae3510`; stacked draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Run and jobs: [run 29352510414](https://github.com/stablyai/orca/actions/runs/29352510414),
conclusion `failure`; Linux x64 `87151980265`, Linux arm64 `87151980298`, macOS arm64
`87151980396`, macOS x64 `87151980327`, Windows x64 `87151980324`, and failing Windows arm64
`87151980264`
- Runners: the same six native labels/toolchain family recorded in
E-M3-REPRODUCIBILITY-WINDOWS-ARM64-CI-RED-001. The failing cell was Windows 11 Enterprise
10.0.26200 arm64, image `windows-11-arm64` `20260706.102.1`, runner `2.335.1`, provisioner
`20260624.560`, Node v24.18.0, MSVC 19.44.35228 / tools 14.44.35207, Windows SDK 10.0.26100.0,
and Python 3.13.14.
- Remote and transport: none; independent target-native artifact assembly/execution and unpublished
Actions artifact upload only
- Exact evidence commands:
```sh
gh run view 29352510414 --repo stablyai/orca \
--json databaseId,headSha,status,conclusion,url,updatedAt,jobs
gh api repos/stablyai/orca/actions/jobs/87151980264/logs
gh api 'repos/stablyai/orca/actions/runs/29352510414/artifacts?per_page=100'
```
- Result: FAIL as expected at the unchanged native boundary. All 14 contract suites passed on
Windows arm64 with 44 tests passed and three POSIX-only skips. Linux x64/arm64, macOS x64/arm64,
and Windows x64 independently built twice, inspected, smoked, compared exactly, and uploaded
unpublished artifacts `8318818618`, `8318833832`, `8318812505`, `8318846378`, and `8318866333`.
Windows arm64 again built, inspected, and smoked two complete 60-entry, 42-file,
86,189,895-byte outputs, then first differed at
`runtime/node_modules/node-pty/build/Release/conpty_console_list.node`; upload was skipped.
- Windows arm64 rejected outputs: first content ID
`e13f39ae96eba36c3ed41054da7429533e2eebbdd7d845a712d802d002906bc8`, ZIP 33,261,548 bytes
with SHA-256 `ca1be18b572e353ac2eb3a390d91e5d0acb93100735f387ce74300cb48ba39d1`;
second content ID `4989a282c6529df6066aefbb5667ca96777907d54f1d9a48041f8ff98555b9c0`,
ZIP 33,261,548 bytes with SHA-256
`e91664074aa2f434ea0e2603596410c119b89b2a4a4d7eab453bfb7407ff91d0`.
- Duration and resource metrics: jobs completed in 3m9s Linux x64, 3m39s Linux arm64, 2m56s macOS
arm64, 4m9s macOS x64, 4m53s Windows x64, and 8m48s Windows arm64. Arm64 native builds took
145,700 ms and 124,010 ms; smoke took 6,042 ms and 5,564 ms at 53,075,968 and 52,977,664 bytes
RSS. Build peak RSS, open files/channels, and cancellation settlement were not instrumented.
- Artifact/log/trace link: run/job above and the five unpublished seven-day artifacts; no failed
arm64 bytes were uploaded
- Oracle proved: the Windows arm64 difference repeats across an independent run while the same-head
Windows x64 and four POSIX controls remain reproducible; the strict gate consistently prevents a
rejected output from upload. The drift is not a transient failure from run 29351557922.
- Does not prove: differing PE byte ranges/headers, a producer correction, arm64 equality,
cross-run equality, oldest baselines, native trust/signing, SSH, publication, transfer, fallback,
UI, or any enabled tuple.
- Checklist items satisfied: no new completion checkbox; this repeat evidence justifies the bounded
PE diagnostic before any producer change.
- Follow-up: run the bounded diagnostic on both native Windows runners, require x64 to remain equal,
and use only the rejected arm64 headers/ranges to choose or reject a copied-artifact correction.
### E-M3-WINDOWS-PE-DIAGNOSTIC-LOCAL-001 — Bounded rejected-binary diagnostics
- Date: 2026-07-14
- Commit SHA / PR: exact implementation commit
`39ee3451b8cc38b5311a0cb1085ad48a1f302185`; stacked draft PR
[#8741](https://github.com/stablyai/orca/pull/8741), push/native execution pending
- Runner: macOS 26.2 build 25C56, native Apple M4 arm64; Node v26.0.0 and pnpm 10.24.0. The
repository requires Node 24, so target-native Windows jobs remain authoritative.
- Remote and transport: none; synthetic PE32+ arm64 fixtures and workflow source contracts only
- Exact commands:
```sh
node --check config/scripts/ssh-relay-runtime-windows-pe-diagnostic.mjs
node --check config/scripts/ssh-relay-runtime-windows-pe-diagnostic.test.mjs
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-runtime-windows-pe-diagnostic.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-runtime-windows-pe-diagnostic.mjs \
config/scripts/ssh-relay-runtime-windows-pe-diagnostic.test.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-runtime-windows-pe-diagnostic.mjs \
config/scripts/ssh-relay-runtime-windows-pe-diagnostic.test.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md
git diff --check
```
- Result: PASS at the exact implementation commit. Both syntax checks exited zero; the purpose
command passed 5/5 tests across two suites; all 15 artifact suites passed 50/50 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: syntax checks 50 ms and 40 ms; purpose suite 142 ms Vitest / 0.76s
wall; complete artifact suite 470 ms Vitest / 1.15s wall; typecheck 2.68s; focused oxlint 0.69s;
max-lines 1.58s; full lint 11.92s; formatting check 1.82s. The implementation rejects inputs over
64 MiB, reads in 64 KiB chunks, caps the header at 1 MiB, the section/debug tables at 96/32
entries, byte/header differences at 128 each, and the whole diagnostic at 60 seconds. Synthetic
peak RSS/open files were not instrumented.
- Artifact/log/trace link: exact source commit; no binary artifact was created or uploaded
- Oracle proved: valid PE32+ fixtures report whole-file sizes/SHA-256, coalesced file-offset ranges,
COFF/optional/data-directory/section/debug headers, and hashed—not printed—CodeView paths;
oversized, malformed, same-file, unknown-argument, and pre-aborted inputs fail boundedly. Workflow
contracts require diagnostic syntax/tests on Windows, invoke it only after the strict comparator
rejects the two retained `conpty_console_list.node` files, throw afterward, and leave evidence
copying unreachable, so rejected binaries are not uploaded. No max-lines bypass was added.
- Does not prove: parsing the real x64/arm64 linker outputs, native Node 24 behavior, the actual
differing ranges/headers, x64 equality after the workflow change, a producer correction, arm64
equality, oldest baselines, native trust, SSH, publication, transfer, fallback, UI, or an enabled
tuple.
- Checklist items satisfied: local bounded diagnostic and fail-closed workflow ordering only; no
native, tuple, or production checkbox.
- Follow-up: push the exact implementation, require native x64 equality and arm64 diagnostic output
with no upload, then record the exact PE evidence before changing the producer.
### E-M3-WINDOWS-PE-DIAGNOSTIC-CI-RED-001 — Real arm64 PE drift with x64 control
- Date: 2026-07-14
- Commit SHA / PR: exact documentation head `27c6a5718c544cd3f559d6adc24cc0beca2ed59e`,
containing diagnostic implementation `39ee3451b8cc38b5311a0cb1085ad48a1f302185`; stacked draft
PR [#8741](https://github.com/stablyai/orca/pull/8741)
- Run and jobs: [run 29353432240](https://github.com/stablyai/orca/actions/runs/29353432240),
conclusion `failure`; Windows arm64 `87155072734`, macOS x64 `87155072752`, Linux x64
`87155072794`, macOS arm64 `87155072820`, Linux arm64 `87155072837`, and Windows x64
`87155072849`
- Runners: the six target-native labels recorded in prior reproducibility evidence. The diagnostic
cell was Windows 11 Enterprise 10.0.26200 arm64, image `windows-11-arm64` `20260706.102.1`,
runner `2.335.1`, provisioner `20260624.560`, Node v24.18.0, MSVC 19.44.35228 / tools
14.44.35207, Windows SDK 10.0.26100.0, and Python 3.13.14.
- Remote and transport: none; target-native artifact assembly/execution, rejected-file diagnostics,
and unpublished Actions artifact upload only
- Exact evidence commands:
```sh
gh run view 29353432240 --repo stablyai/orca \
--json headSha,status,conclusion,url,createdAt,updatedAt,jobs
gh api repos/stablyai/orca/actions/jobs/87155072734/logs
gh api 'repos/stablyai/orca/actions/runs/29353432240/artifacts?per_page=100'
```
- Result: FAIL as the intended evidence-producing gate. Both Windows jobs passed 15 suites with 47
tests passed and three POSIX-only skips, including native Node 24 execution of the new diagnostic
contracts. Linux x64/arm64, macOS x64/arm64, and Windows x64 built twice, inspected, smoked,
compared exactly, and uploaded unpublished artifacts `8319201464`, `8319207054`, `8319191783`,
`8319227039`, and `8319248077`. Windows x64 therefore proves the diagnostic package does not
disturb the successful comparator/upload path. Windows arm64 again built, inspected, and smoked
both complete outputs, then failed at `conpty_console_list.node`; the diagnostic ran before the
fatal throw and artifact upload was skipped.
- Rejected arm64 runtime outputs: first content ID
`bb05f852159277dea617679f84304d2bc3b01d446ceffd07fb58c9469038bcf6`, ZIP 33,261,545 bytes
with SHA-256 `248a4962141e5b1b1c5b24433993923171c5c1d342b8db4de624b92a1019823c`;
second content ID `9d937233f63b142f03e504af2ffeeeb05b2de2b979047a369a79dd1d793b1786`,
ZIP 33,261,544 bytes with SHA-256
`24f752754890704e991f5cc85663a6bb7a6934fc5d64f81ea2414ea12778c249`.
- PE diagnostic result: both native modules are exactly 956,928 bytes with identical machine
`0xaa64`, 12-section layout, PE32+ image/section/file alignment, 840,192-byte code section,
data directories, load config, imports, relocations, and linker version 14.44. Their SHA-256 values
are `7ef783c59d73cd6101fbed4ef634ef3d075448726c118b36cca4d17145e35afa` and
`196dc3373e52350abdf33c30f80a00e0b9b71c96b53b47ba337b1abe428ac8fc`.
Exactly 2,946 bytes differ across 2,887 coalesced ranges. The first code difference is at file
offset `0x41c`, followed by one-byte ranges at 16-byte intervals in the retained sample. Header
differences are confined to COFF/debug timestamps `dd34d0b3` versus `0211cbf1` and CodeView IDs
`383b9420683f05ced18d65c8e95b4a72` versus `459643a06a5ac306094361fd1788cbe5`;
CodeView age and the SHA-256 of the unprinted 92-byte PDB path are identical. The detailed-range
list correctly reports truncation after 128 of 2,887 ranges.
- Duration and resource metrics: jobs were 8m48s Windows arm64, 4m12s macOS x64, 3m15s Linux x64,
2m57s macOS arm64, 3m24s Linux arm64, and 5m0s Windows x64. Arm64 native builds took 148,290 ms
and 120,068 ms; smoke took 5,871 ms and 5,421 ms at 51,417,088 and 52,633,600 bytes RSS. The PE
diagnostic completed between log timestamps 17:30:23.088 and 17:30:23.272 UTC. Build peak RSS,
open files/channels, and cancellation settlement were not instrumented.
- Artifact/log/trace link: run/job above and five unpublished seven-day artifacts; no rejected
arm64 bytes were uploaded
- Oracle proved: native Windows parses and bounds the real PE files, x64 remains fully reproducible,
arm64 output layout and PDB path are stable, and drift affects thousands of mostly single-byte
code ranges plus `/Brepro`-derived identity fields rather than only a timestamp. The comparator
and no-upload boundary remain strict.
- Does not prove: the full per-section distribution because the first diagnostic version labels raw
section data as unmapped and caps detailed ranges at 128; the responsible compiler/linker input,
a safe producer correction, arm64 equality, cross-run equality, oldest baselines, native trust,
SSH, publication, transfer, fallback, UI, or any enabled tuple.
- Checklist items satisfied: native PE diagnostic and Windows x64 control only; no tuple or
production checkbox.
- Follow-up: add raw-section attribution plus bounded per-section totals/samples across the complete
scan, rerun both Windows cells, and do not change the producer until that evidence is recorded.
### E-M3-WINDOWS-PE-FULL-SCAN-LOCAL-001 — Bounded complete-region PE summary
- Date: 2026-07-14
- Commit SHA / PR: exact implementation commit
`cd7f941365bf6e631cf0f9947f517ecef02afc8e`; 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. The
repository requires Node 24, so the target-native jobs remain authoritative.
- Remote and transport: none; synthetic PE32+ fixtures and workflow-source contracts only
- Exact commands:
```sh
node --check config/scripts/ssh-relay-runtime-windows-pe-diagnostic.mjs
node --check config/scripts/ssh-relay-runtime-windows-pe-diagnostic.test.mjs
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-runtime-windows-pe-diagnostic.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-runtime-windows-pe-diagnostic.mjs \
config/scripts/ssh-relay-runtime-windows-pe-diagnostic.test.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-runtime-windows-pe-diagnostic.mjs \
config/scripts/ssh-relay-runtime-windows-pe-diagnostic.test.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md
git diff --check
```
- Result: PASS. Both syntax checks exited zero; the purpose command passed 6/6 tests across two
suites; all 15 artifact suites passed 51/51 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 246 ms Vitest; complete artifact suite 963 ms Vitest
/ 2.24s wall; typecheck 2.52s; focused oxlint 0.68s; max-lines 1.54s; full lint 11.09s; formatting
and diff check 1.06s. The full scan still reads in 64 KiB chunks; detailed ranges remain capped at
128, each byte excerpt at 32 bytes, each region at eight samples, and the entire diagnostic at 60
seconds. Synthetic peak RSS/open files were not instrumented.
- Artifact/log/trace link: exact source commit; no binary artifact was created or uploaded
- Oracle proved: every coalesced range contributes to bounded per-region differing-byte and range
totals even after the detailed-range cap is exhausted; raw PE section data is attributed by the
most specific overlapping region, preserving CodeView/debug labels; excerpts and region samples
remain bounded. The comparator, fatal failure, and no-upload ordering are unchanged.
- Does not prove: the real arm64 section distribution, Windows x64 control, arm64 reproducibility,
a producer correction, oldest baselines, native trust, SSH, publication, transfer, fallback, UI,
or any enabled tuple.
- Checklist items satisfied: diagnostic observability only; no artifact, tuple, or production box.
- Follow-up: push the exact implementation and ledger head, run all six target-native cells, require
five reproducible uploads plus a rejected Windows arm64 full-scan summary, and record that evidence
before changing any copied-artifact producer input.
### E-M3-WINDOWS-PE-FULL-SCAN-CI-RED-001 — Complete native arm64 region classification
- Date: 2026-07-14
- Commit SHA / PR: exact head `a51093f009a03a1105e9f0b86be14797a8046414`, containing exact
diagnostic implementation `cd7f941365bf6e631cf0f9947f517ecef02afc8e`; stacked draft
PR [#8741](https://github.com/stablyai/orca/pull/8741)
- Run and jobs: [run 29354676731](https://github.com/stablyai/orca/actions/runs/29354676731),
conclusion `failure`; Windows arm64 `87159223395`, Linux arm64 `87159223407`, macOS x64
`87159223419`, macOS arm64 `87159223455`, Windows x64 `87159223488`, and Linux x64
`87159223544`
- Runners: the six target-native labels recorded in prior reproducibility evidence. The diagnostic
cell was Windows 11 Enterprise 10.0.26200 arm64, image `windows-11-arm64` `20260706.102.1`,
runner `2.335.1`, provisioner `20260624.560`, Node v24.18.0, MSVC 19.44.35228 / tools
14.44.35207, Windows SDK 10.0.26100.0, and Python 3.13.14.
- Remote and transport: none; target-native artifact assembly/execution, rejected-file diagnostics,
and unpublished Actions artifact upload only
- Exact evidence commands:
```sh
gh run view 29354676731 --repo stablyai/orca \
--json headSha,status,conclusion,url,createdAt,updatedAt,jobs
gh api repos/stablyai/orca/actions/jobs/87159223395/logs
gh api 'repos/stablyai/orca/actions/runs/29354676731/artifacts?per_page=100'
```
- Result: FAIL as the intended evidence-producing gate. All Windows contract suites passed before
execution; Linux x64/arm64, macOS x64/arm64, and Windows x64 built twice, inspected, smoked,
compared exactly, and uploaded. Windows arm64 built, inspected, and smoked both outputs, then the
strict comparator rejected `conpty_console_list.node`; the full-scan diagnostic completed before
the fatal throw and the upload step was skipped.
- Uploaded controls: `ssh-relay-runtime-linux-x64-glibc` artifact `8319697674` (29,282,973 bytes),
Linux arm64 `8319710845` (28,211,514), macOS x64 `8319759300` (26,374,729), macOS arm64
`8319686475` (24,756,958), and Windows x64 `8319797990` (37,075,313). All are unpublished and
expire 2026-07-21; the run contains exactly five artifacts and no Windows arm64 artifact.
- Rejected arm64 outputs: content IDs
`75f048e2216c5a88b5dec886d7ce43f8c54768c42184835cfd0d9a22ea3f1e53` and
`dddc49d84bdafd5bef136be5050352555e99943b21f49781f1604bd9e37051bc`; ZIP sizes 33,261,549
and 33,261,550 bytes with SHA-256
`4c21eaba04e514dee246ee23ea6b4559369fc37eaf90dc0634f11146427bb45a` and
`aecde9c9982d972d194417cc2d076353fb808f39ba4f018b8d9e64cfdf5c3411`.
- PE diagnostic result: both modules are 956,928-byte machine `0xaa64` PE32+ files with identical
12-section layout, data directories, imports, relocations, 840,192-byte code section, and linker
version 14.44. Their SHA-256 values are
`52d4909f106a4e8f85e7fc4c8cc0ccae93eaa74a83342b569d71f67619f15a1e` and
`6926210ec6208caa2a79655e2af544b74d8a0d6d1b8c7637d4ece017c89046de`. Exactly 2,947 bytes
differ across 2,886 ranges:
- `.text`: 2,879 one-byte ranges from file offsets 1,052 through 47,100, exactly 16 bytes apart;
all eight retained samples change `85` to `0e`.
- COFF header: one four-byte `/Brepro` timestamp range.
- Debug directory: three four-byte ranges carrying that timestamp.
- CodeView data: one 16-byte identifier range.
- `.rdata`: two ranges totaling 36 bytes, containing the derived CodeView/build identities and
timestamp.
The CodeView path remains 92 bytes with identical SHA-256
`401080e65f10d7483583537fc7394ddf416fa36febfd76e6d1c17c64bb36f3ea`; no other section
differs. The detailed list remains capped while every range contributes to the five bounded region
summaries.
- Duration and resource metrics: jobs were 9m50s Windows arm64, 6m56s Windows x64, 5m33s macOS x64,
3m44s Linux arm64, 3m18s Linux x64, and 2m55s macOS arm64. Arm64 builds took 152,517 ms and
130,926 ms; smoke took 5,963 ms and 5,414 ms at 51,884,032 and 51,789,824 bytes RSS. The complete
smoke stages took 7,978 ms and 7,203 ms. Build peak RSS, open files/channels, and cancellation
settlement were not instrumented.
- Artifact/log/trace link: run/jobs and five unpublished seven-day artifacts above; rejected arm64
bytes remained runner-local
- Oracle proved: the arm64 failure is copied-source producer nondeterminism concentrated in a
regular `.text` pattern, with only derived `/Brepro` identities elsewhere. It is not ZIP order,
tree metadata, comparator normalization, a changing PDB path, or a cross-platform regression. The
strict no-upload boundary remains effective.
- Does not prove: which compiler input causes the repeating `.text` byte, a safe producer
correction, arm64 equality, cross-run equality, oldest baselines, native trust, SSH, publication,
transfer, fallback, UI, or any enabled tuple.
- Checklist items satisfied: complete native PE region classification and five control cells only;
no tuple or production checkbox.
- Follow-up: evaluate a test-covered reproducible compiler input only in the copied node-pty source,
rerun all local gates and all six target-native cells, and require exact arm64 equality without
normalizing binaries or weakening the comparator.
### E-M3-WINDOWS-COMPILER-DETERMINISM-LOCAL-001 — Copied-source MSVC reproducibility inputs
- Date: 2026-07-14
- Commit SHA / PR: exact implementation commit
`6546f54d53446015f10681fffff9fe895e460232`; 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 execute MSVC, so target-native Windows jobs remain authoritative.
- Remote and transport: none; copied `binding.gyp` source-shape 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, one failed and one passed test. The copied compiler block lacked
`/Brepro`; no implementation change had yet been made.
- 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
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
git diff --check
```
- Green result: PASS. Both syntax checks exited zero; the purpose command passed 6/6 tests across
three suites; all 15 artifact suites passed 51/51 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 183 ms Vitest; complete artifact suite 1.27s Vitest
/ 2.65s wall; typecheck 2.85s; focused oxlint 0.76s; max-lines 1.81s; full lint 10.91s; formatting
and diff check 1.10s. Synthetic peak RSS/open files were not instrumented.
- Artifact/log/trace link: exact source commit; no binary artifact was created or uploaded
- Oracle proved: Windows builds receive `/Brepro` and `/experimental:deterministic` in both the
compiler and linker option blocks after an exact reviewed-source match. POSIX tuples are untouched,
unexpected or already-modified source fails closed, and the installed repository
`node_modules/node-pty/binding.gyp` remains byte-identical because only the exclusive copied source
is rewritten.
- Does not prove: that MSVC 19.44 accepts the flags on both architectures, Windows arm64 equality,
native execution, cross-run equality, oldest baselines, native trust, SSH, publication, transfer,
fallback, UI, or any enabled tuple.
- Checklist items satisfied: copied-source compiler/linker input contract only; no tuple or
production checkbox.
- Follow-up: push the exact implementation and ledger head, run all six target-native cells, and
require exact equality and successful unpublished upload on both Windows architectures.
### E-M3-WINDOWS-COMPILER-DETERMINISM-CI-RED-001 — Compiler-setting correction does not remove arm64 drift
- Date: 2026-07-14
- Commit SHA / PR: exact head `a6b423f33f0f0f7b4e7975ed80d901f168563e61`, containing exact
implementation commit `6546f54d53446015f10681fffff9fe895e460232`; stacked draft
PR [#8741](https://github.com/stablyai/orca/pull/8741)
- Run and jobs: [run 29355973362](https://github.com/stablyai/orca/actions/runs/29355973362),
conclusion `failure`; Linux arm64 `87163591039`, Windows x64 `87163591059`, macOS x64
`87163591076`, Windows arm64 `87163591141`, macOS arm64 `87163591145`, and Linux x64
`87163591207`
- Runners: the six target-native labels recorded in prior reproducibility evidence. The failing cell
was GitHub-hosted `windows-11-arm`, resolved image `win11-arm64` `20260706.102.1`, native
`ARM64`, Node v24.18.0, MSVC 19.44.35228 / tools 14.44.35207, Windows SDK 10.0.26100.0, and
Python 3.13.14.
- Remote and transport: none; target-native artifact assembly/execution, rejected-file diagnostics,
and unpublished Actions artifact upload only
- Exact evidence commands:
```sh
gh run view 29355973362 --repo stablyai/orca \
--json headSha,status,conclusion,url,createdAt,updatedAt,jobs
gh run view 29355973362 --repo stablyai/orca --job 87163591141 --log-failed
gh api repos/stablyai/orca/actions/runs/29355973362/artifacts --paginate
```
- Result: FAIL as the intended strict evidence gate. All 15 Windows contract suites passed with
48 passing and three intentionally skipped tests. Linux x64/arm64, macOS x64/arm64, and Windows
x64 built twice, inspected, executed, compared exactly, and uploaded. Windows arm64 built and
executed both complete outputs, then the comparator rejected
`runtime/node_modules/node-pty/build/Release/conpty_console_list.node`; the diagnostic ran, the
job failed, and no Windows arm64 artifact was uploaded.
- Uploaded controls: Linux x64 artifact `8320207112` (29,282,626 bytes), Linux arm64
`8320217472` (28,211,075), macOS x64 `8320277866` (26,390,709), macOS arm64 `8320191810`
(24,741,051), and Windows x64 `8320261436` (37,075,310). All are unpublished seven-day
artifacts; the run contains exactly five artifacts.
- Rejected arm64 outputs: content IDs
`5523ec111f63a53edb3da090cf90bedb0421c2c9862dc0356e106fdf5a6519f2` and
`faadd0f5285a449fd0aad0960918edc72d565dc150171e8e292c160931340235`; ZIP sizes
33,261,550 and 33,261,546 bytes with SHA-256
`769fc2b8a4761b8d19b9d4b02adc2add6b4232ed73a1ee154e6e073760f52eda` and
`217e9f8b500837130e0978a7aa03dba2790a926b42410752c7d804e6d5a38143`.
- PE diagnostic result: both rejected modules remain 956,928-byte machine `0xaa64` PE32+ files
with the identical 12-section layout. Their SHA-256 values are
`548ff529facca76eb3a30c79f96e2170336b7cf01a3e55aabc2a5cd615cd1111` and
`e0039271e09a898d3edf9eb4506f3d895cd3282a893a1e15acb4abec2f9cb69c`. Exactly the
same 2,947 bytes differ across 2,886 ranges: 2,879 one-byte `.text` ranges every 16 bytes from
offsets 1,052 through 47,100, plus 68 bytes of derived COFF/debug/CodeView identity. The retained
`.text` samples all change `45` to `2d`; the 92-byte PDB path hash remains identical.
- Duration and resource metrics: jobs were 8m25s Windows arm64, 5m50s macOS x64, 5m15s Windows
x64, 3m37s Linux arm64, 3m16s Linux x64, and 2m41s macOS arm64. Arm64 builds took 141,484 ms
and 116,582 ms; smoke took 5,784 ms and 5,439 ms at 53,014,528 and 53,047,296 bytes RSS. The
complete smoke stages took 7,448 ms and 7,383 ms. Build peak RSS, open files/channels, and
cancellation settlement were not instrumented.
- Artifact/log/trace link: run/jobs and the five unpublished artifacts above; rejected arm64 bytes
remained runner-local
- Oracle proved: adding the reviewed compiler/linker settings did not alter the arm64 failure
signature, while all five controls and both arm64 runtime executions remain healthy. The strict
comparator and no-upload boundary still work. This falsifies the hypothesis that the copied
settings alone are sufficient.
- Does not prove: whether the generated MSBuild project actually propagates both settings to every
`conpty_console_list` compile/link invocation, what the repeated ARM64 instruction represents, a
safe producer correction, arm64 or cross-run equality, oldest baselines, native trust, SSH,
publication, transfer, fallback, UI, or any enabled tuple.
- Checklist items satisfied: native negative evidence and five reproducible control cells only; no
tuple or production checkbox.
- Follow-up: inspect the generated `conpty_console_list.vcxproj` fail-closed for the expected
compiler/linker inputs and emit bounded paired ARM64 instruction/disassembly context around the
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.
### E-M3-WINDOWS-MSBUILD-PLATFORM-CASE-CI-RED-001 — Native arm64 Release-group lookup fails closed
- Date: 2026-07-14
- Commit SHA / PR: exact head `65d44d72f7a5da382ffddc194f302b4386b2391c`, containing exact
diagnostic implementation commit `0d3a0c9d3f0eee78d3106a646369cc3fc5db96b1`; stacked draft
PR [#8741](https://github.com/stablyai/orca/pull/8741)
- Run and jobs: [run 29357355064](https://github.com/stablyai/orca/actions/runs/29357355064),
conclusion `failure`; Linux x64 `87168238852`, Windows x64 `87168238867`, macOS x64
`87168238889`, Windows arm64 `87168238935`, macOS arm64 `87168238945`, and Linux arm64
`87168238954`
- Runners: the six target-native labels recorded in prior reproducibility evidence. The failing cell
was GitHub-hosted `windows-11-arm`, image `win11-arm64` release `20260706.102`, native `ARM64`,
runner 2.335.1, Node v24.18.0, MSVC tools 14.44.35207, Windows SDK 10.0.26100.0, and an arm64
developer environment exposing `Platform=arm64`.
- Remote and transport: none; target-native artifact assembly, generated-project verification, and
unpublished Actions artifact upload only
- Exact evidence commands:
```sh
gh run view 29357355064 --repo stablyai/orca \
--json headSha,status,conclusion,url,createdAt,updatedAt,jobs
gh run view 29357355064 --repo stablyai/orca --job 87168238867 --log
gh run view 29357355064 --repo stablyai/orca --job 87168238935 --log-failed
gh api repos/stablyai/orca/actions/runs/29357355064/artifacts --paginate
```
- Result: FAIL as the intended strict evidence gate. Linux x64/arm64, macOS x64/arm64, and Windows
x64 built twice, inspected, executed, compared exactly, and uploaded. Windows x64 logged the
required `/Brepro` and `/experimental:deterministic` compiler and linker settings for both clean
builds. Native Windows arm64 completed compilation of the first copied node-pty tree, then the
generated-project verifier rejected it with `generated MSBuild settings lack one exact Release
configuration` before runtime staging, verification, smoke, comparison, or diagnostics. Its
artifact upload was skipped.
- Uploaded controls: Linux x64 artifact `8320756625` (29,278,781 bytes,
`sha256:50bab609edc8e4eb776f462622c5e1310e926049e5ec0e759692ea4ae74142a4`), Linux arm64
`8320758083` (28,215,186,
`sha256:0b2770363a95717b0193c58ee066242ab08a9fa80eb0060049e912f6314776a8`), macOS x64
`8320845963` (26,407,443,
`sha256:70b4217dc54ff2015638e7407714208f7e399acadf0cbcd0d8d5340025235d34`), macOS arm64
`8320753136` (24,774,283,
`sha256:8f5c1a65e88d79b036cabf24d80656e6b987335c5d0a908d4fff241026d74467`), and Windows x64
`8320806874` (37,075,312,
`sha256:a325d8e09c0391ee971328da397ac23412024ce2e4bf0dc633f897f8b923add2`). The run contains
exactly five unpublished seven-day artifacts and no Windows arm64 artifact.
- Duration and resource metrics: jobs were 6m43s macOS x64, 6m24s Windows arm64, 5m15s Windows
x64, 3m24s Linux x64, 3m23s Linux arm64, and 3m16s macOS arm64. The arm64 verifier failure
occurred 2m24s into the build/inspect step before runtime smoke, so no new arm64 smoke RSS,
channel/file count, cancellation, or fallback metric exists for this run.
- Artifact/log/trace link: run/jobs and the five unpublished artifacts above; no rejected arm64
runtime or binary was staged or uploaded
- Oracle proved: the generated-setting verifier executes after native compilation and fails closed
before staging when its Release-group architecture spelling does not match. Windows x64 proves
both required settings in both generated projects. The native arm64 developer environment uses a
lowercase platform spelling, while all five architecture controls and the no-upload boundary
remain intact.
- Does not prove: the exact native arm64 generated XML condition, that a case-insensitive exact
architecture match reaches its option blocks, a complete arm64 runtime, paired disassembly, a
safe producer correction, arm64 equality, oldest baselines, native trust, SSH, publication,
transfer, fallback, UI, or any enabled tuple.
- Checklist items satisfied: native negative verifier evidence and five reproducible control cells
only; no tuple or production checkbox.
- Follow-up: cover lowercase `arm64` with a purpose fixture and compare only the expected Release
architecture case-insensitively, retaining exact group and option cardinality. Rerun both Windows
cells and all four POSIX controls before interpreting the underlying PE drift.
### E-M3-WINDOWS-MSBUILD-PLATFORM-CASE-LOCAL-001 — Lowercase native platform contract
- Date: 2026-07-14
- Commit SHA / PR: exact implementation commit
`4207c207ab932ef67522b4f73b98d63fa32d0924`; 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, one failed and three passed tests because a generated
`Release|arm64` condition was rejected for the `win32-arm64` tuple.
- 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
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
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 \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md
pnpm exec lint-staged
git diff --check
```
- Green result: PASS. Both 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: red suite 382 ms Vitest; purpose suite 181 ms Vitest; complete
artifact suite 1.51 s Vitest; typecheck 3.41 s; focused lint/line ratchet 3.28 s; full lint
13.30 s. 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: `Release|arm64` is accepted for only the expected `win32-arm64` architecture while
the quoted Release condition remains exact apart from case. Wrong architecture, missing or
duplicate group/option blocks, missing inheritance, and missing or duplicated required flags
still fail closed. No source rewrite, producer, comparator, staging, or production path changed.
- Does not prove: the exact native generated XML, native flag propagation, complete arm64 build,
paired disassembly, 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 platform-casing contract only; no tuple or
production checkbox.
- Follow-up: push the exact implementation and ledger head, then run all six target-native cells and
require both Windows architectures to log the accepted generated settings before interpreting any
later comparator mismatch.
### E-M3-WINDOWS-ARM64-THUNK-DISASSEMBLY-CI-RED-001 — Native linker-thunk drift isolated
- Date: 2026-07-14
- Commit SHA / PR: exact head `e1a63930b4d350e8677e2be3a35b0bdec95f268c`, containing exact
lowercase-platform implementation commit `4207c207ab932ef67522b4f73b98d63fa32d0924`; stacked draft
PR [#8741](https://github.com/stablyai/orca/pull/8741)
- Run and jobs: [run 29358223742](https://github.com/stablyai/orca/actions/runs/29358223742),
conclusion `failure`; Linux arm64 `87171219009` success, Windows arm64 `87171219067` expected
strict failure, Linux x64 `87171219080` success, Windows x64 `87171219167` success, macOS arm64
`87171219192` success, and macOS x64 `87171219210` success
- Runners: GitHub-hosted `ubuntu-24.04-arm` / `ubuntu24-arm64` `20260706.52.2` native ARM64;
`windows-11-arm` / `win11-arm64` `20260706.102.1` native ARM64; `ubuntu-24.04` / `ubuntu24`
`20260705.232.1` native X64; `windows-2022` / `win22` `20260706.237.1` native X64; `macos-15` /
`macos15` `20260706.0213.1` native ARM64; and `macos-15-intel` / `macos15`
`20260629.0276.1` native X64. Every job recorded Node v24.18.0 and the exact source commit.
- Remote and transport: none; target-native artifact assembly, generated-project verification,
bundled-Node/native-module execution, strict comparison, and unpublished Actions artifacts only
- Exact evidence commands:
```sh
gh pr view 8741 --repo stablyai/orca \
--json number,state,isDraft,headRefName,headRefOid,url,statusCheckRollup,updatedAt
gh api repos/stablyai/orca/actions/runs/29358223742
gh api 'repos/stablyai/orca/actions/runs/29358223742/jobs?per_page=100'
gh api 'repos/stablyai/orca/actions/runs/29358223742/artifacts?per_page=100'
gh run view 29358223742 --repo stablyai/orca --job 87171219167 --log
gh run view 29358223742 --repo stablyai/orca --job 87171219067 --log-failed
gh api repos/stablyai/orca/actions/jobs/87171219067/logs | \
sed -n '/windows_arm64_disassembly=first/,$p'
gh run download 29358223742 --repo stablyai/orca --dir <temporary-directory>
jq -c '{tupleId,contentId,nodeVersion,archive,fileCount}' \
<temporary-directory>/*/*.identity.json
```
- Result: FAIL as the intended strict reproducibility gate. The lowercase `arm64` correction reaches
the one expected Release group on both native arm64 clean builds. Both log exactly one inherited
compiler and linker option block containing `/Brepro` and `/experimental:deterministic`, then
assemble, inspect, verify, and execute the complete runtime. Each bundled Node v24.18.0 smoke
proves ABI 137, patched PTY input/resize/exit code 23, watcher create/update/delete, and settled
Windows resources. Strict comparison then rejects only
`runtime/node_modules/node-pty/build/Release/conpty_console_list.node`; no arm64 output is staged
for upload.
- Windows arm64 outputs: both PE files are 956,928 bytes. The first content identity is
`sha256:a6adc716ec39503f68f4e322624ed9193b9343ca4b5f74d22843c47635e81519`, with
33,261,547-byte ZIP
`sha256:5aebde73ef6cad605d13c5c27977f1229729aa28a6959649989d8ecd4a6d2a9e`; the second is
`sha256:2aef13722dd084941069d260591c529d1ca5ebf0b1e2defa34da4c43f44c2d24`, with the same
ZIP size and digest
`sha256:974612580fa7a008bcf3377ddd13ce5f99b78cc31c99c7b9b720066b3f9dc91c`. Both archives
contain 42 files and expand to 86,189,895 bytes.
- PE oracle: the complete scan reports 5,826 differing bytes across 2,886 coalesced ranges. The
`.text` contribution is 5,758 bytes across 2,879 two-byte ranges from file offsets 1,052 through
47,102, exactly 16 bytes apart. The remaining 68 bytes are one four-byte COFF timestamp, three
four-byte debug timestamps, one 16-byte CodeView identifier, and 36 derived `.rdata` bytes.
Section layout, file size, executable control-flow bytes, and all other bytes match.
- Paired disassembly oracle: the first 512 `.text` bytes contain repeated 16-byte function thunks.
For every displayed thunk, `adrp x16, target`, `add x16, x16, offset`, and `br x16` are
byte-identical. Only the unreachable fourth instruction differs: first build `0000024d`
(`udf #0x24d`), second build `0000016d` (`udf #0x16d`). This classifies the changing bytes as
linker-emitted thunk padding; it does not yet prove the generated linker setting responsible.
- Uploaded controls: exactly five unpublished seven-day artifacts and no Windows arm64 artifact:
Linux x64 `8321096098`, 29,281,909 bytes,
`sha256:cbe4d1be7664227fa34fb977f568ba0fc9409d5b5f5139fd4937013e46501074`, content ID
`sha256:960546cd96c67fcf9bb0a61e96ecdbecbffd9104d3a495578f8bb19dd810649a`, archive
`sha256:c87306e069af8c849b7679ccdf0504cc48c51b0ac0586edcdbf698972156bab5`; Linux arm64
`8321099340`, 28,212,775 bytes,
`sha256:0502a9710a9612c44fc2aa4792ee1f30859158fcac40668b59c35ca670eb83f2`, content ID
`sha256:aa3aa8ae8b42334ba7b0dbe5c43fd1184e36b3f4f4a9bec0e990e9b78f090756`, archive
`sha256:f017fcd7808cd8ba86175b2fad63103e880d57ccbec70412938e0cc145310eda`; macOS x64
`8321127611`, 26,376,349 bytes,
`sha256:9297b99e9605c065cbf04d3431edadf8312ee19dd1b60d8790cba95f090bd68e`, content ID
`sha256:585ea6034cdd07487d8667059f975a877c795a45dc0d6eeee1617f2e3749faa2`, archive
`sha256:5669d69085d268e01fe5ece6e4372832c3f61c89bcefa9acaf732c81eb460775`; macOS arm64
`8321085541`, 24,740,934 bytes,
`sha256:8ab194c0d0c08ab40aa8f7821738fd5c2e3b1821fb83df6d59992b6106ba46f2`, content ID
`sha256:40ff5d2036784b794e7b09f78596409f63f3145280c530bece5280d40897f6cb`, archive
`sha256:b51e5a6a53aeff2ae47e4156900981395516c9b246ab1ae3fff5c4c34500ee0a`; and Windows x64
`8321159937`, 37,075,308 bytes,
`sha256:dcadebbcbb7d3c6f308badeefa7940350022b22bb76fd31baed15bb304af56c1`, content ID
`sha256:2a6bfa06b445fb78d6e4a5abba6ec379cbed6f7830c805e82c7145d18a1c3d8b`, archive
`sha256:ee1a0cc8bdf55d783ed1c1232dedd788710a1d88edd7e89a2ddfa84e0986d7ca`.
- Duration and resource metrics: jobs ran 3m07s Linux arm64, 9m15s Windows arm64, 3m02s Linux x64,
5m22s Windows x64, 2m41s macOS arm64, and 4m11s macOS x64. Windows arm64 clean builds took
149,415.066 ms and 130,574.341 ms; verification took 7,688.862 ms and 8,012.846 ms, with smoke
taking 5,865.144 ms at 53,235,712-byte RSS and 5,553.779 ms at 53,133,312-byte RSS. Cancellation,
SSH channel/file counts, and fallback delay are outside this artifact-only run.
- Artifact/log/trace link: run/jobs and the five unpublished artifacts above; rejected arm64 bytes
exist only in the bounded job workspace and log diagnostics and were not uploaded
- Oracle proved: real native lowercase platform acceptance, exact generated compiler/linker option
propagation, two complete executable arm64 candidates, strict rejection, exact five-control
reproducibility, bounded linker-thunk classification, and rejected-output no-upload.
- Does not prove: whether MSBuild enabled incremental linking, that disabling it is the safe producer
correction, arm64 equality, oldest baselines, native trust, SSH, publication, transfer, fallback,
UI, or any enabled tuple. No executable byte may be normalized from this evidence.
- Checklist items satisfied: target-native platform-case gate and bounded ARM64 instruction
diagnostic only; no tuple or production checkbox.
- Follow-up: add a purpose-tested bounded parser for the exact generated Release
`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.
### E-M3-WINDOWS-LINK-INCREMENTAL-CI-RED-001 — Native property oracle is empty and fails closed
- Date: 2026-07-14
- Commit SHA / PR: exact head `2d4433bbd0d2481d3f91c56d10155989cd6e7e44`, containing exact
diagnostic implementation commit `36a19f525cc63e488f49daa5c3a6aafc590acc08`; stacked draft
PR [#8741](https://github.com/stablyai/orca/pull/8741)
- Run and jobs: [run 29359948742](https://github.com/stablyai/orca/actions/runs/29359948742),
conclusion `failure`; macOS x64 `87177167723` success, Linux x64 `87177167732` success, Windows
x64 `87177167740` expected diagnostic failure, Windows arm64 `87177167757` expected diagnostic
failure, macOS arm64 `87177167776` success, and Linux arm64 `87177167801` success
- Runners: GitHub-hosted Windows x64 used `windows-2022` / `win22` `20260706.237.1`, native X64;
Windows arm64 used `windows-11-arm` / `win11-arm64` `20260706.102.1`, native ARM64. Both recorded
Node v24.18.0 and exact source head `2d4433bbd`. The four POSIX cells used the same target-native
labels as E-M3-WINDOWS-ARM64-THUNK-DISASSEMBLY-CI-RED-001.
- Remote and transport: none; target-native artifact assembly, strict pre-staging diagnostic, and
unpublished Actions artifacts only
- Exact evidence commands:
```sh
gh run view 29359948742 --repo stablyai/orca \
--json headSha,status,conclusion,url,createdAt,updatedAt,jobs
gh api repos/stablyai/orca/actions/jobs/87177167740/logs
gh api repos/stablyai/orca/actions/jobs/87177167757/logs
gh api 'repos/stablyai/orca/actions/runs/29359948742/artifacts?per_page=100'
```
- Result: FAIL as the intended diagnostic boundary. Each native Windows job completes the first
copied node-pty build and validates the generated Release compiler/linker option blocks. The
subsequent `MSBuild.exe -getProperty:LinkIncremental` query exits zero but writes only an empty
value. The strict parser rejects it with `unexpected LinkIncremental evaluation from MSBuild`
before runtime staging, archive creation, verification, smoke, comparison, or upload. This
proves the property oracle is not usable and does not prove that incremental linking is enabled
or disabled.
- Uploaded controls: exactly four unpublished seven-day POSIX artifacts and no Windows artifacts:
Linux x64 `8321792649`, 29,280,250 bytes,
`sha256:81b21c5f0670cd0337a9b8c666a154c474f52780d19d745497e25bbe69adcfe3`; Linux arm64
`8321797660`, 28,211,154 bytes,
`sha256:deca7d86e20442287878c6d17f6d533ba6be626dd7ff765f7cd841986272ffc8`; macOS x64
`8321944562`, 26,386,865 bytes,
`sha256:045573de326e8f9532ac31d5449f4aed4a201bbf152c98d971aa761c76e5ec37`; and macOS arm64
`8321811571`, 24,727,700 bytes,
`sha256:8fc66890341f548671ec15d0875186ca5ea128cb1ea959a2a69cacc14b9c0864`.
- Duration and resource metrics: jobs ran 9m08s macOS x64, 3m13s Linux x64, 2m50s Windows x64,
6m31s Windows arm64, 3m56s macOS arm64, and 3m21s Linux arm64. Both Windows failures occur after
one native build but before runtime smoke, so no new Windows RSS, channel/file count,
cancellation, or fallback metric exists.
- Artifact/log/trace link: run/jobs and the four unpublished POSIX artifacts above; no Windows
runtime or binary was staged or uploaded
- Oracle proved: both native Windows architectures return an empty evaluated Release
`LinkIncremental` property and the bounded diagnostic rejects it before staging. All four POSIX
controls remain reproducible and upload.
- Does not prove: the actual linker command, whether `/INCREMENTAL` was passed, the thunk owner, a
safe producer correction, Windows runtime equality, oldest baselines, native trust, SSH,
publication, transfer, fallback, UI, or any enabled tuple.
- Checklist items satisfied: native negative property-oracle evidence only; no tuple or production
checkbox.
- Follow-up: inspect the actual post-build `link.command.1.tlog` under a byte cap, emit only an
allowlisted switch summary, and retain all existing strict comparison/no-upload controls.
### E-M3-WINDOWS-LINK-COMMAND-TRACKING-LOCAL-001 — Bounded native linker-command gate
- Date: 2026-07-14
- Commit SHA / PR: exact implementation commit
`4a66435b71b158624645c614543d139a9ea45d51`; 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 tracking file, so Windows x64/arm64 jobs remain authoritative.
- Remote and transport: none; bounded local file/parser and builder-ordering contracts only
- Exact red commands:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
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
```
- Red result: the pre-implementation purpose suite failed two and passed four tests because the
tracking-path/parser contracts did not exist. The later bounded-reader audit deliberately added
malformed UTF-16 input and failed one of eleven tests because `Buffer.toString('utf16le')`
preserved a lone surrogate instead of rejecting it. Fatal `TextDecoder` decoding closed that
gap; the audit red run took 0.99 s wall with 131,973,120-byte maximum RSS and
96,196,032-byte peak memory footprint.
- 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
/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
```
- Green result: PASS. The purpose suites pass 11/11 tests and all 15 artifact suites pass 56/56.
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 artifact package.
- Duration and resource metrics: purpose gate 0.89 s wall / 166 ms Vitest with 132,513,792-byte
maximum RSS and 96,720,296-byte peak footprint; complete artifact gate 1.35 s wall / 550 ms Vitest
with 137,068,544-byte maximum RSS and 95,819,104-byte peak footprint; typecheck 3.10 s, focused
lint 0.34 s, max-lines 2.01 s, full lint 10.89 s, and format 2.24 s. No SSH channels/files,
cancellation, fallback, or runtime latency is exercised by this diagnostic-only package.
- Artifact/log/trace link: current exact source/tests and local command output; no runtime artifact
was created, staged, published, or uploaded
- Oracle proved: the builder locates the target-specific post-build
`conpty_console_list.tlog/link.command.1.tlog`, reads at most 256 KiB plus one rejection byte,
accepts fatal UTF-16LE-BOM or UTF-8 decoding, requires exactly one command record and one each of
`/Brepro`, `/guard:cf`, and `/experimental:deterministic`, classifies incremental linking as
enabled/disabled/unspecified, and emits only the allowlisted switch summary. Oversize, malformed
encoding/switches, duplicate records/switches, ambiguous incremental states, and missing required
switches fail before runtime staging. POSIX paths create no tracking-file lookup.
- Does not prove: the file path/encoding/record shape on either native Windows runner, the emitted
switch summary, the 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 bounded post-build tracking 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 emit the same accepted summary before changing the producer.
### E-M3-WINDOWS-LINK-COMMAND-PATH-CI-RED-001 — Native fixed tracking path is absent
- Date: 2026-07-14
- Commit SHA / PR: exact head `dafca2060f2daf4ba27b54a0eb18bb9700136f5b`, containing exact
tracking implementation commit `4a66435b71b158624645c614543d139a9ea45d51`; stacked draft
PR [#8741](https://github.com/stablyai/orca/pull/8741)
- Run and jobs: [run 29361673339](https://github.com/stablyai/orca/actions/runs/29361673339),
conclusion `failure`; macOS arm64 `87183054190` success, Linux arm64 `87183054293` success,
Windows arm64 `87183054295` expected diagnostic failure, macOS x64 `87183054306` success, Linux
x64 `87183054310` success, and Windows x64 `87183054318` expected diagnostic failure
- Runners: GitHub-hosted Windows x64 used `windows-2022` / `win22` `20260706.237.1`, native X64;
Windows arm64 used `windows-11-arm64` / `win11-arm64` `20260706.102.1`, native ARM64. Both used
runner `2.335.1`, Node v24.18.0, MSVC 14.44.35207, and exact source head `dafca2060`. The four
POSIX controls used their previously recorded target-native labels.
- Remote and transport: none; target-native artifact assembly, strict pre-staging diagnostic, and
unpublished Actions artifacts only
- Exact evidence commands:
```sh
gh run view 29361673339 --repo stablyai/orca \
--json status,conclusion,headSha,createdAt,updatedAt,url,jobs
gh api repos/stablyai/orca/actions/jobs/87183054318/logs
gh api repos/stablyai/orca/actions/jobs/87183054295/logs
gh api 'repos/stablyai/orca/actions/runs/29361673339/artifacts?per_page=100'
```
- Result: FAIL as the intended diagnostic boundary. Each Windows job successfully compiles
`conpty_console_list.node` for its native architecture, then the bounded reader receives `ENOENT`
for the locally assumed fixed `build/Release/obj/conpty_console_list/conpty_console_list.tlog/`
`link.command.1.tlog` location. Both jobs fail before runtime staging, verification, smoke,
comparison, or upload. This proves only that the fixed path is wrong; it does not show whether a
target-matching tracking file exists elsewhere.
- Uploaded controls: exactly four unpublished seven-day POSIX artifacts and no Windows artifacts:
Linux x64 `8322467354`, 29,282,467 bytes,
`sha256:75a29015224b0dd96e479f94d362be7023af0263373192332488ca4cc30647ae`; Linux arm64
`8322477826`, 28,215,101 bytes,
`sha256:07e9be64b1ab7fd2a9ebf9a30672bd275c670d5f0c95bd624b933d3bc870515e`; macOS x64
`8322529916`, 26,372,643 bytes,
`sha256:a0c3fdd314b19b0f371b5ea88eb862dfe335a785506b8011f8fde915f1323b1c`; and macOS arm64
`8322474835`, 24,749,773 bytes,
`sha256:11ddd1291e7b104edae6e54d18ab44a20a90aa28a29ed3d2bd92e2f3202d215c`.
- Duration and resource metrics: jobs ran 3m25s macOS arm64, 3m27s Linux arm64, 6m40s Windows
arm64, 5m37s macOS x64, 3m06s Linux x64, and 3m00s Windows x64. Both Windows failures occur
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 the four unpublished POSIX artifacts above; no Windows
runtime or rejected binary was staged or uploaded
- Oracle proved: both native Windows architectures share the same absent fixed tracking path while
the target native build itself completes; all four POSIX controls remain reproducible and upload;
rejected Windows output remains unavailable to consumers.
- Does not prove: the actual tracking-file path, candidate cardinality, command record shape,
allowlisted switch summary, incremental-link state, thunk ownership, a safe producer correction,
Windows runtime equality, oldest baselines, native trust, SSH, publication, transfer, fallback,
UI, or any enabled tuple.
- Checklist items satisfied: native negative path-shape evidence only; no tuple or production
checkbox.
- Follow-up: replace the false fixed-path assumption with bounded build-tree discovery that requires
exactly one target-matching `link.command.1.tlog`, then rerun all six native cells without
weakening parsing, comparison, or no-upload controls.
### E-M3-WINDOWS-LINK-COMMAND-DISCOVERY-LOCAL-001 — Bounded target-matching discovery
- Date: 2026-07-14
- Commit SHA / PR: exact implementation commit
`6198f0ddd5b31704ab72902e9a21e78412da870d`; 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 build-tree discovery, target selection, and builder-ordering
contracts only
- Red evidence: E-M3-WINDOWS-LINK-COMMAND-PATH-CI-RED-001 on both native Windows architectures;
no synthetic local failure is substituted for that real path-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 artifact package.
- Duration and resource metrics: focused purpose gate 1.03 s wall / 227 ms Vitest with
131,825,664-byte maximum RSS and 95,999,352-byte peak footprint; complete artifact gate 2.96 s
wall / 1.36 s Vitest; typecheck 3.08 s, focused lint 0.66 s, max-lines 1.47 s, and full lint
13.87 s. The final full 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: discovery is deterministic and bounded to 10,000 build-tree entries, depth eight,
and 32 exact-name candidates; symbolic links fail closed; each candidate read remains bounded;
target selection requires exactly one token-bounded `conpty_console_list.node` output rather than
a lookalike or path assumption. Missing/duplicate targets, excessive depth/cardinality, oversized
bytes, malformed contents, and all existing strict-parser failures settle before staging. POSIX
performs no discovery.
- Does not prove: that either native Windows tree contains a candidate, candidate cardinality on the
runners, the actual 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 bounded tracking discovery 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.
### 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: exact implementation commit
`6f28a8cbf53d1cfe889ce259476eb4aaaead2d87`; 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.
### 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.
### E-M3-WINDOWS-INCREMENTAL-DATABASE-CI-RED-001 — Native `.ilk` proves implicit incremental link
- Date: 2026-07-14
- Commit SHA / PR: exact ledger head `d1eca8a55dec3e96f9ecf1600e8e6e169cdfd3fe`, containing exact
diagnostic implementation commit `e7d9a1c8d3222ff5923679ad69b76b57d963c4f3`; stacked draft
PR [#8741](https://github.com/stablyai/orca/pull/8741)
- Run and jobs: [run 29364581781](https://github.com/stablyai/orca/actions/runs/29364581781),
conclusion `failure`; Windows x64 `87192850326` success, Windows arm64 `87192850417` expected
strict-comparison failure, Linux arm64 `87192850309` success, Linux x64 `87192850444` success,
macOS x64 `87192850303` success, and macOS arm64 `87192850364` success
- Runners: Windows x64 used `windows-2022` / `win22` `20260706.237.1`, native X64; Windows arm64
used `windows-11-arm` / `win11-arm64` `20260706.102.1`, native ARM64. 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; both Windows jobs used Node v24.18.0 and MSVC 14.44.35207 /
compiler 19.44.35228.
- Remote and transport: none; target-native artifact assembly, strict comparison, and unpublished
seven-day Actions artifacts only
- Exact evidence commands:
```sh
gh run view 29364581781 --repo stablyai/orca \
--json status,conclusion,headSha,createdAt,updatedAt,url,jobs
gh api repos/stablyai/orca/actions/jobs/87192850326/logs
gh api repos/stablyai/orca/actions/jobs/87192850417/logs
gh api 'repos/stablyai/orca/actions/runs/29364581781/artifacts?per_page=100'
curl -fsSL --proto '=https' --tlsv1.2 \
'https://learn.microsoft.com/en-us/cpp/build/reference/incremental-link-incrementally?view=msvc-170' \
| rg -i -C 2 'DEBUG|incremental.*default|\.ilk|INCREMENTAL:NO'
```
- Result: FAIL as the intended strict evidence boundary. Both clean x64 builds report the same
4,238,838-byte `conpty_console_list.ilk`; both clean arm64 builds report the same 4,980,517-byte
target database. All four still report `/debug` with `incremental: unspecified` and no explicit
`/incremental` or `/opt` switch in the command record. Microsoft documents that `/DEBUG` implies
`/INCREMENTAL`, incremental links create/update an `.ilk`, and `/INCREMENTAL:NO` overrides the
default. Windows x64 and all four POSIX controls compare exactly. Windows arm64 builds, verifies,
and executes both candidates, then rejects only `conpty_console_list.node` and skips upload.
- Arm64 diagnostic: the two 956,928-byte modules again differ at 5,826 bytes across 2,886 ranges:
5,758 bytes in 2,879 two-byte `.text` ranges spaced 16 bytes apart, plus the same 68 derived
COFF/debug/CodeView bytes. Their content IDs are
`sha256:b38d3343e96f339eb7197a4fb379b5f636d5f6752d42434b508bb7c67803f57c` and
`sha256:9d937233f63b142f03e504af2ffeeeb05b2de2b979047a369a79dd1d793b1786`.
- Uploaded controls: exactly five unpublished artifacts and no Windows arm64 artifact: Windows x64
`8323660213`, 37,075,309 bytes,
`sha256:788c43c94db25e995e6d36ab437d841e01a24846f3b8ec519f62fd7bebeb4fbd`; Linux x64
`8323618920`, 29,280,401 bytes,
`sha256:0b19a0b1dd78793ae0d55f7077eb871a7a8f98d3f7e4c3b8fd5f457f8f008fd6`; Linux arm64
`8323624757`, 28,207,487 bytes,
`sha256:cf4bb8255b260fc9109b9180b05d561a3b3cb0c3eeb791d111aff649368a5c86`; macOS x64
`8323808296`, 26,420,419 bytes,
`sha256:4117ae641972cad3936b9733b8461148ab2e4e3280cb3d27d31b479d966e412a`; and macOS arm64
`8323599375`, 24,749,802 bytes,
`sha256:b29cba1d66f7fedfa89bd4994d0186b5f2e0f89a17b95d709727808e0ccf3590`.
- Duration and resource metrics: jobs ran 4m56s Windows x64, 10m25s Windows arm64, 3m32s Linux
arm64, 3m22s Linux x64, 10m47s macOS x64, and 2m38s macOS arm64. Windows arm64 clean builds took
156,490.445 ms and 135,338.371 ms; smoke took 5,949.372 ms at 53,084,160-byte RSS and
5,425.281 ms at 52,871,168-byte RSS. SSH channels/files, cancellation, and fallback delay remain
outside this artifact-only run.
- Artifact/log/trace link: run/jobs, Microsoft linker reference above, and the five unpublished
artifacts; rejected arm64 bytes existed only in the bounded job workspace and logs and were not
uploaded
- Oracle proved: a fresh target incremental-link database on both clean builds and both native
architectures; the documented `/DEBUG`-implied incremental state; stable target database sizes;
five exact controls; unchanged arm64 thunk drift; strict rejection and no rejected upload.
- Does not prove: that `/INCREMENTAL:NO` removes the thunk drift, that all six outputs compare,
oldest baselines, native trust, SSH, publication, transfer, fallback, UI, or any enabled tuple.
- Checklist items satisfied: native implicit-incremental-link classification only; no tuple or
production checkbox.
- Follow-up: add exactly one `/INCREMENTAL:NO` to only the copied node-pty Windows linker options.
Fail closed unless the generated project and actual command each contain it exactly once and the
clean tree contains no target `.ilk`; rerun all six native cells with `/guard:cf`, strict
comparison, and rejected-output no-upload unchanged.
### E-M3-WINDOWS-INCREMENTAL-DISABLE-LOCAL-001 — Copied-artifact full-link correction
- Date: 2026-07-14
- Commit SHA / PR: exact implementation commit
`6dfdfa0bd0d812c20981ffb728ddd18273097e6a`; 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 execute MSVC, so Windows x64/arm64 jobs remain authoritative.
- Remote and transport: none; copied-source, generated-project, actual-command/result-shape, and
ordering contracts only
- Red evidence: E-M3-WINDOWS-INCREMENTAL-DATABASE-CI-RED-001 proves both native architectures use
`/DEBUG`-implied incremental linking, create stable target `.ilk` files, and retain the arm64 thunk
drift; no synthetic local failure substitutes for that target-native 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 1.00 s wall / 202 ms Vitest with 132,235,264-byte
maximum RSS and 96,408,952-byte peak footprint; complete artifact gate 2.63 s wall / 1.13 s
Vitest with 132,251,648-byte maximum RSS and 96,490,944-byte peak footprint. The parallel
typecheck/focused-lint/max-lines group completed in 3.1 s; full lint and format/diff gates settled
within 10.1 s. No runtime archive, SSH channel/file, cancellation, fallback, or launch-latency
metric is exercised by this local package.
- Artifact/log/trace link: exact implementation commit and local command output; no runtime artifact
was created, staged, published, or uploaded
- Oracle proved: only the copied Windows node-pty linker options gain exactly one
`/INCREMENTAL:NO`; compiler options remain separate and `/guard:cf` remains present; source drift
or repeat transformation fails closed; generated Release projects must inherit exactly one disable
switch; actual target commands must classify it as disabled; any target `.ilk` fails before
staging; POSIX and the installed repository source remain unchanged. Both source and test modules
remain below 300 lines without a max-lines bypass.
- Does not prove: MSVC accepts/propagates the option on either native architecture, that target
`.ilk` is absent, that the arm64 thunks become stable, that all six outputs compare and upload,
oldest baselines, native trust, SSH, publication, transfer, fallback, UI, or any enabled tuple.
- Checklist items satisfied: local copied-artifact incremental-disable contract only; no tuple or
production checkbox.
- Follow-up: push the exact implementation plus ledger head and rerun all six target-native cells.
Require both Windows clean builds to report `/incremental:no`, no target `.ilk`, complete runtime
smoke, exact output equality, and upload before accepting the correction.
### E-M3-REPRODUCIBILITY-CI-001 — All six target-native clean builds compare and upload
- Date: 2026-07-14
- Commit SHA / PR: exact ledger head `3ec1a48afde95618fb7e3f6be71303410e6701dd`, containing exact
incremental-disable implementation commit `6dfdfa0bd0d812c20981ffb728ddd18273097e6a`; stacked draft
PR [#8741](https://github.com/stablyai/orca/pull/8741)
- Run and jobs: [run 29365815434](https://github.com/stablyai/orca/actions/runs/29365815434),
conclusion `success`; Windows arm64 `87196982746`, Windows x64 `87196982776`, Linux arm64
`87196982798`, Linux x64 `87196982795`, macOS x64 `87196982820`, and macOS arm64 `87196982760`
all passed
- Runners: Windows x64 used `windows-2022` / `win22` `20260706.237.1`, native X64; Windows arm64
used `windows-11-arm` / `win11-arm64` `20260706.102.1`, native ARM64. 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; both Windows jobs used Node v24.18.0 and MSVC 14.44.35207 /
compiler 19.44.35228.
- Remote and transport: none; target-native runtime assembly, exact clean-build comparison, and
unpublished seven-day Actions artifacts only
- Exact evidence commands:
```sh
gh run view 29365815434 --repo stablyai/orca \
--json status,conclusion,headSha,createdAt,updatedAt,url,jobs
gh api repos/stablyai/orca/actions/jobs/87196982776/logs
gh api repos/stablyai/orca/actions/jobs/87196982746/logs
gh api 'repos/stablyai/orca/actions/runs/29365815434/artifacts?per_page=100'
```
- Result: PASS. Both clean x64 builds report one generated and actual `/INCREMENTAL:NO`, retain
`/guard:cf`, parse a 2,146-byte UTF-16LE command record, search 79 bounded Release-tree entries,
and find no target `.ilk`. Both clean arm64 builds report the same contract with a 2,124-byte
command record and no target `.ilk`. Each architecture then executes bundled Node v24.18.0,
loads the exact ABI-137 native modules, proves PTY input/resize/exit and watcher
create/update/delete, settles Windows native resources, verifies the archive, and compares the
complete runtime tree, archive, identity, SPDX, and provenance exactly before upload. No PE
mismatch diagnostic runs.
- Stable Windows identities: x64 content ID
`sha256:6f7cbeb120e67766037649f6079099346220973e6158e1429b6ebf42729f1564` and archive
`sha256:d24ca7ee8734e948c845d792ba0974a2590df7c8b60068a46f3eb1dc24af5f36`; arm64 content ID
`sha256:741765a10ddc824cd305b9a50c8efd91477517c05d9cfe1ca46342c002652186` and archive
`sha256:3e1e89234cd0d139a2a1376e7cd5e17ab47e31a6c3c2f9dcb8e73317ead5c6aa`.
- Uploaded evidence: exactly six unpublished artifacts: Windows arm64 `8324239473`, 33,083,333
bytes, `sha256:51d590835597969b1261f81487eea433f23e1c04818c96f2f1e5d48b16688b42`;
Windows x64 `8324177555`, 37,033,210 bytes,
`sha256:3bde38ab4159bea7b420118862db3725ce845084ab515cc3e08de439aceb308a`; Linux arm64
`8324115839`, 28,209,475 bytes,
`sha256:4f7272d896616326a5231170054a71134122c0263200361cf46431951fe01307`; Linux x64
`8324100611`, 29,286,004 bytes,
`sha256:346afca964edbe932f868a8ff00e13adba7d3d0c489ef0bdce8ca275134dc27e`; macOS x64
`8324167852`, 26,427,328 bytes,
`sha256:0d265ebc18798680de250955daf9038fded4a45c596cb6609f847eef328d9668`; and macOS arm64
`8324088333`, 24,713,338 bytes,
`sha256:aed95365e3cf309f723142eb6638caad2faf46cacde60661c95cffb1703734cf`.
- Duration and resource metrics: jobs ran 8m39s Windows arm64, 6m07s Windows x64, 3m42s Linux
arm64, 3m10s Linux x64, 5m45s macOS x64, and 2m43s macOS arm64. Windows x64 clean builds took
127,019.748 ms and 80,495.086 ms; smoke took 5,383.956 ms at 53,903,360-byte RSS and
5,343.569 ms at 53,874,688-byte RSS. Windows arm64 clean builds took 139,406.185 ms and
123,440.275 ms; smoke took 5,782.042 ms at 51,310,592-byte RSS and 5,463.552 ms at
51,372,032-byte RSS. SSH channels/files, cancellation, fallback delay, and connection latency
remain outside this artifact-only run.
- Artifact/log/trace link: run/jobs and six unpublished artifacts above; no release asset was
published and no production consumer exists
- Oracle proved: target-native generated/actual full-link settings, absence of incremental-link
databases, all-six clean-build reproducibility, exact archive/identity/SBOM/provenance equality,
complete candidate runtime smoke, strict comparison, and successful evidence upload. The prior
Windows arm64 thunk drift is closed at the copied producer without byte normalization.
- Does not prove: oldest supported OS/kernel/libc execution, native code-signing trust, packaged
desktop embedding, SSH/SFTP/system-SSH transfer, remote install/launch, fallback, UI, performance,
publication, or any enabled tuple.
- Checklist items satisfied: current-candidate native clean-build reproducibility and the exact
bundled Node/native PTY/watcher archive-execution rule. No tuple or production path is enabled.
- Follow-up: audit the remaining runtime closure/SBOM/provenance claims against the exact staged
allowlist and purpose tests, then address oldest-baseline and native-trust gates. Preserve the
artifact-only boundary and all legacy/default behavior.
### E-M3-RUNTIME-CLOSURE-LOCAL-001 — Exact per-tuple closure fails before archiving
- Date: 2026-07-14
- Commit SHA / PR: exact implementation commit
`ec5461aff61d6868c18d4db1ce27f409a43ecf47`; stacked draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: local macOS 26.2 build 25C56, Darwin 25.2.0 arm64 on Apple Silicon; Node v26.0.0 and
pnpm 10.24.0 for the pure contract suite. Candidate inputs came from all six target-native jobs in
prior run [29365815434](https://github.com/stablyai/orca/actions/runs/29365815434); the new builder
gate has not yet executed on those native runners.
- Remote and transport: none; artifact-only local validation of downloaded unpublished evidence
- Exact evidence commands:
```sh
gh run download 29365815434 --repo stablyai/orca \
--dir /tmp/orca-ssh-relay-runtime-29365815434
for archive in /tmp/orca-ssh-relay-runtime-29365815434/*/*.tar.xz; do
tar -tf "$archive"
done
for archive in /tmp/orca-ssh-relay-runtime-29365815434/*/*.zip; do
unzip -Z1 "$archive"
done
rm -rf /tmp/orca-ssh-relay-runtime-29365815434/extracted
mkdir -p /tmp/orca-ssh-relay-runtime-29365815434/extracted
for directory in /tmp/orca-ssh-relay-runtime-29365815434/ssh-relay-runtime-*; do
tuple=${directory##*/ssh-relay-runtime-}
destination=/tmp/orca-ssh-relay-runtime-29365815434/extracted/$tuple
mkdir -p "$destination"
archive=$(find "$directory" -maxdepth 1 -type f \
\( -name '*.tar.xz' -o -name '*.zip' \) -print -quit)
case "$archive" in
*.tar.xz) tar -xf "$archive" -C "$destination" ;;
*.zip) unzip -q "$archive" -d "$destination" ;;
esac
done
node --input-type=module -e 'import {readdir,readFile} from "node:fs/promises"; import {join} from "node:path"; import {verifySshRelayRuntimeClosure} from "./config/scripts/ssh-relay-runtime-closure.mjs"; const root="/tmp/orca-ssh-relay-runtime-29365815434"; for (const dir of (await readdir(root)).filter((name)=>name.startsWith("ssh-relay-runtime-")).sort()) { const tuple=dir.slice("ssh-relay-runtime-".length); const names=await readdir(join(root,dir)); const identity=JSON.parse(await readFile(join(root,dir,names.find((name)=>name.endsWith(".identity.json"))),"utf8")); const result=await verifySshRelayRuntimeClosure(join(root,"extracted",tuple),identity); console.log(JSON.stringify({tuple,...result,contentId:identity.contentId})); }'
pnpm exec vitest run --config config/vitest.config.ts config/scripts/ssh-relay-*.test.mjs
pnpm exec oxlint config/scripts/ssh-relay-runtime-closure.mjs \
config/scripts/ssh-relay-runtime-closure.test.mjs \
config/scripts/ssh-relay-runtime-tree.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs
pnpm exec oxfmt --check .github/workflows/ssh-relay-runtime-artifacts.yml \
config/scripts/ssh-relay-runtime-workflow.test.mjs \
config/scripts/ssh-relay-runtime-closure.mjs \
config/scripts/ssh-relay-runtime-closure.test.mjs \
config/scripts/ssh-relay-runtime-tree.mjs
pnpm run check:max-lines-ratchet
git diff --check
```
- Result: PASS. Sixteen artifact test files passed 68 tests. The new closure suite fixes the exact
candidate file counts at 34 for Linux, 35 for macOS, and 42 for Windows; admits exactly one
tuple-native `@parcel/watcher@2.5.6` package; pins `node-pty@1.1.0` and all runtime JavaScript
dependency metadata; requires canonical roles/modes, runtime metadata, and eight ordered,
non-empty license sections; and rejects an undeclared package manager, source map, PDB, missing
native dependency, wrong role, version refresh, omitted license, or empty license before archive
creation. Focused syntax, lint, formatting, max-lines ratchet, and diff checks passed.
- Downloaded-candidate audit: all six prior candidate identities and extracted metadata satisfy the
new contract without changing their content IDs: Linux x64
`sha256:960546cd96c67fcf9bb0a61e96ecdbecbffd9104d3a495578f8bb19dd810649a`, Linux arm64
`sha256:aa3aa8ae8b42334ba7b0dbe5c43fd1184e36b3f4f4a9bec0e990e9b78f090756`, macOS x64
`sha256:585ea6034cdd07487d8667059f975a877c795a45dc0d6eeee1617f2e3749faa2`, macOS arm64
`sha256:40ff5d2036784b794e7b09f78596409f63f3145280c530bece5280d40897f6cb`, Windows x64
`sha256:6f7cbeb120e67766037649f6079099346220973e6158e1429b6ebf42729f1564`, and Windows arm64
`sha256:741765a10ddc824cd305b9a50c8efd91477517c05d9cfe1ca46342c002652186`.
- Oracle proved: the artifact builder now has one cross-platform, fail-closed, exact closure boundary
rather than depending on incomplete POSIX/PowerShell workflow blocklists; dependency refreshes and
new runtime files require an explicit reviewed contract change; the prior six candidate trees
conform to that contract.
- Does not prove: execution of this new gate on any target-native runner, that the current SBOM has
complete package/file relationships, complete compiler/toolchain/image provenance, oldest-
baseline execution, native trust, SSH transfer/install, publication, fallback, UI, or any enabled
tuple.
- Checklist items satisfied: local exact-closure/prohibited-content implementation and purpose tests
only. The broader Milestone 3 closure/SBOM/provenance items remain unchecked until the new gate
passes all six native cells and the metadata audit closes its residual gaps.
- Follow-up: push the implementation plus this exact evidence ledger, rerun all six native jobs, and
require unchanged runtime content IDs, builder-enforced closure, complete smoke, clean-build
equality, and upload. Then fix and prove SBOM/provenance completeness separately.
### E-M3-RUNTIME-CLOSURE-CI-001 — Exact closure passes all six target-native builds
- Date: 2026-07-14
- Commit SHA / PR: exact ledger head `ace3d4f416b1c710d601aa72c4b45824266b5cad`, containing exact
closure implementation commit `ec5461aff61d6868c18d4db1ce27f409a43ecf47`; stacked draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Run and jobs: [run 29367559831](https://github.com/stablyai/orca/actions/runs/29367559831),
conclusion `success`; Windows arm64 `87202773590`, Windows x64 `87202773643`, macOS arm64
`87202773645`, macOS x64 `87202773658`, Linux x64 `87202773669`, and Linux arm64 `87202773674`
all passed
- Runners: `windows-11-arm` / `win11-arm64` `20260706.102.1` native ARM64;
`windows-2022` / `win22` `20260706.237.1` native X64; `macos-15` / `macos15`
`20260706.0213.1` native ARM64; `macos-15-intel` / `macos15` `20260629.0276.1` native X64;
`ubuntu-24.04` / `ubuntu24` `20260705.232.1` native X64; and `ubuntu-24.04-arm` /
`ubuntu24-arm64` `20260706.52.2` native ARM64. Every job checked out the exact head above in a
GitHub-hosted environment.
- Remote and transport: none; target-native artifact build/inspection/smoke and unpublished
seven-day Actions artifacts only
- Exact evidence commands:
```sh
gh run view 29367559831 --repo stablyai/orca \
--json status,conclusion,headSha,createdAt,updatedAt,url,jobs
gh run view 29367559831 --repo stablyai/orca --log | \
rg 'requested_runner=|resolved_image_os=|resolved_image_version=|runner_arch=|runner_environment=|source_commit='
gh run view 29367559831 --repo stablyai/orca --log | \
rg 'Test Files|"contentId"|windows_node_pty_msbuild_settings|clean_build_output=|runtime-evidence/'
gh api 'repos/stablyai/orca/actions/runs/29367559831/artifacts?per_page=100'
```
- Result: PASS. All four POSIX jobs passed 15 artifact-contract files and both Windows jobs passed 16. Each clean build then executed the builder-enforced exact closure before archiving, archive
inspection, bundled Node/native PTY/watcher smoke, strict clean-output comparison, and upload.
Both Windows builds retained exactly one `/INCREMENTAL:NO`, `/guard:cf`, no target `.ilk`, and
identical native output. No tuple changed content identity: Linux x64
`sha256:960546cd96c67fcf9bb0a61e96ecdbecbffd9104d3a495578f8bb19dd810649a`, Linux arm64
`sha256:aa3aa8ae8b42334ba7b0dbe5c43fd1184e36b3f4f4a9bec0e990e9b78f090756`, macOS x64
`sha256:585ea6034cdd07487d8667059f975a877c795a45dc0d6eeee1617f2e3749faa2`, macOS arm64
`sha256:40ff5d2036784b794e7b09f78596409f63f3145280c530bece5280d40897f6cb`, Windows x64
`sha256:6f7cbeb120e67766037649f6079099346220973e6158e1429b6ebf42729f1564`, and Windows arm64
`sha256:741765a10ddc824cd305b9a50c8efd91477517c05d9cfe1ca46342c002652186`.
- Uploaded evidence: exactly six unpublished artifacts: Windows arm64 `8324892474`, 33,083,332
bytes, `sha256:1b90d23c5573116cf855926db294dff906407a5703260099d0d0f58bb500eb6a`;
Windows x64 `8324831155`, 37,033,206 bytes,
`sha256:013fa42e0bf29a36f378dffe6d327090a042be9e5947e55e6e097d3382418c5d`; macOS arm64
`8324786647`, 24,734,978 bytes,
`sha256:87e2632c542964df47ab4f981da0909532c51be6b2131692e539aaa1c77d409c`; macOS x64
`8324870620`, 26,400,500 bytes,
`sha256:d9ddf9b00d77aa05785e0813e3a61fcb07cd8f5f06b270e9703d5f2e28c03370`; Linux arm64
`8324781748`, 28,205,869 bytes,
`sha256:47d40a3eacf149270efabe7688f700dcfca7c1e155bbc2188298c7e78948469b`; and Linux x64
`8324772777`, 29,281,599 bytes,
`sha256:5b1552f4e2d28db1f552068e3bad6eb174e83ad88800101120a92cf2f0e44121`.
- Duration and resource metrics: job wall times were 7m51s Windows arm64, 5m26s Windows x64, 3m38s
macOS arm64, 6m58s macOS x64, 3m06s Linux x64, and 3m23s Linux arm64. SSH channels/files,
cancellation, fallback delay, and connection latency remain outside this artifact-only run.
- Oracle proved: the exact closure is enforced inside the artifact builder on all six native runner
families; the reviewed Node, patched native PTY, one tuple-native watcher, relay/watcher JavaScript,
runtime metadata, and license bundle are present; package managers, development/build/source/map/
PDB/ILK content and any unreviewed path are absent; complete smoke, reproducibility, and no-upload-
before-success ordering remain intact.
- Does not prove: the subsequent SPDX/toolchain correction at `26bbd7b67`, oldest-baseline execution,
native signing/trust, SSH transfer/install, publication, fallback, UI, performance, or any enabled
tuple.
- Checklist items satisfied: build the exact patched `node-pty`; assert patch markers; include one
compatible watcher and the complete declared runtime/license/metadata closure; exclude all
undeclared content. No tuple or production path is enabled.
- Follow-up: prove the separately committed metadata correction on all six native cells before
checking SBOM/toolchain completeness, then proceed to oldest-baseline and native-trust gates.
### E-M3-METADATA-LOCAL-001 — SPDX ownership and bounded toolchain provenance
- Date: 2026-07-14
- Commit SHA / PR: exact implementation commit
`26bbd7b67a035cdf309ccdbbaab5985f4cc797fe`; stacked draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: local macOS 26.2 build 25C56, Darwin 25.2.0 arm64 on Apple Silicon; Node v26.0.0 and
pnpm 10.24.0 for pure metadata/tool-discovery tests
- Remote and transport: none; artifact-only local contract tests
- Exact evidence commands:
```sh
pnpm exec vitest run --config config/vitest.config.ts config/scripts/ssh-relay-*.test.mjs
pnpm run typecheck
pnpm run lint
pnpm run check:max-lines-ratchet
pnpm exec oxfmt --check .github/workflows/ssh-relay-runtime-artifacts.yml \
config/scripts/build-ssh-relay-runtime.mjs \
config/scripts/ssh-relay-runtime-provenance.mjs \
config/scripts/ssh-relay-runtime-provenance.test.mjs \
config/scripts/ssh-relay-runtime-sbom.mjs \
config/scripts/ssh-relay-runtime-sbom.test.mjs \
config/scripts/ssh-relay-runtime-toolchain.mjs \
config/scripts/ssh-relay-runtime-toolchain.test.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs
git diff --check
```
- Result: PASS. Nineteen artifact test files passed 76 tests; typecheck, full lint and its
reliability/localization/line-budget sub-gates, focused formatting, and diff checks passed. The
SPDX builder assigns every runtime file to exactly one package with `CONTAINS`, records relay
`DEPENDS_ON` relationships, uses the immutable content ID as relay package version, uses the exact
archive SHA-256 in the unique document namespace, and rejects unowned paths, identifier collisions,
or a missing archive digest. The provenance collector pins the builder URL to the exact Git commit,
requires the requested/resolved runner label, OS, architecture, hosted environment, and image
version, selects the real Windows compiler/linker version from stderr rather than the usage line,
and records bounded SHA-256 plus version for bundled/build Node, compiler, linker where applicable,
build system, Python, archive tool, strip tool where applicable, and complete bounded trees for
`node-gyp`, `node-addon-api`, and `yazl` where applicable.
- Oracle proved: the prior placeholder relay SBOM version, unowned file inventory, content-ID-only
document namespace, merge-ref builder identity, missing runner identity, un-hashed tool strings,
and Windows compiler usage-string record are corrected by one fail-closed metadata boundary; local
native discovery produces only bounded version/digest records without absolute host paths.
- Does not prove: Windows tool discovery/version parsing, all six runner-image records, clean-build
equality of the new SBOM/provenance bytes, uploaded metadata, an external SPDX consumer, native
signing/trust, oldest baselines, SSH, publication, or any enabled tuple.
- Checklist items satisfied: local SBOM/provenance/toolchain implementation and purpose tests only;
native metadata/toolchain boxes remain unchecked.
- Follow-up: push the exact implementation plus this ledger head, rerun all six native cells, inspect
each uploaded SPDX/provenance document, and require complete bounded records and clean-build
equality before closing the remaining Milestone 3 metadata/toolchain claims.
### E-M3-METADATA-CI-RED-001 — Native metadata probes fail closed on Windows
- Date: 2026-07-14
- Commit SHA / PR: exact tested head `27e932c8cbc44f09d9b410d3aca519e7d1b8e9fe`;
stacked draft PR [#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: [GitHub Actions run 29368482959](https://github.com/stablyai/orca/actions/runs/29368482959),
final conclusion `failure` after 7m56s. Native job IDs: Linux x64 `87205814073`, Linux arm64
`87205814134`, macOS x64 `87205814075`, macOS arm64 `87205814110`, Windows x64 `87205814074`,
and Windows arm64 `87205814066`.
- Remote and transport: none; target-native artifact-only build workflow
- Exact evidence commands:
```sh
gh run view 29368482959 --repo stablyai/orca --json status,conclusion,headSha,url,jobs
gh api repos/stablyai/orca/actions/jobs/87205814074/logs
gh api repos/stablyai/orca/actions/jobs/87205814066/logs
gh api repos/stablyai/orca/actions/runs/29368482959/artifacts
gh run download 29368482959 --repo stablyai/orca --dir /tmp/orca-8450-metadata-red-29368482959
# Parse every downloaded identity/SPDX/provenance document and hash every archive locally.
```
- Result: EXPECTED RED. Linux x64 completed in 2m58s, Linux arm64 in 3m24s, macOS arm64 in 4m08s,
and macOS x64 in 7m56s; each passed the 19-file/76-test native contract suite, built twice, smoked,
compared every runtime/archive/identity/SPDX/provenance byte exactly, and uploaded. Windows x64
failed in 1m32s and Windows arm64 in 4m09s at
`ssh-relay-runtime-toolchain.test.mjs` before input download, build, smoke, comparison, or upload:
line 217 could not select a linker version because direct no-argument `link.exe` invocation was
silent on both hosted MSVC environments. The four POSIX artifact IDs are Linux x64 `8325127644`,
Linux arm64 `8325138929`, macOS arm64 `8325153830`, and macOS x64 `8325244087`; no Windows
artifact exists for this run.
- Downloaded-artifact audit: all four archive hashes match identity and provenance; every SPDX
namespace is scoped to the exact archive SHA-256; all 34 Linux and 35 macOS files have exactly one
package `CONTAINS` owner; each document has eight relay dependency relationships; builder URLs pin
exact commit `27e932c8c`; and runner labels, OS, architecture, hosted environment, image OS, and
image version are present and correct. POSIX content IDs remain `960546cd…` Linux x64,
`aa3aa8ae…` Linux arm64, `585ea603…` macOS x64, and `40ff5d20…` macOS arm64.
- Additional defect exposed by direct payload inspection: both Linux provenance documents record
the first no-argument GNU `strip` usage line instead of a version. macOS records Xcode 16.4 and
has no equivalent defect. A green job alone would not have caught this semantic provenance gap.
- Oracle proved: native metadata generation, equality, archive-scoped SPDX identity, package/file
ownership, dependency relationships, commit-pinned builder identity, and runner identity work on
all four POSIX cells; both Windows cells reject incomplete linker provenance before producing or
uploading bytes; direct artifact audit detects semantically wrong tool-version records.
- Does not prove: any Windows metadata/build output, valid GNU strip version records, complete
all-six toolchain provenance, regenerated Windows compatibility identities, oldest baselines,
native trust/signing, SSH, publication, or an enabled tuple.
- Checklist items satisfied: no new completion box; the compiler/toolchain item remains in progress.
- Follow-up: explicitly request bounded linker help, request GNU `strip --version`, correct the
reviewed Windows 19045/26100 compatibility floors, and rerun every native cell from one exact head.
### E-M3-METADATA-CORRECTION-LOCAL-001 — Native version probes and Windows build floors
- Date: 2026-07-14
- Commit SHA / PR: exact implementation commit
`e3f76d3ba70c860242b5300aa765fbf75ef21317`; stacked draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: local macOS 26.2 build 25C56, Darwin 25.2.0 arm64 on Apple Silicon; Node v26.0.0 and
pnpm 10.24.0 for pure contract tests
- Remote and transport: none; artifact/selector-only local contract tests
- Exact evidence commands:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-*.test.mjs \
src/main/ssh/ssh-relay-artifact-selector.test.ts
pnpm run typecheck
pnpm run lint
pnpm run check:max-lines-ratchet
pnpm exec oxfmt --check \
.github/workflows/ssh-relay-runtime-artifacts.yml \
config/scripts/ssh-relay-runtime-toolchain.mjs \
config/scripts/ssh-relay-runtime-toolchain.test.mjs \
config/scripts/ssh-relay-runtime-tree.mjs \
config/scripts/ssh-relay-runtime-windows-tree.test.mjs \
config/scripts/ssh-relay-runtime-zip.test.mjs \
src/main/ssh/ssh-relay-artifact-selector.test.ts \
docs/reference/plans/2026-07-14-ssh-relay-github-release-plan.html \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist-summary.md
git diff --check
```
- Result: PASS. Twenty test files passed 96 tests; typecheck, full lint and its
reliability/localization/line-budget sub-gates, max-lines ratchet, focused formatting, and diff
checks passed. The only full-lint diagnostics are pre-existing unrelated warnings. `link.exe` is
now invoked with `/?`, GNU strip with `--version`, and Apple strip remains tied to the selected
Xcode version. Generated Windows runtime identities now encode the reviewed monotonic build floors:
x64 `19045` and arm64 `26100`. Purpose-named selector tests reject x64 `19044` and arm64 `26099`
while accepting x64 `19045` and arm64 `26100`; both runtime-tree variants carry the same floors.
- Oracle proved: the two native probe regressions have bounded explicit invocation contracts; the
artifact producer, ZIP fixture, and desktop selector tests agree with the reviewed Windows
compatibility decision; unknown/older Windows evidence still takes the classified legacy path.
- Does not prove: either corrected probe on a native Windows/Linux runner, actual compiler/linker/
strip values in uploaded provenance, clean-build equality after Windows identity changes, oldest
Windows execution, native trust/signing, SSH, publication, or an enabled tuple. The Windows
compatibility change intentionally changes both Windows content IDs and requires fresh native
evidence.
- Checklist items satisfied: local correction only; the compiler/toolchain, oldest-baseline, and
native-trust boxes remain unchecked.
- Follow-up: push the exact implementation and ledger head, then require all six native jobs plus
direct inspection of every uploaded metadata document before closing the metadata/toolchain gate.
- Subsequent native evidence: E-M3-METADATA-CI-RED-002 disproves the locally inferred
`link.exe /?` behavior;
both hosted Windows architectures remain silent when the help output is piped by Node.
### E-M3-METADATA-CI-RED-002 — Linker help remains silent on native Windows
- Date: 2026-07-14
- Commit SHA / PR: exact tested head `c906c21ce117021885ec4db68c62ef28c141d7ba`;
stacked draft PR [#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: [GitHub Actions run 29369350259](https://github.com/stablyai/orca/actions/runs/29369350259),
final conclusion `failure` after 6m15s. Native job IDs: Linux x64 `87208675566`, Linux arm64
`87208675357`, macOS x64 `87208675363`, macOS arm64 `87208675377`, Windows x64 `87208675364`,
and Windows arm64 `87208675391`.
- Remote and transport: none; target-native artifact-only build workflow
- Exact evidence commands:
```sh
gh run view 29369350259 --repo stablyai/orca --json status,conclusion,headSha,jobs
gh api repos/stablyai/orca/actions/jobs/87208675364/logs
gh api repos/stablyai/orca/actions/jobs/87208675391/logs
gh api repos/stablyai/orca/actions/runs/29369350259/artifacts
gh run download 29369350259 --repo stablyai/orca --dir /tmp/orca-8450-metadata-red-29369350259
# Parse every downloaded identity/SPDX/provenance document and hash every archive locally.
```
- Result: EXPECTED RED. Linux x64 completed in 2m53s, Linux arm64 in 3m30s, macOS arm64 in 2m52s,
and macOS x64 in 6m14s; each passed native contracts, built twice, smoked, compared every
runtime/archive/identity/SPDX/provenance byte exactly, and uploaded. Windows x64 failed in 1m24s
and Windows arm64 in 3m51s at the same linker-version selector before input download, build,
smoke, comparison, or upload. Explicit `link.exe /?` is still silent when invoked through the
bounded Node child-process pipe on both hosted MSVC environments. The four POSIX artifact IDs are
Linux x64 `8325461679`, Linux arm64 `8325476952`, macOS arm64 `8325460610`, and macOS x64
`8325542377`; no Windows artifact exists for this run.
- Downloaded-artifact audit: all four archive hashes match identity and provenance; every SPDX
namespace is scoped to the exact archive SHA-256; all 34 Linux and 35 macOS files have exactly one
package owner and eight dependency relationships; builder URLs pin exact commit `c906c21ce`;
runner identities are complete; Linux x64/arm64 now record `GNU strip (GNU Binutils for Ubuntu)
2.42`; and no tool record contains a usage line. POSIX content IDs remain unchanged.
- Oracle proved: the corrected GNU version probe works and stays reproducible on both Linux
architectures; all four POSIX metadata contracts are complete for this head; direct linker banner
parsing is not a portable Windows provenance source and fails closed on both native architectures.
- Does not prove: Windows metadata/build output, regenerated Windows content identities, native
linker file versions, oldest baselines, native trust/signing, SSH, publication, or an enabled tuple.
- Checklist items satisfied: no new completion box; the compiler/toolchain item remains in progress.
- Follow-up: retain SHA-256 of the resolved linker but obtain its actual PE file version without
relying on linker stdout/stderr, then rerun every native cell from one exact head.
### E-M3-WINDOWS-LINKER-FILE-VERSION-LOCAL-001 — Authenticated linker PE version
- Date: 2026-07-14
- Commit SHA / PR: exact implementation commit
`e85f0c700c1bd40e76e08ef5063f9b3128acb600`; stacked draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: local macOS 26.2 build 25C56, Darwin 25.2.0 arm64 on Apple Silicon; Node v26.0.0 and
pnpm 10.24.0 for pure invocation/metadata tests
- Remote and transport: none; artifact-only local contract tests
- Exact evidence commands:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-*.test.mjs \
src/main/ssh/ssh-relay-artifact-selector.test.ts
pnpm run typecheck
pnpm run lint
pnpm exec oxfmt --check \
config/scripts/ssh-relay-runtime-toolchain.mjs \
config/scripts/ssh-relay-runtime-toolchain.test.mjs
git diff --check
```
- Result: PASS. Twenty test files passed 97 tests; typecheck, full lint and its
reliability/localization/line-budget sub-gates, focused formatting, and diff checks passed. The
linker record still hashes the resolved `link.exe` bytes. Its version now comes from
`System.Diagnostics.FileVersionInfo` through `pwsh.exe -NoLogo -NoProfile -NonInteractive`; the
resolved path is a separate positional argument and is never interpolated into executable script
text. Only a bounded numeric three- or four-component file version is accepted.
- Oracle proved: the native-silent banner is no longer a provenance dependency; exact linker bytes
remain authenticated; paths containing spaces cannot alter the PowerShell expression; malformed,
missing, or nonnumeric file versions still fail closed.
- Does not prove: the PE file-version call on either native Windows architecture, the exact returned
linker versions, Windows build/equality/upload, regenerated Windows content IDs, oldest baselines,
native trust/signing, SSH, publication, or an enabled tuple.
- Checklist items satisfied: local correction only; the compiler/toolchain item remains unchecked.
- Follow-up: push this exact implementation plus the ledger head and require all six native jobs and
direct inspection of every uploaded metadata document before closing the metadata/toolchain gate.
### E-M3-METADATA-CI-RED-003 — Positional PE-version lookup remains empty on Windows
- Date: 2026-07-14
- Commit SHA / PR: exact tested head `01acba8608e3446bb921cfb812a7026817a53032`;
stacked draft PR [#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: [GitHub Actions run 29369925932](https://github.com/stablyai/orca/actions/runs/29369925932),
final conclusion `failure` after 7m05s. Native job IDs and wall durations: Linux x64
`87210560419` / 3m03s, Linux arm64 `87210560395` / 3m21s, macOS x64 `87210560388` /
6m59s, macOS arm64 `87210560695` / 3m18s, Windows x64 `87210560429` / 1m24s, and
Windows arm64 `87210560403` / 4m49s.
- Remote and transport: none; target-native artifact-only build workflow
- Exact evidence commands:
```sh
gh run view 29369925932 --repo stablyai/orca \
--json status,conclusion,headSha,createdAt,updatedAt,url,jobs
gh api repos/stablyai/orca/actions/runs/29369925932/artifacts
gh api repos/stablyai/orca/actions/jobs/87210560429/logs
gh api repos/stablyai/orca/actions/jobs/87210560403/logs
gh run download 29369925932 --repo stablyai/orca \
--dir /tmp/orca-8450-metadata-red-29369925932
find /tmp/orca-8450-metadata-red-29369925932 -maxdepth 3 -type f -print
bash -eu -o pipefail <<'SH'
evidence=/tmp/orca-8450-metadata-red-29369925932
commit=01acba8608e3446bb921cfb812a7026817a53032
run_id=29369925932
find "$evidence" -type f \( -name '*.tar.xz' -o -name '*.zip' \) \
-exec shasum -a 256 {} +
for directory in "$evidence"/*; do
identity=$(find "$directory" -type f -name '*.identity.json')
provenance=$(find "$directory" -type f -name '*.provenance.json')
spdx=$(find "$directory" -type f -name '*.spdx.json')
archive=$(find "$directory" -type f \( -name '*.tar.xz' -o -name '*.zip' \))
archive_sha=$(shasum -a 256 "$archive" | cut -d ' ' -f 1)
jq -e --arg sha "$archive_sha" --arg commit "$commit" --arg run "$run_id" \
--slurpfile provenance "$provenance" --slurpfile spdx "$spdx" '
($spdx[0].relationships | map(select(.relationshipType == "CONTAINS")) |
group_by(.relatedSpdxElement) |
map({key: .[0].relatedSpdxElement, value: length}) | from_entries) as $owners |
.archive.sha256 == ("sha256:" + $sha) and
.fileCount == ($spdx[0].files | length) and
([.entries[] | select(.type == "file")] | length) == ($spdx[0].files | length) and
all($spdx[0].files[]; $owners[.SPDXID] == 1) and
($spdx[0].relationships | map(select(.relationshipType == "DEPENDS_ON")) | length) == 8 and
$spdx[0].documentNamespace ==
("https://github.com/stablyai/orca/ssh-relay-runtime/spdx/" + $sha) and
$provenance[0].subject[0].digest.sha256 == $sha and
$provenance[0].predicate.runDetails.metadata.invocationId == $run and
$provenance[0].predicate.runDetails.builder.id ==
("https://github.com/stablyai/orca/blob/" + $commit +
"/.github/workflows/ssh-relay-runtime-artifacts.yml") and
($provenance[0].predicate.buildDefinition.resolvedDependencies |
any(.digest.gitCommit == $commit and (.uri | endswith("@" + $commit)))) and
($provenance[0].predicate.runDetails.metadata.runner |
.os != "" and .architecture != "" and .environment == "github-hosted" and
.requestedLabel != "" and .image.os != "" and .image.version != "") and
($provenance[0].predicate.buildDefinition.internalParameters.toolchain | to_entries |
all(.[]; (.value.version | length) > 0 and
(.value.version | test("usage:"; "i") | not) and
(.value.sha256 | test("^sha256:[0-9a-f]{64}$")))) and
all(.entries[];
(.path | test(
"(^|/)(npm|npx|corepack)([.](cmd|exe))?$|[.](map|cc|cpp|h|hpp|o|obj|pdb|lib)$";
"i"
) | not))
' "$identity" >/dev/null
jq -c '{tupleId, contentId, fileCount, archive}' "$identity"
done
SH
```
- Result: EXPECTED RED. All four POSIX cells passed native contracts, built twice, inspected and
smoked both outputs, compared runtime/archive/identity/SPDX/provenance bytes exactly, and uploaded.
Windows x64 and arm64 each failed in `ssh-relay-runtime-toolchain.test.mjs` with `Runtime build
tool did not report a bounded version line`; input download, build, smoke, comparison, and upload
were skipped. The two Windows failures occurred after target-native MSVC setup and dependency
install, so the x64 `windows-2022` and arm64 `windows-11-arm` environments independently disprove
the positional PowerShell path transport. No Windows artifact exists for this run.
- Downloaded-artifact audit:
| Tuple | Artifact ID | Archive SHA-256 | Content ID prefix | Files | Runner image |
| ----------------- | ------------ | ------------------------------------------------------------------ | ----------------- | ----- | ------------------------------ |
| linux-x64-glibc | `8325687973` | `c71778c6ea716eb694b8d961b6bcf0c2a379761a535fa069434a7e755903b06a` | `960546cd…` | 34 | `ubuntu24` 20260705.232.1 |
| linux-arm64-glibc | `8325696189` | `6dc95917b828675a4700444378b96c89ff5b538e1848b3a167cc10c4702794d7` | `aa3aa8ae…` | 34 | `ubuntu24-arm64` 20260706.52.2 |
| darwin-x64 | `8325779710` | `332510ffba04959fbc16fdce54334fc9cca55f7b87fb19d78f1e4ce570c5b388` | `585ea603…` | 35 | `macos15` 20260629.0276.1 |
| darwin-arm64 | `8325693875` | `1474f808f8d1e5668060468284236ba4c81e395931fa1bf5d3dcbfed4b45a994` | `40ff5d20…` | 35 | `macos15` 20260706.0213.1 |
Every archive hash matches its identity and provenance subject. Every SPDX namespace ends in the
exact archive hash; every file has exactly one package owner; each document has nine packages and
eight dependency relationships. Builder and source identities pin exact commit `01acba860`; the
invocation is `29369925932`; requested runner labels, native architectures, environment, and image
versions are present. Linux records GCC 13.3.0, GNU Make 4.3, Python 3.12.3, XZ 5.4.5, and GNU
strip 2.42. macOS records Apple clang 17.0.0, GNU Make 3.81, Python 3.14.6, XZ 5.8.3, and Xcode
16.4. Every tool record carries a SHA-256 and no version contains a usage line.
- Oracle proved: all four POSIX metadata payloads remain semantically complete after the PE-version
change; direct audit agrees with workflow equality; both target-native Windows architectures
reject an empty PE-version result before unverified/incompletely described bytes can be built or
uploaded.
- Does not prove: a working native Windows PE-version lookup, Windows build/metadata/equality/upload,
regenerated Windows content IDs for the 19045/26100 floors, oldest baselines, native trust/signing,
SSH, publication, or an enabled tuple.
- Checklist items satisfied: no new completion box; the all-six SBOM/provenance/toolchain item
remains in progress.
- Follow-up: transport the resolved linker path outside PowerShell argument parsing, retain exact
linker-byte hashing and bounded output validation, then rerun and directly audit all six cells.
### E-M3-WINDOWS-LINKER-ENV-LOCAL-001 — Environment-isolated linker path transport
- Date: 2026-07-14
- Commit SHA / PR: exact implementation commit
`714308114dee85a6f241a43b75c6ac9122769c3e`; stacked draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: local macOS 26.2 build 25C56, Darwin 25.2.0 arm64 on Apple Silicon; Node v26.0.0 and
pnpm 10.24.0 for pure invocation/metadata tests
- Remote and transport: none; artifact-only local contracts
- Exact evidence commands:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-*.test.mjs \
src/main/ssh/ssh-relay-artifact-selector.test.ts
pnpm run typecheck
pnpm run lint
pnpm run check:max-lines-ratchet
pnpm exec oxfmt --check \
config/scripts/ssh-relay-runtime-toolchain.mjs \
config/scripts/ssh-relay-runtime-toolchain.test.mjs \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist-summary.md
git diff --check
```
- Result: PASS. Twenty focused test files passed 98 tests in 5.90s. Typecheck passed all three
TypeScript projects. Full lint passed oxlint, switch exhaustiveness, styled-scrollbar,
reliability-gate, max-lines, bundled-skill, localization-catalog, and localization-coverage gates;
its diagnostics remain pre-existing unrelated warnings. The independent max-lines ratchet,
focused formatting, and diff checks passed.
- Oracle proved: the PowerShell expression no longer relies on `$args` parsing and never
interpolates the linker path into executable script text; the exact resolved path is supplied in
a dedicated child-only environment value; the child inherits the required native build
environment; three- and four-component PE file versions with bounded release suffixes are
accepted; missing, malformed, oversized, or unrelated output remains rejected with at most 512
diagnostic bytes; and the resolved linker executable remains SHA-256 authenticated.
- Does not prove: the environment-value lookup on either native Windows architecture, the actual
linker version, regenerated Windows metadata/content IDs, build/smoke/equality/upload, oldest
Windows execution, native trust/signing, SSH, publication, or an enabled tuple.
- Checklist items satisfied: local correction only; the all-six compiler/toolchain item remains
unchecked.
- Follow-up: push this exact implementation and ledger head, then require all six native jobs and
direct inspection of every uploaded artifact before closing any metadata/provenance claim.
### E-M3-METADATA-CI-RED-004 — Native PE FileVersion strings are empty
- Date: 2026-07-14
- Commit SHA / PR: exact tested head `756165552d31ee962c99a3a454bce2bebb29092b`;
stacked draft PR [#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: [GitHub Actions run 29370926985](https://github.com/stablyai/orca/actions/runs/29370926985),
final conclusion `failure` after 7m09s. Native job IDs and wall durations: Linux x64
`87213791478` / 3m13s, Linux arm64 `87213791425` / 3m34s, macOS x64 `87213791432` /
7m04s, macOS arm64 `87213791418` / 4m32s, Windows x64 `87213791403` / 2m28s, and
Windows arm64 `87213791472` / 3m52s.
- Remote and transport: none; target-native artifact-only build workflow
- Exact evidence commands:
```sh
gh run view 29370926985 --repo stablyai/orca \
--json status,conclusion,headSha,createdAt,updatedAt,url,jobs
gh api repos/stablyai/orca/actions/runs/29370926985/artifacts
gh api repos/stablyai/orca/actions/jobs/87213791403/logs
gh api repos/stablyai/orca/actions/jobs/87213791472/logs
gh run download 29370926985 --repo stablyai/orca \
--dir /tmp/orca-8450-metadata-red-29370926985
# Repeat the exact fail-closed jq/shasum audit in E-M3-METADATA-CI-RED-003 with:
# evidence=/tmp/orca-8450-metadata-red-29370926985
# commit=756165552d31ee962c99a3a454bce2bebb29092b
# run_id=29370926985
```
- Result: EXPECTED RED. All four POSIX cells passed contracts, two clean native builds, archive/tree
inspection, bundled runtime smoke, byte-for-byte comparison, and upload. Both Windows cells passed
MSVC setup, runner-identity collection, dependency install, and 77 contract tests, then the live
toolchain contract failed with the now-bounded diagnostic `Runtime build tool did not report a
bounded version line: <empty>`. The PE lookup returned successfully but the `FileVersion` string
emitted no stdout on either architecture. Input download, build, smoke, comparison, and upload
remained skipped; no Windows artifact exists.
- Downloaded-artifact audit:
| Tuple | Artifact ID | Archive SHA-256 | Content ID prefix | Files |
| ----------------- | ------------ | ------------------------------------------------------------------ | ----------------- | ----- |
| linux-x64-glibc | `8326078824` | `3fbd5895c66a81cef6e97c0fcc1efd210377fee6fdbb5bc56548a36377d373e5` | `960546cd…` | 34 |
| linux-arm64-glibc | `8326088493` | `2f1ae08f794d9a8154b0e0714d394e8da447cff7958febc904d3f68cae493a68` | `aa3aa8ae…` | 34 |
| darwin-x64 | `8326164493` | `b84c3d8a7c8e0c195d82185d0476f77685d171dde13ea5b5652b1ce12917564a` | `585ea603…` | 35 |
| darwin-arm64 | `8326107962` | `d940054bb24d79fe31b5eaad6269fcc6bbaef6ca2c1e4703b398b631dbe85081` | `40ff5d20…` | 35 |
All archive/subject hashes, archive-scoped SPDX namespaces, one-owner-per-file counts, eight
dependency relationships, prohibited-content assertions, exact commit/run identities, runner
labels/images/architectures, and bounded tool version/hash records passed. Content IDs and native
tool versions remain identical to E-M3-METADATA-CI-RED-003; builder/source identities now pin
exact head `756165552` and invocation `29370926985`.
- Oracle proved: environment-isolated path transport does not fix the semantic defect because the
string `FileVersion` property itself is empty on both native hosted Windows environments; the
bounded diagnostic distinguishes that from command failure or unexpected output; all four POSIX
controls remain complete and reproducible at the exact tested head.
- Does not prove: that numeric PE version fields are populated, any Windows artifact or metadata,
regenerated Windows content IDs, oldest baselines, native trust/signing, SSH, publication, or an
enabled tuple.
- Checklist items satisfied: no new completion box; the all-six SBOM/provenance/toolchain item
remains in progress.
- Follow-up: format the four integer PE version fields, reject `0.0.0.0`, retain exact linker-byte
hashing and environment-isolated path transport, then rerun and directly audit all six cells.
### E-M3-WINDOWS-LINKER-NUMERIC-LOCAL-001 — Bounded numeric PE file version
- Date: 2026-07-14
- Commit SHA / PR: exact implementation commit
`1b775e6afe730c237f49b2d203591e07db11bfd8`; stacked draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: local macOS 26.2 build 25C56, Darwin 25.2.0 arm64 on Apple Silicon; Node v26.0.0 and
pnpm 10.24.0 for pure invocation/metadata tests
- Remote and transport: none; artifact-only local contracts
- Exact evidence commands:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-*.test.mjs \
src/main/ssh/ssh-relay-artifact-selector.test.ts
pnpm run typecheck
pnpm run lint
pnpm run check:max-lines-ratchet
pnpm exec oxfmt --check \
config/scripts/ssh-relay-runtime-toolchain.mjs \
config/scripts/ssh-relay-runtime-toolchain.test.mjs
git diff --check
```
- Result: PASS. Twenty focused test files passed 99 tests in 1.85s. Typecheck passed all three
TypeScript projects. Full lint passed oxlint, switch exhaustiveness, styled-scrollbar,
reliability-gate, max-lines, bundled-skill, localization-catalog, and localization-coverage gates;
its diagnostics remain pre-existing unrelated warnings. The independent max-lines ratchet,
focused formatting, and diff checks passed.
- Oracle proved: the PowerShell expression formats `FileMajorPart`, `FileMinorPart`, `FileBuildPart`,
and `FilePrivatePart` as one exact four-component value; the selector rejects malformed versions,
suffixes, missing output, and the version-resource-absent `0.0.0.0` form; the resolved linker path
remains a child-only environment value and never enters executable script text; the exact resolved
`link.exe` bytes remain SHA-256 authenticated.
- Does not prove: that either native Windows linker exposes nonzero numeric fields, the actual native
version, Windows build/smoke/equality/upload, regenerated Windows content IDs, oldest Windows
execution, native trust/signing, SSH, publication, or an enabled tuple.
- Checklist items satisfied: local correction only; the all-six compiler/toolchain item remains
unchecked.
- Follow-up: push this exact implementation and ledger head, then require all six native jobs and
direct inspection of every uploaded artifact before closing any metadata/provenance claim.
### E-M3-METADATA-CI-RED-005 — Native linkers have no PE version resource
- Date: 2026-07-14
- Commit SHA / PR: exact tested head `3c3d47fc4bf06610d43dcdb267eadfed46627b0f`;
stacked draft PR [#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: [GitHub Actions run 29371551072](https://github.com/stablyai/orca/actions/runs/29371551072),
final conclusion `failure` after 7m31s. Native job IDs and wall durations: Linux x64
`87215769010` / 3m09s, Linux arm64 `87215769039` / 3m16s, macOS x64 `87215769046` /
7m20s, macOS arm64 `87215769029` / 2m37s, Windows x64 `87215768998` / 1m29s, and
Windows arm64 `87215769056` / 3m55s.
- Remote and transport: none; target-native artifact-only build workflow
- Exact evidence commands:
```sh
gh run view 29371551072 --repo stablyai/orca \
--json status,conclusion,headSha,createdAt,updatedAt,url,jobs
gh api repos/stablyai/orca/actions/runs/29371551072/artifacts
gh api repos/stablyai/orca/actions/jobs/87215768998/logs
gh api repos/stablyai/orca/actions/jobs/87215769056/logs
gh run download 29371551072 --repo stablyai/orca \
--dir /tmp/orca-8450-metadata-red-29371551072
# Repeat the exact fail-closed jq/shasum audit in E-M3-METADATA-CI-RED-003 with:
# evidence=/tmp/orca-8450-metadata-red-29371551072
# commit=3c3d47fc4bf06610d43dcdb267eadfed46627b0f
# run_id=29371551072
```
- Result: EXPECTED RED. All four POSIX cells again passed contracts, two clean native builds,
archive/tree inspection, bundled runtime smoke, byte-for-byte comparison, and upload. Windows x64
and arm64 each passed 78 contract tests after native MSVC setup, then rejected the exact diagnostic
`Runtime build tool did not report a bounded version line: 0.0.0.0`. This proves both resolved
`link.exe` binaries lack a usable PE version resource rather than merely an empty formatted string.
Input download, build, smoke, comparison, and upload remained skipped; no Windows artifact exists.
- Downloaded-artifact audit:
| Tuple | Artifact ID | Archive SHA-256 | Content ID prefix | Files |
| ----------------- | ------------ | ------------------------------------------------------------------ | ----------------- | ----- |
| linux-x64-glibc | `8326313178` | `fb30c981c7d8ef32a57485cad75850058b6bb38988c5fe34a269d6e0bd33eb06` | `960546cd…` | 34 |
| linux-arm64-glibc | `8326316547` | `0d70e0646540461676fe4eeb8db38c13d13e4bd747db5609dec90a957c4db79d` | `aa3aa8ae…` | 34 |
| darwin-x64 | `8326400647` | `fe4a79d356baf0523822e4524989df4c3b3153e36e777fc44a09b96d2926df68` | `585ea603…` | 35 |
| darwin-arm64 | `8326301297` | `891489f352ae978aff91c227af908514df827ee7f4aba0513f5f0891a2b99ccd` | `40ff5d20…` | 35 |
All archive/subject hashes, archive-scoped SPDX namespaces, one-owner-per-file counts, eight
dependency relationships, prohibited-content assertions, exact commit/run identities, runner
labels/images/architectures, and bounded tool version/hash records passed. POSIX content IDs and
native tool versions remain unchanged; builder/source identities pin exact head `3c3d47fc4` and
invocation `29371551072`.
- Oracle proved: neither string nor integer PE version metadata can identify the hosted MSVC linker;
both architectures fail closed before producing incomplete provenance; four independent POSIX
controls remain complete and reproducible at the exact head.
- Does not prove: a bounded alternative linker identity on Windows, any Windows artifact/metadata,
regenerated Windows content IDs, oldest baselines, native trust/signing, SSH, publication, or an
enabled tuple.
- Checklist items satisfied: no new completion box; the all-six SBOM/provenance/toolchain item
remains in progress.
- Follow-up: derive the vendor toolset version from the canonical resolved MSVC linker directory,
reject malformed/ambiguous/non-MSVC layouts, retain the exact linker SHA-256, and rerun all cells.
### E-M3-WINDOWS-LINKER-TOOLSET-LOCAL-001 — Resolved MSVC toolset identity
- Date: 2026-07-14
- Commit SHA / PR: exact implementation commit
`18d10da2750af66ae3486b61382ab90d5c410f8a`; stacked draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: local macOS 26.2 build 25C56, Darwin 25.2.0 arm64 on Apple Silicon; Node v26.0.0 and
pnpm 10.24.0 for pure path/provenance tests
- Remote and transport: none; artifact-only local contracts
- Exact evidence commands:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-*.test.mjs \
src/main/ssh/ssh-relay-artifact-selector.test.ts
pnpm run typecheck
pnpm run lint
pnpm run check:max-lines-ratchet
pnpm exec oxfmt --check \
config/scripts/ssh-relay-runtime-toolchain.mjs \
config/scripts/ssh-relay-runtime-toolchain.test.mjs
git diff --check
```
- Result: PASS. Twenty focused test files passed 98 tests in 1.47s. Typecheck passed all three
TypeScript projects. Full lint passed oxlint, switch exhaustiveness, styled-scrollbar,
reliability-gate, max-lines, bundled-skill, localization-catalog, and localization-coverage gates;
its diagnostics remain pre-existing unrelated warnings. The independent max-lines ratchet,
focused formatting, and diff checks passed.
- Oracle proved: x64 and arm64 canonical Visual Studio paths produce the bounded identity
`MSVC 14.44.35207`; path parsing uses Windows semantics on every client OS; it requires one exact
case-insensitive `MSVC` segment, a three-component numeric version, the immediate `bin` segment,
an absolute path, and terminal `link.exe`; non-MSVC and ambiguous paths fail closed. The resolved
linker executable remains SHA-256 authenticated, so the path version is provenance metadata rather
than the byte-identity boundary. No PowerShell, PE metadata, stdout, or mutable version lookup is
required.
- Does not prove: the exact native hosted paths, a Windows toolchain record/build/smoke/equality/
upload, regenerated Windows content IDs, oldest Windows execution, native trust/signing, SSH,
publication, or an enabled tuple.
- Checklist items satisfied: local correction only; the all-six compiler/toolchain item remains
unchecked.
- Follow-up: push this exact implementation and ledger head, then require all six native jobs and
direct inspection of every uploaded artifact before closing any metadata/provenance claim.
### E-M3-METADATA-CI-RED-006 — Hosted linker paths reject the assumed MSVC layout
- Date: 2026-07-14
- Commit SHA / PR: exact tested head `2ed6c8e3b3609a9cb4785011996988de915e807a`;
stacked draft PR [#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: [GitHub Actions run 29372156145](https://github.com/stablyai/orca/actions/runs/29372156145),
final conclusion `failure` after 6m15s. Native job IDs and wall durations: Linux x64
`87217674004` / 3m06s, Linux arm64 `87217674003` / 3m34s, macOS x64 `87217674012` /
6m09s, macOS arm64 `87217674005` / 3m44s, Windows x64 `87217674050` / 1m29s, and
Windows arm64 `87217674002` / 3m52s.
- Remote and transport: none; target-native artifact-only build workflow
- Exact evidence commands:
```sh
gh run view 29372156145 --repo stablyai/orca \
--json status,conclusion,headSha,createdAt,updatedAt,url,jobs
gh api repos/stablyai/orca/actions/runs/29372156145/artifacts
gh api repos/stablyai/orca/actions/jobs/87217674050/logs
gh api repos/stablyai/orca/actions/jobs/87217674002/logs
gh run download 29372156145 --repo stablyai/orca \
--dir /tmp/orca-8450-metadata-red-29372156145
# Repeat the exact fail-closed jq/shasum audit in E-M3-METADATA-CI-RED-003 with:
# evidence=/tmp/orca-8450-metadata-red-29372156145
# commit=2ed6c8e3b3609a9cb4785011996988de915e807a
# run_id=29372156145
```
- Result: EXPECTED RED. All four POSIX cells passed contracts, two clean native builds,
archive/tree inspection, bundled runtime smoke, byte-for-byte comparison, and upload. Windows x64
and arm64 each rejected `Resolved Windows linker is not in a bounded MSVC toolset path` during
contract tests after native MSVC setup. Both stopped before input download, build, smoke,
comparison, or upload, so no Windows artifact exists.
- Downloaded-artifact audit:
| Tuple | Artifact ID | Archive SHA-256 | Content ID prefix | Files |
| ----------------- | ------------ | ------------------------------------------------------------------ | ----------------- | ----- |
| linux-x64-glibc | `8326530355` | `ec09bf6a0068b3a5954af0fa17e538c9972a8389ccf420a525546fc7c63dfeb4` | `960546cd…` | 34 |
| linux-arm64-glibc | `8326541076` | `c13d1454e3e2592bf667a7c5925d147fd06e0f68eec7fb875dbc3750628f88b7` | `aa3aa8ae…` | 34 |
| darwin-x64 | `8326590799` | `5de3e4ae940a47839f8a7a2ec24bc7b63d54954357beccf7916ff7c72fab7ff3` | `585ea603…` | 35 |
| darwin-arm64 | `8326543567` | `8ee92c0d45d25b0fa05360c2dada50c21b2ac4ac837089a5c40c64d22ac2b9f5` | `40ff5d20…` | 35 |
All archive/subject hashes, archive-scoped SPDX namespaces, one-owner-per-file counts, eight
dependency relationships, prohibited-content assertions, exact commit/run identities, runner
labels/images/architectures, and bounded tool version/hash records passed.
- Oracle proved: the assumed strict MSVC directory layout does not match either hosted Windows
architecture; both jobs fail closed before consuming inputs; four independent POSIX controls
remain complete at the exact head.
- Does not prove: either actual resolved Windows path shape, a corrected bounded parser, any Windows
artifact/metadata, oldest baselines, native trust/signing, SSH, publication, or an enabled tuple.
- Checklist items satisfied: no new completion box; the all-six SBOM/provenance/toolchain item
remains in progress.
- Follow-up: expose only a bounded path-tail diagnostic, rerun both native Windows architectures,
and correct the parser only after inspecting those exact paths.
### E-M3-WINDOWS-LINKER-PATH-DIAGNOSTIC-LOCAL-001 — Bounded native path evidence
- Date: 2026-07-14
- Commit SHA / PR: exact implementation commit
`d1eb45d613f504d7363230420f14a0c8126fe125`; stacked draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: local macOS 26.2 build 25C56, Darwin 25.2.0 arm64 on Apple Silicon; Node v26.0.0 and
pnpm 10.24.0 for pure path/provenance tests
- Remote and transport: none; artifact-only local contracts
- Exact evidence commands:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-*.test.mjs \
src/main/ssh/ssh-relay-artifact-selector.test.ts
pnpm run typecheck
pnpm run lint
pnpm run check:max-lines-ratchet
pnpm exec oxfmt --check \
config/scripts/ssh-relay-runtime-toolchain.mjs \
config/scripts/ssh-relay-runtime-toolchain.test.mjs
git diff --check
```
- Result: PASS. Twenty focused test files passed 99 tests. Typecheck passed all three TypeScript
projects. Full lint passed with only existing unrelated warnings; the independent max-lines,
focused formatting, and diff checks passed.
- Oracle proved: linker-path rejection includes at most the final 12 path segments and at most 512
characters; truncation and suffix retention are purpose-tested. The strict identity parser and
exact linker SHA-256 requirement remain unchanged.
- Does not prove: either native path shape, that 12 segments are sufficient to identify the correct
bounded grammar, a Windows build/smoke/equality/upload, oldest Windows execution, native trust,
SSH, publication, or an enabled tuple.
- Checklist items satisfied: local diagnostic only; the all-six compiler/toolchain item remains
unchecked.
- Follow-up: push this exact commit and ledger head, inspect both bounded native path tails, and make
only the parser correction supported by that evidence.
### E-M3-METADATA-CI-RED-007 — Git for Windows shadows the configured MSVC linker
- Date: 2026-07-14
- Commit SHA / PR: exact tested head `92f9b76101d4214c07291f6d9befa647fbc0dd86`;
stacked draft PR [#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: [GitHub Actions run 29372816457](https://github.com/stablyai/orca/actions/runs/29372816457),
final conclusion `failure` after 8m11s. Native job IDs and wall durations: Linux x64
`87219773628` / 2m44s, Linux arm64 `87219773618` / 3m33s, macOS x64 `87219773620` /
8m06s, macOS arm64 `87219773629` / 2m59s, Windows x64 `87219773636` / 1m18s, and
Windows arm64 `87219773684` / 5m10s.
- Remote and transport: none; target-native artifact-only build workflow
- Exact evidence commands:
```sh
gh run view 29372816457 --repo stablyai/orca \
--json status,conclusion,headSha,createdAt,updatedAt,url,jobs
gh api repos/stablyai/orca/actions/runs/29372816457/artifacts
gh api repos/stablyai/orca/actions/jobs/87219773636/logs
gh api repos/stablyai/orca/actions/jobs/87219773684/logs
gh run download 29372816457 --repo stablyai/orca \
--dir /tmp/orca-8450-metadata-red-29372816457
# Repeat the exact fail-closed jq/shasum audit in E-M3-METADATA-CI-RED-003 with:
# evidence=/tmp/orca-8450-metadata-red-29372816457
# commit=92f9b76101d4214c07291f6d9befa647fbc0dd86
# run_id=29372816457
```
- Result: EXPECTED RED. All four POSIX cells passed contracts, two clean native builds,
archive/tree inspection, bundled runtime smoke, byte-for-byte comparison, and upload. Windows x64
and arm64 each passed 18 contract files before the live toolchain test rejected
`C:\Program Files\Git\usr\bin\link.exe` as non-MSVC. Both stopped before input download, build,
smoke, comparison, or upload, so no Windows artifact exists.
- Downloaded-artifact audit:
| Tuple | Artifact ID | Archive SHA-256 | Content ID prefix | Files |
| ----------------- | ------------ | ------------------------------------------------------------------ | ----------------- | ----- |
| linux-x64-glibc | `8326768093` | `c312a404515db43b7219ec7c0f5ff8c33a1424a32b3cf42754820a1599afcec0` | `960546cd…` | 34 |
| linux-arm64-glibc | `8326787062` | `5e31f1377be855fdddba08dab19af92360236fc9c4a08a3c6320162aa4dca4a0` | `aa3aa8ae…` | 34 |
| darwin-x64 | `8326884270` | `a3cacc1aaf16c659218987972a39ff367584da456d167906b13e293874297777` | `585ea603…` | 35 |
| darwin-arm64 | `8326773209` | `612e7328700bef7886df5caaef92c22cbbc38ad872ca40b17f0758b28e75bd92` | `40ff5d20…` | 35 |
All archive/subject hashes, archive-scoped SPDX namespaces, one-owner-per-file counts, eight
dependency relationships, prohibited-content assertions, exact commit/run identities, runner
labels/images/architectures, and bounded tool version/hash records passed.
- Oracle proved: appending Git's signature-tool directory through `GITHUB_PATH` shadows `link.exe`
identically on x64 and arm64; the first PATH match is not the configured compiler toolchain; both
jobs fail closed before consuming release inputs; four independent POSIX controls remain complete.
- Does not prove: that `where.exe` exposes exactly one later canonical MSVC candidate, a Windows
artifact/metadata record, oldest baselines, native trust/signing, SSH, publication, or an enabled
tuple.
- Checklist items satisfied: no new completion box; the all-six SBOM/provenance/toolchain item
remains in progress.
- Follow-up: select exactly one canonical MSVC linker from all resolved candidates, retain its exact
SHA-256, reject zero/ambiguous matches, and rerun all six native cells.
### E-M3-WINDOWS-LINKER-SELECTION-LOCAL-001 — Unique canonical MSVC candidate
- Date: 2026-07-14
- Commit SHA / PR: exact implementation commit
`5f0c1417d5e28a0c01f1914c41d129814237e28e`; stacked draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: local macOS 26.2 build 25C56, Darwin 25.2.0 arm64 on Apple Silicon; Node v26.0.0 and
pnpm 10.24.0 for pure path/provenance tests
- Remote and transport: none; artifact-only local contracts
- Exact evidence commands:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-*.test.mjs \
src/main/ssh/ssh-relay-artifact-selector.test.ts
pnpm run typecheck
pnpm run lint
pnpm run check:max-lines-ratchet
pnpm exec oxfmt --check \
config/scripts/ssh-relay-runtime-toolchain.mjs \
config/scripts/ssh-relay-runtime-toolchain.test.mjs
git diff --check
```
- Result: PASS. Twenty focused test files passed 100 tests. Typecheck passed all three TypeScript
projects. Full lint passed with only existing unrelated warnings; the independent max-lines,
focused formatting, and diff checks passed.
- Oracle proved: a non-MSVC Git `link.exe` may precede either canonical x64 or arm64 MSVC path;
selection accepts exactly one case-insensitively deduplicated strict MSVC match, rejects zero or
multiple matches, and bounds rejection diagnostics. The strict absolute `MSVC/<version>/bin/...`
grammar and exact SHA-256 of the selected linker remain required. The corrected test also proves
the long-path fixtures actually interpolate and exercise the 512-byte bounds.
- Does not prove: the exact native candidate list, a Windows build/smoke/equality/upload, regenerated
Windows content IDs, oldest Windows execution, native trust, SSH, publication, or an enabled tuple.
- Checklist items satisfied: local correction only; the all-six compiler/toolchain item remains
unchecked.
- Follow-up: push this exact commit and ledger head, then require all six native jobs and direct
inspection of every uploaded artifact before closing any metadata/provenance claim.
### E-M3-METADATA-CI-001 — All-six native metadata and provenance closure
- Date: 2026-07-14
- Commit SHA / PR: exact tested head `ff3ebf37e32e9dad5834e669438efd46a974a708`;
stacked draft PR [#8741](https://github.com/stablyai/orca/pull/8741)
- Runner: [GitHub Actions run 29373507297](https://github.com/stablyai/orca/actions/runs/29373507297),
final conclusion `success` after 9m13s. Native job IDs and wall durations: Linux x64
`87221923438` / 2m55s, Linux arm64 `87221923415` / 3m06s, macOS x64 `87221923414` /
7m02s, macOS arm64 `87221923432` / 3m29s, Windows x64 `87221923434` / 4m50s, and
Windows arm64 `87221923449` / 9m08s.
- Remote and transport: none; target-native artifact-only build workflow
- Exact evidence commands:
```sh
gh run view 29373507297 --repo stablyai/orca \
--json status,conclusion,headSha,createdAt,updatedAt,url,jobs
gh api repos/stablyai/orca/actions/runs/29373507297/artifacts
gh run download 29373507297 --repo stablyai/orca \
--dir /tmp/orca-8450-metadata-green-29373507297
# Repeat the exact fail-closed jq/shasum audit in E-M3-METADATA-CI-RED-003 with:
# evidence=/tmp/orca-8450-metadata-green-29373507297
# commit=ff3ebf37e32e9dad5834e669438efd46a974a708
# run_id=29373507297
```
- Result: PASS. All six native cells passed contract tests, authenticated exact Node inputs, two
independent clean builds, archive/tree inspection, bundled Node/native PTY/watcher smoke,
byte-for-byte runtime/archive/identity/SPDX/provenance comparison, and unpublished upload. Direct
inspection of all six downloaded payloads passed every archive/subject hash, archive-scoped SPDX
namespace, one-owner-per-file count, eight-dependency relationship, prohibited-content, exact
commit/run/builder/source identity, runner identity, and bounded tool version/hash assertion.
- Downloaded-artifact audit:
| Tuple | Artifact ID | Archive SHA-256 | Content ID prefix | Files | Runner image |
| ----------------- | ------------ | ------------------------------------------------------------------ | ----------------- | ----- | ------------------------------ |
| linux-x64-glibc | `8327034796` | `177ad16222b08beb972bf66910bbafd32bf1e820deb007fef3304057cb6a01b8` | `960546cd…` | 34 | `ubuntu24` 20260705.232.1 |
| linux-arm64-glibc | `8327039534` | `9042214412ce73cd1febf94ff48a17de7bd979808e2226485fbbbf4b73fc093a` | `aa3aa8ae…` | 34 | `ubuntu24-arm64` 20260706.52.2 |
| darwin-x64 | `8327118454` | `449d96e0230f9f07437df571ccf4ab64bc124f9b398013e59c0d2ca1c4be0db8` | `585ea603…` | 35 | `macos15` 20260629.0276.1 |
| darwin-arm64 | `8327045964` | `cb593b9a30a82c743e4fffb201b57192c55af927bfce71a0cf9f6dc643dd20cb` | `40ff5d20…` | 35 | `macos15` 20260706.0213.1 |
| win32-x64 | `8327073419` | `b59aa25e59fb148b24dcc56d3c5ef6f1545a42673ba4e4f99a4b27fa1d0fb253` | `7ddad668…` | 42 | `win22` 20260706.237.1 |
| win32-arm64 | `8327157772` | `6b2fa8471a85c4d6872df34caf32acfdb7e9bf6c94cf83af06d5f19cecc1f33e` | `2955cec7…` | 42 | `win11-arm64` 20260706.102.1 |
Windows x64 records `MSVC 14.44.35207` with exact linker SHA-256
`ca11e6c45debd34bf652dfe984c5360a531a005ed78bf72852330c9c2590cf0d`; Windows arm64 records the
same bounded toolset identity with distinct exact linker SHA-256
`f167f4e80fe6c38ba7099c22d83ef189e906b97b03d316b3cbfbac1eadc9fa6a`. No build job uses a
container; every job records the requested native runner label, resolved image/version,
architecture, environment, and exact tool executable or package-tree digests.
- Oracle proved: the current six candidates have complete target-native build metadata, exact
clean-build identity, SPDX file/package ownership, license/closure contracts, runner identity,
bounded compiler/toolchain records, and direct payload consistency at the tested exact head. The
Git-for-Windows `link.exe` collision does not change the selected MSVC binary or its recorded hash.
- Does not prove: execution on declared oldest OS/libc/kernel floors, native signing/trust,
cross-family SSH transfer/install, release aggregation/publication, packaged desktop consumption,
fallback, rollout UI, performance, or an enabled tuple.
- Checklist items satisfied: the Milestone 3 compiler/toolchain/runner record item and the short
tracker's all-six SBOM/license/provenance/toolchain/prohibited-content item.
- Follow-up: implement and run purpose-named oldest-supported-baseline checks, then prove native
signing/trust before connecting any artifact consumer or enabling any tuple.
### E-M3-LINUX-BASELINE-LOCAL-RED-001 — Ubuntu-built Linux candidate fails the glibc 2.28 floor
- Date: 2026-07-14
- Owner: Codex implementation owner
- Source artifact: exact-head Actions run
[29373507297](https://github.com/stablyai/orca/actions/runs/29373507297), unpublished
`linux-x64-glibc` artifact `8327034796`, archive SHA-256
`177ad16222b08beb972bf66910bbafd32bf1e820deb007fef3304057cb6a01b8`, content ID
`960546cd96c67fcf9bb0a61e96ecdbecbffd9104d3a495578f8bb19dd810649a`.
- Runner/environment: local macOS arm64 controller, Docker 29.2.1, native artifact architecture
executed through Docker Desktop's bounded `linux/amd64` VM; container
`docker.io/library/rockylinux@sha256:2d05a9266523bbf24f33ebc3a9832e4d5fd74b973c220f2204ca802286aa275d`
(Rocky Linux 8.9, glibc 2.28, libstdc++.so.6.0.25). This is local red evidence only; native
GitHub x64/arm64 repetition remains required.
- Remote and transport: no SSH remote; read-only bind-mounted unpublished runtime, container
networking disabled, all capabilities dropped, `no-new-privileges`, 128 PIDs, 1 GiB memory, two
CPUs, and a 64 MiB `/tmp` tmpfs.
- Commands:
```bash
tar -xJf orca-ssh-relay-runtime-v1-linux-x64-glibc-960546cd….tar.xz -C "$runtime"
docker run --rm --platform linux/amd64 --network none --read-only --cap-drop all \
--security-opt no-new-privileges --pids-limit 128 --memory 1g --cpus 2 \
--tmpfs /tmp:rw,nosuid,size=64m \
--mount "type=bind,src=$PWD,dst=/workspace,readonly" \
--mount "type=bind,src=$runtime,dst=/runtime,readonly" \
--workdir /workspace "$image" \
/runtime/bin/node config/scripts/ssh-relay-runtime-smoke-child.cjs /runtime
docker run --rm --platform linux/amd64 --network none --read-only --cap-drop all \
--security-opt no-new-privileges --pids-limit 128 --memory 1g --cpus 2 \
--tmpfs /tmp:rw,nosuid,size=64m \
--mount "type=bind,src=$runtime,dst=/runtime,readonly" "$image" \
/runtime/bin/node -e "require('/runtime/node_modules/node-pty/build/Release/pty.node')"
```
- Result: expected RED. The complete smoke stops before PTY/watcher evidence because patched
`node-pty` cannot load. Direct loading reports `/lib64/libc.so.6: version 'GLIBC_2.34' not found`;
`ldd` additionally reports `GLIBC_2.32` missing. The file exists and is the identity-authenticated
x64 ELF, so this is an ABI-floor mismatch rather than a missing archive entry.
- Verifier defect exposed: the first baseline CLI run also rejected with `Runtime baseline did not
resolve one bounded libstdc++ ABI library`; inspection found its filename parser accidentally
removed the SONAME `6` from `libstdc++.so.6.0.25`. This is
E-M3-BASELINE-VERIFIER-LOCAL-RED-001 and requires a focused parser test/correction before CI.
- Oracle proved: Ubuntu 24.04 producer smoke and target-native architecture alone do not prove the
declared Linux ABI floor; current Linux candidate bytes are ineligible.
- Does not prove: native x64 timing, Linux arm64 behavior, kernel 4.18, SSH transfer/install, native
trust, or any enabled tuple.
- Follow-up: build both Linux tuples in the digest-pinned Rocky 8.9 userland on native runners,
correct the bounded libstdc++ filename parser, repeat smoke/baseline/equality/metadata gates, and
keep kernel 4.18 explicitly open.
### E-M3-LINUX-BUILDER-PYTHON-LOCAL-RED-001 — Rocky 8 default Python is too old for node-gyp 12
- Date: 2026-07-14
- Owner: Codex implementation owner
- Source: uncommitted local WP2 correction at Git HEAD
`775f2cbcc7f66f6e728fa06ae2d6822edd50f7b0`; no artifact was emitted or published.
- Runner/environment: local macOS arm64 controller, Docker 29.2.1, `linux/amd64` Docker Desktop
emulation; builder base
`docker.io/library/rockylinux@sha256:2d05a9266523bbf24f33ebc3a9832e4d5fd74b973c220f2204ca802286aa275d`
(Rocky Linux 8.9, glibc 2.28, libstdc++.so.6.0.25), derived local builder image ID
`sha256:1f06eda13b33be5d30aa1b256895516b322d329753f9743614a5c8ebf1286291`.
- Remote and transport: no SSH remote; workflow-equivalent local container with networking
disabled, read-only root, all capabilities dropped, `no-new-privileges`, 512 PIDs, 6 GiB memory,
four CPUs, and a 1 GiB `/tmp` tmpfs.
- Command:
```bash
docker run --rm --platform linux/amd64 --network none --read-only --cap-drop all \
--security-opt no-new-privileges --pids-limit 512 --memory 6g --cpus 4 \
--tmpfs /tmp:rw,nosuid,size=1g <builder> \
/usr/bin/node config/scripts/ssh-relay-runtime-linux-build-evidence.mjs \
--tuple linux-x64-glibc --inputs-directory /evidence/inputs \
--output-root /evidence/native-output --work-directory /evidence/native-work \
--evidence-directory /evidence/verified-output \
--source-date-epoch 1784069324 \
--git-commit 775f2cbcc7f66f6e728fa06ae2d6822edd50f7b0
```
- Result: expected RED. The evidence driver stopped during the first `node-pty` native build before
creating or copying any candidate. node-gyp 12.3.0 selected `/usr/bin/python3` version 3.6.8 and
failed parsing its own `if flags := ...` syntax. The container capability probe then proved
distro package `python39-3.9.25-2.module+el8.10.0+40046+11e46e10` installs as
`/usr/bin/python3.9` without changing the glibc/libstdc++ floor.
- Correction: the digest-pinned prepared builder installs `python39`, asserts Python 3.9, and sets
`NODE_GYP_FORCE_PYTHON=/usr/bin/python3.9`; the focused workflow contract passes 4/4. Package
installation remains in the networked preparation phase, while both native builds remain
network-disabled.
- Oracle proved: the earlier builder definition could not build the artifact and failed before
output; a modern build controller is compatible with the old runtime ABI userland when installed
before the isolated compilation phase.
- Does not prove: a complete x64 build, x64 reproducibility/smoke/baseline, native arm64, kernel
4.18, SSH transfer/install, signing/trust, or any enabled tuple.
- Follow-up: repeat the full two-build x64 evidence command with the corrected builder, run the
purpose-named Linux userland verifier over its verified output, then repeat on native GitHub x64
and arm64 runners.
### E-M3-LINUX-BUILDER-GCC-LOCAL-RED-001 — Rocky GCC 8 rejects Node v24's final C++20 spelling
- Date: 2026-07-14
- Owner: Codex implementation owner
- Source: uncommitted local WP2 correction at Git HEAD
`775f2cbcc7f66f6e728fa06ae2d6822edd50f7b0`; no artifact was emitted or published.
- Runner/environment: the same local macOS arm64/Docker `linux/amd64` emulation and digest-pinned
Rocky 8.9 base as E-M3-LINUX-BUILDER-PYTHON-LOCAL-RED-001; corrected builder selected Python
3.9.25 and retained glibc 2.28/libstdc++.so.6.0.25.
- Command: the E-M3-LINUX-BUILDER-PYTHON-LOCAL-RED-001 two-build evidence command, repeated with
`NODE_GYP_FORCE_PYTHON=/usr/bin/python3.9` in the corrected builder.
- Result: expected RED after 36.42 seconds, 148,564 KiB peak RSS. node-gyp 12.3.0 successfully
selected Python 3.9.25, then GCC 8.5.0 rejected Node v24's generated `-std=gnu++20` argument and
suggested its supported draft spelling, `-std=gnu++2a`. The evidence driver removed the failed
first output and copied no candidate.
- Correction: the Linux-only build now replaces exactly one `'-std=gnu++20',` entry with
`'-std=gnu++2a',` in the already signature/hash-verified extracted Node `common.gypi`; zero or
multiple matches fail closed and non-Linux inputs are unchanged. The extracted headers are build
inputs only, so bundled official Node bytes remain unchanged. Four focused compatibility tests
cover replace, non-Linux preservation, and both rejected counts.
- Oracle proved: the oldest declared GCC/libstdc++ toolchain cannot consume the unmodified Node v24
header spelling; silently selecting a newer compiler could narrow the libstdc++ floor.
- Does not prove: successful native compilation with the corrected flag, runtime smoke, exact
equality, x64/arm64 native runners, kernel 4.18, SSH transfer/install, signing/trust, or an enabled
tuple.
### E-M3-LINUX-BUILDER-TOOLCHAIN-LOCAL-RED-001 — Minimal builder cannot record its compiler
- Date: 2026-07-14
- Owner: Codex implementation owner
- Source and environment: the same uncommitted source, base digest, local controller, and bounded
offline container as E-M3-LINUX-BUILDER-GCC-LOCAL-RED-001.
- Command: the same two-build evidence command after the exact Linux C++ flag correction.
- Result: expected RED after 1 minute 40.14 seconds, 694,188 KiB peak RSS. The first native module
compiled and the runtime reached metadata collection, but the minimal Rocky image lacked the
`which` locator used by the fail-closed toolchain collector. It therefore refused to claim a
compiler identity and removed the incomplete output. The collector would also have probed
generic `python3` instead of the exact forced node-gyp interpreter.
- Correction: the prepared builder explicitly installs distro-signed `which`, and Linux provenance
resolves and hashes `NODE_GYP_FORCE_PYTHON` (`/usr/bin/python3.9`) rather than a generic alias.
The focused toolchain/workflow suite passes 15/15 and asserts both contracts.
- Oracle proved: artifact compilation alone is insufficient; missing or inaccurate toolchain
identity fails the build before any candidate is copied.
- Does not prove: a complete first build, a second equal build, runtime smoke, baseline execution,
native runner behavior, kernel 4.18, or any enabled tuple.
### E-M3-LINUX-BASELINE-LOCAL-GREEN-001 — Corrected x64 bytes pass the oldest Linux userland
- Date: 2026-07-14
- Owner: Codex implementation owner
- Source: uncommitted local WP2 correction at Git HEAD
`775f2cbcc7f66f6e728fa06ae2d6822edd50f7b0`; the artifact-affecting correction was subsequently
committed as `0cb3f7510`, while later fail-closed artifact-selection, `ldd` stderr, and test-cleanup
hardening did not change built bytes. This remains unpublished local evidence only.
- Runner/environment: local macOS arm64 controller, Docker 29.2.1, Docker Desktop bounded
`linux/amd64` emulation. Build base and separate baseline image:
`docker.io/library/rockylinux@sha256:2d05a9266523bbf24f33ebc3a9832e4d5fd74b973c220f2204ca802286aa275d`;
corrected builder image
`sha256:9c32993d7a91557657593ae8258568a71f9832b0ce7c8824a1229b939ef49968`.
Compilation used glibc 2.28, libstdc++.so.6.0.25, GCC 8.5.0, Python 3.9.25, GNU Make 4.2.1,
GNU strip 2.30, distro Node 20.20.2 as controller, and verified bundled Node v24.18.0.
- Build command:
```bash
repo=$PWD
root=/private/tmp/orca-8450-linux-floor-build-v6
docker run --rm --platform linux/amd64 --network none --read-only --cap-drop all \
--security-opt no-new-privileges --pids-limit 512 --memory 6g --cpus 4 \
--tmpfs /tmp:rw,nosuid,size=1g \
--mount type=bind,src=/private/tmp/orca-8450-linux-floor-build/workspace,dst=/workspace \
--mount type=bind,src=$repo/node_modules,dst=/workspace/node_modules,readonly \
--mount type=bind,src=$repo/config/scripts,dst=/workspace/config/scripts,readonly \
--mount type=bind,src=/private/tmp/orca-8450-linux-floor-build/inputs,dst=/inputs,readonly \
--mount type=bind,src=$root,dst=/evidence \
--workdir /workspace orca-ssh-relay-linux-builder:local-x64-python39 \
/usr/bin/time -v /usr/bin/node \
config/scripts/ssh-relay-runtime-linux-build-evidence.mjs \
--tuple linux-x64-glibc --inputs-directory /inputs \
--output-root /evidence/output --work-directory /evidence/work \
--evidence-directory /evidence/verified --source-date-epoch 1784069324 \
--git-commit 775f2cbcc7f66f6e728fa06ae2d6822edd50f7b0
```
- Build result: PASS in 6 minutes 48.16 seconds with 694,196 KiB peak RSS. Both complete builds
produced content ID `fc63ca342a5990f460ec6d72262a8542173dab20ce03c9b9cfb755b1c6057e6d`
and byte-identical 29,268,776-byte archive SHA-256
`8f9095d1017fda387d66762ca6ccdd10a05d0138ff1b4ca6835d4b2a6eb7be83`.
Reproducibility compared 54 entries, 38 files, and 154,157,598 bytes. First/second build durations
were 256,687.12/127,672.46 ms; verifier durations were 9,541.30/5,525.82 ms. Both smokes reported
Node v24.18.0, modules ABI 137, PTY exit 23 after resize to 101x37, the required five watcher
events, 377.22/378.81 ms smoke duration, and 58,380,288/58,052,608 RSS bytes.
- Verified metadata SHA-256 values: identity
`edc57658e5d245b4652f4418a70f0b8a519d287ab570ceac582ba6ead0221715`, SPDX
`a7b58dc14ea671c60d5111eb9ade8141e502a4562161ed540b4de75f9703346b`, and provenance
`c19086b3fb511cca04a31311d6677df58f47d0f10d91e30b180b88b6775b839d`.
- Separate boundary/baseline commands:
```bash
repo=$PWD
root=/private/tmp/orca-8450-linux-floor-build-v6
runtime=$root/baseline-runtime
archive=orca-ssh-relay-runtime-v1-linux-x64-glibc-fc63ca342a5990f460ec6d72262a8542173dab20ce03c9b9cfb755b1c6057e6d.tar.xz
identity=orca-ssh-relay-runtime-linux-x64-glibc.identity.json
mkdir $runtime
tar -xJf $root/verified/$archive -C $runtime
docker run --rm --platform linux/amd64 --network none --read-only --cap-drop all \
--security-opt no-new-privileges --pids-limit 128 --memory 1g --cpus 2 \
--tmpfs /tmp:rw,nosuid,size=64m \
--mount type=bind,src=$repo/config/scripts,dst=/workspace/config/scripts,readonly \
--mount type=bind,src=$repo/node_modules,dst=/workspace/node_modules,readonly \
--mount type=bind,src=$root/verified,dst=/evidence,readonly \
--mount type=bind,src=$runtime,dst=/runtime,readonly \
--workdir /workspace orca-ssh-relay-linux-builder:local-x64-python39 \
/runtime/bin/node config/scripts/verify-ssh-relay-runtime.mjs \
--runtime-directory /runtime --identity /evidence/$identity --archive /evidence/$archive
image=docker.io/library/rockylinux@sha256:2d05a9266523bbf24f33ebc3a9832e4d5fd74b973c220f2204ca802286aa275d
docker run --rm --platform linux/amd64 --network none --read-only --cap-drop all \
--security-opt no-new-privileges --pids-limit 128 --memory 1g --cpus 2 \
--tmpfs /tmp:rw,nosuid,size=64m \
--mount type=bind,src=$repo/config/scripts,dst=/workspace/config/scripts,readonly \
--mount type=bind,src=$runtime,dst=/runtime,readonly --workdir /workspace $image \
/runtime/bin/node config/scripts/ssh-relay-runtime-smoke-child.cjs /runtime
docker run --rm --platform linux/amd64 --network none --read-only --cap-drop all \
--security-opt no-new-privileges --pids-limit 128 --memory 1g --cpus 2 \
--tmpfs /tmp:rw,nosuid,size=64m \
--mount type=bind,src=$repo/config/scripts,dst=/workspace/config/scripts,readonly \
--mount type=bind,src=$runtime,dst=/runtime,readonly --workdir /workspace $image \
/runtime/bin/node config/scripts/ssh-relay-runtime-baseline.mjs \
--tuple linux-x64-glibc --scope linux-userland --runtime-directory /runtime
```
- Boundary/baseline result: PASS. Fresh archive/tree verification matched 49 entries, 34 files,
124,846,430 expanded bytes, and the exact content ID; smoke took 280.64 ms at 58,208,256 RSS
bytes. The separate unmodified Rocky base smoke took 438.55 ms at 58,908,672 RSS bytes. The
baseline evaluator returned `qualified: true` for platform x64, glibc 2.28, and libstdc++ 6.0.25,
with explicit residual gap `kernel`: observed shared Docker kernel 6.12.72-linuxkit versus required
4.18.
- Oracle proved: corrected x64 artifacts can be built twice without egress in the oldest declared
Linux userland, remain byte-identical, pass archive/tree/Node/PTY/watcher checks, and execute in an
unmodified glibc 2.28/libstdc++ 6.0.25 userland.
- Does not prove: a target-native x64 runner, native arm64, exact kernel 4.18, SSH transfer/install,
native trust, release aggregation, packaged desktop use, fallback, performance against legacy, or
an enabled tuple.
- Follow-up: push the exact correction to draft PR #8741, require the native x64 and arm64 build and
supplemental userland cells to pass, audit the downloaded artifacts, and retain the kernel 4.18
and native-trust blockers.
### E-M3-LINUX-BUILDER-LOCAL-VALIDATION-001 — Corrected WP2 source gates pass locally
- Date: 2026-07-14
- Owner: Codex implementation owner
- Source: the same uncommitted WP2 source and Git HEAD as
E-M3-LINUX-BASELINE-LOCAL-GREEN-001.
- Commands:
```bash
pnpm exec vitest run --config config/vitest.config.ts config/scripts/ssh-relay-*.test.mjs
pnpm run typecheck
pnpm run lint
pnpm run check:max-lines-ratchet
pnpm exec oxfmt --check \
.github/workflows/ssh-relay-runtime-artifacts.yml \
config/ssh-relay-runtime-linux-builder.Containerfile \
config/scripts/build-ssh-relay-runtime.mjs \
config/scripts/ssh-relay-linux-node-gyp-compiler.mjs \
config/scripts/ssh-relay-linux-node-gyp-compiler.test.mjs \
config/scripts/ssh-relay-runtime-baseline.mjs \
config/scripts/ssh-relay-runtime-baseline.test.mjs \
config/scripts/ssh-relay-runtime-compatibility.mjs \
config/scripts/ssh-relay-runtime-linux-build-evidence.mjs \
config/scripts/ssh-relay-runtime-linux-build-evidence.test.mjs \
config/scripts/ssh-relay-runtime-toolchain.mjs \
config/scripts/ssh-relay-runtime-toolchain.test.mjs \
config/scripts/ssh-relay-runtime-tree.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist-summary.md \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md \
docs/reference/plans/2026-07-14-ssh-relay-github-release-plan.html
git diff --check
```
- Result: PASS. The expanded focused suite passed 22 files/100 tests. Typecheck passed. Lint passed
with only existing unrelated repository warnings; its reliability, max-lines, bundled-skill,
localization-catalog, and localization-coverage sub-gates all passed. The direct max-lines ratchet
passed with 355 grandfathered suppressions and no new bypass. Focused formatting and
`git diff --check` passed.
- Runner detail: local macOS arm64 shell used Node v26.0.0 and pnpm 10.24.0, which emitted the
expected package-engine warning because repository CI requires Node 24. Draft-PR jobs install
exact Node 24.18.0 and remain the qualifying contract cells.
- Does not prove: GitHub workflow parsing/execution, native x64/arm64 builds, oldest kernel 4.18,
native signing/trust, SSH transfer/install, or any enabled tuple.
- Follow-up: commit this evidence update, push both reviewable commits, and audit every draft-PR job
and downloaded artifact before closing any runner-backed cell.
### E-M3-WORKFLOW-WINDOWS-CRLF-CI-RED-001 — Containerfile contract was newline-sensitive
- Date: 2026-07-14
- Owner: Codex implementation owner
- Source/run: exact draft-PR head `3973e68d772008a20c2664ad90708f6d0e00b403`, Actions run
[29377854121](https://github.com/stablyai/orca/actions/runs/29377854121), Windows x64 job
[87234935616](https://github.com/stablyai/orca/actions/runs/29377854121/job/87234935616).
- Runner/environment: GitHub-hosted `windows-2022` x64; exact image/tool identities remain in the
job log. The failure occurred in the purpose-named runtime artifact contract-test step before Node
inputs, native compilation, verification, or upload.
- Command: the workflow's exact Node 24.18.0 PowerShell contract suite, including
`config/scripts/ssh-relay-runtime-workflow.test.mjs`.
- Result: expected RED. Git's Windows checkout supplied the Containerfile with CRLF line endings;
the test compared `ARG BASE_IMAGE=scratch\nFROM ${BASE_IMAGE}` literally and failed at line 164.
No Windows x64 candidate was built or uploaded. Linux contract cells passed the same assertion
with LF, proving the implementation text was present but the oracle was not checkout-portable.
- Correction: normalize CRLF to LF only within the test's in-memory Containerfile text before
asserting exact content. Commit `53082dd1f` adds the explicit CRLF fixture; the purpose-named
workflow suite passes 5/5 and the expanded artifact suite passes 22 files/101 tests. Production
workflow/Containerfile bytes and runtime behavior remain unchanged.
- Does not prove: the corrected Windows contract, any candidate from this job, the complete run,
baseline execution, signing/trust, SSH behavior, or an enabled tuple.
- Follow-up: commit this evidence, push both commits, and audit the replacement exact-head run from
the beginning.
### E-M3-LINUX-RUNNER-MOUNT-PERMISSION-CI-RED-001 — Root container cannot stage into runner temp
- Date: 2026-07-14 (job timestamps 2026-07-15 UTC)
- Owner: Codex implementation owner
- Source/run: exact draft-PR head `24153775b2327001e581c341301dfc41bb9cb61f`, Actions run
[29378160419](https://github.com/stablyai/orca/actions/runs/29378160419), Linux arm64 job
[87235847644](https://github.com/stablyai/orca/actions/runs/29378160419/job/87235847644). Linux x64 job
[87235847575](https://github.com/stablyai/orca/actions/runs/29378160419/job/87235847575) fails with
the same exception in the first second of the same build step.
- Runner/environment: GitHub-hosted native `ubuntu-24.04` x64 and `ubuntu-24.04-arm`; requested runner
and architecture were recorded by the workflow. Digest-pinned Rocky arm64 base
`sha256:3c2d0ce12bf79fc5ff05e43b1000e30ff062dc89405525f3307cbff71661f1a0`; produced builder image
`sha256:6384da2f38157d93856beb31f6ba45dffeec8e7cc139cd4468cdf5df2fa5619c`. Digest-pinned Rocky x64
base `sha256:2d05a9266523bbf24f33ebc3a9832e4d5fd74b973c220f2204ca802286aa275d`; produced builder image
`sha256:4adbb55dff700b55b8cf1c20e4be6099869e3bd43236688bf462116b92da40dc`.
- Command: the workflow's offline `docker run --rm --network none --read-only --cap-drop all ...`
invocation of `ssh-relay-runtime-linux-build-evidence.mjs`, with the workspace and
`/home/runner/work/_temp` bind-mounted at identical container paths.
- Result: expected RED. Builder preparation passed after 3 minutes 25 seconds. The evidence driver
then failed immediately with `EACCES: permission denied, mkdir
'/home/runner/work/_temp/ssh-relay-runtime'`; no build, archive, smoke, comparison, upload, or
dependent baseline job ran. The container defaulted to root while the hosted runner bind mount did
not grant root write access under this isolation configuration.
- Plan correction: run the offline build container as `$(id -u):$(id -g)` and make `/tmp` an explicit
mode-1777 tmpfs. Retain read-only root, no network, dropped capabilities, no-new-privileges, and the
existing process/memory/CPU bounds. Do not broaden permissions on `RUNNER_TEMP` or leave root-owned
host output.
- Does not prove: the correction, any Linux runtime bytes from this run, Linux userland/kernel
baselines, native trust, SSH behavior, or an enabled tuple.
- Follow-up: add a workflow contract for UID/GID and tmpfs mode, validate the exact invocation
locally, then repeat both native Linux cells and audit their downloaded artifacts.
### E-M3-LINUX-RUNNER-MOUNT-PERMISSION-LOCAL-GREEN-001 — Non-root build preserves the full gate
- Date: 2026-07-14
- Owner: Codex implementation owner
- Source: implementation commit `05b3a4b18` (`build(ssh): preserve Linux runner ownership`), based
on `24153775b2327001e581c341301dfc41bb9cb61f`; runtime-building scripts are unchanged from the base.
- Runner/environment: local macOS arm64 Docker Desktop running the existing amd64 Rocky 8 builder
`sha256:9c32993d7a91557657593ae8258568a71f9832b0ce7c8824a1229b939ef49968` under emulation. This is
supplemental permission/functional evidence, not a qualifying native architecture cell.
- Commands: the purpose-named workflow suite, plus a clean disposable workspace invocation of
`ssh-relay-runtime-linux-build-evidence.mjs` using `--network none --read-only --cap-drop all`,
`--user "$(id -u):$(id -g)"`, `--security-opt no-new-privileges`, the existing process/memory/CPU
bounds, and `--tmpfs /tmp:rw,nosuid,size=1g,mode=1777`. A separate bounded mount probe recorded the
runtime UID/GID, tmpfs mode, and host ownership of created output.
- Static commands: `pnpm exec vitest run --config config/vitest.config.ts
config/scripts/ssh-relay-*.test.mjs`; `pnpm run typecheck`; `pnpm run lint`; `pnpm run
check:max-lines-ratchet`; focused `pnpm exec oxfmt --check` over the five changed files; and `git
diff --check`.
- Result: PASS. Workflow contract 5/5. The probe observed UID 501, GID 20, `/tmp` mode 1777, and output
owned by local user `jinwoohong:wheel`. The complete driver passed in 4 minutes 47.48 seconds with
694,172 KiB peak RSS. Both builds produced content ID
`fc63ca342a5990f460ec6d72262a8542173dab20ce03c9b9cfb755b1c6057e6d`, identical 29,270,716-byte
archive SHA-256 `94b2d5c1e28835aab05fc84578298199c300d7d5d0cd4e76057a3f44451356c3`, 49 archive entries,
34 files, and 124,846,430 expanded bytes.
- Runtime result: both bundled-Node checks reported v24.18.0/modules ABI 137; both PTY checks resized
to 101x37 and exited 23; both watcher checks observed the required five create/update/delete events.
First/second build durations were 138,118.53/130,370.80 ms; verification durations were
6,235.84/5,041.08 ms; smoke durations were 431.46/348.38 ms at 58,347,520/58,040,320 RSS bytes.
- Static result: PASS. The expanded artifact suite passed 22 files/101 tests. Typecheck, full lint,
reliability metadata, max-lines (355 grandfathered suppressions and no new bypass), bundled-skill,
localization catalog/coverage, focused formatting, and `git diff --check` passed. Lint emitted only
the existing unrelated repository warnings. Local Node v26.0.0 emitted the expected engine warning;
draft-PR jobs install exact Node 24.18.0.
- Does not prove: native x64 or arm64 hosted-runner behavior, exact Linux kernel 4.18, SSH
transfer/install, native trust, release aggregation, or an enabled tuple.
- Follow-up: run the exact correction on both native GitHub labels and audit every resulting artifact
and supplemental userland job before closing either cell.
### E-M3-WINDOWS-ARM64-BASELINE-CI-RED-001 — Hosted build 26200 cannot prove build 26100
- Date: 2026-07-14 (job timestamps 2026-07-15 UTC)
- Owner: Codex implementation owner
- Source/run: exact draft-PR head `24153775b2327001e581c341301dfc41bb9cb61f`, Actions run
[29378160419](https://github.com/stablyai/orca/actions/runs/29378160419), Windows arm64 artifact job
[87235847556](https://github.com/stablyai/orca/actions/runs/29378160419/job/87235847556), and baseline
job [87237242684](https://github.com/stablyai/orca/actions/runs/29378160419/job/87237242684). Windows x64
baseline control [87237242686](https://github.com/stablyai/orca/actions/runs/29378160419/job/87237242686)
passed.
- Runner/environment: GitHub-hosted native `windows-11-arm`. The baseline evaluator observed native
arm64 Windows `10.0.26200`; the declared oldest arm64 contract is exactly Windows 11 24H2 build 26100. Downloaded artifact ID `8328797474`, 33,084,426 bytes, Actions transport digest
`2453ddd8eefd9b371be296bebe0bcec15fdbaa245dca3a89b1eb2c668450cd23`.
- Result: expected RED for oldest-floor qualification. The native artifact built twice, verified,
compared, uploaded, downloaded, re-verified, and completed bundled Node/PTY/watcher smoke; smoke
settled to only the parent stdio pipes after the two-second observation window and used 48,525,312
RSS bytes. The baseline evaluator returned platform and architecture true, `osBuild: false`, and
`qualified: false`, so the job correctly failed closed rather than presenting a newer hosted image
as proof of build 26100. Windows x64 passed the analogous declared-floor job.
- Does not prove: Windows arm64 build 26100 compatibility, native signature/trust, SSH behavior, or an
enabled tuple. A successful artifact/smoke run on build 26200 is deliberately insufficient.
- Follow-up: provision or select a native arm64 build-26100 snapshot/runner before closing this cell;
keep the tuple disabled and do not weaken the exact oldest-floor oracle.
- Repeat evidence: exact-head run
[29379227209](https://github.com/stablyai/orca/actions/runs/29379227209), artifact job
[87239051368](https://github.com/stablyai/orca/actions/runs/29379227209/job/87239051368), and baseline
job [87240257136](https://github.com/stablyai/orca/actions/runs/29379227209/job/87240257136) reproduce
the same bounded result at `cc4c45c8981fd87b5681e8c0be7b3b06f2cfab22`: native build, equality,
upload, download, verification, PTY/watcher smoke, and 48,361,472-byte RSS pass; observed build
26200 returns `osBuild: false` and the job fails closed. Artifact ID `8329167066`, 33,084,426 bytes,
Actions digest `4956ad608ede84372a393248dc90c03b13bd5e28345d8c3940df0419b9fdb192`;
archive SHA-256 `87a9c749f6aced6d2c63a3f2b80033dfa3ecc7524c2f232baaa199340c562cf1`.
### E-M3-LINUX-NATIVE-USERLAND-CI-001 — Native Linux producers pass the oldest userland
- Date: 2026-07-14 (job timestamps 2026-07-15 UTC)
- Owner: Codex implementation owner
- Source/run: exact draft-PR head `cc4c45c8981fd87b5681e8c0be7b3b06f2cfab22`, containing
implementation commit `05b3a4b18`; Actions run
[29379227209](https://github.com/stablyai/orca/actions/runs/29379227209). Linux x64 artifact job
[87239051400](https://github.com/stablyai/orca/actions/runs/29379227209/job/87239051400), Linux arm64
artifact job [87239051434](https://github.com/stablyai/orca/actions/runs/29379227209/job/87239051434),
x64 userland job [87240706426](https://github.com/stablyai/orca/actions/runs/29379227209/job/87240706426),
and arm64 userland job
[87240706430](https://github.com/stablyai/orca/actions/runs/29379227209/job/87240706430) all pass.
- Aggregate status: the artifact workflow concludes `failure` only because the separately required
Windows arm64 build-26100 floor fails closed on hosted build 26200. Exact-head PR Checks
[29379227222](https://github.com/stablyai/orca/actions/runs/29379227222) and Golden E2E Experiment
[29379227283](https://github.com/stablyai/orca/actions/runs/29379227283) both pass with no failed jobs.
- Runners/builders: GitHub-hosted native `ubuntu-24.04` / `ubuntu24` `20260705.232.1` x64 and
`ubuntu-24.04-arm` / `ubuntu24-arm64` `20260706.52.2` arm64. Digest-pinned Rocky bases are
`2d05a926...aa275d` x64 and `3c2d0ce1...61f1a0` arm64; produced builder IDs are
`sha256:4e260f8acb74ac4800e31af90160aac0c9eed00c5fc4e8cb1aa83d0f1b1a8f4b` and
`sha256:a2f683970a2fcef419610f77bdc0af332d991dc0cf19fa4f239771dfe5b06a94`.
- Exact evidence commands:
```sh
gh run view 29379227209 --repo stablyai/orca \
--json headSha,status,conclusion,createdAt,updatedAt,url,jobs
gh run view 29379227209 --repo stablyai/orca --log | \
rg 'requested_runner=|resolved_image_|runner_arch=|linux_floor_|"contentId"|"qualified"|"residualGaps"'
gh api repos/stablyai/orca/actions/runs/29379227209/artifacts --paginate
gh run download 29379227209 --repo stablyai/orca \
--dir /private/tmp/orca-8450-run-29379227209-artifacts
# Repeat the fail-closed jq/shasum audit from E-M3-METADATA-CI-RED-003 with:
# evidence=/private/tmp/orca-8450-run-29379227209-artifacts
# commit=cc4c45c8981fd87b5681e8c0be7b3b06f2cfab22
# run_id=29379227209
# Extract each exact archive, then repeat the closure verifier command from
# E-M3-RUNTIME-CLOSURE-LOCAL-001 against all six extracted directories.
```
- Result: PASS. Both offline, non-root builders preserve the read-only/no-network/capability/resource
envelope; build twice; inspect archive/tree; execute bundled Node v24.18.0, native PTY
input/resize/exit, and five watcher events twice; compare runtime/archive/identity/SPDX/provenance
exactly; and upload. Artifact job wall times were 6m49s x64 and 11m57s arm64, including builder
preparation. Clean x64 builds took 67,398.98/64,050.97 ms with 55,918,592/55,955,456-byte smoke
RSS; clean arm64 builds took 75,230.87/74,661.31 ms with 52,195,328/52,207,616-byte smoke RSS.
- Supplemental userland result: PASS after download and fresh byte/tree verification. Both execute in
glibc 2.28/libstdc++ 6.0.25 Rocky userland and report `qualified: true`; x64 PTY/watcher smoke takes
161.43 ms at 55,611,392 RSS bytes and arm64 takes 161.85 ms at 51,658,752 RSS bytes. Both retain the
explicit kernel residual: observed shared runner kernel `6.17.0-1018-azure`, not required 4.18.
- Downloaded artifacts/direct audit: exact cardinality, archive/identity/provenance/SPDX hashes,
archive-scoped namespace, one owner per file, eight dependency relationships, exact
commit/run/builder/runner/toolchain identities, prohibited-content rules, and extracted-tree
closure all pass for all six run artifacts. Linux x64 artifact `8329137098`, 29,290,715 bytes,
Actions digest `4859448ad465600836700884449b56b65cc65b13e71588813a5341c7eee2ef3b`,
content ID `fc63ca342a5990f460ec6d72262a8542173dab20ce03c9b9cfb755b1c6057e6d`, archive SHA-256
`c771c13d23fb7384ad0b018cb4a91e04066d53d07b021fa2ff4e0ae55f701467`. Linux arm64 artifact
`8329223012`, 28,216,772 bytes, Actions digest
`f3a834de03714c4bd702d933261cc8c3c8f3ea6472b97d74737904d5b7461a06`, content ID
`96f07f62af9b35304bb8ca0870ca4d8095e059bfa61dd1bc57e81b20f3fbca67`, archive SHA-256
`ea52c7fadbc100e055e489d14ddf01daca5f90b1f83cdff93c1f3d728cfcaa34`.
- Six-artifact audit controls:
| Tuple | Artifact ID | Actions digest | Archive SHA-256 | Content ID prefix | Files |
| ----------------- | ------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ----------------- | ----- |
| linux-x64-glibc | `8329137098` | `4859448ad465600836700884449b56b65cc65b13e71588813a5341c7eee2ef3b` | `c771c13d23fb7384ad0b018cb4a91e04066d53d07b021fa2ff4e0ae55f701467` | `fc63ca34…` | 34 |
| linux-arm64-glibc | `8329223012` | `f3a834de03714c4bd702d933261cc8c3c8f3ea6472b97d74737904d5b7461a06` | `ea52c7fadbc100e055e489d14ddf01daca5f90b1f83cdff93c1f3d728cfcaa34` | `96f07f62…` | 34 |
| darwin-x64 | `8329119914` | `d86a6deac1c5f6b38a1824197b19de69c5f5df6bc7081266a636e86cfae34a87` | `470b69a5317d212cab99cf1dc12841b09e0984c70cfbc90c3f46be040a263374` | `585ea603…` | 35 |
| darwin-arm64 | `8329097437` | `d2200b01c983afbc2b7ca0d08d36f9e7962932113c67ab604c1072488b6ebb26` | `54a2fb49a0bc63c04622525bada57ccfa4cf7884e09bfb88c4c87f30a363616d` | `40ff5d20…` | 35 |
| win32-x64 | `8329104979` | `3168b4b29c635502ceb5320fc1e96a19a394b2a36ea5f8083c8502a81a385063` | `e8c1165df331602027f548228f8b09791d27aa353d829c575b9b6dbf86833670` | `7ddad668…` | 42 |
| win32-arm64 | `8329167066` | `4956ad608ede84372a393248dc90c03b13bd5e28345d8c3940df0419b9fdb192` | `87a9c749f6aced6d2c63a3f2b80033dfa3ecc7524c2f232baaa199340c562cf1` | `2955cec7…` | 42 |
- Oracle proved: the exact native Linux producer bytes are compatible with the declared oldest
glibc/libstdc++ userland on both architectures; the original Ubuntu-linked ABI defect and the
runner bind-mount defect are closed without weakening isolation.
- Does not prove: exact kernel 4.18, SSH transfer/install, native trust, release aggregation,
packaged desktop use, fallback/performance, or an enabled tuple.
- Follow-up: retain both tuples disabled until kernel 4.18, native trust, and the remaining required
live SSH evidence pass.
### E-M3-WINDOWS-X64-BASELINE-CI-001 — Windows x64 passes the declared Server floor
- Date: 2026-07-14 (job timestamps 2026-07-15 UTC)
- Owner: Codex implementation owner
- Source/run: exact head `cc4c45c8981fd87b5681e8c0be7b3b06f2cfab22`, Actions run
[29379227209](https://github.com/stablyai/orca/actions/runs/29379227209), artifact job
[87239051373](https://github.com/stablyai/orca/actions/runs/29379227209/job/87239051373), and baseline
job [87240257128](https://github.com/stablyai/orca/actions/runs/29379227209/job/87240257128).
- Runner/result: GitHub-hosted native `windows-2022` / `win22` `20260706.237.1` x64 observed exact
build `10.0.20348`; archive/tree verification and bundled Node/PTY/watcher smoke pass, then the full
baseline evaluator returns `qualified: true` with no residual gaps. Smoke took 5,382.17 ms at
50,561,024 RSS bytes; the baseline job wall time was 1m29s.
- Artifact/audit: artifact `8329104979`, 37,034,298 bytes, Actions digest
`3168b4b29c635502ceb5320fc1e96a19a394b2a36ea5f8083c8502a81a385063`; content ID
`7ddad668780ce5b2592d86afcebf9d897172bdf07c618ae238b5d51eebfe1596`; archive SHA-256
`e8c1165df331602027f548228f8b09791d27aa353d829c575b9b6dbf86833670`. The independent all-six
metadata and extracted-closure audit passes.
- Does not prove: native signature/trust, Windows arm64 build 26100, SSH transfer/install, release
aggregation, fallback/performance, or an enabled tuple.
- Follow-up: keep the tuple disabled until native trust and the remaining required live SSH evidence
pass.
### E-M3-NATIVE-SIGNING-PLAN-SORT-LOCAL-RED-001 — Locale collation changes Windows signing order
- Date: 2026-07-14
- Owner: Codex implementation owner
- Source: local macOS arm64 shell at Git HEAD
`c6a7277cc6f56d453662ebd373e9e8e4e278f4ac`; no runtime or signing credentials were used.
- Command:
```sh
node - <<'NODE'
const paths = [
'node_modules/node-pty/build/Release/conpty.node',
'node_modules/node-pty/build/Release/conpty/OpenConsole.exe',
'node_modules/node-pty/build/Release/conpty/conpty.dll',
'node_modules/node-pty/build/Release/conpty_console_list.node'
]
console.log(JSON.stringify({
locale: [...paths].sort((left, right) => left.localeCompare(right)),
portable: [...paths].sort((left, right) => left < right ? -1 : left > right ? 1 : 0)
}, null, 2))
NODE
```
- Result: expected RED control. Locale collation ordered `conpty_console_list.node`, `conpty.node`,
`conpty/conpty.dll`, then `conpty/OpenConsole.exe`; portable byte ordering produced
`conpty.node`, `conpty/OpenConsole.exe`, `conpty/conpty.dll`, then
`conpty_console_list.node`, matching `canonicalSshRelayRuntimeIdentityBytes`.
- Correction/oracle: the signing plan uses explicit `<`/`>` path comparison, and the Windows x64
and arm64 expected-path assertions lock that order. Locale-sensitive `localeCompare` is not used.
- Does not prove: target-native execution, any signature, native trust, release aggregation, SSH
behavior, or an enabled tuple.
### E-M3-NATIVE-SIGNING-PLAN-LOCAL-001 — Exact credential-free signing plans pass for all six identities
- Date: 2026-07-14
- Owner: Codex implementation owner
- Source: implementation commit `9bdae7f5bd7d5df838ab8c59af9346fc2282443c`, based on
`c6a7277cc6f56d453662ebd373e9e8e4e278f4ac`; downloaded identities are from exact-head Actions run
[29379227209](https://github.com/stablyai/orca/actions/runs/29379227209) and were already audited
under E-M3-LINUX-NATIVE-USERLAND-CI-001.
- Runner/remote/network: local macOS arm64 shell, Node v26.0.0 and pnpm 10.24.0; no remote, signing
service, credential, publication, or network access was used by the plan command. The source
artifacts were produced on the six native GitHub runner families recorded by the prior evidence.
- Commands:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-runtime-native-signing-plan.test.mjs
pnpm exec vitest run --config config/vitest.config.ts config/scripts/ssh-relay-*.test.mjs
pnpm run typecheck
pnpm run lint
pnpm run check:max-lines-ratchet
pnpm exec oxfmt --check \
config/scripts/ssh-relay-runtime-native-signing-plan.mjs \
config/scripts/ssh-relay-runtime-native-signing-plan.test.mjs \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist-summary.md
git diff --check
for identity in /private/tmp/orca-8450-run-29379227209-artifacts/ssh-relay-runtime-*/*.identity.json; do
node config/scripts/ssh-relay-runtime-native-signing-plan.mjs --identity "$identity"
done
```
- Static result: PASS. The purpose-named contract passed 1 file/6 tests in 944 ms; the aggregate SSH
relay artifact suite passed 23 files/107 tests in 6.91 seconds. Typecheck, full lint, reliability
gates, max-lines (355 grandfathered suppressions and no new bypass), bundled-skill verification,
localization catalog/coverage, focused formatting, and `git diff --check` passed. Lint emitted only
existing unrelated warnings; the local Node 26 shell emitted the expected Node-24 engine warning.
- Actual-identity result: PASS. Every plan retained one official Node executable as
`preserve-exact-bytes`, copied the exact identity digest into `sourceSha256`, and produced this
closed cardinality:
| Tuple | Policy | Immutable vendor files | Signing candidates | Verification files |
| ----------------- | -------------------------- | ---------------------- | ------------------ | ------------------ |
| linux-x64-glibc | `linux-hash-only-v1` | 1 | 0 | 3 |
| linux-arm64-glibc | `linux-hash-only-v1` | 1 | 0 | 3 |
| darwin-x64 | `apple-developer-id-v1` | 1 | 3 | 4 |
| darwin-arm64 | `apple-developer-id-v1` | 1 | 3 | 4 |
| win32-x64 | `signpath-authenticode-v1` | 1 | 5 | 6 |
| win32-arm64 | `signpath-authenticode-v1` | 1 | 5 | 6 |
- Fail-closed coverage: wrong tuple/OS, role/path/count/extension drift, duplicates, missing exact
Node, non-executable native entries, malformed invocation, malformed JSON, directories, and input
larger than 4 MiB reject. Every native file is present in `verificationFiles`; Linux selects no
signing target, macOS requires Developer ID for all three non-Node native files, and Windows sends
all five non-Node PE files through the preserve-valid-upstream-signature SignPath policy.
- Oracle proved: one bounded, deterministic, credential-free contract derives the complete platform
signing/verification plan from the builder-enforced closure before signing side effects, while
keeping official Node outside Orca signing.
- Does not prove: Apple or SignPath credential wiring, returned signed-byte hashes, Gatekeeper,
quarantine, notarized containing-app provenance, Authenticode signer policy, Defender, WDAC, exact
oldest-OS snapshots, release aggregation, SSH transfer/install, packaged desktop use, fallback,
performance, or an enabled tuple.
- Follow-up: commit this evidence separately, require exact-head CI, then make native signing staging
consume this plan without weakening any remaining credential/snapshot gate.
### E-M3-NATIVE-SIGNING-PLAN-CI-RED-001 — First exact-head workflow omitted the new suite
- Date: 2026-07-14 (run timestamps 2026-07-15 UTC)
- Owner: Codex implementation owner
- Source/run: exact draft-PR head `8ac54159c6f9d95858358f11746117c5480440cf`, containing
implementation commit `9bdae7f5bd7d5df838ab8c59af9346fc2282443c`; Actions run
[29380684866](https://github.com/stablyai/orca/actions/runs/29380684866).
- Commands:
```sh
gh run view 29380684866 --repo stablyai/orca \
--json headSha,status,conclusion,createdAt,updatedAt,url,jobs
gh run view 29380684866 --repo stablyai/orca --job 87243480614 --log | \
rg 'Run runtime artifact contract tests|Test Files|Tests|Duration|24.18.0'
gh run view 29380684866 --repo stablyai/orca --job 87243480598 --log | \
rg 'Run runtime artifact contract tests|Test Files|Tests|Duration'
```
- Result: expected RED evidence for the new contract's CI gate. All six native build jobs and their
existing contract steps passed; both Linux userland supplements, Windows x64 build-20348 floor,
exact-head PR Checks
[29380684876](https://github.com/stablyai/orca/actions/runs/29380684876), and Golden E2E
[29380684872](https://github.com/stablyai/orca/actions/runs/29380684872) also passed. The artifact
workflow concluded failure only because Windows arm64 correctly rejected hosted build 26200
against required build 26100.
- Missing oracle: inspection of the exact command/log showed the POSIX job ran 21 files/97 tests and
the Windows job ran 22 files/98 passed plus 3 skipped; neither explicit list named
`ssh-relay-runtime-native-signing-plan.test.mjs`, and neither syntax-checked its source. Healthy
builds cannot substitute for a test that did not run, so this exact head does not qualify the new
package.
- Native build job controls: Linux x64/arm64, macOS x64/arm64, and Windows x64/arm64 jobs all passed
at 3m43s/9m57s, 7m30s/2m41s, and 5m27s/8m7s respectively. PR Checks passed in 14m57s; Golden Linux
and macOS passed in 4m37s/5m25s. These are regression controls only, not the omitted contract proof.
- Does not prove: the new suite on Node 24/native runners, signing credentials, returned signed bytes,
native trust, release aggregation, SSH behavior, or an enabled tuple.
- Correction: explicitly syntax-check the source/test and name the suite in both POSIX and Windows
native workflow commands; lock all four test references and both source syntax checks in the
workflow contract before repeating the exact head.
### E-M3-NATIVE-SIGNING-PLAN-WORKFLOW-LOCAL-001 — Both native job families now execute the suite
- Date: 2026-07-14
- Owner: Codex implementation owner
- Source: correction commit `9c0357235867cb2ff1ab8cbeed4901e6f013cf1d`, based on
`8ac54159c6f9d95858358f11746117c5480440cf`.
- Runner: local macOS arm64 shell, Node v26.0.0 and pnpm 10.24.0; no remote, network, credential,
artifact, or signing service was used.
- Commands:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-runtime-workflow.test.mjs \
config/scripts/ssh-relay-runtime-native-signing-plan.test.mjs
pnpm exec vitest run --config config/vitest.config.ts config/scripts/ssh-relay-*.test.mjs
node --check config/scripts/ssh-relay-runtime-native-signing-plan.mjs
node --check config/scripts/ssh-relay-runtime-native-signing-plan.test.mjs
pnpm run typecheck
pnpm run lint
pnpm run check:max-lines-ratchet
pnpm exec oxfmt --check \
.github/workflows/ssh-relay-runtime-artifacts.yml \
config/scripts/ssh-relay-runtime-workflow.test.mjs \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist-summary.md
git diff --check
```
- Result: PASS. The workflow plus signing-plan suites passed 2 files/11 tests in 1.53 seconds; the
aggregate SSH relay artifact suite passed 23 files/107 tests in 4.64 seconds. Both files passed
direct syntax checks. Typecheck, full lint, reliability gates, max-lines (355 grandfathered
suppressions and no new bypass), bundled-skill verification, localization catalog/coverage,
focused formatting, and `git diff --check` passed with only existing unrelated lint warnings and
the expected local Node-24 engine warning.
- Workflow oracle: POSIX and Windows each syntax-check the plan source and test, and each exact Vitest
command names the purpose-built suite. The workflow test requires four test-path occurrences and
two source syntax-check occurrences, preventing one native family from silently dropping it.
- Does not prove: GitHub workflow parsing/execution, Node 24, any native runner, native signing/trust,
returned signed bytes, release aggregation, SSH behavior, or an enabled tuple.
- Follow-up: push the correction plus this evidence separately and require the replacement exact-head
POSIX and Windows logs to contain the 6-test suite before accepting CI proof.
### E-M3-NATIVE-SIGNING-PLAN-CI-001 — Replacement exact head executes the suite on all six native jobs
- Date: 2026-07-14 (run timestamps 2026-07-15 UTC)
- Owner: Codex implementation owner
- Source/run: exact draft-PR head `0f589ea299e9363a3988a9bc92b721f23c1ce1f4`, containing plan
implementation `9bdae7f5bd7d5df838ab8c59af9346fc2282443c` and CI correction
`9c0357235867cb2ff1ab8cbeed4901e6f013cf1d`; Actions run
[29381495240](https://github.com/stablyai/orca/actions/runs/29381495240).
- Commands:
```sh
gh run view 29381495240 --repo stablyai/orca \
--json headSha,status,conclusion,createdAt,updatedAt,url,jobs
gh run view 29381495240 --repo stablyai/orca --job 87245905347 --log | \
rg 'native-signing-plan|Test Files|Tests|Duration'
gh run view 29381495240 --repo stablyai/orca --job 87245905412 --log | \
rg 'native-signing-plan|Test Files|Tests|Duration'
gh run view 29381494930 --repo stablyai/orca \
--json headSha,status,conclusion,createdAt,updatedAt,url,jobs
gh run view 29381494940 --repo stablyai/orca \
--json headSha,status,conclusion,createdAt,updatedAt,url,jobs
```
- Contract result: PASS on all six native jobs. Job-step metadata reports the purpose-named contract
step successful for Linux x64/arm64, macOS x64/arm64, and Windows x64/arm64. The macOS arm64 log
directly records both syntax checks, the named suite passing 6/6 in 29 ms, and the aggregate
22 files/103 tests in 6.11 seconds. The Windows x64 log records both syntax checks, the suite
passing 6/6 in 37 ms, and 23 files/104 passed plus 3 platform skips out of 107 in 5.63 seconds.
- Build/regression controls: all six native artifact jobs passed. Linux x64/arm64 took 3m50s/8m53s;
macOS x64/arm64 took 7m26s/3m36s; Windows x64/arm64 took 4m49s/8m33s. Both Linux oldest-userland
supplements passed in 43s/54s, and Windows x64 passed exact build 20348 in 1m25s.
- Expected aggregate status: the artifact workflow concludes failure only because the Windows arm64
floor job again rejects hosted build 26200 against required build 26100 in 3m23s. This preserves
E-M3-WINDOWS-ARM64-BASELINE-CI-RED-001 and is not a signing-plan regression.
- Other exact-head controls: PR Checks
[29381494930](https://github.com/stablyai/orca/actions/runs/29381494930) passed in 14m16s. Golden E2E
[29381494940](https://github.com/stablyai/orca/actions/runs/29381494940) passed Linux/macOS in
4m35s/5m56s.
- Oracle proved: the credential-free plan contract parses and executes under exact Node 24.18.0 in
both shell families on every native runner, while all existing artifact, smoke, equality,
userland, packaging, and E2E controls retain their prior outcomes.
- Does not prove: Apple/SignPath credentials, signing requests, approval behavior, returned signed
bytes, final post-signing hashes, Gatekeeper/quarantine/notarized-app provenance,
Authenticode/Defender/WDAC policy, exact missing oldest snapshots, release aggregation, SSH
transfer/install, packaged desktop use, fallback/performance, or an enabled tuple.
- Follow-up: keep every tuple disabled; implement a credential-free exact signing-stage/returned-byte
contract that consumes the proven plan before any protected Apple or SignPath job is connected.
### E-M3-NATIVE-SIGNING-STAGE-LOCAL-RED-001 — Missing signing-stage modules fail the focused contract
- Date: 2026-07-14
- Owner: Codex implementation owner
- Source: pre-implementation head `30496bacf11a7e727ca6bf97c23ececd89c351ad`.
- Command:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-runtime-native-signing-selection.test.mjs \
config/scripts/ssh-relay-runtime-native-signing-payload.test.mjs
```
- Result: expected RED. Both purpose-named test files failed to load because
`ssh-relay-runtime-native-signing-selection.mjs` and
`ssh-relay-runtime-native-signing-payload.mjs` did not exist. No production or artifact behavior
changed. The exact RED duration was not retained and is deliberately not reconstructed.
- Oracle proved: the new selection, staging, and returned-tree requirements were not already
satisfied by the signing-plan module or an unrelated artifact test.
- Does not prove: any implementation behavior, native runner execution, signing, native trust,
release aggregation, SSH behavior, or an enabled tuple.
- Correction: implement the two purpose-named modules, keep official Node out of signing payloads,
and require both native workflow families to execute their contracts explicitly.
### E-M3-NATIVE-SIGNING-STAGE-LOCAL-001 — Exact selection, exclusive staging, and returned-tree contracts pass
- Date: 2026-07-14
- Owner: Codex implementation owner
- Source: implementation commit `c847c4a11d60ee37d161564ca3685955ce3c2d6d`, based on
`30496bacf11a7e727ca6bf97c23ececd89c351ad`.
- Runner/remote/network: local macOS 26.2 build 25C56 arm64, Node v26.0.0 and pnpm 10.24.0; no
remote, network, credential, signing service, native-trust environment, or publication path was
used.
- Commands:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-runtime-native-signing-selection.test.mjs \
config/scripts/ssh-relay-runtime-native-signing-payload.test.mjs
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-runtime-native-signing-selection.test.mjs \
config/scripts/ssh-relay-runtime-native-signing-payload.test.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs
pnpm exec vitest run --config config/vitest.config.ts config/scripts/ssh-relay-*.test.mjs
node --check config/scripts/ssh-relay-runtime-native-signing-selection.mjs
node --check config/scripts/ssh-relay-runtime-native-signing-selection.test.mjs
node --check config/scripts/ssh-relay-runtime-native-signing-payload.mjs
node --check config/scripts/ssh-relay-runtime-native-signing-payload.test.mjs
pnpm run typecheck
pnpm run lint
pnpm run check:max-lines-ratchet
pnpm exec oxfmt --check \
.github/workflows/ssh-relay-runtime-artifacts.yml \
config/scripts/ssh-relay-runtime-workflow.test.mjs \
config/scripts/ssh-relay-runtime-native-signing-selection.mjs \
config/scripts/ssh-relay-runtime-native-signing-selection.test.mjs \
config/scripts/ssh-relay-runtime-native-signing-payload.mjs \
config/scripts/ssh-relay-runtime-native-signing-payload.test.mjs \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md
git diff --check
```
- Result: PASS. The focused selection/payload command passed 2 files/18 tests in 247 ms. The two
suites plus workflow contract passed 3 files/23 tests in 264 ms. The complete purpose-named SSH
relay script suite passed 25 files/125 tests in 2.55 seconds. Four direct syntax checks, typecheck,
full lint and reliability gates, max-lines (355 grandfathered suppressions with no new bypass),
bundled-skill verification, localization catalog/coverage, focused formatting, and
`git diff --check` passed. Lint emitted only existing unrelated warnings; local Node 26 emitted the
expected repository Node-24 engine warning. An intermediate lint run rejected an ASCII-control
regular expression and formatting check rejected all four new files; the implementation was
corrected without a disable and the complete gate was rerun green.
- Selection oracle: Linux accepts no assessments and creates no signing payload. macOS selects all
three non-Node Developer ID candidates. Windows requires exactly one hash-bound assessment per PE
candidate, stages only `unsigned`, preserves only `valid-upstream` with a bounded non-control
signer subject and exact 40-hex thumbprint, and rejects invalid/unknown status, missing, duplicate,
extra, hash-mismatched, malformed, or status-incompatible fields.
- Payload oracle: every native source file is authenticated by safe-integer size and SHA-256 before
an exclusive stage is created; official Node is never copied. The physical stage must be outside
the runtime, source/staged files must be regular, portable relative paths are preserved, and a
partial stage is removed on copy/authentication failure. Linux verifies without creating a stage.
- Returned-tree oracle: the root and every entry must be real directories or regular files; links,
special entries, unexpected/missing files or directories, unchanged hashes, per-file growth over
4 MiB, or aggregate size over 64 MiB reject. Every accepted returned file records its exact new
size and SHA-256 without mutating the runtime.
- Workflow oracle: POSIX and Windows native job families each syntax-check both sources and tests and
explicitly name both suites. The workflow contract locks four occurrences per test and two source
syntax-check occurrences so one shell family cannot silently omit the package.
- Does not prove: Node 24 behavior or parsing on GitHub Actions, native filesystem behavior on all
six runners, Apple/SignPath credentials or calls, native trust, final signed-byte identity,
Gatekeeper/quarantine/notarized-app provenance, Authenticode/Defender/WDAC policy, oldest missing
snapshots, release aggregation, SSH transfer/install, packaged desktop use, fallback/performance,
or an enabled tuple.
- Follow-up: push the implementation and evidence separately, then inspect an exact-head run to prove
both suites executed under Node 24.18.0 in all six native jobs while existing build/smoke/equality
controls retain their outcomes.
### E-M3-NATIVE-SIGNING-STAGE-CI-001 — Both staging suites execute on all six native jobs
- Date: 2026-07-14 (run timestamps 2026-07-15 UTC)
- Owner: Codex implementation owner
- Source/run: exact draft-PR head `9e08ac123039b827ebacbe1918ef8d3c3b989ae9`, containing
implementation `c847c4a11d60ee37d161564ca3685955ce3c2d6d` and local evidence
`9e08ac123039b827ebacbe1918ef8d3c3b989ae9`; Actions run
[29382772805](https://github.com/stablyai/orca/actions/runs/29382772805).
- Commands:
```sh
gh run view 29382772805 --repo stablyai/orca \
--json status,conclusion,headSha,createdAt,updatedAt,url,jobs
gh run view 29382772805 --repo stablyai/orca --job 87249764747 --log | \
awk -F '\t' '$2 == "Run runtime artifact contract tests"' | \
rg 'native-signing-(selection|payload)|Test Files|Tests|Duration'
gh run view 29382772805 --repo stablyai/orca --job 87249764693 --log | \
awk -F '\t' '$2 == "Run runtime artifact contract tests"' | \
rg 'native-signing-(selection|payload)|Test Files|Tests|Duration'
gh run view 29382772805 --repo stablyai/orca --job 87251086934 --log | \
rg 'Operating System|OsBuildNumber|26100|26200'
gh run view 29382772825 --repo stablyai/orca \
--json status,conclusion,headSha,createdAt,updatedAt,url,jobs
gh run view 29382772821 --repo stablyai/orca \
--json status,conclusion,headSha,createdAt,updatedAt,url,jobs
```
- Contract result: PASS on Linux x64/arm64, macOS x64/arm64, and Windows x64/arm64. Every native
build job reports `Run runtime artifact contract tests` successful under exact Node 24.18.0. The
shared POSIX log on macOS arm64 records four new syntax checks, selection 7/7 in 9 ms, payload
11/11 in 204 ms, and aggregate 24 files/121 tests in 3.94 seconds. The shared PowerShell log on
Windows x64 records the same four syntax checks, selection 7/7 in 27 ms, payload 8 passed plus the
three declared POSIX-only symlink skips in 1.736 seconds, and aggregate 25 files/119 passed plus
six total platform skips out of 125 in 6.04 seconds.
- Native build/regression controls: all six two-build, smoke, exact-equality, metadata, and
unpublished-upload jobs passed. Durations were Linux x64 4m16s, Linux arm64 4m26s, macOS x64
5m16s, macOS arm64 2m58s, Windows x64 4m58s, and Windows arm64 10m40s. Linux x64/arm64
digest-pinned glibc 2.28/libstdc++ 6.0.25 supplemental jobs passed in 37s/54s. Windows x64 exact
build-20348 floor passed in 1m23s.
- Expected aggregate status: the artifact workflow concluded failure only because Windows arm64
hosted image 10.0.26200 again failed the exact declared 10.0.26100 floor in 4m9s. This preserves
E-M3-WINDOWS-ARM64-BASELINE-CI-RED-001 and is not a signing-stage regression.
- Other exact-head controls: PR Checks
[29382772825](https://github.com/stablyai/orca/actions/runs/29382772825) passed in 14m8s after lint,
typecheck, Git 2.25 compatibility, full tests, unpacked-app build, and packaged-CLI smoke. Golden
E2E [29382772821](https://github.com/stablyai/orca/actions/runs/29382772821) passed macOS/Linux in
3m00s/4m29s.
- Oracle proved: both shell families parse and execute the exact credential-free selection and
payload contracts on every target-native runner while the artifact build, executable smoke,
clean-build equality, oldest-userland, packaging, and E2E regression controls retain their prior
outcomes.
- Does not prove: real candidate assessment or staging, Apple/SignPath credentials or calls,
returned signed bytes, native trust, final post-signing hashes, Gatekeeper/quarantine/notarized-app
provenance, Authenticode/Defender/WDAC policy, exact missing oldest snapshots, release
aggregation, SSH transfer/install, packaged desktop use, fallback/performance, or an enabled tuple.
- Follow-up: keep every tuple disabled; execute pre-sign assessment and staging against the actual
target-native candidate tree without credentials before connecting any protected signing job.
### E-M3-NATIVE-ASSESSMENT-LOCAL-RED-001 — Missing native assessment and orchestration modules fail focused contracts
- Date: 2026-07-14
- Owner: Codex implementation owner
- Source: pre-implementation head `e478ae458fa634845e9d9a7fd1d5a01cb41ed6ed`.
- Commands:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-runtime-windows-authenticode-assessment.test.mjs
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-runtime-native-signing-stage.test.mjs
```
- Result: expected RED. The Authenticode suite failed 1 file/0 tests in 396 ms because
`ssh-relay-runtime-windows-authenticode-assessment.mjs` did not exist. The target-native stage
suite independently failed 1 file/0 tests in 159 ms because
`ssh-relay-runtime-native-signing-stage.mjs` did not exist. No production or artifact behavior
changed.
- Oracle proved: neither actual Windows signature classification nor target-native first-build
orchestration was already provided by the credential-free selection/payload modules.
- Does not prove: any implementation, real native candidate inspection, credentials, signing,
native trust, release aggregation, SSH behavior, or an enabled tuple.
- Correction: add purpose-named bounded Authenticode assessment and target-native stage modules,
then wire real first-build candidate execution into all native artifact jobs.
### E-M3-NATIVE-ASSESSMENT-LOCAL-001 — Bounded target-native assessment and first-build staging pass locally
- Date: 2026-07-14
- Owner: Codex implementation owner
- Source: implementation commit `1a79e492145a1297949a10ab6870d2118c5f5cd3`, based on exact staging-CI evidence commit
`e478ae458fa634845e9d9a7fd1d5a01cb41ed6ed`.
- Runner/remote/network: local macOS 26.2 build 25C56 arm64, Node v26.0.0, pnpm 10.24.0, and
PowerShell 7 at `/opt/homebrew/bin/pwsh`; no remote, network, credential, signing service,
native-trust environment, or publication path was used. Windows execution was dependency-injected
locally and remains an explicit CI requirement.
- Commands:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-runtime-windows-authenticode-assessment.test.mjs \
config/scripts/ssh-relay-runtime-native-signing-stage.test.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs
pnpm exec vitest run --config config/vitest.config.ts config/scripts/ssh-relay-*.test.mjs
node --check config/scripts/ssh-relay-runtime-windows-authenticode-assessment.mjs
node --check config/scripts/ssh-relay-runtime-windows-authenticode-assessment.test.mjs
node --check config/scripts/ssh-relay-runtime-native-signing-stage.mjs
node --check config/scripts/ssh-relay-runtime-native-signing-stage.test.mjs
pnpm run typecheck
pnpm run lint
pnpm run check:max-lines-ratchet
pnpm exec oxfmt --check \
.github/workflows/ssh-relay-runtime-artifacts.yml \
config/scripts/ssh-relay-runtime-workflow.test.mjs \
config/scripts/ssh-relay-runtime-windows-authenticode-assessment.mjs \
config/scripts/ssh-relay-runtime-windows-authenticode-assessment.test.mjs \
config/scripts/ssh-relay-runtime-native-signing-stage.mjs \
config/scripts/ssh-relay-runtime-native-signing-stage.test.mjs
node --input-type=module -e \
'import {readFile} from "node:fs/promises"; import {parse} from "yaml"; const workflow=parse(await readFile(".github/workflows/ssh-relay-runtime-artifacts.yml","utf8")); process.stdout.write(workflow.jobs["build-windows-runtime"].steps.find((step)=>step.name==="Build twice, inspect, smoke, and compare exact runtime").run)' | \
pwsh -NoLogo -NoProfile -NonInteractive -Command \
'$source=[Console]::In.ReadToEnd(); $tokens=$null; $errors=$null; [System.Management.Automation.Language.Parser]::ParseInput($source,[ref]$tokens,[ref]$errors)|Out-Null; if($errors.Count){exit 1}'
git diff --check
```
- Result: PASS. The assessment, stage, and workflow suites passed 3 files/19 tests in 1.31 seconds;
the complete SSH relay script suite passed 27 files/139 tests in 5.82 seconds. Four direct syntax
checks, typecheck, full lint/reliability gates, max-lines (355 grandfathered suppressions and no
new bypass), bundled-skill verification, localization catalog/coverage, focused formatting,
direct PowerShell parsing of the modified Windows step, and `git diff --check` passed. Lint emitted
only existing unrelated warnings; local Node 26 emitted the expected repository Node-24 engine
warning.
- Assessment oracle: the Windows module derives exactly five candidates from the authenticated
identity, validates every size/hash before the first probe, passes the local path only through a
dedicated environment variable, and uses `pwsh -NoLogo -NoProfile -NonInteractive` with a
30-second timeout, 64-KiB output bound, and hidden window. It accepts only exact three-field JSON:
`NotSigned` without certificate metadata or `Valid` with a bounded non-control subject and exact
40-hex thumbprint. Hash mismatch, invalid/unknown status, malformed fields/JSON, stderr, nonzero
exit, timeout/error, links, host mismatch, or mutation during the probe reject.
- Orchestration oracle: host platform must equal the identity OS before assessment. Linux
authenticates three native files without creating a stage; macOS stages exactly its three non-Node
candidates; Windows runs assessment once, preserves valid-upstream candidates, and stages only
unsigned candidates. Official Node remains verification-only.
- Workflow oracle: both native shell families syntax-check and execute both new suites. The actual
first clean-build tree is assessed only after archive/tree verification and clean-build equality.
Linux requires no stage, macOS requires three staged files, and Windows requires five assessments,
three unsigned staged `.node` files, and the exact preserved upstream `OpenConsole.exe` and
`conpty.dll` paths. Every temporary stage excludes official Node, is removed after inspection, and
emits one unpublished `.signing-stage.json` evidence file. No signing secret, credential, service,
permission, or publication authority was introduced.
- Does not prove: real Windows PowerShell status/signer output, actual macOS/Linux candidate staging,
Node 24 behavior, target-native filesystem behavior, Apple/SignPath calls, returned signed bytes,
native trust, final post-signing hashes, missing oldest snapshots, release aggregation, SSH
transfer/install, packaged desktop use, fallback/performance, or an enabled tuple.
- Follow-up: push the implementation and evidence separately; require exact-head logs and downloaded
stage reports from all six jobs before accepting real candidate behavior.
### E-M3-NATIVE-ASSESSMENT-CI-001 — All six real candidates pass native assessment and exclusive staging
- Date: 2026-07-14 (run timestamps 2026-07-15 UTC)
- Owner: Codex implementation owner
- Source/run: exact draft-PR head `82f6c0cefa9d7ac031d56bcfd0b85a2ab71a7d8b`, containing
implementation `1a79e492145a1297949a10ab6870d2118c5f5cd3` and local evidence
`82f6c0cefa9d7ac031d56bcfd0b85a2ab71a7d8b`; Actions run
[29384042509](https://github.com/stablyai/orca/actions/runs/29384042509).
- Commands:
```sh
gh run view 29384042509 --repo stablyai/orca \
--json status,conclusion,headSha,createdAt,updatedAt,url,jobs
gh run view 29384042509 --repo stablyai/orca --job 87253495614 --log | \
awk -F '\t' '$2 == "Run runtime artifact contract tests"' | \
rg 'native-signing-stage|windows-authenticode-assessment|Test Files|Tests|Duration'
gh run view 29384042509 --repo stablyai/orca --job 87253495617 --log | \
awk -F '\t' '$2 == "Run runtime artifact contract tests"' | \
rg 'native-signing-stage|windows-authenticode-assessment|Test Files|Tests|Duration'
gh run download 29384042509 --repo stablyai/orca \
--dir /private/tmp/orca-8450-run-29384042509-artifacts \
--pattern 'ssh-relay-runtime-*'
node --input-type=module # inline six-report identity/cardinality/hash audit recorded below
gh run view 29384042507 --repo stablyai/orca \
--json status,conclusion,headSha,createdAt,updatedAt,url,jobs
gh run view 29384042498 --repo stablyai/orca \
--json status,conclusion,headSha,createdAt,updatedAt,url,jobs
```
- Contract result: PASS on Linux x64/arm64, macOS x64/arm64, and Windows x64/arm64. Every native
build job syntax-checked and ran both new suites under exact Node 24.18.0. The POSIX log records
Authenticode contract 8/8, target-native stage 5/5, and aggregate 26 files/135 tests in 6.78
seconds. The PowerShell log records Authenticode contract 7 passed plus one POSIX-only symlink skip,
target-native stage 5/5, and aggregate 27 files/132 passed plus seven total platform skips out of
139 in 7.33 seconds.
- Real first-build result: PASS. Both Linux reports authenticate the exact three native identity
entries, select/stage zero files, and create no payload. Both macOS reports select and stage exactly
three non-Node files, with no assessment or preserved-upstream entry. Both Windows reports contain
exactly five hash-bound PowerShell assessments, preserve exactly `OpenConsole.exe` and
`conpty.dll` as `Valid`, and stage exactly the three `NotSigned` Orca-built `.node` files. All six
builds confirm official Node is verification-only, delete the temporary stage, and upload only the
JSON report plus the prior unpublished evidence set.
- Downloaded-report audit: PASS. Six artifacts contained exactly one identity and signing-stage
report each. An inline Node audit required tuple/platform equality; matched every immutable,
assessment, signing, preserved, and staged path/size/SHA-256 back to the identity; required staged
paths and size totals to equal the signing selection; enforced the platform cardinalities; and
rechecked official-Node exclusion and the exact Windows preserved set. Exact report evidence:
| Tuple | Report SHA-256 | Assess | Sign | Preserve | Stage | Staged bytes |
| ----------------- | ------------------------------------------------------------------ | ------ | ---- | -------- | ----- | ------------ |
| linux-x64-glibc | `9376647f4ac66060a82bab660752b961fedfc374d1b3fbc76fe60b6f35590a3b` | 0 | 0 | 0 | 0 | 0 |
| linux-arm64-glibc | `453fe413e81aa475149f92180f54713293de0562fe86b049746d8ec77c449f1e` | 0 | 0 | 0 | 0 | 0 |
| darwin-x64 | `ae9ac0afb40bd5a07ff2dba78d9a4c62bb7662f4f21a9483bd0c7f5469ef0162` | 0 | 3 | 0 | 3 | 393,744 |
| darwin-arm64 | `dbfae0d923d3a18cd042939d8fa174e1e0420aad548bb5caf6256aed2b37a22e` | 0 | 3 | 0 | 3 | 459,592 |
| win32-x64 | `69d6685d8c8dc54682a3af25402a1e489d11fc4a1771fd9ca599ea2c7864ddff` | 5 | 3 | 2 | 3 | 2,114,048 |
| win32-arm64 | `50f85ebb09695bdc4443add6f267add66f099ee2b4b0fe9108a35f1f7db644f3` | 5 | 3 | 2 | 3 | 2,224,128 |
- Windows signer evidence: all four preserved entries report exact subject
`CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US`. x64
`OpenConsole.exe` and `conpty.dll` use thumbprint
`3F56A45111684D454E231CFDC4DA5C8D370F9816`. arm64 `conpty.dll` uses that thumbprint and arm64
`OpenConsole.exe` uses `F5877012FBD62FABCBDC8D8CEE9C9585BA30DF79`. These observations bind the
unchanged source bytes but do not establish final Orca native trust.
- Native build/regression controls: all six double-build, smoke, exact-equality, metadata, stage,
cleanup, and unpublished-upload jobs passed in Linux x64 3m58s, Linux arm64 4m48s, macOS x64
6m08s, macOS arm64 3m32s, Windows x64 5m35s, and Windows arm64 9m02s. Linux x64/arm64 oldest-
userland supplements passed in 37s/53s; Windows x64 exact build-20348 floor passed in 1m24s.
- Expected aggregate status: the artifact workflow concluded failure only because Windows arm64
hosted image 10.0.26200 again rejected the exact declared 10.0.26100 floor in 3m46s. The failure
preserves E-M3-WINDOWS-ARM64-BASELINE-CI-RED-001 and is not an assessment/staging regression.
- Other exact-head controls: PR Checks
[29384042507](https://github.com/stablyai/orca/actions/runs/29384042507) passed in 13m59s. Golden E2E
[29384042498](https://github.com/stablyai/orca/actions/runs/29384042498) passed macOS/Linux in
4m02s/4m31s.
- Oracle proved: real first-build native candidate bytes on all six runner families obey the exact
credential-free pre-sign assessment, preservation, exclusive staging, evidence, and cleanup
contract without changing prior build/runtime outcomes.
- Does not prove: Apple Developer ID or SignPath invocation/approval, returned signed bytes, final
post-signing hashes, Gatekeeper/quarantine/notarized-app provenance, final SignPath signer policy,
Defender/WDAC, exact missing oldest snapshots, release aggregation, SSH transfer/install, packaged
desktop use, fallback/performance, or an enabled tuple.
- Follow-up: keep every tuple disabled; implement exact returned-file application and final runtime
identity/closure contracts before any credentialed signing job is allowed to feed aggregation.
### E-M3-NATIVE-SIGNING-APPLY-LOCAL-RED-001 — Missing return-application module fails the focused contract
- Date: 2026-07-14
- Owner: Codex implementation owner
- Source: pre-implementation head `6b93976909f9df6373414ecc65daf6e3eaff29b9`.
- Command:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-runtime-native-signing-apply.test.mjs
```
- Result: expected RED. The purpose-named test file failed to load because
`ssh-relay-runtime-native-signing-apply.mjs` did not exist: 1 failed file/0 tests in 525 ms. No
runtime, workflow, signing, publication, or production behavior changed.
- Oracle proved: the existing payload verifier authenticated the returned file closure but did not
yet construct and re-authenticate a complete post-sign runtime or derive its final content ID.
- Does not prove: any implementation behavior, native runner execution, signed bytes, native trust,
release aggregation, SSH behavior, or an enabled tuple.
- Correction: add a purpose-named apply module that keeps all roots physically disjoint, copies into
an exclusive candidate, substitutes only the exact verified returned files, derives the new full
identity, and deletes any candidate that fails final-tree verification.
### E-M3-NATIVE-SIGNING-APPLY-LOCAL-001 — Exact returned-file application and final identity contracts pass locally
- Date: 2026-07-14
- Owner: Codex implementation owner
- Source: implementation commit `3eeea7bdb8b10825416d7f9bac03d5a820a997f5`, based on exact
native-assessment evidence head `6b93976909f9df6373414ecc65daf6e3eaff29b9`.
- Runner/remote/network: local macOS 26.2 build 25C56 arm64, Node v26.0.0 and pnpm 10.24.0; no
remote, network, credential, signing service, native-trust environment, artifact publication, or
production path was used.
- Commands:
```sh
node --check config/scripts/ssh-relay-runtime-native-signing-apply.mjs
node --check config/scripts/ssh-relay-runtime-native-signing-apply.test.mjs
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-runtime-workflow.test.mjs \
config/scripts/ssh-relay-runtime-native-signing-plan.test.mjs \
config/scripts/ssh-relay-runtime-native-signing-selection.test.mjs \
config/scripts/ssh-relay-runtime-native-signing-payload.test.mjs \
config/scripts/ssh-relay-runtime-windows-authenticode-assessment.test.mjs \
config/scripts/ssh-relay-runtime-native-signing-stage.test.mjs \
config/scripts/ssh-relay-runtime-native-signing-apply.test.mjs
pnpm exec vitest run --config config/vitest.config.ts config/scripts/ssh-relay-*.test.mjs
pnpm run typecheck
pnpm run lint
pnpm run check:max-lines-ratchet
pnpm exec oxfmt --check \
.github/workflows/ssh-relay-runtime-artifacts.yml \
config/scripts/ssh-relay-runtime-workflow.test.mjs \
config/scripts/ssh-relay-runtime-native-signing-apply.mjs \
config/scripts/ssh-relay-runtime-native-signing-apply.test.mjs \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist-summary.md
git diff --check
```
- Result: PASS. The complete signing-contract family passed 7 files/48 tests in 721 ms; the final
apply-plus-workflow check passed 2 files/12 tests in 319 ms; and the complete purpose-named SSH
relay script suite passed 28 files/145 tests in 3.79 seconds. Both direct syntax checks, typecheck,
full lint/reliability gates, max-lines (355 grandfathered suppressions and no new bypass),
bundled-skill verification, localization catalog/coverage, focused formatting, and
`git diff --check` passed. Lint emitted only existing unrelated warnings; local Node 26 emitted the
expected repository Node-24 engine warning. An intermediate focused run exposed a macOS `/var`
versus `/private/var` test-oracle alias and an intermediate lint run rejected three missing braces;
both were corrected without weakening assertions or adding a disable, and the complete gates were
rerun green.
- Apply oracle: source, returned, and exclusive output roots must be physically disjoint real
locations. The complete unsigned source tree is authenticated first; the selection is
independently reconstructed from and deeply matched to that identity; and the exact bounded
returned closure is reverified. The implementation creates a fresh full-runtime candidate,
substitutes only the returned signer files, preserves official Node and valid upstream Windows
bytes exactly, drops stale unsigned-archive metadata, recalculates file sizes, hashes, expanded
size, file count, and content ID, then re-verifies the complete final tree before returning it.
It never mutates the unsigned source and removes the whole output on partial copy, source race,
returned-file race, mode failure, or final integrity failure.
- Root/race oracle: existing, nested, overlapping, or physically redirected roots reject before an
output is owned. The output is cleaned only after this invocation wins its exclusive creation, so
a racing pre-existing path is never removed. Tests force returned and unsigned-source mutation
after initial verification and require final-tree failure plus complete output cleanup.
- Workflow oracle: POSIX and Windows native contract jobs each syntax-check the source and test and
explicitly execute the suite. The workflow lock requires four test-path occurrences and two
source syntax-check occurrences. No fake signer output is produced and no post-sign artifact is
built until a real protected signing job returns bytes.
- Does not prove: parsing or execution under Node 24/GitHub Actions, real Apple or SignPath returned
bytes, native signature/trust policy, Gatekeeper/quarantine/notarized-app provenance,
Authenticode/Defender/WDAC policy, exact missing oldest snapshots, release aggregation, SSH
transfer/install, packaged desktop use, fallback/performance, or an enabled tuple.
- Follow-up: commit this evidence separately, push both commits, and require exact-head POSIX and
Windows logs to show the apply suite executing under Node 24.18.0 on all six native jobs while all
prior artifact, smoke, equality, baseline, PR-check, and Golden controls retain their outcomes.
### E-M3-NATIVE-SIGNING-APPLY-CI-001 — Return application executes on all six native jobs
- Date: 2026-07-14 (run timestamps 2026-07-15 UTC)
- Owner: Codex implementation owner
- Source/run: exact draft-PR head `a0e9ea91773287bd3779f6fb3c800aa0f5f1be01`, containing apply
implementation `3eeea7bdb8b10825416d7f9bac03d5a820a997f5` and local evidence
`a0e9ea91773287bd3779f6fb3c800aa0f5f1be01`; Actions run
[29385274738](https://github.com/stablyai/orca/actions/runs/29385274738).
- Commands:
```sh
gh run view 29385274738 --repo stablyai/orca \
--json status,conclusion,headSha,createdAt,updatedAt,url,jobs
gh run view 29385274738 --repo stablyai/orca --job 87257092104 --log | \
awk -F '\t' '$2 == "Run runtime artifact contract tests"' | \
rg 'native-signing-apply|Test Files|Tests|Duration'
gh run view 29385274738 --repo stablyai/orca --job 87257092096 --log | \
awk -F '\t' '$2 == "Run runtime artifact contract tests"' | \
rg 'native-signing-apply|Test Files|Tests|Duration'
gh run view 29385274738 --repo stablyai/orca --job 87258165496 --log | \
rg 'Operating System|OsBuildNumber|26100|26200|declared Windows floor'
gh run view 29385274716 --repo stablyai/orca \
--json status,conclusion,headSha,createdAt,updatedAt,url,jobs
gh run view 29385274721 --repo stablyai/orca \
--json status,conclusion,headSha,createdAt,updatedAt,url,jobs
```
- Contract result: PASS on Linux x64/arm64, macOS x64/arm64, and Windows x64/arm64. Every native
build job reports its purpose-named contract step successful under exact Node 24.18.0. The macOS
arm64 POSIX log records both apply syntax checks, the apply suite passing 6/6 in 245 ms, and the
aggregate 27 files/141 tests in 3.58 seconds. The Windows x64 PowerShell log records both syntax
checks, the apply suite passing 6/6 in 1.638 seconds, and the aggregate 28 files/138 passed plus
seven declared platform skips out of 145 in 7.13 seconds.
- Native build/regression controls: all six double-build, smoke, exact-equality, metadata,
assessment/stage, cleanup, and unpublished-upload jobs passed. Durations were Linux x64 3m51s,
Linux arm64 4m54s, macOS x64 5m58s, macOS arm64 2m31s, Windows x64 5m22s, and Windows arm64
8m37s. Digest-pinned Linux x64/arm64 glibc 2.28/libstdc++ 6.0.25 supplements passed in 49s/58s.
Windows x64 passed exact build 20348 in 1m39s.
- Expected aggregate status: the artifact workflow concluded failure only because the Windows arm64
hosted image identified itself as Windows 11 build 10.0.26200 and rejected the exact declared
build-26100 floor after 3m47s. The report records platform and architecture checks true with
`osBuild: false`, preserving E-M3-WINDOWS-ARM64-BASELINE-CI-RED-001 without weakening its oracle.
- Other exact-head controls: PR Checks
[29385274716](https://github.com/stablyai/orca/actions/runs/29385274716) passed in 13m50s after lint,
typecheck, Git 2.25 compatibility, full tests, unpacked-app build, and packaged-CLI smoke. Golden
E2E [29385274721](https://github.com/stablyai/orca/actions/runs/29385274721) passed Linux/macOS in
4m42s/6m54s.
- Oracle proved: both native shell families parse and execute the exact post-sign application
contract on every target-native runner while all existing artifact, bundled-Node, PTY/watcher,
clean-build equality, oldest-userland, packaging, and E2E controls retain their prior outcomes.
- Does not prove: real Apple/SignPath returned bytes, final native trust, Gatekeeper/quarantine or
notarized-app provenance, Authenticode/Defender/WDAC policy, exact missing oldest snapshots,
release aggregation, SSH transfer/install, packaged desktop use, fallback/performance, or an
enabled tuple.
- Follow-up: keep every tuple disabled and all signing credentials disconnected. Continue with
credential-free native-trust and release-DAG failure contracts; require separately provisioned
protected signing services and exact-floor runners before any native-signing/trust checkbox or
aggregate output can pass.
### E-M3-MACOS-SIGNATURE-LOCAL-RED-001 — Missing macOS signature verifier fails the focused contract
- Date: 2026-07-14
- Owner: Codex implementation owner
- Source: pre-implementation head `2d4eab2c592adb0fd6396d6312394dddc6be6bc2`.
- Command:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-runtime-macos-signature-verification.test.mjs
```
- Result: expected RED. The purpose-named test file failed to load because
`ssh-relay-runtime-macos-signature-verification.mjs` did not exist: 1 failed file/0 tests in
385 ms. No runtime, workflow, credential, signing, publication, or production behavior changed.
- Oracle proved: final-tree application did not yet enforce strict native macOS signature validity
or exact upstream Node/Orca signer policy after returned bytes were substituted.
- Does not prove: any implementation, signed Orca bytes, native trust, Gatekeeper/notarization,
release aggregation, SSH behavior, or an enabled tuple.
- Correction: authenticate the complete final runtime before native probes, bind the selection and
unsigned/final identities, run bounded argument-array codesign probes on every native file, pin
official Node policy, require the configured Orca team, and hash each file again after probing.
### E-M3-MACOS-SIGNATURE-LOCAL-001 — Final-tree-first macOS Developer ID policy passes locally
- Date: 2026-07-14
- Owner: Codex implementation owner
- Source: implementation commit `debb13f3011dc750e54826a4820f109e7d80f959`, based on exact
apply-CI evidence commit `2d4eab2c592adb0fd6396d6312394dddc6be6bc2`.
- Runner/remote/network: local macOS 26.2 build 25C56 arm64, Node v26.0.0 and pnpm 10.24.0; no
remote, network, credential, signing service, artifact publication, Gatekeeper/notarization, or
production path was used. Synthetic Developer ID output was dependency-injected; the two real
official Node checks used previously downloaded unpublished artifacts from run 29384042509.
- Commands:
```sh
node --check config/scripts/ssh-relay-runtime-macos-signature-verification.mjs
node --check config/scripts/ssh-relay-runtime-macos-signature-verification.test.mjs
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-runtime-native-signing-payload.test.mjs \
config/scripts/ssh-relay-runtime-native-signing-selection.test.mjs \
config/scripts/ssh-relay-runtime-native-signing-apply.test.mjs \
config/scripts/ssh-relay-runtime-macos-signature-verification.test.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs
pnpm exec vitest run --config config/vitest.config.ts config/scripts/ssh-relay-*.test.mjs
pnpm run typecheck
pnpm run lint
pnpm run check:max-lines-ratchet
pnpm exec oxfmt --check \
.github/workflows/ssh-relay-runtime-artifacts.yml \
config/scripts/ssh-relay-runtime-workflow.test.mjs \
config/scripts/ssh-relay-runtime-native-signing-payload.mjs \
config/scripts/ssh-relay-runtime-native-signing-selection.mjs \
config/scripts/ssh-relay-runtime-native-signing-apply.mjs \
config/scripts/ssh-relay-runtime-macos-signature-verification.mjs \
config/scripts/ssh-relay-runtime-macos-signature-verification.test.mjs \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist-summary.md
for archive in <downloaded-darwin-arm64.tar.xz> <downloaded-darwin-x64.tar.xz>; do
tar -xJf "$archive" -C <exclusive-temp-directory>
/usr/bin/codesign --verify --strict --verbose=4 <exclusive-temp-directory>/bin/node
/usr/bin/codesign --display --verbose=4 <exclusive-temp-directory>/bin/node
done
git diff --check
```
- Result: PASS. The signing payload/selection/application/macOS/workflow command passed 5 files/36
tests in 1.08 seconds; the final macOS-plus-workflow check passed 2 files/13 tests in 2.32
seconds; and the complete purpose-named SSH relay script suite passed 29 files/152 tests in 8.81
seconds. Both direct syntax checks, typecheck, full lint/reliability gates, max-lines (355
grandfathered suppressions and no new bypass), bundled-skill verification, localization
catalog/coverage, focused formatting, and `git diff --check` passed. Lint emitted only existing
unrelated warnings; local Node 26 emitted the expected repository Node-24 engine warning.
- Real official-Node result: PASS for both previously audited Node v24.18.0 candidates. Strict
codesign reports each file valid on disk and satisfying its designated requirement. The arm64 and
x86_64 display output both record signature size 8,986, exact first authority
`Developer ID Application: Node.js Foundation (HX7739G8FX)`, the Developer ID Certification
Authority and Apple Root CA chain, and team identifier `HX7739G8FX`. This authenticates the pinned
vendor policy only; the three Orca-built files in those unsigned candidates remain ad-hoc signed.
- Verification oracle: the verifier runs only on macOS, requires an exact ten-character configured
Orca team ID, reconstructs the selection from the authenticated unsigned identity, rejects stale
unsigned archive metadata, and permits changes only to the exact three selected files within the
established 4-MiB/file and 64-MiB/return bounds. It verifies final totals/content identity and the
complete physical tree before any native command. Every target is a regular file whose SHA-256
matches before and after two `/usr/bin/codesign` argument-array probes bounded to 30 seconds and
64 KiB. Node requires the exact pinned authority/team; every Orca-built target requires the Apple
Developer ID chain and configured Orca team. Ad-hoc, malformed/duplicate output, wrong authority,
wrong team, command error/nonzero/oversized output, source/final/selection drift, and probe-time
mutation fail closed.
- Workflow oracle: POSIX and Windows native contract jobs each syntax-check the source/test and
explicitly execute the suite. Four test-path and two source-check occurrences are locked by the
workflow contract. No job invokes codesign on fake returned bytes, connects credentials, signs,
publishes, aggregates, or enables a tuple.
- Does not prove: real Developer ID signatures on the three returned Orca files, the actual Orca
team/authority, target-native post-sign execution, macOS 13.5, quarantine/Gatekeeper, notarized
containing-app provenance, Apple credential/timeout behavior, Windows final trust, release
aggregation, SSH transfer/install, packaged desktop use, fallback/performance, or an enabled
tuple.
- Follow-up: commit this evidence separately, push both commits, and require exact-head POSIX and
Windows logs to show the macOS policy suite under Node 24.18.0 on all six native jobs while every
prior build/smoke/equality/baseline, PR-check, and Golden control retains its outcome. Keep native
signing/trust unchecked until real returned bytes pass target-native policy and endpoint gates.
### E-M3-MACOS-SIGNATURE-CI-001 — macOS signature-policy contracts pass on all six native jobs
- Date: 2026-07-14
- Owner: Codex implementation owner
- Source: exact head `6d47ef1458a9c57cc96fa26e1745eba8d73a7987`.
- Runner/remote/network: GitHub-hosted target-native Linux x64/arm64, macOS x64/arm64, and Windows
x64/arm64 artifact jobs under Node v24.18.0. This used no SSH remote, signing credential/service,
artifact publication, production path, or enabled tuple.
- Runs:
- Artifact: [29386372366](https://github.com/stablyai/orca/actions/runs/29386372366)
- PR Checks: [29386372337](https://github.com/stablyai/orca/actions/runs/29386372337)
- Golden E2E: [29386372362](https://github.com/stablyai/orca/actions/runs/29386372362)
- Result: PASS. All six native artifact jobs passed their macOS signature contract step. The macOS
arm64 job ran the focused suite 7/7 in 345 ms and the aggregate 28 files/148 tests in 3.95
seconds. The Windows x64 job ran the suite 7/7 in 2.944 seconds and the aggregate 29 files/152
tests (145 pass, 7 platform skips) in 8.69 seconds. Native job durations were Linux x64 4m09s,
Linux arm64 4m37s, macOS x64 10m27s, macOS arm64 2m47s, Windows x64 5m37s, and Windows arm64
10m29s.
- Regression controls: both digest-pinned oldest-Linux-userland supplements passed (x64 35s, arm64
53s); Windows x64 build-20348 passed in 1m10s. Windows arm64 retained the expected floor failure:
hosted build 10.0.26200 does not prove required build 26100 (`osBuild: false`). PR Checks passed
in about 14m05s; Golden Linux/macOS passed in about 4m37s/3m01s.
- Oracle proved: the credential-free policy suite parses and executes under the pinned release Node
on every target-native shell family while prior artifact and repository controls retain their
expected outcomes.
- Does not prove: real Orca Developer ID signatures, actual Apple signing or returned production
bytes, Gatekeeper/notarization, macOS 13.5, Windows Authenticode/Defender/WDAC, Windows arm64 build
26100, SSH transfer/install, packaged desktop use, fallback/performance, or an enabled tuple.
- Follow-up: keep native signing/trust and every tuple unchecked. Implement the independent
credential-free Windows final-signature policy contract, and require real returned bytes plus
target-native endpoint gates before recording native-trust evidence.
### E-M3-WINDOWS-SIGNATURE-LOCAL-RED-001 — Missing final Windows signature verifier fails focused contract
- Date: 2026-07-14
- Owner: Codex implementation owner
- Source: pre-implementation head `0efd19c9c3e82979554804d4e72b6fb5a3cbff7e` plus the new
uncommitted purpose-named test.
- Command:
```sh
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-runtime-windows-signature-verification.test.mjs
```
- Result: expected RED. The focused suite failed 1 file/0 tests in 463 ms because
`ssh-relay-runtime-windows-signature-verification.mjs` did not exist. No credential, signing
service, workflow, publication, tuple, SSH, or production behavior changed.
- Oracle proved: the existing pre-sign assessment and return-application modules did not already
authenticate the complete final Windows tree and enforce final official-Node, Orca SignPath, and
preserved-upstream signer policy.
- Does not prove: the implementation, real SignPath returned bytes, Windows trust, Defender/WDAC,
target-native behavior, SSH transfer/install, fallback/performance, or an enabled tuple.
- Correction: authenticate the complete final tree before native probes; require `Valid` on every
native file; pin the exact official Node and SignPath subjects; require preserved files to retain
their assessed subject and thumbprint; bound PowerShell; and hash every target before and after
probing.
### E-M3-WINDOWS-SIGNATURE-LOCAL-001 — Final-tree-first Windows signer policy passes locally
- Date: 2026-07-14
- Owner: Codex implementation owner
- Source: implementation commit `072c0d434e91013fc29ce16059da82c1ac7bfc12`, based on local
evidence commit `0efd19c9c3e82979554804d4e72b6fb5a3cbff7e`.
- Runner/remote/network: local macOS 26.2 build 25C56 arm64, Node v26.0.0 and pnpm 10.24.0. No SSH
remote, credential, signing service, PowerShell trust execution, publication, or production path
was used. Synthetic `Get-AuthenticodeSignature` output was dependency-injected. Exact unpublished
win32 x64/arm64 artifacts were downloaded from run 29386372366 solely for authenticated embedded
certificate inspection.
- Commands:
```sh
node --check config/scripts/ssh-relay-runtime-windows-signature-verification.mjs
node --check config/scripts/ssh-relay-runtime-windows-signature-verification.test.mjs
pnpm exec vitest run --config config/vitest.config.ts \
config/scripts/ssh-relay-runtime-native-signing-selection.test.mjs \
config/scripts/ssh-relay-runtime-native-signing-apply.test.mjs \
config/scripts/ssh-relay-runtime-windows-authenticode-assessment.test.mjs \
config/scripts/ssh-relay-runtime-windows-signature-verification.test.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs
pnpm exec vitest run --config config/vitest.config.ts config/scripts/ssh-relay-*.test.mjs
pnpm run typecheck
pnpm run lint
pnpm run check:max-lines-ratchet
pnpm exec oxfmt --check \
.github/workflows/ssh-relay-runtime-artifacts.yml \
config/scripts/ssh-relay-runtime-workflow.test.mjs \
config/scripts/ssh-relay-runtime-windows-signature-verification.mjs \
config/scripts/ssh-relay-runtime-windows-signature-verification.test.mjs \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist-summary.md
gh run download 29386372366 --repo stablyai/orca --pattern 'ssh-relay-runtime-win32-*'
unzip -p <authenticated-runtime.zip> bin/node.exe | shasum -a 256
unzip -p <authenticated-runtime.zip> bin/node.exe | node -e <bounded-PE-certificate-table-slice> | \
openssl pkcs7 -inform DER -print_certs -noout
git diff --check
```
- Result: PASS. The focused five-suite command passed 5 files/32 tests in 3.89 seconds. The complete
purpose-named SSH relay suite passed 30 files/158 tests in 5.39 seconds; the final post-format
verifier/workflow rerun passed 2 files/12 tests in 368 ms. Both syntax checks, typecheck, full lint
and reliability/localization/bundled-skill gates, max-lines (355 grandfathered suppressions and no
new bypass), focused formatting, and `git diff --check` passed. Lint emitted only existing
unrelated warnings; local Node 26 emitted the expected repository Node-24 engine warning.
- Verification oracle: the verifier accepts only Windows, reconstructs and authenticates the
signing selection, enforces the bounded source-to-final identity transition and final content ID,
and verifies the complete physical final tree before any native command. It probes all six native
files through the existing argument-array PowerShell contract bounded to 30 seconds and 64 KiB,
requires `Valid`, and hashes each file before and after probing. Official Node requires exact
subject `CN=OpenJS Foundation, O=OpenJS Foundation, L=San Francisco, S=California, C=US`; every
returned Orca file requires exact SignPath Foundation subject; preserved Microsoft files must
retain both their source-assessed subject and 40-hex thumbprint. Wrong/malformed status or signer,
stale selection/identity/archive metadata, unbounded growth, tree mutation, and probe-time mutation
fail closed.
- Exact official-Node certificate evidence: the arm64/x64 `bin/node.exe` bytes match their identities
at SHA-256 `c7225670c3f477778e18c43a55867f7a0d76468221245e5981ab80eb953c8102` (81,067,848
bytes) and `9a4eb5f1c29c6a2e93852ead46b999e284a6a5ca8bab4d4e241d587d025a52de` (92,534,088
bytes). Both PE certificate tables contain the OpenJS Foundation subject in San Francisco,
California, issued by Microsoft ID Verified CS AOC CA 04. This establishes the signer subject
encoded in the exact authenticated inputs; local OpenSSL inspection does not establish Windows
Authenticode `Valid` status or endpoint trust.
- Workflow oracle: both POSIX and Windows artifact job families syntax-check the verifier source and
test and run the suite. Four test-path and two source-check occurrences are locked. No job invokes
SignPath, fabricates final bytes, accepts native trust, publishes, or enables a tuple.
- Does not prove: real SignPath signatures on the three returned Orca files, target-native final-tree
execution, Windows Server 2022/Windows 11 trust, Defender/WDAC, the arm64 build-26100 floor, signing
approval/timeout behavior, release aggregation, SSH transfer/install, packaged desktop use,
fallback/performance, or an enabled tuple.
- Follow-up: commit and push the implementation/evidence separately, then require exact-head POSIX
and PowerShell logs to show the new suite under Node 24.18.0 on all six native jobs while every
prior artifact, baseline, PR-check, and Golden control retains its expected outcome. Keep native
signing/trust unchecked until real returned bytes pass target-native policy and endpoint gates.
### E-M3-WINDOWS-SIGNATURE-CI-001 — Windows signer-policy contracts pass on all six native jobs
- Date: 2026-07-14 (run timestamps 2026-07-15 UTC)
- Owner: Codex implementation owner
- Source/run: exact draft-PR head `cce37cd415600e9bd77093d250b5cb8e3ad9f3ce`, containing
implementation `072c0d434e91013fc29ce16059da82c1ac7bfc12`; Actions run
[29387668264](https://github.com/stablyai/orca/actions/runs/29387668264).
- Commands:
```sh
gh run view 29387668264 --repo stablyai/orca \
--json status,conclusion,headSha,createdAt,updatedAt,url,jobs
gh run view 29387668264 --repo stablyai/orca --job 87264193814 --log | \
awk -F '\t' '$2 == "Run runtime artifact contract tests"' | \
rg 'windows-signature-verification|Test Files|Tests|Duration'
gh run view 29387668264 --repo stablyai/orca --job 87264193803 --log | \
awk -F '\t' '$2 == "Run runtime artifact contract tests"' | \
rg 'windows-signature-verification|Test Files|Tests|Duration'
gh run view 29387668264 --repo stablyai/orca --job 87264193809 --log | \
awk -F '\t' '$2 == "Run runtime artifact contract tests"' | \
rg 'windows-signature-verification|Test Files|Tests|Duration'
gh run view 29387668264 --repo stablyai/orca --job 87265321571 --log | \
rg 'OsBuildNumber|26100|26200|osBuild'
gh run view 29387668227 --repo stablyai/orca \
--json status,conclusion,headSha,createdAt,updatedAt,url,jobs
gh run view 29387668205 --repo stablyai/orca \
--json status,conclusion,headSha,createdAt,updatedAt,url,jobs
```
- Contract result: PASS on Linux x64/arm64, macOS x64/arm64, and Windows x64/arm64. Every native
build job syntax-checked the source/test and executed the new suite under exact Node 24.18.0. The
macOS arm64 log records 6/6 in 372 ms and aggregate 29 files/154 tests in 4.86 seconds. Windows
x64 records 6/6 in 2.643 seconds and aggregate 30 files/158 tests (151 pass, 7 platform skips) in
8.13 seconds; Windows arm64 records 6/6 in 3.722 seconds and the same aggregate in 11.35 seconds.
- Native build/regression controls: all six double-build, smoke, exact-equality, metadata, stage,
cleanup, and unpublished-upload jobs passed. Durations were Linux x64 4m08s, Linux arm64 4m20s,
macOS x64 9m42s, macOS arm64 2m58s, Windows x64 5m14s, and Windows arm64 9m13s. Linux x64/arm64
digest-pinned glibc 2.28/libstdc++ 6.0.25 supplements passed in 52s/52s. Windows x64 exact
build-20348 passed in 1m17s.
- Expected aggregate status: the artifact workflow concluded failure only because the Windows arm64
hosted image is build 10.0.26200 rather than the declared 10.0.26100 floor (`osBuild: false`) in
4m41s. This retains E-M3-WINDOWS-ARM64-BASELINE-CI-RED-001 and is not a verifier regression.
- Other exact-head controls: PR Checks
[29387668227](https://github.com/stablyai/orca/actions/runs/29387668227) passed in about 13m27s,
including lint, reliability/max-lines, typecheck, Git 2.25 compatibility, full tests, unpacked app,
and packaged-CLI smoke. Golden E2E
[29387668205](https://github.com/stablyai/orca/actions/runs/29387668205) passed Linux/macOS in about
4m49s/5m18s.
- Oracle proved: both native shell families parse and execute the exact final-tree/signer-policy
contract on every target-native runner while all prior artifact, bundled-Node, PTY/watcher,
clean-build equality, oldest-userland, packaging, and E2E controls retain their expected outcome.
- Does not prove: a real final signed Windows runtime, SignPath invocation or returned Orca bytes,
target-native `Valid` status for those returned bytes, Defender/WDAC, exact Windows arm64 build
26100, Apple signing/trust, release aggregation, SSH transfer/install, packaged desktop use,
fallback/performance, or an enabled tuple.
- Follow-up: keep native signing/trust and every tuple unchecked. Prove exact official-Node and
preserved-upstream source signatures target-natively without credentials, then keep real returned
SignPath bytes plus Defender/WDAC and exact-floor execution as separate required gates.
### E-M3-WINDOWS-SOURCE-SIGNATURE-LOCAL-RED-001 — Missing Windows source-signature gate fails import contract
- Date: 2026-07-14
- Owner: Codex implementation owner
- Source: pre-implementation head `bd3e40dc52ede75e44ded2f5e84f5092be5b2d87` plus the new
uncommitted purpose-named test.
- Command:
```sh
node --input-type=module -e \
"import('./config/scripts/ssh-relay-runtime-windows-source-signature-verification.test.mjs')"
```
- Result: expected RED with `ERR_MODULE_NOT_FOUND` for
`ssh-relay-runtime-windows-source-signature-verification.mjs`. A concurrent focused Vitest launch
was stopped after unrelated workspace CPU contention prevented a bounded result; it is not used as
evidence. No workflow, credential, signing, publication, tuple, SSH, or production behavior
changed.
- Oracle proved: neither the pre-sign assessment nor final-runtime verifier already exposed a
reusable gate that authenticated the complete source tree and target-natively verified official
Node plus preserved upstream signer policy.
- Does not prove: implementation, Windows execution, a `Valid` signature, SignPath returns,
Defender/WDAC, SSH behavior, or an enabled tuple.
- Correction: consume the exact signing-stage assessment and selection, authenticate the complete
source tree, run three bounded native probes, require exact Node/preserved identity, re-hash each
target, and retain a separate report from each Windows runner.
### E-M3-WINDOWS-SOURCE-SIGNATURE-LOCAL-001 — Immutable and preserved Windows source policy passes locally
- Date: 2026-07-14
- Owner: Codex implementation owner
- Source: implementation commit `6ef2943dedd0165ae4b84d8295763aa06682d6cc`, based on CI
evidence commit `bd3e40dc52ede75e44ded2f5e84f5092be5b2d87`.
- Runner/remote/network: local macOS 26.2 build 25C56 arm64, Node v26.0.0 and pnpm 10.24.0. No SSH
remote, Windows trust execution, credential, signing service, publication, or production path was
used. Native output was dependency-injected; exact target-native execution remains the next gate.
- Commands:
```sh
node --check config/scripts/ssh-relay-runtime-windows-source-signature-verification.mjs
node --check config/scripts/ssh-relay-runtime-windows-source-signature-verification.test.mjs
pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 \
config/scripts/ssh-relay-runtime-windows-source-signature-verification.test.mjs \
config/scripts/ssh-relay-runtime-windows-signature-verification.test.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs
pnpm exec vitest run --config config/vitest.config.ts config/scripts/ssh-relay-*.test.mjs
pnpm run typecheck
pnpm run lint
pnpm run check:max-lines-ratchet
pnpm exec oxfmt --check \
.github/workflows/ssh-relay-runtime-artifacts.yml \
config/scripts/ssh-relay-runtime-workflow.test.mjs \
config/scripts/ssh-relay-runtime-windows-signature-verification.mjs \
config/scripts/ssh-relay-runtime-windows-source-signature-verification.mjs \
config/scripts/ssh-relay-runtime-windows-source-signature-verification.test.mjs \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist-summary.md
git diff --check
```
- Result: PASS. The final focused command passed 3 files/17 tests in 4.98 seconds; the complete
purpose-named SSH relay suite passed 31 files/163 tests in 5.16 seconds. Both syntax checks,
typecheck, full lint and reliability/localization/bundled-skill gates, max-lines (355
grandfathered suppressions and no new bypass), focused formatting, and `git diff --check` passed.
Lint emitted only existing unrelated warnings; local Node 26 emitted the expected repository
Node-24 engine warning.
- Verification oracle: a bounded regular signing-stage report must exactly reproduce the
hash-authenticated tuple/platform/policy, assessments, immutable file, signing set, and preserved
set. On Windows, the verifier authenticates the complete source runtime before any probe, then
reuses the final verifier's exact signer policy and 30-second/64-KiB PowerShell boundary for the
one official Node file and two source-preserved Microsoft files. Every file is hashed before and
after probing. Cross-platform execution, report/selection drift, wrong signer/status/thumbprint,
prior tree mutation, and probe-time mutation fail closed.
- Workflow oracle: both native shell families syntax-check and run the source contract. After the
real Windows first-build assessment, each native Windows job invokes the source verifier before
removing signing staging, requires exactly one `official-node` and two `preserved-upstream`
results, and retains a distinct `.source-signatures.json` evidence file. It has no credentials and
does not invoke SignPath or change runtime bytes.
- Does not prove: target-native x64/arm64 execution, actual `Valid` status or signer outputs, real
SignPath returned Orca files, final Windows trust, Defender/WDAC, build 26100, release aggregation,
SSH transfer/install, fallback/performance, or an enabled tuple.
- Follow-up: push the implementation and evidence, inspect both exact source-signature reports and
runner logs, and keep returned-byte/native-trust boxes unchecked until the separately gated real
SignPath and endpoint checks pass.
### E-M3-WINDOWS-SOURCE-SIGNATURE-CI-001 — Native Windows source signatures match retained identity
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: exact head `be32653a7b77eeaed168d91b790fc2e006b438db`; artifact run
[29388734922](https://github.com/stablyai/orca/actions/runs/29388734922), PR Checks
[29388734935](https://github.com/stablyai/orca/actions/runs/29388734935), and Golden E2E
[29388734914](https://github.com/stablyai/orca/actions/runs/29388734914).
- Native jobs:
- `win32-x64`: job
[87267322870](https://github.com/stablyai/orca/actions/runs/29388734922/job/87267322870),
GitHub-hosted `windows-2022`, resolved `win22` image `20260706.237.1`, native `X64`,
runner `GitHub Actions 1000055156`; PASS in 5 minutes 23 seconds. Its combined two-build,
verify, smoke, compare, signing-stage, and source-signature step ran for 3 minutes 45 seconds.
- `win32-arm64`: job
[87267322867](https://github.com/stablyai/orca/actions/runs/29388734922/job/87267322867),
GitHub-hosted `windows-11-arm`, resolved `win11-arm64` image `20260706.102.1`, native `ARM64`,
runner `GitHub Actions 1000055154`; PASS in 11 minutes 7 seconds. Its combined two-build,
verify, smoke, compare, signing-stage, and source-signature step ran for 5 minutes 30 seconds.
- The workflow does not time the three source-signature probes separately. Each probe retains the
implemented 30-second process timeout and 64-KiB output bound; the combined step timings above
are the narrowest exact native timing available from this run.
- Artifact retrieval and identity command:
```sh
gh run download 29388734922 --repo stablyai/orca \
--name ssh-relay-runtime-win32-x64 --dir <exclusive-x64-directory>
gh run download 29388734922 --repo stablyai/orca \
--name ssh-relay-runtime-win32-arm64 --dir <exclusive-arm64-directory>
node --input-type=module -e '<bounded identity/signing-report comparison>' <artifact-directory>
shasum -a 256 <artifact-directory>/*.source-signatures.json
wc -c <artifact-directory>/*.source-signatures.json
```
- Result: PASS. Each artifact contains exactly one identity, archive, SPDX statement, provenance
statement, signing-stage report, and source-signature report. The bounded comparison requires one
report, exact tuple/content identity, exactly three verified files, one `official-node`, two
`preserved-upstream`, identity-entry hash equality for every verified file, and exact preserved
subject/thumbprint equality with the authenticated signing-stage report.
- Retained report identities:
- x64 report: 1,401 bytes, SHA-256
`9ceb6b3dadf85ea7d338dbd11e1397e58b83455842378f3465ccb945b5ec0805`, source content ID
`sha256:7ddad668780ce5b2592d86afcebf9d897172bdf07c618ae238b5d51eebfe1596`.
- arm64 report: 1,403 bytes, SHA-256
`5a63a7f31d64cc6a8b825461e9729f59f0176d8d03293fa0ce2c05df39734d22`, source content ID
`sha256:2955cec7f22447a1303dad548df6c2fa2470b62ba1d70924b8b169e718a7701e`.
- Exact native signer evidence:
- Both official Node files report `Valid` with subject
`CN=OpenJS Foundation, O=OpenJS Foundation, L=San Francisco, S=California, C=US` and thumbprint
`CECD9673E955CA766047DD43706D31E48A6BD3B5`. The x64 Node hash is
`sha256:9a4eb5f1c29c6a2e93852ead46b999e284a6a5ca8bab4d4e241d587d025a52de`; arm64 is
`sha256:c7225670c3f477778e18c43a55867f7a0d76468221245e5981ab80eb953c8102`.
- Every preserved file reports `Valid` with subject
`CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US`. x64
`OpenConsole.exe` and `conpty.dll` use thumbprint
`3F56A45111684D454E231CFDC4DA5C8D370F9816`. Arm64 `OpenConsole.exe` uses
`F5877012FBD62FABCBDC8D8CEE9C9585BA30DF79`; arm64 `conpty.dll` uses
`3F56A45111684D454E231CFDC4DA5C8D370F9816`.
- Concurrent regression result: PR Checks and both Golden E2E jobs completed successfully at the
exact head. The artifact run concluded `failure` solely because its separate Windows arm64
oldest-baseline job observed `10.0.26200` rather than the exact required build `26100`, after the
runtime itself passed bundled Node, PTY, watcher, and settlement smoke in 8,275.5554 ms with a
49,852,416-byte RSS measurement. This is the retained
E-M3-WINDOWS-ARM64-BASELINE-CI-RED-001 gap, not a source-signature failure.
- Does not prove: real SignPath returned Orca signatures, final-tree Authenticode trust, Defender or
WDAC policy, Windows arm64 build 26100, macOS trust, draft release aggregation/read-back, SSH
transfer/install, fallback/performance, or an enabled tuple. Nothing was published or connected to
production behavior.
### E-M4-RELEASE-DAG-LOCAL-RED-001 — Missing release-stage and draft-recovery gates fail imports
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: exact implementation base `be32653a7b77eeaed168d91b790fc2e006b438db` plus the two new
uncommitted purpose-named test files.
- Command:
```sh
pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 \
config/scripts/ssh-relay-runtime-release-stage-gate.test.mjs \
config/scripts/ssh-relay-runtime-draft-recovery.test.mjs
```
- Result: expected RED in 346 ms. Both suites fail before collecting tests with
`ERR_MODULE_NOT_FOUND` for `ssh-relay-runtime-release-stage-gate.mjs` and
`ssh-relay-runtime-draft-recovery.mjs`.
- Oracle proved: the current worktree has no reusable contract that requires a complete immutable
build → native-signing approval/return → aggregate/manifest-signature → upload → authenticated
read-back chain, and no contract that permits same-draft recovery only for exact already-uploaded
runtime bytes.
- Does not prove: implementation, workflow wiring, GitHub release behavior, signing-service behavior,
a real draft recovery, publication, desktop embedding, SSH behavior, or an enabled tuple.
- Correction: implement bounded exact-stage validation and hash/size-bound same-draft reuse as
disconnected credential-free modules; retain every production/default and tuple state unchanged.
### E-M4-RELEASE-DAG-LOCAL-001 — Fail-closed release stages and same-draft recovery pass locally
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: exact implementation commit `6f13e94f8a7a315ac3da6bb2067b99da8e02a803`, based on
`be32653a7b77eeaed168d91b790fc2e006b438db`.
- Runner/remote/network: local macOS 26.2 build 25C56 arm64, Node v26.0.0 and pnpm 10.24.0. No
GitHub release, signing service, credential, approval environment, SSH remote, publication, or
production consumer was used. The repository emits its expected Node-24 engine warning.
- Commands:
```sh
node --check config/scripts/ssh-relay-runtime-release-stage-gate.mjs
node --check config/scripts/ssh-relay-runtime-release-stage-gate.test.mjs
node --check config/scripts/ssh-relay-runtime-draft-recovery.mjs
node --check config/scripts/ssh-relay-runtime-draft-recovery.test.mjs
/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 \
config/scripts/ssh-relay-runtime-release-stage-gate.test.mjs \
config/scripts/ssh-relay-runtime-draft-recovery.test.mjs
pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 \
config/scripts/ssh-relay-runtime-release-stage-gate.test.mjs \
config/scripts/ssh-relay-runtime-draft-recovery.test.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs
pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 \
config/scripts/ssh-relay-*.test.mjs
pnpm run typecheck
pnpm run lint
pnpm run check:max-lines-ratchet
pnpm exec oxfmt --check \
.github/workflows/ssh-relay-runtime-artifacts.yml \
config/scripts/ssh-relay-runtime-release-stage-gate.mjs \
config/scripts/ssh-relay-runtime-release-stage-gate.test.mjs \
config/scripts/ssh-relay-runtime-draft-recovery.mjs \
config/scripts/ssh-relay-runtime-draft-recovery.test.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md \
docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist-summary.md
git diff --check
```
- Result: PASS. The two purpose-named suites pass 2 files/21 tests in 245 ms; `/usr/bin/time -l`
records 0.91 seconds wall time, 131,825,664-byte maximum RSS, zero swaps, and 95,933,720-byte peak
memory footprint for the Vitest process tree. The workflow-inclusive focus passes 3 files/27
tests; the final complete SSH-relay suite passes 33 files/184 tests in 8.52 seconds. All four syntax
checks, typecheck, full lint/reliability/localization/bundled-skill gates, max-lines (355
grandfathered suppressions and no new bypass), focused formatting, and `git diff --check` pass.
Lint emits only existing unrelated warnings.
- Stage oracle: candidate tuples must use exact supported identities; every candidate requires one
bounded successful build, every macOS/Windows candidate requires one single-attempt approved
native-signing return that changes immutable identity, and Linux cannot invent a signing stage.
Aggregate inputs must exactly equal final per-tuple outputs and produce bounded manifest/signature
assets. Upload and authenticated read-back must reproduce the complete ordered hash/size chain.
Missing, duplicate, unexpected, failed, cancelled, timed-out, retry-exhausted, over-budget,
approval-absent, approval-denied, approval-timed-out, input-drifted, incomplete, or byte-drifted
results fail closed.
- Bound policy: build is at most 30 minutes and three attempts; native signing is one attempt and at
most four hours; aggregate is one attempt and 15 minutes; upload and read-back are each at most
three attempts and 15 minutes. Signing is deliberately single-attempt so one approval cannot
silently authorize a second set of bytes after timeout or service failure.
- Recovery oracle: only the same draft tag and exact 40-hex source commit may be resumed. Existing
managed assets are reusable only when name, SHA-256, and non-zero size exactly match expected
immutable output. Changed, empty, duplicate, unexpected managed, published, cross-tag, and
cross-commit states fail closed; unrelated desktop assets are ignored rather than overwritten.
- Workflow oracle: both POSIX and Windows artifact jobs syntax-check and execute the new suites under
the same Node 24 native job families. The workflow retains read-only contents permission and has
no release, signing credential, or publication authority.
- Does not prove: a real native-signing approval/timeout, signing-service retry behavior, a real
aggregate or signed manifest, upload/read-back through GitHub's draft release API, recovered-draft
execution, desktop prerequisites/embedding, native trust, SSH transfer/install, fallback,
performance, or an enabled tuple. Production release workflow wiring remains absent.
- Follow-up: run the contract on all six native jobs at the exact implementation head, then add the
credential-free aggregate-input/read-back implementation without connecting publication or a
desktop consumer.
### E-M4-RELEASE-DAG-CI-001 — Release-DAG contracts pass all six native build jobs
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: exact PR head `97164470cb9abad670634b9d4f04424bcc8662b5`; implementation commit
`6f13e94f8a7a315ac3da6bb2067b99da8e02a803`; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741).
- Runner/network: GitHub-hosted native runners with normal artifact-build egress and no SSH remote,
signing service, release credential, approval environment, draft upload, publication, or desktop
consumer. Exact jobs and resolved images:
- linux-x64-glibc job 87271365779: `ubuntu-24.04`, `ubuntu24` image `20260705.232.1`, X64,
04:53:59Z–04:58:13Z.
- linux-arm64-glibc job 87271365815: `ubuntu-24.04-arm`, `ubuntu24-arm64` image
`20260714.61.1`, ARM64, 04:54:03Z–04:59:11Z.
- darwin-x64 job 87271365782: `macos-15-intel`, `macos15` image `20260629.0276.1`, X64,
04:53:59Z–04:59:21Z.
- darwin-arm64 job 87271365773: `macos-15`, `macos15` image `20260706.0213.1`, ARM64,
04:53:59Z–04:57:05Z.
- win32-x64 job 87271365831: `windows-2022`, `win22` image `20260706.237.1`, X64,
04:53:59Z–04:59:34Z.
- win32-arm64 job 87271365776: `windows-11-arm`, `win11-arm64` image `20260706.102.1`, ARM64,
04:53:59Z–05:03:25Z.
- Command: the workflow's `Run runtime artifact contract tests` step syntax-checks both new modules
and tests, then includes
`ssh-relay-runtime-release-stage-gate.test.mjs` and
`ssh-relay-runtime-draft-recovery.test.mjs` in the purpose-named native Vitest command. Inspection
used `gh run view 29390079639 --repo stablyai/orca --job <job-id> --log` for every job.
- Result: PASS for all six target-native build jobs. Each runner passes the release-stage suite's 15
tests and draft-recovery suite's 6 tests under Node v24.18.0. The four POSIX jobs report 32 passing
contract files; the two Windows jobs report 33, including the Windows-only PE diagnostic suite.
Both Linux oldest-userland jobs and Windows x64 floor job also pass. Overall workflow conclusion is
the expected `failure` only because downstream Windows arm64 floor job 87272581856 observes build
26200 instead of required 26100 after the exact runtime passes archive/tree verification, bundled
Node, PTY, watcher, and resource settlement in 7,721.7682 ms with 48,504,832-byte RSS.
- Concurrent regression: Golden E2E run
[29390079632](https://github.com/stablyai/orca/actions/runs/29390079632) passes both macOS job
87271365717 and Linux job 87271365749. PR Checks run 29390079665 attempt 1 job 87271365846 passes
lint, typecheck, Git compatibility, and tests, then flakes during `Build unpacked app` when a
125-MB Electron GitHub asset download receives `read: connection reset by peer`. Authorized
attempt 2 job 87272898091 runs from 05:05:54Z to 05:21:00Z and passes the complete verify job,
including unpacked packaging and packaged CLI smoke.
- Oracle proved: the disconnected build → signing → aggregate → upload → read-back failure contract
and same-draft immutable recovery contract parse and execute identically on all six native runner
families, including Windows PowerShell workflow wiring. No platform can omit its required signing
stage, invent a Linux signing stage, exceed the bounded retry/time policy, or accept missing,
duplicate, drifted, failed, cancelled, approval-rejected, or recovered cross-release state.
- Does not prove: real Apple/SignPath signing or approval, target-native trust of returned Orca bytes,
aggregate/manifest generation, manifest signing, GitHub draft upload/read-back, packaged manifest
embedding, SSH transfer/install, fallback, performance, or an enabled tuple.
- Follow-up: implement disconnected aggregate-input and authenticated draft read-back verification,
then execute it on all six native job families. Retain every production/default and tuple state.
### E-M4-AGGREGATE-READBACK-LOCAL-RED-001 — Aggregate and draft byte verifiers are absent
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: exact implementation base `97164470cb9abad670634b9d4f04424bcc8662b5` plus the two new
uncommitted purpose-named test files.
- Command:
```sh
pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 \
config/scripts/ssh-relay-runtime-aggregate-input.test.mjs \
config/scripts/ssh-relay-runtime-draft-readback.test.mjs
```
- Result: expected RED in 284 ms. Both suites fail before collecting tests with
`ERR_MODULE_NOT_FOUND` for `ssh-relay-runtime-aggregate-input.mjs` and
`ssh-relay-runtime-draft-readback.mjs`.
- Oracle proved: the exact head had only declarative stage/recovery contracts; it had no filesystem
implementation binding aggregate input declarations to stable archive bytes and no authenticated,
bounded draft asset read-back implementation.
- Does not prove: implementation, GitHub API behavior, actual release assets, native runners,
manifest generation/signing, publication, desktop embedding, SSH behavior, or an enabled tuple.
- Correction: implement both byte boundaries as disconnected modules with bounded streaming,
cancellation, exact identity/asset checks, and credential-safe redirect handling.
### E-M4-AGGREGATE-READBACK-LOCAL-001 — Immutable aggregate and draft read-back bytes pass locally
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: implementation commit `e995186545d4b584840cb7ec8cd1403fbd045a7b`, based on exact prior
head `97164470cb9abad670634b9d4f04424bcc8662b5`; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741).
- Runner/network: local macOS 26.2 build 25C56 arm64, Node v26.0.0 and pnpm 10.24.0. Aggregate tests
use exclusive local temporary directories. Draft tests use injected WHATWG `Response` objects and
make no network, GitHub API, release, credential, signing-service, SSH, publication, or production
call. The repository emits its expected Node-24 engine warning.
- Commands:
```sh
node --check config/scripts/ssh-relay-runtime-aggregate-input.mjs
node --check config/scripts/ssh-relay-runtime-aggregate-input.test.mjs
node --check config/scripts/ssh-relay-runtime-draft-readback.mjs
node --check config/scripts/ssh-relay-runtime-draft-readback.test.mjs
/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 \
config/scripts/ssh-relay-runtime-aggregate-input.test.mjs \
config/scripts/ssh-relay-runtime-draft-readback.test.mjs
pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 \
config/scripts/ssh-relay-runtime-aggregate-input.test.mjs \
config/scripts/ssh-relay-runtime-draft-readback.test.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs
pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 \
config/scripts/ssh-relay-*.test.mjs
pnpm run typecheck
pnpm run lint
pnpm run check:max-lines-ratchet
pnpm exec oxfmt --check <eight touched implementation/workflow/checklist files>
git diff --check
```
- Result: PASS. Four syntax checks pass. After exact-HTTP-200 hardening, the two purpose-named suites
pass 2 files/17 tests in 295 ms; `/usr/bin/time -l` records 0.89 seconds wall time,
132,104,192-byte maximum RSS, zero swaps, and 96,277,880-byte peak memory footprint.
Workflow-inclusive focus passes 3 files/23 tests in 410 ms. The complete SSH-relay suite passes 35
files/201 tests in 6.63 seconds. Typecheck, full
lint/reliability/localization/bundled-skill gates, max-lines (355 grandfathered suppressions and no
new bypass), focused formatting, and `git diff --check` all pass; lint emits only existing unrelated
warnings.
- Aggregate oracle: accepts at most eight declared supported tuples and derives each immutable
archive name from its tuple/content identity. The exclusive input directory must contain exactly
those regular files, with no extras or links; each file is streamed under a 100-MiB/file and
15-minute bound, and exact size, SHA-256, and stable pre/post file metadata must match before the
declared asset chain is returned. Duplicate tuple/name, unsupported tuple, malformed identity,
cancellation, missing/extra input, or byte drift fails closed.
- Draft read-back oracle: requires one exact draft ID and stable/RC/perf tag, exact managed asset
names, uploaded state, nonzero declared size, at most 100 MiB per asset/1 GiB total, and a 15-minute
bound. It manually handles the authenticated GitHub asset API redirect, accepts only HTTPS
`release-assets.githubusercontent.com`, never forwards authorization to the CDN, requires exact
HTTP 200 from either direct or redirected downloads, streams every body, and requires exact size
and SHA-256. Published/cross-tag/incomplete/unexpected drafts, unsafe redirects, unexpected 2xx
statuses, changed/truncated/oversized bytes, and cancellation fail closed.
- Workflow oracle: both POSIX and Windows artifact jobs syntax-check and execute the two new suites
under the same Node 24 native job families. The workflow retains read-only contents permission and
has no release, signing credential, or publication authority.
- Does not prove: a real GitHub API/CDN redirect, a real draft or full-size asset, aggregate manifest
generation, Ed25519 signing, native signing/trust, upload/recovery execution, desktop
prerequisites/embedding, SSH transfer/install, fallback, performance, or an enabled tuple. The
local symlink fixture is skipped on Windows, although the shared implementation rejects all
non-regular directory entries and exact-head Windows execution remains required.
- Follow-up: exact-head native execution is closed by E-M4-AGGREGATE-READBACK-CI-001. Add
credential-free canonical manifest assembly/signature handoff without production credentials,
publication, or a desktop consumer.
### E-M4-AGGREGATE-READBACK-CI-001 — Aggregate and draft byte verifiers pass all six native jobs
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: exact PR head `87a8e4dc3461ee1c118c223918f36c672749a60b`; implementation commit
`e995186545d4b584840cb7ec8cd1403fbd045a7b`; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741).
- Runner/network: GitHub-hosted native runners with normal artifact-build egress. The aggregate tests
use runner-local exclusive temporary directories. Draft read-back tests inject WHATWG `Response`
objects and make no GitHub API, CDN, release, signing-service, SSH, publication, or production call.
Exact jobs, resolved images, and full contract-suite durations:
- linux-x64-glibc job 87276316322: `ubuntu-24.04`, `ubuntu24` image `20260705.232.1`, X64,
Node v24.18.0; 34 files/197 tests in 3.64 s; job 05:31:27Z–05:35:54Z.
- linux-arm64-glibc job 87276316371: `ubuntu-24.04-arm`, `ubuntu24-arm64` image
`20260706.52.2`, ARM64, Node v24.18.0; 34 files/197 tests in 3.67 s; job
05:31:30Z–05:43:37Z. The digest-pinned builder-image pull took 8m20s; the subsequent two-build
runtime step passed in 2m33s.
- darwin-x64 job 87276316387: `macos-15-intel`, `macos15` image `20260629.0276.1`, X64,
Node v24.18.0; 34 files/197 tests in 17.99 s; job 05:31:28Z–05:37:13Z.
- darwin-arm64 job 87276316336: `macos-15`, `macos15` image `20260706.0213.1`, ARM64,
Node v24.18.0; 34 files/197 tests in 5.08 s; job 05:31:27Z–05:34:29Z.
- win32-x64 job 87276316353: `windows-2022`, `win22` image `20260706.237.1`, X64,
Node v24.18.0; 35 files/193 passing and 8 skipped tests in 9.35 s; job
05:31:27Z–05:36:57Z.
- win32-arm64 job 87276316340: `windows-11-arm`, `win11-arm64` image `20260706.102.1`,
ARM64, Node v24.18.0; 35 files/193 passing and 8 skipped tests in 10.03 s; job
05:31:27Z–05:39:57Z.
- Commands: the workflow syntax-checks both modules and tests, then includes
`ssh-relay-runtime-aggregate-input.test.mjs` and
`ssh-relay-runtime-draft-readback.test.mjs` in `Run runtime artifact contract tests`. Evidence
inspection used `gh run view 29391666358 --repo stablyai/orca --log`, purpose-named `rg` filters,
and `gh run view 29391666358 --repo stablyai/orca --job <job-id> --log`.
- Result: PASS on all six target-native build jobs. Draft read-back passes 10 tests on each runner;
aggregate input passes 7 on each POSIX runner and 6 with the one POSIX-symlink fixture skipped on
each Windows runner. Purpose-suite timings were draft/aggregate: linux x64 66/36 ms, Linux arm64
52/37 ms, macOS x64 258/54 ms, macOS arm64 46/22 ms, Windows x64 70/62 ms, and Windows arm64
86/49 ms. Shared implementation still rejects non-regular entries on Windows.
- Concurrent regression: both Linux oldest-userland jobs 87277915889 and 87277915838 pass. Windows
x64 oldest-floor job 87277415457 passes. Overall artifact run conclusion is the expected `failure`
only because Windows arm64 oldest-floor job 87277415503 observes build 26200 instead of the exact
required build 26100; before that gate, archive/tree/Node/PTY/watcher smoke settles in 8,032.7284
ms with 49,922,048-byte RSS. PR Checks run
[29391666360](https://github.com/stablyai/orca/actions/runs/29391666360) job 87276316191 passes the
complete verify/package/CLI-smoke job from 05:31:28Z to 05:46:00Z. Golden E2E run
[29391666362](https://github.com/stablyai/orca/actions/runs/29391666362) passes Linux job
87276316058 and macOS job 87276316073.
- Oracle proved: exact immutable archive declarations are bound to stable runner-local bytes on all
six native families; draft metadata, authenticated redirect handling, exact HTTP 200, bounded
streaming, cancellation, size, and SHA-256 policies execute consistently under Node 24. The
workflow remains read-only and cannot publish, access a signing environment, or connect a desktop
consumer.
- Does not prove: real GitHub API/CDN behavior, a real/full-size draft asset, canonical manifest
generation, Ed25519 signing, native signing/trust, upload/recovery execution, desktop
prerequisites/embedding, SSH transfer/install, fallback, performance, or an enabled tuple.
- Follow-up: implement credential-free canonical unsigned-manifest assembly plus bounded signing
request and returned-signature verification. Do not connect production credentials, publication,
desktop consumers, or tuple enablement.
### E-M4-WINDOWS-MANIFEST-PARITY-LOCAL-RED-001 — Windows artifact/manifest identity mismatch
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: exact base `90da7e14b` plus uncommitted purpose-named tests; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741).
- Runner/network: local macOS 26.2 build 25C56 arm64, Node v26.0.0 and pnpm 10.24.0; no network,
runner, signing, release, SSH, publication, desktop consumer, or production call.
- Commands:
```sh
pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 \
config/scripts/ssh-relay-runtime-compatibility.test.mjs
pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 \
src/main/ssh/ssh-relay-artifact-schema.test.ts
```
- Result: expected RED. The compatibility suite fails 2/2 tests in 144 ms: both Windows tuple
contracts return `kind: "win32"` rather than manifest-compatible `kind: "windows"`, and the actual
canonical content ID `sha256:704e9381bc99c97dfbdc4cfc902101879ab6990aa202114120855a5eb02aa6f5`
disagrees with the fixed `windows` vector
`sha256:b3eb5c89f079ed735cb83cf2595102fe010b8dd78d3096ddf592109b2ac222b0`.
After correcting only that discriminator locally, the schema suite's new Windows fixture fails
1/30 tests in 196 ms because the desktop consistency verifier expects root `node.exe`; every
target-native Windows artifact and the detailed plan use `bin/node.exe`.
- Oracle proved: the artifact builder's Windows identities could not be consumed by the reviewed
signed-manifest schema even though both sides were individually tested. The failure was caught
before canonical assembly, publication, desktop embedding, or tuple enablement.
- Does not prove: the correction, target-native regeneration, archive equality after the intentional
content-ID change, native signing/trust, manifest assembly/signing, SSH behavior, or an enabled
tuple.
- Correction: use `windows` only as the compatibility-union discriminator while retaining `win32`
as the tuple OS, and make the desktop verifier accept the already-reviewed `bin/node.exe` archive
layout. Add both contracts to every native artifact job.
### E-M4-WINDOWS-MANIFEST-PARITY-LOCAL-001 — Windows artifact and manifest identities align locally
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: implementation commit `707a9da23e3955bed6ed00ad3afc24b5ab808243`, based on exact prior
head `90da7e14b`; draft PR [#8741](https://github.com/stablyai/orca/pull/8741).
- Runner/network: local macOS 26.2 build 25C56 arm64, Node v26.0.0 and pnpm 10.24.0; no network,
native runner, signing, release, SSH, publication, desktop consumer, or production call. The
repository emits its expected Node-24 engine warning.
- Commands:
```sh
node --check config/scripts/ssh-relay-runtime-compatibility.mjs
node --check config/scripts/ssh-relay-runtime-compatibility.test.mjs
/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 \
config/scripts/ssh-relay-runtime-compatibility.test.mjs \
config/scripts/ssh-relay-runtime-workflow.test.mjs \
src/main/ssh/ssh-relay-artifact-schema.test.ts
pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 \
config/scripts/ssh-relay-runtime-compatibility.test.mjs \
config/scripts/ssh-relay-runtime-zip.test.mjs \
config/scripts/ssh-relay-runtime-artifact.test.mjs \
config/scripts/ssh-relay-runtime-native-signing-apply.test.mjs \
config/scripts/ssh-relay-runtime-windows-signature-verification.test.mjs \
config/scripts/ssh-relay-runtime-windows-source-signature-verification.test.mjs \
src/main/ssh/ssh-relay-artifact-schema.test.ts \
src/main/ssh/ssh-relay-runtime-identity.test.ts
pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 \
config/scripts/ssh-relay-*.test.mjs
pnpm run typecheck
pnpm run lint
pnpm run check:max-lines-ratchet
pnpm exec oxfmt --check <nine touched implementation/workflow/checklist files>
git diff --check
```
- Result: PASS. Both syntax checks pass. The compatibility/schema/workflow focus passes 3 files/38
tests in 1.59 s; `/usr/bin/time -l` records 3.41 seconds wall time, 133,152,768-byte maximum RSS,
zero swaps, and 96,572,816-byte peak memory footprint. The eight affected contract files pass 62
tests in 5.46 s. The complete SSH-relay suite passes 36 files/203 tests in 14.88 s. Typecheck, full
lint/reliability/localization/bundled-skill gates, max-lines (355 grandfathered suppressions and no
new bypass), focused formatting, and `git diff --check` pass; lint emits only existing unrelated
warnings.
- Oracle proved: both target-native Windows tuple definitions now use the manifest schema's
`windows` compatibility discriminator while preserving `win32` tuple IDs/OS values. The MJS
canonical identity matches the fixed Windows vector, the TypeScript schema accepts the exact
`bin/node.exe` archive layout, and both POSIX and Windows workflow families syntax-check and run
the parity suite. The intentional content-ID/archive-name change occurs before publication or
enablement.
- Does not prove: target-native Windows rebuild/reproducibility with the new content IDs, macOS/Linux
non-regression on native runners, native signing/trust, canonical manifest assembly/signing,
publication, desktop embedding, SSH transfer/install, fallback, performance, or an enabled tuple.
- Follow-up: run the parity suite and regenerate all six native artifacts at the exact implementation
head. If green, record the new Windows content IDs and resume credential-free canonical manifest
assembly/signature handoff.
### E-M4-WINDOWS-MANIFEST-PARITY-CI-001 — Corrected parity passes all six native artifact jobs
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: exact head `c68a99039e4633d41e21fb30afdfeaa06f776369`, containing implementation
commit `707a9da23e3955bed6ed00ad3afc24b5ab808243`; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741).
- Runner/network: GitHub-hosted target-native jobs under Node 24.18.0 in artifact run
[29393022768](https://github.com/stablyai/orca/actions/runs/29393022768):
- Windows arm64 job 87280402068, `windows-11-arm64` image `20260706.102.1`;
- Linux x64 job 87280402087, `ubuntu-24.04` image `20260705.232.1`;
- macOS arm64 job 87280402091, `macos-15-arm64` image `20260706.0213.1`;
- macOS x64 job 87280402092, `macos-15` image `20260629.0276.1`;
- Windows x64 job 87280402093, `windows-2022` image `20260706.237.1`;
- Linux arm64 job 87280402113, `ubuntu-24.04-arm` image `20260714.61.1`.
- Commands/evidence inspection:
```sh
gh run watch 29393022768 --repo stablyai/orca --interval 15 --exit-status
gh run view 29393022768 --repo stablyai/orca --json status,conclusion,headSha,url,jobs
gh run view 29393022768 --repo stablyai/orca --job <native-job-id> --log
gh run download 29393022768 --repo stablyai/orca \
-n ssh-relay-runtime-win32-x64 -D <temporary-directory>
gh run download 29393022768 --repo stablyai/orca \
-n ssh-relay-runtime-win32-arm64 -D <temporary-directory>
gh run view 29393022761 --repo stablyai/orca --json status,conclusion,headSha,url,jobs
gh run view 29393022784 --repo stablyai/orca --json status,conclusion,headSha,url,jobs
```
- Result: PASS on all six target-native build jobs. The complete contract suite passes 35
files/199 tests on each POSIX runner and 36 files/195 passed plus 8 platform-skipped tests on each
Windows runner. Total Vitest durations are Linux x64 4.41 s, Linux arm64 3.37 s, macOS arm64
6.96 s, macOS x64 29.25 s, Windows x64 8.16 s, and Windows arm64 11.13 s. The purpose-named
compatibility suite passes 2/2 tests in 3–8 ms on every runner; the workflow suite passes 6/6 in
77–499 ms. Every job then builds twice, verifies archive/tree/Node/native modules, smokes PTY and
watcher behavior, compares exact outputs, and uploads unpublished evidence.
- Downloaded Windows read-back identities:
- `win32-x64`: compatibility `kind: "windows"`, content ID
`sha256:4224aee6de820a94263f05ebfc58edd421921431e8cbdf1d5ec6ddcf783afc26`, archive
`orca-ssh-relay-runtime-v1-win32-x64-4224aee6de820a94263f05ebfc58edd421921431e8cbdf1d5ec6ddcf783afc26.zip`,
37,168,778 bytes, archive SHA-256
`sha256:473aff5d97d08b0a1deaa5a74940975eb44ab303f88fc2a94d8b9b2f3d594e7b`;
- `win32-arm64`: compatibility `kind: "windows"`, content ID
`sha256:02edf462be83c2864a89546d5344d348f9e07ce10964660342608a8c614e47db`, archive
`orca-ssh-relay-runtime-v1-win32-arm64-02edf462be83c2864a89546d5344d348f9e07ce10964660342608a8c614e47db.zip`,
33,204,738 bytes, archive SHA-256
`sha256:5f5ffc89d3a1a4fee50ad641c0c9abd063a113269851936eb30b01ab1527fdcd`.
- Concurrent regression: Linux supplemental userland jobs 87281853967 and 87281853918 pass, as does
Windows x64 oldest-floor job 87281706480. Artifact-run conclusion is the expected `failure` only
because Windows arm64 floor job 87281706438 observes build 26200 rather than required build 26100;
before failing that exact-floor gate, complete runtime execution settles in 8,382.8952 ms, its
smoke stage reports 6,055.8004 ms and 49,811,456-byte RSS, and post-observation resources contain
only the expected parent `PipeWrap`s. PR Checks run
[29393022761](https://github.com/stablyai/orca/actions/runs/29393022761) job 87280377607 and both
Golden E2E jobs 87280377578/87280377611 in run
[29393022784](https://github.com/stablyai/orca/actions/runs/29393022784) are green at the same head.
- Oracle proved: the corrected Windows compatibility discriminator and `bin/node.exe` layout are
accepted consistently by the build and desktop contracts; both Windows architectures regenerate
stable, internally consistent identities/archive names; and no POSIX or Windows native artifact
regression appears in the all-six build/equality/smoke gates.
- Does not prove: Windows arm64 build 26100, macOS 13.5, Linux kernel 4.18, real native signing/trust,
canonical manifest assembly/signing, publication, desktop embedding, SSH transfer/install,
fallback, performance, or an enabled tuple.
- Worktree visibility residual: `orca status --json` reports app not running and runtime state
`stale_bootstrap`; the required best-effort `orca worktree set --worktree active --comment ...
--json` retry fails with `runtime_unavailable`. This does not affect repository or CI evidence.
- Follow-up: begin RED tests for credential-free canonical unsigned-manifest assembly, bounded signing
request, and returned-signature verification. Keep final detached-signature asset encoding,
production credentials, publication, desktop consumers, and tuple enablement disconnected.
### E-M4-MANIFEST-HANDOFF-LOCAL-RED-001 — Release-side assembly and signing handoff are absent
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: exact base `63899c182f3a831d61fb1f6566a0d0318bca4192` plus uncommitted
purpose-named tests; draft PR [#8741](https://github.com/stablyai/orca/pull/8741).
- Runner/network: local macOS 26.2 build 25C56 arm64, Node v26.0.0 and pnpm 10.24.0; no network,
runner, signing credential, release, publication, desktop consumer, SSH host, or production call.
- Command:
```sh
/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 \
config/scripts/ssh-relay-runtime-manifest-assembly.test.mjs \
config/scripts/ssh-relay-runtime-manifest-signing-handoff.test.mjs
```
- Result: expected RED. Both suites fail before collecting tests because
`ssh-relay-runtime-manifest-assembly.mjs` is absent; the signing-handoff suite also depends on that
boundary. Vitest reports 2 failed files in 264 ms; `/usr/bin/time -l` records 1.12 seconds wall,
131,710,976-byte maximum RSS, zero swaps, and 95,835,440-byte peak memory footprint.
- Oracle proved: the existing desktop canonical/signature contract has no release-side module that
assembles and re-parses the exact canonical unsigned bytes, bounds the credential-free signing
request, or verifies the returned key ID/signature before final-manifest emission.
- Does not prove: implementation correctness, byte parity, Ed25519 return verification, native
runner behavior, production credentials, publication, desktop embedding, SSH behavior, or an
enabled tuple.
- Follow-up: implement only the two disconnected release-side boundaries and retain every
production/default behavior and final detached-signature asset-encoding decision unchanged.
### E-M4-MANIFEST-HANDOFF-LOCAL-001 — Disconnected canonical assembly and signature return verify locally
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: exact base `63899c182f3a831d61fb1f6566a0d0318bca4192` plus the uncommitted
manifest validation, assembly, signing-handoff, test, and static workflow wiring changes; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741).
- Runner/network: local macOS 26.2 build 25C56 arm64, Node v26.0.0 and pnpm 10.24.0; no network,
runner, signing credential, release, publication, desktop consumer, SSH host, or production call.
- Command:
```sh
/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 \
config/scripts/ssh-relay-runtime-manifest-assembly.test.mjs \
config/scripts/ssh-relay-runtime-manifest-signing-handoff.test.mjs
```
- Result: GREEN. Vitest reports 2 files / 11 tests passed in 1.35 seconds; `/usr/bin/time -l`
records 15.14 seconds wall, 188,792,832-byte maximum RSS, zero swaps, and 96,490,920-byte peak
memory footprint.
- Oracle proved: validated tuple projections produce byte-identical canonical unsigned bytes to the
desktop contract; signing requests bind exact bytes, size, SHA-256, and `ed25519-v1`; returned key
IDs and signatures are allowlisted, deduplicated, cryptographically verified, deterministically
ordered, and revalidated through the desktop signed-manifest verifier before final emission.
- Does not prove: the broader SSH-relay suite, typecheck/lint/formatting gates, native runner parity,
production credentials, final detached-signature asset encoding, publication, desktop embedding,
SSH behavior, or an enabled tuple.
- Follow-up: run broader local gates, then exact-head all-six native CI; keep every production and
rollout boundary disconnected.
### E-M4-MANIFEST-HANDOFF-LOCAL-002 — Broad local manifest-handoff regressions and static gates
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: exact base `63899c182f3a831d61fb1f6566a0d0318bca4192` plus the uncommitted
manifest validation, assembly, signing-handoff, test, workflow, and checklist changes; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741).
- Runner/network: local macOS 26.2 build 25C56 arm64, Node v26.0.0 and pnpm 10.24.0; no network,
signing credential, release, publication, desktop consumer, SSH host, or production call. The
repository's Node 24 requirement is intentionally deferred to the exact native CI jobs rather than
inferred from this Node 26 run.
- Commands and results:
- `/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay*.test.mjs`
— GREEN, 38 files / 214 tests in 8.97 seconds; 10.13 seconds wall, 188,219,392-byte maximum
RSS, zero swaps, and 95,589,680-byte peak memory footprint.
- `/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 src/main/ssh/ssh-relay-artifact-schema.test.ts src/main/ssh/ssh-relay-manifest-signature.test.ts src/main/ssh/ssh-relay-release-asset.test.ts`
— GREEN, 3 files / 47 tests in 1.34 seconds; 2.40 seconds wall, 131,973,120-byte maximum RSS,
zero swaps, and 96,081,200-byte peak memory footprint.
- `node --check` for the validation, assembly, assembly-test, signing-handoff, and
signing-handoff-test modules — GREEN with no output.
- Focused `pnpm exec oxlint` for all six touched script/test files — GREEN with no findings.
- Focused `pnpm exec oxfmt --check` for all nine touched code/workflow/checklist files — GREEN in
1,023 ms.
- `/usr/bin/time -l pnpm run typecheck` — GREEN in 9.44 seconds wall with 1,182,597,120-byte
maximum RSS and zero swaps.
- `pnpm run lint` — GREEN in 26.12 seconds wall. Full oxlint, switch exhaustiveness, styled
scrollbars, 41 reliability gates, 355-entry max-lines ratchet, bundled-skill guides,
localization catalog/parity, and localization coverage pass. The 26 printed warnings are in
untouched existing files; none is introduced by this package.
- `pnpm run check:max-lines-ratchet` — GREEN, 355 grandfathered suppressions and no new bypasses.
- `git diff --check` — GREEN with no output.
- Structural bound audit — a maximum 240-byte file projection is 407 bytes and native attestation
projection is 334 bytes; `8 * 5,000 * (407 + 334) = 29,640,000`, leaving 3,914,432 bytes beneath
the 32 MiB canonical/signing ceiling for tuple and build envelopes.
- Oracle proved: the disconnected handoff preserves all existing release-side SSH-relay contracts,
emits bytes accepted by the desktop schema/signature implementation, stays syntactically and
statically valid, introduces no formatting/max-lines regression, and has a bounded ceiling
consistent with the declared eight-tuple/5,000-entry schema.
- Does not prove: Node 24/native-runner behavior, target-native build non-regression, production
credentials, final detached-signature asset encoding, publication, desktop embedding, SSH
transfer/install behavior, or an enabled tuple.
- Follow-up: commit and push the exact locally verified package, then record the all-six native jobs,
PR Checks, and Golden E2E at that exact head.
### E-M4-MANIFEST-HANDOFF-CI-001 — Canonical handoff passes all six Node 24 native jobs
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: exact commit `14355dfe0583f634a6e86ada9e1afcf7abe7a8fb`; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741).
- Runs:
- SSH Relay Runtime Artifacts
[29395319239](https://github.com/stablyai/orca/actions/runs/29395319239) — overall expected RED
only for the separately declared Windows arm64 build-floor mismatch.
- PR Checks [29395319119](https://github.com/stablyai/orca/actions/runs/29395319119) — GREEN in
14 minutes 22 seconds, including lint, reliability/max-lines, typecheck, Git 2.25 matrix, full
tests, unpacked app build, and packaged CLI smoke.
- Golden E2E [29395319242](https://github.com/stablyai/orca/actions/runs/29395319242) — GREEN on
macOS and Linux.
- Native build/test cells, all GitHub-hosted at the exact source commit with Node v24.18.0:
| Tuple | Requested / resolved image | Arch | Contract suite | Build job / duration |
| ----------------- | ----------------------------------------------------- | ----- | -------------------------------------------------- | -------------------- |
| linux-x64-glibc | `ubuntu-24.04` / `ubuntu24` `20260705.232.1` | X64 | 37 files / 210 tests, 4.18 s | 87287406149 / 3m50s |
| linux-arm64-glibc | `ubuntu-24.04-arm` / `ubuntu24-arm64` `20260706.52.2` | ARM64 | 37 files / 210 tests, 3.80 s | 87287406182 / 5m03s |
| darwin-x64 | `macos-15-intel` / `macos15` `20260629.0276.1` | X64 | 37 files / 210 tests, 16.01 s | 87287406168 / 5m20s |
| darwin-arm64 | `macos-15` / `macos15` `20260706.0213.1` | ARM64 | 37 files / 210 tests, 4.65 s | 87287406210 / 2m31s |
| win32-x64 | `windows-2022` / `win22` `20260706.237.1` | X64 | 38 files / 206 passed + 8 platform-skipped, 9.07 s | 87287406172 / 5m23s |
| win32-arm64 | `windows-11-arm` / `win11-arm64` `20260706.102.1` | ARM64 | 38 files / 206 passed + 8 platform-skipped, 8.78 s | 87287406175 / 8m48s |
- Direct new-suite oracle: every native job syntax-checks both new test modules and passes manifest
assembly 5/5 plus signing handoff 6/6. Per-job combined new-suite test times are Linux x64
136/254 ms, Linux arm64 91/193 ms, macOS x64 262/523 ms, macOS arm64 43/90 ms, Windows x64
148/295 ms, and Windows arm64 96/179 ms.
- Supplemental/result details:
- Linux x64 and arm64 digest-pinned Rocky 8 userland jobs pass exact downloaded-byte verification,
runtime smoke, glibc 2.28, libstdc++ 6.0.25, and GLIBCXX 3.4.25; kernel 4.18 remains open because
the container shares the hosted kernel.
- Windows Server 2022 x64 build 20348 passes its declared floor and full runtime execution.
- Windows arm64 verifies 60 archive entries / 42 files / 85,213,511 expanded bytes and content ID
`sha256:02edf462be83c2864a89546d5344d348f9e07ce10964660342608a8c614e47db`, then completes Node,
ConPTY, watcher, and resource-settlement smoke in 5,818.68 ms with 49,385,472-byte RSS and
7,741.5065 ms total verification. Its floor job then fails exactly because observed Windows build
26200 does not equal required build 26100; platform and ARM64 checks pass.
- Oracle proved: the release-side validator, canonical byte projection, bounded request, signer-return
verification, deterministic final manifest, and workflow wiring execute under the repository's
exact Node version on Linux, macOS, and Windows x64/arm64 without regressing target-native build,
smoke, equality, artifact upload, PR, or Golden E2E behavior.
- Does not prove: the missing Windows arm64 26100 snapshot, kernel 4.18, macOS 13.5, real Apple or
SignPath returns, protected manifest credentials/approval, final aggregate publication, desktop
embedding, SSH transfer/install, or an enabled tuple.
- Follow-up: begin RED tests for the credential-free fail-closed aggregate boundary; retain all
production/default and credential gates.
### E-M4-MANIFEST-AGGREGATE-LOCAL-RED-001 — Fail-closed manifest aggregate is absent
- Date: 2026-07-15
- Commit SHA / PR: uncommitted purpose-named RED test atop
`127ddbcc154fbdf2641bc80d67a3d68d862ab1ca`; draft PR #8741
- Runner: macOS 26.2 arm64, native local worktree; repository Node/pnpm toolchain
- Remote: not applicable; disconnected credential-free release boundary
- Transport/network: local filesystem only; no network, GitHub release, signer, or credential
- Exact command:
```sh
pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-manifest-aggregate.test.mjs
```
- Result: FAIL as required; one suite failed before collection because
`ssh-relay-runtime-manifest-aggregate.mjs` does not exist, with zero tests collected.
- Duration and resource metrics: Vitest duration 210 ms; memory and file-descriptor deltas not
measured for this expected import failure.
- Artifact/log/trace link: local terminal output; no external artifact.
- Oracle proved: the purpose-named contract cannot pass through an existing permissive or accidental
aggregate implementation; the credential-free boundary is genuinely absent before this package.
- Does not prove: input-byte validation, descriptor binding, deterministic assembly, signing-return
verification, publication, credentials, desktop embedding, native trust, or any enabled tuple.
- Checklist items satisfied: RED prerequisite for the active Work Package 3 aggregate boundary.
- Follow-up: implement the disconnected boundary, turn this exact suite green, then run broad local
and all-six native regression gates without connecting publication or consumers.
### E-M4-MANIFEST-AGGREGATE-LOCAL-001 — Exact-file aggregate and signing boundary pass locally
- Date: 2026-07-15
- Commit SHA / PR: `5e0c776d017b3cf4d57011cb1f4cdc919bbc8782`; draft PR #8741
- Runner: macOS 26.2 arm64, native local worktree; Node v26.0.0 and pnpm 10.24.0
- Remote: not applicable; disconnected credential-free release boundary
- Transport/network: local filesystem only; no network, GitHub release, signer service, credential,
SSH connection, or publication
- Exact command:
```sh
/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-manifest-aggregate.test.mjs config/scripts/ssh-relay-runtime-aggregate-input.test.mjs config/scripts/ssh-relay-runtime-workflow.test.mjs
```
- Result: PASS; 3 files / 20 tests, including 6 purpose-named aggregate tests, 8 aggregate-input
tests, and 6 workflow-source tests.
- Duration and resource metrics: Vitest 482 ms; 1.04 seconds wall; 132,956,160-byte maximum RSS;
96,146,832-byte peak memory footprint; zero swaps.
- Artifact/log/trace link: local terminal output; no external artifact.
- Oracle proved: at most eight tuple declarations select one exact regular-file set containing a
bounded descriptor, archive, SBOM, and provenance per tuple; missing, extra, linked, mutated,
oversized, duplicate, unsupported, or cancelled inputs fail before assembly. Only the hashed
descriptor supplies the complete post-sign tuple/native-attestation projection. Descriptor and
declared asset drift fail, tuple order is deterministic, the 15-minute boundary is cancellable,
finalization reassembles the canonical request, invalid signer returns fail, and the resulting
manifest passes the desktop verifier. POSIX and Windows workflow source includes syntax and test
execution for the new module.
- Does not prove: repository Node 24 behavior, a descriptor emitted by a real post-sign native job,
Apple/SignPath trust, protected signing credentials, final detached-signature asset encoding,
release publication/read-back, desktop embedding, SSH transfer/install, or an enabled tuple.
- Checklist items satisfied: local implementation gate for the active Work Package 3 credential-free
aggregate boundary.
- Follow-up: run broad local gates, then commit/push and collect all-six exact-head Node 24 CI.
### E-M4-MANIFEST-AGGREGATE-LOCAL-002 — Broad aggregate regressions and static gates pass
- Date: 2026-07-15
- Commit SHA / PR: `5e0c776d017b3cf4d57011cb1f4cdc919bbc8782`; draft PR #8741
- Runner: macOS 26.2 arm64, native local worktree; Node v26.0.0 and pnpm 10.24.0
- Remote: not applicable
- Transport/network: local filesystem only; no network, credential, release, SSH host, publication,
desktop consumer, or production/default call
- Commands and results:
- `/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay*.test.mjs`
— PASS, 39 files / 221 tests in 5.70 seconds; 6.49 seconds wall; 187,924,480-byte maximum
RSS; 96,081,176-byte peak memory footprint; zero swaps.
- `/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 src/main/ssh/ssh-relay-artifact-schema.test.ts src/main/ssh/ssh-relay-manifest-signature.test.ts src/main/ssh/ssh-relay-release-asset.test.ts`
— PASS, 3 files / 47 tests in 485 ms; 1.19 seconds wall; 172,572,672-byte maximum RSS;
95,819,128-byte peak memory footprint; zero swaps.
- `node --check` for the aggregate-input, manifest-aggregate, their tests, and workflow-source test
— PASS with no output.
- Focused `pnpm exec oxlint` for all five touched script/test files — PASS with no findings.
- Focused `pnpm exec oxfmt --check` for the touched code, workflow, and both checklist files — PASS
in 1,451 ms.
- `/usr/bin/time -l pnpm run typecheck` — PASS in 2.62 seconds wall with 1,266,810,880-byte
maximum RSS and zero swaps.
- `/usr/bin/time -l pnpm run lint` — PASS in 8.64 seconds wall with 2,023,014,400-byte maximum
RSS and zero swaps. All 41 reliability gates, 355-entry max-lines ratchet, bundled-skill guides,
localization catalog/parity, and localization coverage pass; all 26 warnings are in untouched
existing files.
- `pnpm run check:max-lines-ratchet` — PASS, 355 grandfathered suppressions and no new bypasses.
- `git diff --check` — PASS with no output.
- Supplemental command correction: an initial quoted-glob invocation treated
`config/scripts/ssh-relay*.test.mjs` as a literal filter and correctly returned “No test files
found”; the exact unquoted checklist command above immediately replaced it and is the recorded
executable result.
- Oracle proved: the new boundary preserves every release-side SSH-relay contract, desktop schema
and signature parity, repository type/static/reliability/localization gates, formatting, and file
line budgets without adding a bypass. No existing Node/npm resolver file was touched.
- Does not prove: Node 24/native-runner execution, real post-sign tuple outputs, production signing,
publication, desktop embedding, SSH behavior, native trust, exact oldest baselines, or any enabled
tuple.
- Checklist items satisfied: broad local regression/static gate for the active Work Package 3
package.
- Follow-up: collect and record all-six native CI at that exact head.
### E-M4-MANIFEST-AGGREGATE-CI-001 — Exact-file aggregate passes all six native Node 24 jobs
- Date: 2026-07-15
- Commit SHA / PR: `5e0c776d017b3cf4d57011cb1f4cdc919bbc8782`; draft PR #8741
- Workflow and source: exact-head SSH Relay Runtime Artifacts run
[29397871159](https://github.com/stablyai/orca/actions/runs/29397871159), checked out from the PR
head rather than GitHub's synthetic merge; Node v24.18.0
- Native runners and results:
- macOS arm64: `macos15` image `20260706.0213.1`, job
[87295382518](https://github.com/stablyai/orca/actions/runs/29397871159/job/87295382518), PASS
in 2m55s; aggregate suite 6/6 in 119 ms.
- Windows x64: `win22` image `20260706.237.1`, job
[87295382522](https://github.com/stablyai/orca/actions/runs/29397871159/job/87295382522), PASS
in 5m00s; aggregate suite 6/6 in 342 ms.
- macOS x64: `macos15` image `20260629.0276.1`, job
[87295382539](https://github.com/stablyai/orca/actions/runs/29397871159/job/87295382539), PASS
in 5m17s; aggregate suite 6/6 in 675 ms.
- Linux x64: `ubuntu24` image `20260705.232.1`, job
[87295382567](https://github.com/stablyai/orca/actions/runs/29397871159/job/87295382567), PASS
in 4m22s; aggregate suite 6/6 in 257 ms.
- Windows arm64: `win11-arm64` image `20260706.102.1`, job
[87295382578](https://github.com/stablyai/orca/actions/runs/29397871159/job/87295382578), PASS
in 9m46s; aggregate suite 6/6 in 553 ms.
- Linux arm64: `ubuntu24-arm64` image `20260714.61.1`, job
[87295382626](https://github.com/stablyai/orca/actions/runs/29397871159/job/87295382626), PASS
in 5m21s; aggregate suite 6/6 in 188 ms.
- Exact workflow command: the POSIX and Windows native jobs run `node --check` for the aggregate
module and suite, then include
`config/scripts/ssh-relay-runtime-manifest-aggregate.test.mjs` in the purpose-named Vitest artifact
contract command. POSIX jobs report 38 files / 217 passed; Windows jobs report 39 files / 213
passed plus 8 explicitly platform-skipped tests.
- Supplemental exact-head results:
- Rocky 8 oldest-userland jobs pass on Linux x64
[87296348785](https://github.com/stablyai/orca/actions/runs/29397871159/job/87296348785) in 35s and
Linux arm64
[87296348786](https://github.com/stablyai/orca/actions/runs/29397871159/job/87296348786) in 58s.
- Windows x64 oldest-floor job
[87297136187](https://github.com/stablyai/orca/actions/runs/29397871159/job/87297136187) passes.
Content ID is `sha256:4224aee6de820a94263f05ebfc58edd421921431e8cbdf1d5ec6ddcf783afc26`;
smoke is 8,788.4616 ms, RSS is 49,508,352 bytes, and total verification is 9,909.3156 ms.
- Windows arm64 oldest-floor job
[87297136099](https://github.com/stablyai/orca/actions/runs/29397871159/job/87297136099) fails only
the declared OS-build oracle because the hosted image is build 26200 rather than required build 26100. Before that rejection, the runtime passes platform/architecture and full smoke with 60
entries, 42 files, 85,213,511 expanded bytes, content ID
`sha256:02edf462be83c2864a89546d5344d348f9e07ce10964660342608a8c614e47db`,
5,835.1398 ms smoke, 49,713,152-byte RSS, and 7,680.2139 ms total verification.
- Broad exact-head regressions: PR Checks
[29397871156](https://github.com/stablyai/orca/actions/runs/29397871156) job
[87295381961](https://github.com/stablyai/orca/actions/runs/29397871156/job/87295381961) passes;
Golden E2E
[29397871176](https://github.com/stablyai/orca/actions/runs/29397871176) passes on macOS job
[87295382080](https://github.com/stablyai/orca/actions/runs/29397871176/job/87295382080) and Linux job
[87295382148](https://github.com/stablyai/orca/actions/runs/29397871176/job/87295382148).
- Oracle proved: syntax and the complete exact-file aggregate contract execute under repository Node
24 on every native target family without regressing native runtime construction, smoke, artifact
upload, PR verification, or Golden E2E. The expected overall artifact-workflow failure is solely
the pre-existing Windows arm64 exact-floor gap and occurs after the native arm64 aggregate and
runtime jobs succeed.
- Does not prove: a descriptor produced from real signed returned bytes, Apple/SignPath signing,
native trust, protected manifest signing, detached-signature encoding, publication/read-back,
desktop embedding, SSH transfer/install, or any enabled tuple.
- Checklist items satisfied: all-six exact-head CI gate for the disconnected credential-free
aggregate boundary. Broader Work Package 3 and Milestone 4 boxes remain open.
- Follow-up: add the credential-free post-sign tuple-descriptor producer/native-verification handoff
under a purpose-named RED before wiring any signing credential, publication, or desktop consumer.
### E-M4-MANIFEST-TUPLE-LOCAL-RED-001 — Post-sign tuple producer is absent
- Date: 2026-07-15
- Commit SHA / PR: uncommitted purpose-named test atop
`5e0c776d017b3cf4d57011cb1f4cdc919bbc8782`; draft PR #8741
- Runner: macOS 26.2 arm64, native local worktree; repository Node/pnpm toolchain
- Remote: not applicable; disconnected credential-free release boundary
- Transport/network: local filesystem only; no network, signer, credential, release, SSH host,
publication, desktop consumer, or production/default call
- Exact command:
```sh
/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-manifest-tuple.test.mjs
```
- Result: FAIL as required; one suite failed before collection because
`ssh-relay-runtime-manifest-tuple.mjs` does not exist, with zero tests collected.
- Duration and resource metrics: Vitest 179 ms; 1.27 seconds wall; 132,268,032-byte maximum RSS;
96,425,312-byte peak memory footprint; zero swaps.
- Artifact/log/trace link: local terminal output; no external artifact.
- Oracle proved: the complete post-sign tree/archive/native-report to aggregate-descriptor contract
cannot pass through an existing permissive or accidental implementation; the producer is
genuinely absent before this package.
- Does not prove: any producer behavior, metadata semantics, real signed bytes, native trust,
publication, desktop embedding, SSH transfer/install, or an enabled tuple.
- Checklist items satisfied: RED prerequisite for the active Work Package 3 post-sign tuple package.
- Follow-up: implement the disconnected credential-free producer, turn the exact six-case suite
green, then run focused aggregate and broad release/static regressions before requesting native CI.
### E-M4-MANIFEST-TUPLE-SCHEMA-RED-001 — Real Windows closure exposes stale manifest cardinality
- Date: 2026-07-15
- Commit SHA / PR: uncommitted implementation atop
`5e0c776d017b3cf4d57011cb1f4cdc919bbc8782`; draft PR #8741
- Runner: macOS 26.2 arm64, native local worktree; Node v26.0.0 and pnpm 10.24.0
- Remote: not applicable; disconnected credential-free release boundary
- Transport/network: local filesystem and generated Windows ZIP only; no network, signer,
credential, release, SSH host, publication, desktop consumer, or production/default call
- Exact command:
```sh
/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-manifest-tuple.test.mjs
```
- Result: expected evidence-gate failure; 5 tests pass and the complete real-closure case fails with
`SSH relay runtime manifest requires one valid node-pty-native entry`. The fixture contains the
exact proven Windows x64 closure, including both `conpty.node` and
`conpty_console_list.node` plus the two ConPTY runtime files.
- Duration and resource metrics: Vitest 504 ms total with 265 ms test time; 1.24 seconds wall;
137,576,448-byte maximum RSS; 95,933,816-byte peak memory footprint; zero swaps.
- Root cause: release-side `assertTupleEntries` and desktop-side
`assertRequiredRuntimeEntries` use a platform-agnostic exactly-one rule for `node-pty-native`.
That rule accepts the simplified Windows test conversion but cannot accept the target-native
artifact closure already proven in Work Package 2. Neither validator also enforces exact
tuple-specific `native-runtime` counts.
- Plan correction: the HTML plan now states the exact cardinality contract: Linux has one
node-pty-native and zero native-runtime files; macOS has one and one; Windows has two and two.
Both release and desktop validators must enforce the same role counts, and tests must use the real
Windows closure rather than a path-renamed Linux fixture.
- Does not prove: the correction, producer GREEN, native runner behavior, real signed bytes, native
trust, publication, desktop embedding, SSH transfer/install, or any enabled tuple.
- Checklist items satisfied: evidence-backed design correction prerequisite for the active package.
- Follow-up: add paired release/desktop RED-to-GREEN tests for exact role counts, make the narrow
validator correction, rerun the post-sign producer suite, and preserve all non-production gates.
### E-M4-MANIFEST-TUPLE-LOCAL-001 — Post-sign descriptor and exact role parity pass locally
- Date: 2026-07-15
- Commit SHA / PR: uncommitted package atop
`5e0c776d017b3cf4d57011cb1f4cdc919bbc8782`; draft PR #8741
- Runner: macOS 26.2 arm64, native local worktree; Node v26.0.0 and pnpm 10.24.0
- Remote: not applicable; disconnected credential-free release boundary
- Transport/network: local filesystem and generated Windows ZIP only; no network, signer,
credential, release, SSH host, publication, desktop consumer, or production/default call
- Exact command:
```sh
/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-manifest-tuple.test.mjs config/scripts/ssh-relay-runtime-manifest-aggregate.test.mjs config/scripts/ssh-relay-runtime-workflow.test.mjs src/main/ssh/ssh-relay-artifact-schema.test.ts
```
- Result: PASS; 4 files / 50 tests: 7 post-sign tuple cases, 6 aggregate cases, 6 workflow-source
cases, and 31 desktop manifest-schema cases.
- Duration and resource metrics: Vitest 989 ms with 377 ms test time; 1.68 seconds wall;
132,825,088-byte maximum RSS; 96,048,576-byte peak memory footprint; zero swaps.
- Oracle proved:
- the final runtime and aggregate-input roots must be real, physically disjoint directories;
- the complete final tree is content-ID verified before and after bounded archive inspection;
- Windows reports cover exact authenticated Node, both node-pty native modules, and both ConPTY
runtime files with required signer evidence; Linux and macOS reports derive their own exact
policies and three/four-file native closures;
- stale content IDs, source identity drift, missing/duplicate/mismatched native reports, malformed
tool/time data, runtime/archive mutation, extra/existing/linked inputs, oversized metadata, and
cancellation fail before a usable descriptor remains;
- stable bounded archive/SBOM/provenance bytes are hashed, the manifest tuple passes the same
release schema used by aggregation, one exclusive descriptor is written, and the exact closed
four-file set is rehashed before return;
- release and desktop validators accept the exact target-native Windows closure and reject missing
or extra node-pty/native-runtime members with matching tuple-specific rules;
- POSIX and Windows workflow source syntax-check and execute the new suite under the existing
credential-free native jobs.
- Does not prove: Node 24/native-runner execution, semantic regeneration or validation of post-sign
SBOM/provenance content, a report from real Apple/SignPath returned bytes, native trust, protected
signing, publication/read-back, desktop embedding, SSH transfer/install, or any enabled tuple.
- Checklist items satisfied: local functional/schema/workflow gate for the active Work Package 3
post-sign tuple package.
- Follow-up: run broad release, desktop parity, and repository static gates, then require all-six
exact-head Node 24 CI before closing the package.
### E-M4-MANIFEST-TUPLE-LOCAL-002 — Broad post-sign tuple regressions and static gates pass
- Date: 2026-07-15
- Commit SHA / PR: same uncommitted package atop
`5e0c776d017b3cf4d57011cb1f4cdc919bbc8782`; draft PR #8741
- Runner: macOS 26.2 arm64, native local worktree; Node v26.0.0 and pnpm 10.24.0
- Remote: not applicable
- Transport/network: local filesystem only; no signer, credential, release, SSH host, publication,
desktop consumer, or production/default call
- Commands and results:
- `/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay*.test.mjs`
— PASS, 40 files / 228 tests in 8.25 seconds; 9.15 seconds wall; 188,055,552-byte maximum
RSS; 96,474,536-byte peak memory footprint; zero swaps.
- `/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 src/main/ssh/ssh-relay-artifact-schema.test.ts src/main/ssh/ssh-relay-manifest-signature.test.ts src/main/ssh/ssh-relay-release-asset.test.ts`
— PASS, 3 files / 48 tests in 528 ms; 1.19 seconds wall; 172,195,840-byte maximum RSS;
96,245,160-byte peak memory footprint; zero swaps.
- `/usr/bin/time -l pnpm run typecheck` — PASS in 8.46 seconds wall with
1,181,024,256-byte maximum RSS and zero swaps.
- `/usr/bin/time -l pnpm run lint` — PASS in 18.95 seconds wall with
2,071,773,184-byte maximum RSS and zero swaps. All 41 reliability gates, the 355-entry max-lines
ratchet, bundled-skill guides, localization catalog/parity, and localization coverage pass; all
26 warnings are in untouched existing files.
- Focused `node --check` for manifest validation, tuple source/test, and workflow test — PASS.
- Focused `pnpm exec oxfmt --check` for all ten touched code/workflow/plan files — PASS.
- `pnpm run check:max-lines-ratchet` — PASS, 355 grandfathered suppressions and no new bypasses.
- `git diff --check` — PASS with no output.
- Oracle proved: the post-sign producer and evidence-backed schema correction preserve every
release-side SSH-relay contract, desktop signature/asset parity, repository type/static/reliability
gates, localization, formatting, and file line budgets without a bypass. The user-owned
Node/npm resolver files are untouched.
- Does not prove: repository Node 24 or native-runner execution, real post-sign metadata/signatures,
oldest baselines, native trust, publication, desktop embedding, SSH behavior, or an enabled tuple.
- Checklist items satisfied: broad local regression/static gate for the active package.
- Follow-up: commit and push the authorized PR-contained package, then require all six exact-head
Node 24 native jobs before marking this package complete. Keep every production/default gate
unchanged and do not merge to `main`.
### E-M4-MANIFEST-TUPLE-CI-001 — Post-sign tuple producer passes all six native Node 24 jobs
- Date: 2026-07-15
- Commit SHA / PR: `cfea521c7c5f63a22c9895ac58931bc75577bb00`; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741)
- Workflow and source: exact-head SSH Relay Runtime Artifacts run
[29405619251](https://github.com/stablyai/orca/actions/runs/29405619251), checked out from the PR
head rather than GitHub's synthetic merge; Node v24.18.0
- Native runners and results:
- Linux x64: `ubuntu24` image `20260705.232.1`, job
[87320220032](https://github.com/stablyai/orca/actions/runs/29405619251/job/87320220032), PASS
in 3m55s; tuple suite 7/7 in 983 ms; artifact contracts 39 files / 224 tests in 5.53s.
- Linux arm64: `ubuntu24-arm64` image `20260714.61.1`, job
[87320220059](https://github.com/stablyai/orca/actions/runs/29405619251/job/87320220059), PASS
in 5m12s; tuple suite 7/7 in 790 ms; artifact contracts 39 files / 224 tests in 4.18s.
- macOS x64: `macos15` image `20260629.0276.1`, job
[87320220060](https://github.com/stablyai/orca/actions/runs/29405619251/job/87320220060), PASS
in 7m33s; tuple suite 7/7 in 4,779 ms; artifact contracts 39 files / 224 tests in 28.49s.
- macOS arm64: `macos15` image `20260706.0213.1`, job
[87320220121](https://github.com/stablyai/orca/actions/runs/29405619251/job/87320220121), PASS
in 4m28s; tuple suite 7/7 in 611 ms; artifact contracts 39 files / 224 tests in 6.44s.
- Windows x64: `win22` image `20260706.237.1`, job
[87320220042](https://github.com/stablyai/orca/actions/runs/29405619251/job/87320220042), PASS
in 5m21s; tuple suite 6 passed / 1 POSIX-only symlink case skipped in 2,789 ms; artifact contracts
40 files / 219 passed / 9 platform-skipped in 10.24s.
- Windows arm64: `win11-arm64` image `20260706.102.1`, job
[87320220035](https://github.com/stablyai/orca/actions/runs/29405619251/job/87320220035), PASS
in 10m08s; tuple suite 6 passed / 1 POSIX-only symlink case skipped in 3,664 ms; artifact contracts
40 files / 219 passed / 9 platform-skipped in 11.38s.
- Exact workflow command: both POSIX and Windows native paths syntax-check the tuple producer and
suite, then include `config/scripts/ssh-relay-runtime-manifest-tuple.test.mjs` in the purpose-named
Vitest artifact-contract command before building, inspecting, smoking, exact-comparing, and
uploading unpublished runtime evidence.
- Supplemental exact-head results:
- Linux x64 oldest-userland job
[87321748114](https://github.com/stablyai/orca/actions/runs/29405619251/job/87321748114) and Linux
arm64 job
[87321748173](https://github.com/stablyai/orca/actions/runs/29405619251/job/87321748173) pass.
- Windows x64 oldest-floor job
[87322254816](https://github.com/stablyai/orca/actions/runs/29405619251/job/87322254816) passes on
build 20348; smoke is 5,368.9343 ms, RSS is 49,872,896 bytes, and total verification is
6,606.8635 ms.
- Windows arm64 oldest-floor job
[87322254810](https://github.com/stablyai/orca/actions/runs/29405619251/job/87322254810) fails only
the declared OS-build oracle because hosted image `win11-arm64` is build 26200 instead of the
required 26100. Before that rejection, content ID
`sha256:02edf462be83c2864a89546d5344d348f9e07ce10964660342608a8c614e47db` passes full smoke in
6,054.4899 ms with 49,721,344-byte RSS and 8,402.627 ms total verification.
- Broad exact-head regressions: PR Checks
[29405619196](https://github.com/stablyai/orca/actions/runs/29405619196) job
[87320219351](https://github.com/stablyai/orca/actions/runs/29405619196/job/87320219351) passes;
Golden E2E [29405619242](https://github.com/stablyai/orca/actions/runs/29405619242) passes on Linux
job [87320219767](https://github.com/stablyai/orca/actions/runs/29405619242/job/87320219767) and
macOS job [87320219784](https://github.com/stablyai/orca/actions/runs/29405619242/job/87320219784).
- Oracle proved: syntax and the complete credential-free descriptor/native-verification contract run
under repository Node 24 on all six native target families without regressing runtime construction,
exact clean-build equality, bundled Node, PTY/watcher smoke, unpublished artifact upload, PR
verification, or Golden E2E. The expected workflow failure is solely the pre-existing Windows
arm64 exact-floor gap after its native build and tuple suite pass.
- Does not prove: semantic regeneration or validation of post-sign SBOM/provenance, a report from
real Apple/SignPath returned bytes, native trust, protected signing, publication/read-back,
desktop embedding, SSH transfer/install, or any enabled tuple.
- Checklist items satisfied: all-six exact-head CI gate for the credential-free post-sign tuple
producer and release/desktop exact-role parity. Broader Work Package 3 and Milestone 4 remain open.
- Follow-up: regenerate and semantically verify SBOM/provenance from the verified final runtime tree
before connecting signing credentials, publication, or a desktop consumer.
### E-M4-POST-SIGN-METADATA-LOCAL-RED-001 — Post-sign metadata boundary is absent
- Date: 2026-07-15
- Commit SHA / PR: uncommitted purpose-named test atop
`cfea521c7c5f63a22c9895ac58931bc75577bb00`; draft PR #8741
- Runner: macOS 26.2 arm64, native local worktree; repository Node/pnpm toolchain
- Remote: not applicable; disconnected credential-free release boundary
- Transport/network: local filesystem only; no signer, credential, release, SSH host, publication,
desktop consumer, or production/default call
- Command:
`pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-post-sign-metadata.test.mjs`
- Result: expected FAIL in 728 ms; one suite fails before collection because
`./ssh-relay-runtime-post-sign-metadata.mjs` does not exist.
- Oracle proved: the purpose-named writer/verifier for regenerating SBOM/provenance from the verified
final runtime tree and rejecting stale semantic bindings is absent; the test cannot pass through
the existing pre-sign metadata writer or tuple producer.
- Does not prove: implementation behavior, metadata semantics, Node 24/native-runner execution,
native trust, publication, desktop embedding, SSH behavior, or an enabled tuple.
- Checklist items satisfied: RED prerequisite for the active semantic post-sign metadata package.
- Follow-up: implement the disconnected boundary, integrate its semantic verifier before tuple
descriptor assembly, then run focused and broad regressions before exact-head native CI.
### E-M4-POST-SIGN-METADATA-LOCAL-001 — Final-tree metadata regeneration and semantic gate pass
- Date: 2026-07-15
- Commit SHA / PR: uncommitted package atop
`cfea521c7c5f63a22c9895ac58931bc75577bb00`; draft PR #8741
- Runner: macOS 26.2 arm64, native local worktree; Node v26.0.0 and pnpm 10.24.0
- Remote: not applicable; disconnected credential-free release boundary
- Transport/network: local filesystem and generated runtime archives only; no signer, credential,
release, SSH host, publication, desktop consumer, or production/default call
- Commands and results:
- Purpose-named post-sign metadata, provenance, SBOM, tuple-consumer, and workflow suite:
`pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-post-sign-metadata.test.mjs config/scripts/ssh-relay-runtime-provenance.test.mjs config/scripts/ssh-relay-runtime-sbom.test.mjs config/scripts/ssh-relay-runtime-manifest-tuple.test.mjs config/scripts/ssh-relay-runtime-workflow.test.mjs`
— PASS, 5 files / 22 tests. Repeated focused confirmation after strict provenance validation passes
3 files / 18 tests in 10.11 seconds test duration.
- `node --check` for the post-sign metadata module and suite — PASS.
- Oracle proved:
- one exclusive archive input and physically disjoint verified final tree produce only bounded,
exclusive SBOM and provenance assets; cancellation, extra input, tree mutation, and archive
mutation fail without leaving partial metadata;
- the SBOM is exactly reconstructed from the final identity and archive, including every file,
package owner, checksum, final content ID, and immutable archive-derived namespace;
- SLSA provenance binds the exact archive, tuple, Node version, final content ID, source epoch,
complete final native-file hashes, builder, runner, resolved dependencies, and exact validated
toolchain shape;
- stale SBOM content/file/archive data and stale provenance archive/content/native data fail before
tuple descriptor creation; the final tree and archive are reverified after metadata emission.
- Does not prove: Node 24/native-runner execution, a real Apple/SignPath returned tree, native trust,
protected signing, publication/read-back, desktop embedding, SSH transfer/install, or an enabled
tuple.
- Checklist items satisfied: local functional/semantic/workflow gate for the active post-sign
metadata package.
- Follow-up: run broad release, desktop parity, and repository static gates, then require all-six
exact-head Node 24 CI.
### E-M4-POST-SIGN-METADATA-LOCAL-002 — Broad post-sign metadata regressions and static gates pass
- Date: 2026-07-15
- Commit SHA / PR: same uncommitted package atop
`cfea521c7c5f63a22c9895ac58931bc75577bb00`; draft PR #8741
- Runner: macOS 26.2 arm64, native local worktree; Node v26.0.0 and pnpm 10.24.0
- Commands and results:
- `/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay*.test.mjs`
— PASS, 41 files / 233 tests; final observed 80.39-second Vitest duration / 86.12-second wall,
188,612,608-byte maximum RSS, 96,228,800-byte peak memory footprint, and zero swaps. An earlier
identical pass completed in 16.57 seconds / 19.66 seconds wall; the final run and lint were
heavily CPU-starved locally, so exact-head native CI is the timing oracle for this artifact-only
suite.
- `/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 src/main/ssh/ssh-relay-artifact-schema.test.ts src/main/ssh/ssh-relay-manifest-signature.test.ts src/main/ssh/ssh-relay-release-asset.test.ts`
— PASS, 3 files / 48 tests; 131,694,592-byte maximum RSS and zero swaps.
- `/usr/bin/time -l pnpm run typecheck` — PASS with 1,259,520,000-byte maximum RSS and zero swaps.
- `/usr/bin/time -l pnpm run lint` — PASS; 41 reliability gates, the 355-entry max-lines ratchet,
bundled-skill guides, localization catalog/parity, and localization coverage pass. All 26
warnings are in untouched existing files. The final run took 293.54 seconds wall with only 70.17
seconds user CPU and 701,821 involuntary context switches, confirming severe local scheduling
contention rather than a product-path latency measurement.
- Focused `pnpm exec oxfmt --check` for all eight code/workflow files — PASS.
- `git diff --check` — PASS with no output; both user-owned Node/npm resolver files have zero diff.
- Oracle proved: the post-sign metadata boundary and tuple semantic gate preserve all release-side
SSH-relay contracts, desktop schema/signature parity, repository type/static/reliability gates,
localization, formatting, and file line budgets without a bypass.
- Does not prove: repository Node 24/native-runner execution, real post-sign signatures/native trust,
publication, desktop embedding, SSH behavior, or an enabled tuple. Local wall time is not a
production latency baseline.
- Checklist items satisfied: broad local regression/static gate for the active package.
- Follow-up: commit and push, then require all six exact-head Node 24 native jobs before marking this
package complete. Keep every production/default gate unchanged and do not merge to `main`.
### E-M4-POST-SIGN-METADATA-CI-RED-001 — Windows rejects host-incompatible Linux tar fixture
- Date: 2026-07-15
- Commit SHA / PR: `1989e801af4a922a646d62ffd13e235615462975`; draft PR #8741
- Workflow/run: SSH relay runtime artifacts run
[29408355188](https://github.com/stablyai/orca/actions/runs/29408355188), Windows x64 job
[87329210635](https://github.com/stablyai/orca/actions/runs/29408355188/job/87329210635)
- Runner: GitHub-hosted `windows-2022` x64 image `20260706.237.1`, runner
`GitHub Actions 1000055651`; Node 24 workflow toolchain
- Remote: not applicable; disconnected credential-free artifact construction and tests
- Transport/network: GitHub dependency/source downloads used by the artifact workflow; no signer,
SSH host, publication, desktop consumer, production/default call, or enabled tuple
- Command: native job's release-side contract suite,
`pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay*.test.mjs`
- Result: expected evidence-gating FAIL; 40 files passed and 1 failed, 222 tests passed, 2 failed,
and 9 skipped in 11.23 seconds. Both failures are in the post-sign metadata suite:
“regenerates exact SBOM and provenance from the verified final tree” and “makes tuple consumers
reject stale SBOM and provenance bindings.” Strict archive inspection reports
`Runtime archive type or mode mismatch: bin/node`.
- Oracle proved: the new test fixture hardcodes a `linux-x64-glibc` tar identity but creates its
executable through the Windows filesystem, where `writeFile(..., { mode: 0o755 })` cannot supply
POSIX executable mode bits. The production archive inspector fails closed on the mismatch as
designed; this is not evidence to weaken archive type/mode validation.
- Does not prove: corrected cross-platform fixture behavior, all-six exact-head pass, real
post-sign signatures/native trust, publication, desktop embedding, SSH behavior, or an enabled
tuple.
- Checklist items satisfied: required exact-head CI RED and root-cause evidence for the active
correction; the semantic post-sign metadata package remains open.
- Follow-up: make the fixture select a platform-native tuple/archive/closure, rerun focused and broad
local gates, push the correction, and replace the exact-head all-six native evidence.
### E-M4-POST-SIGN-METADATA-CORRECTION-LOCAL-001 — Platform-native metadata fixture passes locally
- Date: 2026-07-15
- Commit SHA / PR: uncommitted correction atop
`1989e801af4a922a646d62ffd13e235615462975`; draft PR #8741
- Runner: macOS 26.2 arm64, native local worktree; Node v26.0.0 and pnpm 10.24.0
- Remote: not applicable; disconnected credential-free artifact contract tests
- Transport/network: local filesystem and generated Darwin tar archives only; no signer, SSH host,
publication, desktop consumer, production/default call, or enabled tuple
- Commands and results:
- Purpose-named correction:
`/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-post-sign-metadata.test.mjs`
— PASS, 1 file / 4 tests in 2.67 seconds test duration / 5.84 seconds wall;
132,399,104-byte maximum RSS, 96,589,128-byte peak memory footprint, and zero swaps.
- Semantic post-sign focused suite:
`/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-post-sign-metadata.test.mjs config/scripts/ssh-relay-runtime-provenance.test.mjs config/scripts/ssh-relay-runtime-sbom.test.mjs config/scripts/ssh-relay-runtime-manifest-tuple.test.mjs config/scripts/ssh-relay-runtime-workflow.test.mjs`
— PASS, 5 files / 22 tests in 12.70 seconds test duration / 18.96 seconds wall;
134,725,632-byte maximum RSS, 96,310,600-byte peak memory footprint, and zero swaps.
- Broad release suite:
`/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay*.test.mjs`
— PASS, 41 files / 233 tests in 35.93 seconds test duration / 39.61 seconds wall;
189,087,744-byte maximum RSS, 96,998,824-byte peak memory footprint, and zero swaps.
- Desktop schema/signature parity:
`/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 src/main/ssh/ssh-relay-artifact-schema.test.ts src/main/ssh/ssh-relay-manifest-signature.test.ts src/main/ssh/ssh-relay-release-asset.test.ts`
— PASS, 3 files / 48 tests in 2.02 seconds test duration / 3.70 seconds wall;
132,562,944-byte maximum RSS, 96,343,440-byte peak memory footprint, and zero swaps.
- `/usr/bin/time -l pnpm run typecheck` — PASS in 6.53 seconds wall with
1,215,283,200-byte maximum RSS and zero swaps.
- `/usr/bin/time -l pnpm run lint` — PASS in 63.09 seconds wall with the 41 reliability gates,
355-entry max-lines ratchet, bundled-skill guides, localization catalog/parity, and localization
coverage green. All 26 warnings are in untouched existing files.
- Focused `pnpm exec oxfmt --check`, `node --check`, `git diff --check`, and zero diff in both
user-owned Node/npm resolver files — PASS.
- Oracle proved: the fixture now selects the exact native tuple, runtime closure, archive family,
immutable Node release inputs, runner identity, and toolchain shape for all six supported
platform/architecture combinations. POSIX runners retain strict tar mode proof; Windows runners
use the ZIP writer that records declared Unix modes independently of Windows filesystem modes.
Production archive inspection is unchanged.
- Does not prove: Windows execution or any other replacement native-runner cell, real post-sign
signatures/native trust, publication, desktop embedding, SSH behavior, or an enabled tuple.
- Checklist items satisfied: local correction gate for E-M4-POST-SIGN-METADATA-CI-RED-001; the
semantic post-sign metadata package remains open pending all-six replacement CI.
- Follow-up: commit and push the correction, then require all six exact-head Node 24 native jobs.
### E-M4-POST-SIGN-METADATA-CI-001 — Platform-native post-sign metadata passes all six build jobs
- Date: 2026-07-15
- Commit SHA / PR: `9e81229274a3aa9a0fdb4db537e853e1cc9699ca`; draft PR #8741
- Workflow/run: SSH Relay Runtime Artifacts run
[29409257513](https://github.com/stablyai/orca/actions/runs/29409257513)
- Exact native build jobs and release-side suite results:
- Darwin arm64 job
[87332153920](https://github.com/stablyai/orca/actions/runs/29409257513/job/87332153920):
`macos-15` label, `macos-15-arm64` image `20260706.0213.1`, native ARM64; post-sign
metadata 4/4 in 623 ms; 40 files / 229 tests in 8.34 seconds; full build job PASS in 3m35s.
- Darwin x64 job
[87332153864](https://github.com/stablyai/orca/actions/runs/29409257513/job/87332153864):
`macos-15-intel` label, `macos-15` image `20260629.0276.1`, native X64; post-sign
metadata 4/4 in 1,673 ms; 40 files / 229 tests in 19.98 seconds; full build job PASS in 6m15s.
- Linux arm64 job
[87332153919](https://github.com/stablyai/orca/actions/runs/29409257513/job/87332153919):
`ubuntu-24.04-arm` image `20260714.61.1`, native ARM64; post-sign metadata 4/4 in 614 ms;
40 files / 229 tests in 4.90 seconds; full build job PASS in 4m33s.
- Linux x64 job
[87332153898](https://github.com/stablyai/orca/actions/runs/29409257513/job/87332153898):
`ubuntu-24.04` image `20260705.232.1`, native X64; post-sign metadata 4/4 in 880 ms;
40 files / 229 tests in 6.31 seconds; full build job PASS in 4m2s.
- Windows arm64 job
[87332153840](https://github.com/stablyai/orca/actions/runs/29409257513/job/87332153840):
`windows-11-arm` label, `windows-11-arm64` image `20260706.102.1`, native ARM64;
post-sign metadata 4/4 in 2,235 ms; 41 files / 224 passed / 9 skipped in 10.92 seconds;
full build job PASS in 8m37s.
- Windows x64 job
[87332153931](https://github.com/stablyai/orca/actions/runs/29409257513/job/87332153931):
`windows-2022` image `20260706.237.1`, native X64; post-sign metadata 4/4 in 1,773 ms;
41 files / 224 passed / 9 skipped in 9.93 seconds; full build job PASS in 5m16s.
- Every build job also completed exact Node input verification, two clean native builds, archive
inspection, byte-for-byte reproducibility, bundled Node execution, real PTY input/resize/exit,
watcher lifecycle smoke, and unpublished Actions artifact evidence upload.
- Adjacent exact-head regressions: PR Checks
[29409257568](https://github.com/stablyai/orca/actions/runs/29409257568) PASS in 14m51s;
Golden E2E [29409257636](https://github.com/stablyai/orca/actions/runs/29409257636) PASS.
- Overall artifact-run result: expected FAIL only in Windows arm64 oldest-floor job
[87333789968](https://github.com/stablyai/orca/actions/runs/29409257513/job/87333789968):
hosted build 26200 does not equal required build 26100. Windows x64 oldest-floor and both Linux
oldest-userland supplemental jobs pass. This declared floor gap is independent of the six green
metadata/build jobs and still prevents tuple enablement.
- Oracle proved: each platform/architecture pair creates and semantically verifies post-sign SBOM
and provenance using its native runtime closure, archive family, immutable Node inputs, runner
identity, and exact platform toolchain. Both Windows ZIP fixtures pass strict declared type/mode
inspection without weakening production validation, replacing E-M4-POST-SIGN-METADATA-CI-RED-001.
- Does not prove: real Apple/SignPath returned bytes, native trust, exact macOS 13.5 or Windows arm64
build-26100 execution, Linux kernel 4.18, protected manifest signing, publication/read-back,
desktop embedding, SSH transfer/install, or an enabled tuple.
- Checklist items satisfied: all-six exact-head native CI gate for semantic post-sign metadata. The
metadata package is closed; broader Work Package 3 and Milestone 4 remain open.
- Follow-up: add a credential-free reusable target-native build-prerequisite contract while keeping
release-cut, desktop builds, signing credentials, publication, and every tuple disconnected.
### E-M4-BUILD-PREREQUISITE-LOCAL-RED-001 — Reusable native build interface is absent
- Date: 2026-07-15
- Commit SHA / PR: uncommitted purpose-named test atop
`e7f447490`; draft PR #8741
- Runner: macOS 26.2 arm64, native local worktree; Node v26.0.0 and pnpm 10.24.0
- Remote: not applicable; static credential-free workflow contract
- Transport/network: local workflow files only; no Actions invocation, release-cut call, signer,
SSH host, publication, desktop consumer, production/default call, or enabled tuple
- Command:
`pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-build-prerequisite.test.mjs`
- Result: expected FAIL, 1 file / 1 test in 4.52 seconds. The exact assertion receives `undefined`
instead of an empty `workflow_call` contract.
- Oracle proved: the purpose-named reusable interface is absent, while the test source also defines
the required exact four-job native/baseline graph, read-only permissions, secret-free boundary,
exact source checkout, and release-cut/macOS-release disconnection contract.
- Does not prove: implementation, Actions schema acceptance, native-runner execution, production
release prerequisite behavior, signing, publication, desktop embedding, SSH behavior, or an
enabled tuple.
- Checklist items satisfied: RED prerequisite for the active reusable build-prerequisite package.
- Follow-up: expose the existing workflow through a credential-free `workflow_call`, wire this test
into both native contract-test families, and run focused/broad local gates before exact-head CI.
### E-M4-BUILD-PREREQUISITE-LOCAL-001 — Reusable native build interface is locally green
- Date: 2026-07-15
- Commit SHA / PR: uncommitted implementation atop
`e7f4474908af895cd9fbaccfc575d89f7ed6a6b2`; draft PR #8741
- Runner: macOS 26.2 arm64, native local worktree; Node v26.0.0 and pnpm 10.24.0
- Remote: not applicable; static credential-free workflow contract and local regression suites
- Transport/network: local workflow/source files only; no Actions invocation, release-cut call,
signer, SSH host, publication, desktop consumer, production/default call, or enabled tuple
- Commands and results:
- Focused prerequisite/workflow contract:
`/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-build-prerequisite.test.mjs config/scripts/ssh-relay-runtime-workflow.test.mjs`
— PASS, 2 files / 7 tests in 12.55 seconds test duration / 24.25 seconds wall;
131,104,768-byte maximum RSS, 96,540,048-byte peak memory footprint, and zero swaps.
- Broad release suite:
`/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay*.test.mjs`
— PASS, 42 files / 234 tests in 245.04 seconds test duration / 278.86 seconds wall;
185,352,192-byte maximum RSS and zero swaps. The unusually long local duration coincided with
severe host CPU contention; the exact-head native jobs remain the authoritative timing cells.
- Desktop schema/signature parity:
`/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 src/main/ssh/ssh-relay-artifact-schema.test.ts src/main/ssh/ssh-relay-manifest-signature.test.ts src/main/ssh/ssh-relay-release-asset.test.ts`
— PASS, 3 files / 48 tests in 7.69 seconds test duration / 28.07 seconds wall;
124,895,232-byte maximum RSS, 95,950,248-byte peak memory footprint, and zero swaps.
- `/usr/bin/time -l pnpm run typecheck` — PASS in 20.82 seconds wall with
1,253,785,600-byte maximum RSS.
- `/usr/bin/time -l pnpm run lint` — PASS in 401.52 seconds wall with
1,685,323,776-byte maximum RSS and zero swaps; all 41 reliability gates, the 355-entry max-lines
ratchet, bundled-skill guides, localization catalog/parity, and localization coverage pass. All
26 warnings are in untouched existing files.
- Focused `pnpm exec oxfmt --check`, `node --check`, `git diff --check`, and zero diff in both
user-owned Node/npm resolver files — PASS.
- Oracle proved: the existing exact four-job native/baseline graph is callable with an empty,
credential-free `workflow_call` interface; workflow permissions remain read-only, no job consumes
a secret, every job checks out the exact triggering SHA, and the test executes from both POSIX and
Windows native contract-test lists. `release-cut.yml` and `release-mac-build.yml` remain
disconnected, so this package cannot alter desktop release or product behavior.
- Does not prove: GitHub Actions schema acceptance, execution on any native runner, production
release prerequisite behavior, signing, exact oldest-floor execution, publication, desktop
embedding, SSH behavior, or an enabled tuple.
- Checklist items satisfied: local implementation/static/regression gate for the active reusable
build-prerequisite package. The package remains open pending all-six exact-head native CI.
- Follow-up: commit and push, then require the new prerequisite contract to pass in every native
build job; retain the known Windows arm64 build-26100 floor failure as a separate enablement gap.
### E-M4-BUILD-PREREQUISITE-CI-001 — Reusable prerequisite passes all six native build jobs
- Date: 2026-07-15
- Commit SHA / PR: `994daefabcf9fba8d8d614bb6246d189c34c6b3f`; draft PR #8741
- Workflow/run: SSH Relay Runtime Artifacts run
[29412010582](https://github.com/stablyai/orca/actions/runs/29412010582)
- Exact native build jobs and prerequisite/release-suite results:
- Darwin arm64 job
[87341066776](https://github.com/stablyai/orca/actions/runs/29412010582/job/87341066776):
`macos-15` label, `macos-15-arm64` image `20260706.0213.1`, native ARM64; prerequisite
1/1 in 24 ms; 41 files / 230 tests in 7.96 seconds; full build job PASS in 3m7s.
- Darwin x64 job
[87341066764](https://github.com/stablyai/orca/actions/runs/29412010582/job/87341066764):
`macos-15-intel` label, `macos-15` image `20260629.0276.1`, native X64; prerequisite
1/1 in 46 ms; 41 files / 230 tests in 24.02 seconds; full build job PASS in 6m56s.
- Linux arm64 job
[87341066762](https://github.com/stablyai/orca/actions/runs/29412010582/job/87341066762):
`ubuntu-24.04-arm` label, image `20260714.61.1`, native ARM64; prerequisite 1/1 in 25 ms;
41 files / 230 tests in 4.57 seconds; full build job PASS in 4m31s.
- Linux x64 job
[87341066775](https://github.com/stablyai/orca/actions/runs/29412010582/job/87341066775):
`ubuntu-24.04` label, image `20260705.232.1`, native X64; prerequisite 1/1 in 58 ms;
41 files / 230 tests in 6.11 seconds; full build job PASS in 3m39s.
- Windows arm64 job
[87341066730](https://github.com/stablyai/orca/actions/runs/29412010582/job/87341066730):
`windows-11-arm` label, `windows-11-arm64` image `20260706.102.1`, native ARM64;
prerequisite 1/1 in 31 ms; 42 files / 225 passed / 9 skipped in 13.29 seconds; full build job
PASS in 8m51s.
- Windows x64 job
[87341066835](https://github.com/stablyai/orca/actions/runs/29412010582/job/87341066835):
`windows-2022` image `20260706.237.1`, native X64; prerequisite 1/1 in 48 ms; 42 files /
225 passed / 9 skipped in 11.55 seconds; full build job PASS in 5m32s.
- Every build job checked out the exact source SHA and completed exact Node input verification, two
clean native builds, archive inspection, byte-for-byte reproducibility, bundled Node execution,
real PTY input/resize/exit, watcher lifecycle smoke, and unpublished evidence upload. The two
Linux oldest-userland supplemental jobs also pass: arm64 job
[87342399226](https://github.com/stablyai/orca/actions/runs/29412010582/job/87342399226)
in 58 seconds and x64 job
[87342399251](https://github.com/stablyai/orca/actions/runs/29412010582/job/87342399251)
in 1m2s. Windows x64 oldest-floor job
[87342761575](https://github.com/stablyai/orca/actions/runs/29412010582/job/87342761575)
passes in 1m35s.
- Adjacent exact-head regressions: PR Checks
[29412010603](https://github.com/stablyai/orca/actions/runs/29412010603) PASS in 13m49s.
Golden E2E [29412010624](https://github.com/stablyai/orca/actions/runs/29412010624) PASS after one
failed-job retry: macOS job 87341066363 passed first-attempt in 3m55s; Linux first-attempt job
87341066356 failed during dependency installation while compiling `node-pty`, before app build or
tests, while the immediately preceding exact head was green. The unchanged retry job 87343161455
passed dependency installation, app build, and Linux Golden tests in 4m29s.
- Overall artifact-run result: expected FAIL only in Windows arm64 oldest-floor job
[87342761223](https://github.com/stablyai/orca/actions/runs/29412010582/job/87342761223):
the contract requires build 26100 while the hosted runner reports `10.0.26200`. Platform and
architecture checks pass; the OS-build check fails closed. This declared floor gap remains a
tuple-enablement blocker independent of the six green build/prerequisite jobs.
- Oracle proved: GitHub accepts the credential-free callable interface and all six native jobs
execute its purpose-named contract. The exact four-job graph, read-only permissions, secret-free
boundary, exact source checkout, and release-workflow disconnection invariants hold on macOS,
Linux, and Windows x64/arm64. The callable graph still has no release or desktop consumer.
- Does not prove: a production release caller, real Apple/SignPath returned bytes, native trust,
exact macOS 13.5/Linux kernel 4.18/Windows arm64 build-26100 execution, protected manifest signing,
publication/read-back, desktop embedding, SSH transfer/install, or an enabled tuple.
- Checklist items satisfied: reusable target-native runtime build-prerequisite contract. Broader
Work Package 3 and Milestone 4 remain open.
- Follow-up: add a disconnected purpose-named platform-native signing-job workflow RED while
preserving every real-signing/native-trust, release-consumer, publication, and tuple gate.
### E-M4-NATIVE-SIGNING-WORKFLOW-LOCAL-RED-001 — Native signing workflow is absent
- Date: 2026-07-15
- Commit SHA / PR: uncommitted purpose-named test atop
`48ee5f5bb`; draft PR #8741
- Runner: macOS 26.2 arm64, native local worktree; Node v26.0.0 and pnpm 10.24.0
- Remote: not applicable; disconnected workflow contract test only
- Transport/network: local workflow/source files only; no GitHub Actions invocation, credential,
signer, SSH host, publication, desktop consumer, production/default call, or enabled tuple
- Command:
`/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-native-signing-workflow.test.mjs`
- Result: expected FAIL, 1 file / 1 test in 163 ms test duration / 0.98 seconds wall;
131,710,976-byte maximum RSS, 95,917,480-byte peak memory footprint, and zero swaps. The failure
is `ENOENT` for `.github/workflows/ssh-relay-runtime-native-signing.yml`.
- Oracle proved: no callable signing workflow exists. The RED defines a callable-only, read-only,
action-SHA-pinned two-job boundary over native Darwin/Windows x64/arm64 runners with bounded
timeouts and exact existing credential names, while asserting build/release consumers remain
disconnected.
- Does not prove: workflow implementation or schema acceptance, signing-payload finalization,
credential availability, Apple/SignPath invocation/approval, returned signed bytes, native trust,
aggregate/publication behavior, SSH behavior, or an enabled tuple.
- Checklist items satisfied: RED prerequisite for the active platform-native signing-job package.
- Follow-up: implement the exact post-return finalization capability and disconnected callable
workflow without connecting any release consumer; then run focused/broad local and credential-free
exact-head schema tests. Real signing/native-trust evidence remains separately required.
### E-M4-NATIVE-SIGNING-WORKFLOW-LOCAL-001 — Disconnected signing and finalization are locally green
- Date: 2026-07-15
- Commit SHA / PR: capability commit `d8d74d21442778e9bac672112528067542d19817` and disconnected
workflow commit `2a7083d278e7a14b5b159555df90b1e84a2a41e7`; draft PR #8741
- Runner: macOS 26.2 arm64, native local worktree; Node v26.0.0 and pnpm 10.24.0
- Remote: not applicable; credential-free local workflow, archive, signing-boundary, finalization,
metadata, and desktop-parity tests
- Transport/network: local files only. No GitHub Actions invocation, production signing credential,
Apple timestamp service, SignPath request, SSH host, publication, desktop consumer,
production/default call, or enabled tuple
- Commands and results:
- Focused signing/finalization/workflow suite:
`/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-archive-extraction.test.mjs config/scripts/ssh-relay-runtime-macos-signing.test.mjs config/scripts/ssh-relay-runtime-native-signing-finalization.test.mjs config/scripts/ssh-relay-runtime-native-signing-workflow.test.mjs config/scripts/ssh-relay-runtime-native-signing-payload.test.mjs config/scripts/ssh-relay-runtime-workflow.test.mjs`
— PASS, 6 files / 24 tests in 1.37 seconds test duration / 2.11 seconds wall;
167,133,184-byte maximum RSS, 96,064,912-byte peak memory footprint, and zero swaps.
- Broad release suite:
`/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay*.test.mjs`
— PASS, 46 files / 241 tests in 24.51 seconds test duration / 25.71 seconds wall;
189,956,096-byte maximum RSS, 96,359,896-byte peak memory footprint, and zero swaps.
- Desktop schema/signature parity:
`/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 src/main/ssh/ssh-relay-artifact-schema.test.ts src/main/ssh/ssh-relay-manifest-signature.test.ts src/main/ssh/ssh-relay-release-asset.test.ts`
— PASS, 3 files / 48 tests in 564 ms test duration / 1.27 seconds wall;
131,874,816-byte maximum RSS, 95,966,464-byte peak memory footprint, and zero swaps.
- `/usr/bin/time -l pnpm run typecheck` — PASS in 2.57 seconds wall with
1,225,637,888-byte maximum RSS, 96,114,016-byte peak memory footprint, and zero swaps.
- `/usr/bin/time -l pnpm run lint` — PASS in 27.02 seconds wall with
2,008,678,400-byte maximum RSS, 96,097,584-byte peak memory footprint, and zero swaps; all 41
reliability gates, the 355-entry max-lines ratchet, bundled-skill guides, localization
catalog/parity, and localization coverage pass. All 26 warnings are in untouched existing files.
- Focused `pnpm exec oxfmt --check`, `pnpm exec oxlint`, `node --check`, `git diff --check`, and
zero diff in both user-owned Node/npm resolver files — PASS.
- Oracle proved: a caller-only, read-only, SHA-pinned workflow defines exact Darwin and Windows
x64/arm64 signing jobs without a release or desktop consumer. The unsigned build archive is size-
and SHA-256-bound, strictly inspected, extracted into an exclusive directory, verified as a full
tree, and rechecked for mutation. The stage report is reconstructed from the authenticated source
identity; official Node never enters the signing payload. macOS invokes bounded argument-array
`codesign` over every exact non-Node native target from an ephemeral Developer ID keychain.
Windows uploads only the exact unsigned payload to the existing fixed SignPath project,
`release-signing` policy, and `windows-inner-binaries-zip` configuration, requires approver
notification, and bounds returned-artifact wait to four hours. Finalization accepts only the exact
changed returned tree, applies it into a new complete runtime, hashes the full tree, runs native
signature policy before bundled Node/PTY/watcher smoke, and only then creates final-content-ID
archive/SBOM/provenance/tuple assets. Any failure removes the complete candidate output. Both
native build test families execute the new credential-free contracts.
- Does not prove: GitHub Actions schema acceptance, Node 24 execution on any hosted runner, access to
Apple or SignPath secrets, a real Developer ID timestamp/signature, SignPath submission or manual
approval behavior, returned production bytes, notarization/Gatekeeper, Defender/WDAC, oldest
baselines, protected aggregate/manifest signing, publication/read-back, desktop embedding, SSH
transfer/install, or an enabled tuple. Synthetic codesign mutation and injected native reports in
local tests do not count as real signing or native-trust evidence.
- Checklist items satisfied: local implementation and credential-free regression prerequisite for
the active platform-native signing-job package. The Milestone 4 signing box remains open.
- Follow-up: commit and push this coherent package, require the purpose-named contracts on every
exact-head native build job, and record Actions schema/job evidence. Keep real protected
Apple/SignPath/native-trust rehearsals and every release/default consumer separately gated.
### E-M4-NATIVE-SIGNING-WORKFLOW-CI-RED-001 — Windows rejects non-native POSIX test fixtures
- Date: 2026-07-15
- Commit SHA / PR: `0c43b83e8260a252def164fe62d135177e79f56b`; draft PR #8741
- Workflow/run: SSH Relay Runtime Artifacts run
[29415080004](https://github.com/stablyai/orca/actions/runs/29415080004)
- Runners and failed jobs:
- Windows x64 job
[87351075144](https://github.com/stablyai/orca/actions/runs/29415080004/job/87351075144):
GitHub-hosted `windows-2022`, runner `GitHub Actions 1000055729`; contract-test step fails from
12:26:12Z through 12:26:39Z.
- Windows arm64 job
[87351075167](https://github.com/stablyai/orca/actions/runs/29415080004/job/87351075167):
GitHub-hosted `windows-11-arm`, runner `GitHub Actions 1000055732`; contract-test step fails from
12:28:14Z through 12:28:37Z.
- Remote/transport/network: GitHub-hosted native test runners only. Both failures occur before Node
release-input download, native runtime construction, artifact upload, signing credentials,
SignPath/Apple calls, SSH, publication, desktop consumption, or an enabled tuple.
- Result: expected CI RED in both Windows jobs. GitHub annotations identify the same two failures:
`ssh-relay-runtime-archive-extraction.test.mjs` and
`ssh-relay-runtime-native-signing-finalization.test.mjs` each construct a hardcoded Darwin tar
fixture, and strict archive inspection rejects `bin/node` with `Runtime archive type or mode
mismatch`. NTFS cannot materialize the fixture's declared POSIX executable mode. Darwin arm64,
Darwin x64, Linux arm64, and Linux x64 native build jobs all pass the new credential-free contracts
and complete build/inspection/smoke/upload on the same exact head. Golden E2E run 29415079993
passes.
- Oracle proved: GitHub accepts the new callable workflow schema and action pins; the failure is a
test-fixture portability defect rather than a production archive relaxation. The production
inspector retains exact mode enforcement and blocks both Windows jobs before any candidate output
can be built or uploaded.
- Correction commit: `85c70c5e902e6ff5725fa11de054d83f2b821850`.
- Correction and local proof: the archive reconstruction test now selects native
`win32-${process.arch}` ZIP fixtures on Windows and retains both tar and ZIP coverage on POSIX. The
finalization test does the same while preserving the real Windows policy shape: official Node,
three returned SignPath candidates, and two exact preserved upstream ConPTY files. Focused 3 files
/ 10 tests pass locally. The exact broad command
`/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay*.test.mjs`
passes 46 files / 241 tests in 20.07 seconds test duration / 22.43 seconds wall with
190,513,152-byte maximum RSS, 96,048,528-byte peak memory footprint, and zero swaps. Focused
`oxfmt`, `oxlint`, syntax, and `git diff --check` gates pass.
- Does not prove: corrected execution on either native Windows runner, a production signing job,
Apple/SignPath credentials or returned bytes, native trust, oldest baselines, protected aggregate,
publication/read-back, desktop embedding, SSH behavior, or an enabled tuple.
- Checklist items satisfied: required CI RED and locally green test-fixture-only correction for the
active signing workflow package. The package remains open pending replacement all-six exact-head
execution.
- Follow-up: commit and push the fixture-only correction, then require both Windows architectures
and all four POSIX jobs to pass on the replacement exact head. Do not weaken archive mode checks.
### E-M4-NATIVE-SIGNING-WORKFLOW-CI-001 — Corrected signing contracts pass all six native builds
- Date: 2026-07-15
- Owner: Codex implementation owner
- Commit SHA / PR: exact head `70b3892aefc31423ad30467ad5251c090842526a`; correction commit
`85c70c5e902e6ff5725fa11de054d83f2b821850`; draft PR
[#8741](https://github.com/stablyai/orca/pull/8741).
- Workflow/run: SSH Relay Runtime Artifacts
[29415642475](https://github.com/stablyai/orca/actions/runs/29415642475), 12:33:09Z–12:45:41Z.
This is a credential-free exact-head replacement for the required Windows RED. It does not call
the signing workflow or use repository secrets.
- Target-native build jobs and resolved images:
- Linux x64 job
[87352975773](https://github.com/stablyai/orca/actions/runs/29415642475/job/87352975773):
`ubuntu-24.04`, `ubuntu24` image `20260705.232.1`, X64, 12:33:13Z–12:38:05Z.
- Linux arm64 job
[87352975853](https://github.com/stablyai/orca/actions/runs/29415642475/job/87352975853):
`ubuntu-24.04-arm`, `ubuntu24-arm64` image `20260706.52.2`, ARM64,
12:33:16Z–12:37:57Z.
- macOS x64 job
[87352975950](https://github.com/stablyai/orca/actions/runs/29415642475/job/87352975950):
`macos-15-intel`, `macos15` image `20260629.0276.1`, X64,
12:33:14Z–12:39:14Z.
- macOS arm64 job
[87352975799](https://github.com/stablyai/orca/actions/runs/29415642475/job/87352975799):
`macos-15`, `macos15` image `20260706.0213.1`, ARM64, 12:33:14Z–12:37:31Z.
- Windows x64 job
[87352975877](https://github.com/stablyai/orca/actions/runs/29415642475/job/87352975877):
`windows-2022`, `win22` image `20260706.237.1`, X64, 12:33:13Z–12:38:30Z.
- Windows arm64 job
[87352975797](https://github.com/stablyai/orca/actions/runs/29415642475/job/87352975797):
`windows-11-arm`, `win11-arm64` image `20260706.102.1`, ARM64,
12:33:13Z–12:41:51Z.
- Contract results: every job checks out the exact 40-hex source and passes the new archive
reconstruction, signing-stage, returned-tree finalization, and callable-workflow contracts before
downloading Node inputs or constructing an artifact. Each POSIX job passes 45 files / 237 tests;
durations are 5.64 seconds on Linux x64, 5.45 seconds on Linux arm64, 10.95 seconds on macOS
arm64, and 24.06 seconds on macOS x64. Each Windows job passes 46 files / 232 tests with nine
declared non-Windows-applicable skips out of 241; durations are 11.63 seconds on x64 and 11.30
seconds on arm64. Both corrected Windows fixtures exercise the native ZIP/runtime policy while
POSIX retains exact tar-mode coverage; production archive mode validation is unchanged.
- Artifact oracle: all six jobs then complete two clean target-native builds, exact equality,
archive/tree inspection, bundled Node v24.18.0, PTY, watcher, source-signature/native-plan checks,
and unpublished artifact upload. Both supplemental Linux userland jobs pass:
[87354301778](https://github.com/stablyai/orca/actions/runs/29415642475/job/87354301778)
for x64 and
[87354301762](https://github.com/stablyai/orca/actions/runs/29415642475/job/87354301762)
for arm64. Windows x64 oldest-baseline job
[87354877657](https://github.com/stablyai/orca/actions/runs/29415642475/job/87354877657)
also passes.
- Expected retained failure: Windows arm64 baseline job
[87354877689](https://github.com/stablyai/orca/actions/runs/29415642475/job/87354877689)
fails closed only because the contract requires OS build 26100 while the hosted runner reports
`10.0.26200`. Before refusing qualification it authenticates the 60-entry / 42-file /
85,213,511-expanded-byte tree with content ID
`sha256:02edf462be83c2864a89546d5344d348f9e07ce10964660342608a8c614e47db`, runs bundled Node,
PTY resize/exit, and watcher create/update/delete/rename smoke, settles to two pipe handles after a
2,000 ms observation, and reports 5,877.1343 ms smoke time, 48,570,368-byte RSS, and 7,671.6441 ms
total verification. Platform and architecture checks pass; only the exact floor check is false.
- Adjacent exact-head regressions: Golden E2E
[29415642509](https://github.com/stablyai/orca/actions/runs/29415642509) passes both macOS and Linux
jobs. PR Checks [29415642512](https://github.com/stablyai/orca/actions/runs/29415642512) pass the
`verify` job from 12:33:13Z through 12:47:00Z. Both use the same exact head.
- Does not prove: real Apple/SignPath credentials, approval, returned signed bytes, native trust,
Gatekeeper/notarization, Defender/WDAC, macOS 13.5, Linux kernel 4.18, Windows arm64 build 26100,
protected manifest signing, release publication/read-back, desktop embedding, SSH
transfer/install, or an enabled tuple. No production/default consumer is connected and no artifact
is published.
- Checklist items satisfied: credential-free exact-head native execution prerequisite for the active
signing-job package. The Work Package 3 signing item remains open pending real protected signing
and native-trust evidence.
- Follow-up: add a purpose-named RED and manual-only rehearsal caller for the existing build and
signing workflows. Keep baseline qualification, release-cut, desktop consumers, publication, and
every tuple disconnected; a rehearsal must not convert the hosted Windows arm64 floor gap into a
pass.
### E-M4-NATIVE-SIGNING-REHEARSAL-LOCAL-RED-001 — Manual signing rehearsal caller is absent
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: uncommitted purpose-named contract test atop exact pushed head
`5b1a994a3`; draft PR #8741.
- Runner/remote/network: local macOS 26.2 arm64, Node v26.0.0 and pnpm 10.24.0. Local workflow files
only; no GitHub Actions dispatch, repository secret, Apple timestamp service, SignPath request,
manual approval, SSH host, publication, desktop consumer, or enabled tuple.
- Command:
`/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-native-signing-rehearsal-workflow.test.mjs`.
- Result: expected FAIL, 1 file / 1 test in 152 ms test duration / 1.00 second wall;
131,629,056-byte maximum RSS, 95,769,952-byte peak memory footprint, and zero swaps. The only
failure is `ENOENT` for
`.github/workflows/ssh-relay-runtime-native-signing-rehearsal.yml`.
- Oracle proved: no manual-only caller currently binds an explicit confirmation and exact selected
source to the existing credential-free native build outputs and callable signing workflow. The
RED also defines that oldest-baseline qualification remains default-on for ordinary artifact runs
but may be separately skipped by this signing rehearsal so the known hosted Windows-arm64 floor
mismatch cannot prevent collection of signed-byte evidence or be misreported as qualified.
- Does not prove: implementation, Actions schema acceptance, secret availability, real Apple or
SignPath signing, returned bytes, native trust, approval/timeout behavior, exact floors,
publication, desktop embedding, SSH behavior, or an enabled tuple.
- Follow-up: implement the exact manual caller and default-preserving qualification input, integrate
the contract into both native test families, and run focused plus broad credential-free local
proof before any dispatch.
### E-M4-NATIVE-SIGNING-REHEARSAL-LOCAL-001 — Manual rehearsal caller passes locally
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: local implementation atop exact pushed head `5b1a994a3`; draft PR #8741.
- Runner/remote/network: local macOS 26.2 arm64, Node v26.0.0 and pnpm 10.24.0. Local workflow files
and tests only; no Actions dispatch, repository secret, Apple timestamp service, SignPath request,
approval, SSH host, publication, desktop consumer, or enabled tuple.
- Intermediate contract RED: the first three-file implementation run passes the new rehearsal and
existing signing-workflow contracts but fails the older build-prerequisite contract because it
still requires an empty `workflow_call` interface. Result: 2 passed / 1 failed in 404 ms test /
1.16 seconds wall, 131,563,520-byte maximum RSS, 95,638,760-byte peak footprint, and zero swaps.
The correction makes that older contract require the exact Boolean input, safe `true` default,
and both default-preserving qualification conditions.
- Commands and final results:
- Focused caller/signing/build-prerequisite suite:
`/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-native-signing-rehearsal-workflow.test.mjs config/scripts/ssh-relay-runtime-native-signing-workflow.test.mjs config/scripts/ssh-relay-runtime-build-prerequisite.test.mjs`
— PASS, 3 files / 3 tests in 397 ms test / 1.12 seconds wall, 131,956,736-byte maximum RSS,
96,114,016-byte peak footprint, zero swaps.
- Broad runtime-release suite:
`/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay*.test.mjs`
— PASS, 47 files / 242 tests in 8.98 seconds test / 9.95 seconds wall,
188,628,992-byte maximum RSS, 95,900,928-byte peak footprint, zero swaps.
- Desktop manifest/signature parity:
`/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 src/main/ssh/ssh-relay-artifact-schema.test.ts src/main/ssh/ssh-relay-manifest-signature.test.ts src/main/ssh/ssh-relay-release-asset.test.ts`
— PASS, 3 files / 48 tests in 570 ms test / 1.27 seconds wall, 131,792,896-byte maximum RSS,
95,950,176-byte peak footprint, zero swaps.
- `/usr/bin/time -l pnpm run typecheck` — PASS in 2.15 seconds wall,
1,279,410,176-byte maximum RSS, 96,523,760-byte peak footprint, zero swaps.
- `/usr/bin/time -l pnpm run lint` — PASS in 9.90 seconds wall, 2,006,204,416-byte maximum RSS,
95,606,040-byte peak footprint, zero swaps. All 41 reliability gates, the 355-entry max-lines
ratchet, bundled-skill guides, localization catalog/parity, and localization coverage pass; all
26 warnings are in untouched existing files.
- Focused `oxfmt --check`, `oxlint`, both `node --check` commands, `git diff --check`, and zero diff
in both user-owned Node/npm resolver files — PASS.
- Oracle proved: only `workflow_dispatch` can enter the caller. The dispatch must supply the exact
lowercase 40-hex commit selected by GitHub plus the exact typed confirmation. Rehearsals serialize
and cannot auto-cancel after approval starts. Repository permissions remain read-only. The caller
invokes the existing credential-free native build, explicitly separates qualification supplements,
then invokes only the existing callable native-signing workflow with inherited secrets. Ordinary
pull-request, direct-dispatch, and reusable artifact calls retain baseline gates by default.
Release-cut and macOS desktop build remain disconnected, and the caller contains no release,
publication, desktop, or tuple path.
- Operational blocker and safe default: GitHub emits `workflow_dispatch` only for workflow files
present on the default branch. This new caller is unmerged by design, so it cannot be credential-
dispatched from the PR. Do not temporarily route repository secrets through the existing routine
artifact workflow. Keep credentials unused and record real signing/native trust only after a
separately authorized merge makes this reviewed caller dispatchable.
- Does not prove: GitHub schema acceptance at an exact pushed head, a live dispatch, secret
availability, Apple/SignPath request or approval, returned signed bytes, native trust,
Gatekeeper/notarization, Defender/WDAC, exact oldest floors, protected manifest signing,
publication/read-back, desktop embedding, SSH behavior, or an enabled tuple.
- Follow-up: commit/push and require both native contract families plus ordinary PR checks to pass at
the exact head. Attempting the caller by file after push may record GitHub's default-branch refusal
but must not use an alternate secret-bearing path. Continue the next independent disconnected
artifact-only package while the real signing gate remains open.
### E-M4-NATIVE-SIGNING-REHEARSAL-DISPATCH-BLOCKED-001 — Default branch blocks dispatch
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: exact pushed head `c2db2b62e544139176d0993b1340f9d0c706e017`; draft PR #8741.
- Command:
`gh workflow run ssh-relay-runtime-native-signing-rehearsal.yml --repo stablyai/orca --ref Jinwoo-H/bug-8450-ssh-relay-runtime-builds -f expected-source-sha=c2db2b62e544139176d0993b1340f9d0c706e017 -f 'confirmation=SIGN SSH RELAY RUNTIME ARTIFACTS'`.
- Result: expected refusal before run creation: `HTTP 404: workflow
ssh-relay-runtime-native-signing-rehearsal.yml not found on the default branch`. No Actions run,
job, artifact, secret read, Apple/SignPath request, approver notification, publication, or enabled
tuple was created.
- Oracle proved: the reviewed caller cannot be live-rehearsed while it exists only in this PR. The
user's no-merge boundary and GitHub's default-branch dispatch rule jointly gate real signing.
- Safe default: do not add a temporary secret-bearing path to an existing routine workflow. Keep the
caller reviewable in the PR, leave real signing/native trust open, and continue only independent
disconnected work until a separately authorized merge makes the workflow dispatchable.
- Does not prove: Actions schema execution, credential availability, signing, approval/timeout,
returned-byte identity, native trust, exact floors, publication, desktop embedding, SSH behavior,
or an enabled tuple.
### E-M4-NATIVE-SIGNING-REHEARSAL-CI-001 — Rehearsal contracts pass all six native builds
- Date: 2026-07-15
- Owner: Codex implementation owner
- Commit SHA / PR: exact head `c2db2b62e544139176d0993b1340f9d0c706e017`; capability commit
`c2db2b62e`; draft PR #8741.
- Workflow/run: SSH Relay Runtime Artifacts
[29417449971](https://github.com/stablyai/orca/actions/runs/29417449971),
13:00:47Z–13:15:32Z. Credential-free PR execution only; it does not invoke the manual rehearsal
caller or any signing credential.
- Target-native jobs and resolved images:
- Windows arm64
[87359106832](https://github.com/stablyai/orca/actions/runs/29417449971/job/87359106832):
`windows-11-arm`, `win11-arm64` image `20260714.109.1`, ARM64,
13:01:01Z–13:11:17Z.
- Windows x64
[87359106887](https://github.com/stablyai/orca/actions/runs/29417449971/job/87359106887):
`windows-2022`, `win22` image `20260714.244.1`, X64, 13:01:01Z–13:07:22Z.
- Linux x64
[87359106853](https://github.com/stablyai/orca/actions/runs/29417449971/job/87359106853):
`ubuntu-24.04`, `ubuntu24` image `20260705.232.1`, X64, 13:01:01Z–13:05:10Z.
- Linux arm64
[87359106916](https://github.com/stablyai/orca/actions/runs/29417449971/job/87359106916):
`ubuntu-24.04-arm`, `ubuntu24-arm64` image `20260714.61.1`, ARM64,
13:01:04Z–13:06:06Z.
- macOS x64
[87359106864](https://github.com/stablyai/orca/actions/runs/29417449971/job/87359106864):
`macos-15-intel`, `macos15` image `20260629.0276.1`, X64,
13:01:02Z–13:07:29Z.
- macOS arm64
[87359106894](https://github.com/stablyai/orca/actions/runs/29417449971/job/87359106894):
`macos-15`, `macos15` image `20260706.0213.1`, ARM64, 13:01:02Z–13:05:38Z.
- Contract results: each POSIX job passes 46 files / 238 tests, including the new caller contract;
durations are 6.42 seconds Linux x64, 6.18 seconds Linux arm64, 28.42 seconds macOS x64, and 11.49
seconds macOS arm64. Each Windows job passes 47 files / 233 tests with nine declared skips out of
242; durations are 15.23 seconds x64 and 14.23 seconds arm64. Every job then completes two exact
native builds, equality, inspection, Node/PTY/watcher smoke, and unpublished upload.
- Default-preservation oracle: both Linux supplements pass in jobs
[87360607215](https://github.com/stablyai/orca/actions/runs/29417449971/job/87360607215)
and [87360607155](https://github.com/stablyai/orca/actions/runs/29417449971/job/87360607155),
and Windows x64 baseline job
[87361449973](https://github.com/stablyai/orca/actions/runs/29417449971/job/87361449973)
passes. The ordinary PR call therefore retains qualification jobs by default.
- Expected retained failure: Windows arm64 baseline job
[87361450070](https://github.com/stablyai/orca/actions/runs/29417449971/job/87361450070)
authenticates the unchanged 85,213,511-byte tree/content ID, passes Node/PTY/watcher/resource
smoke in 6,177.5851 ms with 48,345,088-byte RSS and 7,942.833 ms total verification, then fails
only because `10.0.26200` is not required build 26100. Platform and architecture pass; exact OS
build fails closed.
- Adjacent exact-head regressions: PR Checks
[29417449960](https://github.com/stablyai/orca/actions/runs/29417449960) pass from
13:00:51Z–13:13:15Z. Golden E2E
[29417449936](https://github.com/stablyai/orca/actions/runs/29417449936) passes macOS and Linux.
- Does not prove: a dispatch of the new caller, any secret access, Apple/SignPath signing or approval,
returned signed bytes, native trust, exact oldest floors, protected manifest signing,
publication/read-back, desktop embedding, SSH behavior, or an enabled tuple.
- Checklist items satisfied: exact-head schema/contract and default-preservation CI prerequisite for
the manual rehearsal capability. The broader native-signing item remains open because real
signing/native trust is blocked.
- Follow-up: checkpoint this evidence, keep the dispatch blocker open, and begin the next
disconnected aggregate/manifest-signing job contract without credentials or production consumers.
### E-M4-LINUX-FINALIZATION-LOCAL-RED-001 — Linux aggregate-ready finalization is absent
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: uncommitted purpose-named test atop pushed head `0be32c5cc`; draft PR #8741.
- Runner/remote/network: local macOS 26.2 arm64, Node v26.0.0 and pnpm 10.24.0. Local test import
only; no Actions runner, credential, signer, SSH host, publication, desktop consumer, or enabled
tuple.
- Command:
`/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-linux-finalization.test.mjs`.
- Result: expected FAIL before collection because
`config/scripts/ssh-relay-runtime-linux-finalization.mjs` is absent; 157 ms Vitest / 0.89 seconds
wall, 131,891,200-byte maximum RSS, 96,048,480-byte peak footprint, zero swaps.
- Oracle proved: existing Linux build output has no capability that converts its already verified
hash-only runtime into the same exact four-file aggregate boundary emitted after macOS/Windows
signing. The RED defines Linux-only validation, verify-before-descriptor ordering, complete native
hash projection, exclusive output, failure cleanup, receipt binding, and strict CLI arguments.
- Does not prove: implementation, real runtime/archive execution, native CI, aggregate workflow,
manifest signing, publication, desktop embedding, SSH behavior, or an enabled tuple.
- Follow-up: implement the Linux-only finalizer, wire it into both Linux native build jobs, and run
focused/broad local gates before exact-head runner execution.
### E-M4-LINUX-FINALIZATION-LOCAL-001 — Linux aggregate-ready finalization passes locally
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: local implementation atop pushed head `0be32c5cc`; draft PR #8741.
- Runner/remote/network: local macOS 26.2 arm64, Node v26.0.0 and pnpm 10.24.0. Local generated
fixtures and workflow-source contracts only; no Linux runtime execution, Actions credential,
signer, SSH host, publication, desktop consumer, or enabled tuple.
- Implementation-iteration evidence: the first implementation run rejects the old abbreviated test
manifest through the production closure validator and rejects the non-Linux spoof before output;
the test is corrected to inject only the already-proven signing-plan dependency. Subsequent REDs
expose macOS `/var` → `/private/var` physical-path assumptions in the test; production comparison
is corrected to real paths before GREEN. No production closure, identity, or path validation is
weakened.
- Commands and final results:
- Focused finalizer/tuple/workflow suite:
`/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-linux-finalization.test.mjs config/scripts/ssh-relay-runtime-manifest-tuple.test.mjs config/scripts/ssh-relay-runtime-workflow.test.mjs`
— PASS, 3 files / 18 tests in 896 ms test / 1.59 seconds wall, 140,427,264-byte maximum RSS,
96,261,496-byte peak footprint, zero swaps. The final post-format rerun also passes 3/18 in
833 ms.
- Broad release suite:
`/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay*.test.mjs`
— PASS, 48 files / 246 tests in 8.61 seconds test / 9.56 seconds wall,
189,005,824-byte maximum RSS, 96,097,680-byte peak footprint, zero swaps.
- Desktop manifest/signature parity:
`/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 src/main/ssh/ssh-relay-artifact-schema.test.ts src/main/ssh/ssh-relay-manifest-signature.test.ts src/main/ssh/ssh-relay-release-asset.test.ts`
— PASS, 3 files / 48 tests in 504 ms test / 1.19 seconds wall, 131,973,120-byte maximum RSS,
96,097,584-byte peak footprint, zero swaps.
- `/usr/bin/time -l pnpm run typecheck` — PASS in 1.99 seconds wall,
1,254,457,344-byte maximum RSS, 95,835,440-byte peak footprint, zero swaps.
- `/usr/bin/time -l pnpm run lint` — PASS in 9.42 seconds wall, 2,000,797,696-byte maximum RSS,
95,720,656-byte peak footprint, zero swaps. All 41 reliability gates, 355-entry max-lines ratchet,
bundled-skill guides, localization catalog/parity, and localization coverage pass; all 26
warnings are in untouched existing files.
- Focused `node --check`, `oxlint`, `oxfmt --check`, `git diff --check`, and zero diff in the two
user-owned Node/npm resolver files — PASS.
- Oracle proved: only exact Linux identities from the named physical source output are accepted.
Source and exclusive output are physically disjoint; symlinked/empty/mutating input assets fail.
The existing archive/tree/bundled smoke runs before descriptor generation. The complete native
file report is derived from the validated hash-only plan, and the existing tuple producer rechecks
tree/archive/metadata before the descriptor. A receipt binds tuple/content identity, verification,
and exact aggregate input. Any failure removes all candidate output. Linux build jobs copy only the
descriptor/receipt into their existing unpublished evidence after success; ordinary baseline jobs
remain unchanged.
- Does not prove: execution on Linux x64/arm64, a real archive/tree/smoke through the new call,
aggregate workflow, manifest credential/signature, publication/read-back, desktop embedding, SSH
behavior, or an enabled tuple.
- Follow-up: commit/push and require both Linux native jobs plus all-six contract families to pass at
the exact head. Inspect the emitted descriptor/receipt before starting aggregate job wiring.
### E-M4-LINUX-FINALIZATION-CI-001 — Native Linux finalization emits inspected aggregate inputs
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: exact pushed head `91f59d19e5251fb7b6c9f6d397cd9cd82b43cbdf`; draft PR #8741.
- Workflow: [SSH Relay Runtime Artifacts run 29419759256](https://github.com/stablyai/orca/actions/runs/29419759256),
13:34:30Z–13:50:21Z. The workflow conclusion is the expected failure solely because the separately
declared Windows arm64 oldest-build gate rejects hosted 26200 versus required 26100 after runtime
verification. It is not reported as an all-green aggregate.
- Native build jobs: all six succeed — Linux arm64 87366900226 on `ubuntu-24.04-arm` in 4m50s;
Windows x64 87366900246 in 6m14s; macOS x64 87366900262 in 6m55s; macOS arm64 87366900276 in
4m59s; Windows arm64 87366900296 in 11m59s; and Linux x64 87366900347 on `ubuntu-24.04` in
4m10s. Each exact native family runs the purpose suite including Linux-finalization syntax and
tests; both Linux jobs report 47 files / 242 tests passed under Node 24.18.0.
- Supplemental gates: Linux x64 job 87368626081 and Linux arm64 job 87368626106 pass the
digest-pinned Rocky Linux glibc 2.28/libstdc++ 6.0.25 userland proof; the explicit kernel 4.18 gap
remains because hosted kernels are newer. Windows x64 baseline job 87369854311 passes. Windows
arm64 job 87369854133 authenticates and executes the runtime, records 6,242.0644 ms smoke,
48,771,072-byte RSS, and 10,149.9713 ms total verification, then fails only the exact OS-build
check (`10.0.26200` versus required 26100).
- Downloaded proof: `gh run download 29419759256 --repo stablyai/orca -n
ssh-relay-runtime-linux-x64-glibc -n ssh-relay-runtime-linux-arm64-glibc`. Artifact
[8344803641](https://github.com/stablyai/orca/actions/runs/29419759256/artifacts/8344803641)
is 29,292,240 bytes and artifact
[8344824674](https://github.com/stablyai/orca/actions/runs/29419759256/artifacts/8344824674)
is 28,222,689 bytes. Each contains exactly the runtime archive, identity, SBOM, provenance,
signing-stage evidence, `.manifest-tuple.json`, and `.linux-finalization.json` receipt expected by
the unpublished evidence contract.
- x64 receipt: tuple `linux-x64-glibc`, content
`sha256:fc63ca342a5990f460ec6d72262a8542173dab20ce03c9b9cfb755b1c6057e6d`, archive
`sha256:8b9e77fe5f33acbee4a2d532f0be564d8eceb36acaf22deec08cccdd14834d78`, descriptor
`sha256:855d83a9f0b0bb5878de335703c4398dc72420b220b31efb5786af59da0587ec`, 49 tree
entries / 34 files / 124,846,430 expanded bytes, 159.336194 ms smoke, 56,758,272-byte RSS, and
1,749.137209 ms final verification.
- arm64 receipt: tuple `linux-arm64-glibc`, content
`sha256:96f07f62af9b35304bb8ca0870ca4d8095e059bfa61dd1bc57e81b20f3fbca67`, archive
`sha256:f2bfe798097a24a113abd37d32008d542c1ed0772ed8ccce53fb51c807d84c3f`, descriptor
`sha256:253dac72cb97e32c6fa68f886ac7c73cf00b7a03b1e87d189c490559bf1c071e`, 49 tree
entries / 34 files / 122,865,324 expanded bytes, 188.430108 ms smoke, 52,727,808-byte RSS, and
1,700.548606 ms final verification.
- Adjacent regressions: [Golden E2E 29419759379](https://github.com/stablyai/orca/actions/runs/29419759379)
passes its macOS and Linux jobs at the exact head. PR Checks attempt 1 has the separately recorded
unrelated suite-order RED `E-M4-LINUX-FINALIZATION-PR-CHECKS-RED-001`; attempt 2 passes under
`E-M4-LINUX-FINALIZATION-PR-CHECKS-001`.
- Oracle proved: both real native Linux architectures execute the new verify-before-descriptor path,
preserve exact archive/tree/native hashes, run bundled Node/PTY/watcher smoke, emit the complete
hash-only native report, and upload receipts that bind exact aggregate inputs. The inspected
receipts agree with their descriptors, assets, tuple IDs, and content IDs.
- Does not prove: Linux kernel 4.18, native Apple/SignPath signing or trust, protected manifest
signing, aggregate workflow execution, publication/read-back, desktop embedding, SSH behavior,
performance parity, or any enabled tuple.
- Checklist items satisfied: Linux aggregate-ready prerequisite for the Work Package 3 aggregate
workflow. The broader aggregate/manifest-signing item remains open.
- Follow-up: implement the purpose-named callable/disconnected aggregate and protected signing
workflow contract. Do not connect release, desktop, publication, or tuple consumers.
### E-M4-LINUX-FINALIZATION-PR-CHECKS-RED-001 — Adjacent full suite exposes unrelated routing flake
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: exact pushed head `91f59d19e5251fb7b6c9f6d397cd9cd82b43cbdf`; draft PR #8741.
- Workflow: [PR Checks run 29419759287 attempt 1](https://github.com/stablyai/orca/actions/runs/29419759287),
job 87366900240. Lint, typecheck, Git compatibility, and every pre-test gate pass. The test step
reports 2,850 files / 29,944 tests passed, nine files / 55 tests skipped, and one failure after
421.95 seconds.
- Failure: untouched
`src/renderer/src/components/terminal-pane/pty-connection.test.ts` case `keeps Droid routing visible
through command-finished foreground confirmation` receives `csi-u` instead of `alt-enter` at line 5284. Neither the Linux finalizer nor its workflow edits touch that production/test domain.
- Focused command:
`pnpm exec vitest run --config config/vitest.config.ts src/renderer/src/components/terminal-pane/pty-connection.test.ts -t 'keeps Droid routing visible through command-finished foreground confirmation'`
— PASS locally, 1 file / 1 test with 423 skipped in 1.22 seconds.
- Oracle proved: the exact failure is identified and is not hidden by a blind retry; it is not a
Linux finalizer assertion. Exact-head attempt 2 was explicitly requested only after log inspection.
- Does not prove: that the unrelated test has no latent ordering defect.
- Follow-up: replacement attempt 2 passes under E-M4-LINUX-FINALIZATION-PR-CHECKS-001. Retain this
RED rather than erasing the observed suite-order failure.
### E-M4-LINUX-FINALIZATION-PR-CHECKS-001 — Exact-head full-suite replacement passes
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: exact pushed head `91f59d19e5251fb7b6c9f6d397cd9cd82b43cbdf`; draft PR #8741.
- Workflow: [PR Checks run 29419759287 attempt 2](https://github.com/stablyai/orca/actions/runs/29419759287),
job 87369995158, 13:47:10Z–14:01:35Z — PASS.
- Result: lint, reliability, max-lines, localization, typecheck, Git 2.25 compatibility, and all
other pre-test gates pass. The full suite passes 2,851 files / 29,945 tests with nine files / 55
tests skipped in 537.22 seconds. The unpacked Linux app builds, packaged daemon entry loads under
plain Node, and the packaged CLI `--help` smoke succeeds outside the repository.
- Oracle proved: the exact-head replacement is green, including the assertion that failed in
attempt 1, without any code or test change and without weakening the Linux finalizer contract.
- Does not prove: real Linux kernel 4.18, signing, publication, desktop embedding, SSH behavior, or
an enabled tuple.
- Follow-up: checkpoint the Linux finalization evidence and start the disconnected aggregate and
protected manifest-signing workflow RED.
### E-M4-PROTECTED-MANIFEST-WORKFLOW-LOCAL-RED-001 — Callable protected signing workflow is absent
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: uncommitted purpose-named test atop pushed head
`e5dfffaaa2df55b221c5ee30699ff8fe814b91aa`; draft PR #8741.
- Runner/remote/network: local macOS 26.2 arm64, Node v26.0.0 and pnpm 10.24.0. Static repository
workflow-source read only; no Actions runner, environment approval, secret, signer, artifact
download, release, desktop consumer, SSH host, or enabled tuple.
- Command:
`/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-manifest-signing-workflow.test.mjs`.
- Result: expected FAIL, 1 file / 1 test in 182 ms Vitest / 0.89 seconds wall,
131,743,744-byte maximum RSS, 95,966,656-byte peak footprint, zero swaps. The only failure is
`ENOENT` for `.github/workflows/ssh-relay-runtime-manifest-signing.yml`.
- Seed-signer prerequisite RED:
`/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-manifest-seed-signing.test.mjs`
— expected FAIL before collection because
`config/scripts/ssh-relay-runtime-manifest-seed-signing.mjs` is absent; 196 ms Vitest / 0.90
seconds wall, 132,022,272-byte maximum RSS, 96,228,776-byte peak footprint, zero swaps. The test
defines canonical request serialization, exact 32-byte base64 seed handling, signature-only
output, request/seed drift rejection, exclusive output cleanup, and symlink rejection.
- Oracle proved: no callable workflow currently enforces the required three-stage boundary: exact
six-artifact credential-free preparation; one protected `relay-runtime-manifest-signing` job with
the sole seed reference and signature-only output; then credential-free reconstruction and final
verification. The RED also requires SHA-pinned actions, strict timeouts, no wildcard artifact
merge, read-only permissions, and complete release/desktop/rehearsal disconnection.
- Does not prove: implementation, signer seed validation, file-based prepare/finalize behavior,
Actions execution, environment protection, real signatures, publication, desktop embedding, SSH
behavior, or an enabled tuple.
- Follow-up: implement the seed signer and exclusive filesystem prepare/finalize commands with
hostile-input tests, then add the callable workflow and make this contract green without
connecting any consumer.
### E-M4-PROTECTED-MANIFEST-SEED-LOCAL-001 — Protected seed signer passes locally
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: local implementation atop pushed head `e5dfffaaa2df55b221c5ee30699ff8fe814b91aa`;
draft PR #8741.
- Runner/remote/network: local macOS 26.2 arm64, Node v26.0.0 and pnpm 10.24.0. Test-only in-memory
Ed25519 seeds and local temporary files; no GitHub Environment, Actions secret, release, desktop
consumer, publication, SSH host, or enabled tuple.
- Focused command:
`/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-manifest-seed-signing.test.mjs config/scripts/ssh-relay-runtime-manifest-signing-handoff.test.mjs config/scripts/ssh-relay-runtime-manifest-assembly.test.mjs`
— PASS, 3 files / 20 tests in 638 ms Vitest / 1.30 seconds wall, 188,612,608-byte maximum RSS,
96,163,336-byte peak footprint, zero swaps.
- Broad release command excluding the deliberately still-red workflow-source test:
`/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 $(rg --files config/scripts | rg '/ssh-relay.*\\.test\\.mjs$' | rg -v 'ssh-relay-runtime-manifest-signing-workflow\\.test\\.mjs$')`
— PASS, 49 files / 255 tests in 8.54 seconds Vitest / 9.46 seconds wall,
188,858,368-byte maximum RSS, 96,523,568-byte peak footprint, zero swaps. The unfiltered 50-file
run passes the same 49 files / 255 tests and fails only the recorded missing-workflow RED.
- Desktop parity:
`/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1 src/main/ssh/ssh-relay-artifact-schema.test.ts src/main/ssh/ssh-relay-manifest-signature.test.ts src/main/ssh/ssh-relay-release-asset.test.ts`
— PASS, 3 files / 48 tests in 493 ms Vitest / 1.12 seconds wall, 131,858,432-byte maximum RSS,
96,032,120-byte peak footprint, zero swaps.
- Static results: `node --check`, focused `oxlint`, and focused `oxfmt --check` pass. `pnpm run
typecheck` passes in 1.88 seconds wall. Full `pnpm run lint` passes in 9.26 seconds wall with all 41
reliability gates, the 355-entry max-lines ratchet, bundled-skill, localization catalog/parity,
and localization coverage gates; all 26 warnings are in untouched existing files.
- Oracle proved: request artifacts contain only the exact canonical payload plus algorithm/hash/size
bindings; malformed fields, noncanonical base64, payload drift, and noncanonical manifest bytes
fail. Only a canonical base64 32-byte seed is accepted. Output contains exactly key ID plus the
detached 64-byte signature, is created in an exclusive directory, and is removed on failure.
Symlinked request files are rejected. Both POSIX and Windows native artifact contract families now
syntax-check and run the purpose suite without exposing a secret.
- Does not prove: a real GitHub Environment or seed, reviewer approval, the filesystem aggregate
prepare/finalize boundary, the callable workflow, Actions execution, publication, desktop
embedding, SSH behavior, or an enabled tuple.
- Follow-up: implement the exclusive six-artifact filesystem prepare/finalize command, including
receipt/path/mutation/accepted-key/signature/partial-output failures, before adding the callable
workflow.
### E-M4-MANIFEST-AGGREGATE-COMMAND-LOCAL-RED-001 — Six-artifact filesystem command is absent
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: uncommitted purpose-named test atop pushed head
`4180e04ac4e732f082dc576af69364325a678d2b`; draft PR #8741.
- Runner/remote/network: local macOS 26.2 arm64, Node v26.0.0 and pnpm 10.24.0. Generated local
fixtures only; no Actions runner, GitHub Environment, seed, release, desktop consumer, SSH host,
publication, or enabled tuple.
- Command: `pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1
config/scripts/ssh-relay-runtime-manifest-aggregate-command.test.mjs`.
- Result: expected FAIL, 1 suite / 0 tests collected in 225 ms. The only failure is module
resolution for absent `config/scripts/ssh-relay-runtime-manifest-aggregate-command.mjs`.
- Oracle proved: there is no file-based boundary that collects only the exact two flattened Linux
and four signed native artifacts, binds finalization receipts and accepted public keys, exposes
canonical bytes without credentials, independently recollects after signature return, verifies
the signature, and removes partial output on failure. The test defines missing/extra directory,
symlink, mutation, receipt drift, invalid-key, invalid-signature, and cleanup failures.
- Does not prove: implementation, real downloaded artifact inputs, Actions execution, protected
signing, publication, desktop embedding, SSH behavior, or an enabled tuple.
- Follow-up: implement the command and make this suite green before adding the callable workflow.
### E-M4-PROTECTED-MANIFEST-SEED-CI-001 — Seed signer passes all six native contract families
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: exact pushed head `4180e04ac4e732f082dc576af69364325a678d2b`; draft PR #8741.
- Workflow: [SSH Relay Runtime Artifacts run 29422587380](https://github.com/stablyai/orca/actions/runs/29422587380),
14:13:18Z–14:27:59Z. The workflow conclusion is the expected failure solely because Windows
arm64 hosted build 26200 does not equal the separately required build 26100 after successful
runtime execution.
- Native jobs: Linux arm64 87376626186, Linux x64 87376626194, macOS x64 87376626222, Windows arm64
87376626264, macOS arm64 87376626297, and Windows x64 87376626317 all pass. Linux/macOS report 48
files / 251 tests; Windows reports 49 files / 246 passed and nine skipped of 255. The delta from
the prior package is the protected seed-signing purpose suite under Node 24.18.0 on every family.
- Supplemental gates: Linux x64 87378044229, Linux arm64 87378044358, and Windows x64 87379238862
pass. Windows arm64 87379238661 fails only the retained 26200-versus-26100 floor assertion.
- Adjacent regressions: [PR Checks 29422587487](https://github.com/stablyai/orca/actions/runs/29422587487)
job 87376597444 passes from 14:13:22Z–14:26:30Z. [Golden E2E 29422587419](https://github.com/stablyai/orca/actions/runs/29422587419)
passes macOS job 87376596910 and Linux job 87376596912.
- Oracle proved: canonical request serialization and seed-signing failure contracts execute under
repository Node 24 on all target-native runner families without regressing builds, packaged
smoke, full PR checks, or Golden E2E.
- Does not prove: a real protected environment/seed, approval, filesystem aggregate command CI,
callable aggregate workflow, native signing/trust, oldest Windows arm64/macOS/Linux kernel
floors, publication, desktop embedding, SSH behavior, or an enabled tuple.
- Follow-up: checkpoint the locally green filesystem aggregate command and require it on the same
six native families before implementing the callable workflow.
### E-M4-MANIFEST-AGGREGATE-COMMAND-LOCAL-001 — Six-artifact prepare/finalize boundary passes locally
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: local implementation atop pushed head
`4180e04ac4e732f082dc576af69364325a678d2b`; draft PR #8741.
- Runner/remote/network: local macOS 26.2 arm64, Node v26.0.0 and pnpm 10.24.0. Six generated
aggregate-ready fixture directories and an in-memory Ed25519 test seed only; no Actions runner,
GitHub Environment, production key, release, desktop consumer, SSH host, publication, or enabled
tuple.
- Focused command: `pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1
config/scripts/ssh-relay-runtime-manifest-aggregate-command.test.mjs` — PASS, 1 file / 4 tests in
409 ms Vitest. A final cross-platform split rerun passes 1 file / 5 tests in 504 ms, preserving
the symlink case on POSIX while leaving all other hostile cases active on Windows. The suite covers
exact six-directory enumeration, flattened Linux versus signed
`assets/` + `evidence/` layouts, stable exclusive copies, finalization receipts, content and
descriptor bindings, duplicate names/tuples, missing/extra directories, symlinks, mutation,
invalid accepted keys, prepared drift, cancellation, invalid signatures, and failure cleanup.
- Broad release command: `rg --files config/scripts | rg
'/ssh-relay.*[.]test[.]mjs$' | rg -v
'ssh-relay-runtime-manifest-signing-workflow[.]test[.]mjs$' | xargs /usr/bin/time -l pnpm exec
vitest run --config config/vitest.config.ts --maxWorkers=1` — PASS, 50 files / 260 tests in 8.68
seconds Vitest / 9.56 seconds wall, 189,104,128-byte maximum RSS, 96,130,448-byte peak footprint,
zero swaps. The preceding unfiltered 51-file run passes all implemented suites and fails only the
recorded absent-workflow RED; its pre-split count was 50 files / 259 tests.
- Desktop parity and static gates: manifest schema/signature/release-asset parity passes 3 files / 48
tests; `pnpm run typecheck`, `node --check`, focused oxlint/formatting, and full `pnpm run lint`
pass. Full lint reports all 41 reliability gates, the 355-entry max-lines ratchet, bundled-skill,
localization catalog/parity, and localization coverage green; 26 warnings remain only in
untouched existing files.
- Oracle proved: accepted public keys are validated and hash-bound before a request is exposed. The
preparation phase copies and verifies only the four declared files from each exact finalization
receipt into exclusive staging. Finalization independently recollects all six inputs, compares
the complete prepared receipt/request, verifies the returned key/signature, emits the manifest
and evidence exclusively, and removes staging/partial output on every tested failure.
- Does not prove: actual downloaded native artifact directories, Node 24/native CI, a real protected
signer/environment/approval, the callable workflow, native signing/trust, publication, desktop
embedding, SSH behavior, or an enabled tuple.
- Follow-up: checkpoint and push this command, require it on all six exact-head native jobs, then
implement the still-red callable workflow without connecting release or product consumers.
### E-M4-MANIFEST-AGGREGATE-COMMAND-CI-001 — Filesystem aggregation passes all native families
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: exact pushed head `8cf80a0228ffa095beceec018a0de2e237b89e2d`; draft PR #8741.
- Workflow: [SSH Relay Runtime Artifacts run 29424084956](https://github.com/stablyai/orca/actions/runs/29424084956),
14:33:33Z–14:53:05Z. The expected workflow failure is solely Windows arm64 baseline job
87385641582: runtime verification passes in 8,318.1202 ms with 6,107.7828 ms smoke and
49,930,240-byte RSS, then the exact floor gate rejects observed build 26200 versus required 26100.
- Native jobs: macOS x64 87381843694, Linux arm64 87381843705, macOS arm64 87381843796, Linux x64
87381843825, Windows x64 87381843853, and Windows arm64 87381844294 all pass complete artifact
construction. POSIX reports 49 files / 256 tests. Windows reports 50 files / 250 passed and ten
skipped of 260; only the POSIX-only symlink case is skipped by the new command suite on Windows.
- Supplemental jobs: Linux arm64 87383766220, Linux x64 87383766265, and Windows x64 87385641378
pass. The sole Windows arm64 failure is the retained exact-build mismatch described above.
- Adjacent regressions: [PR Checks 29424084938](https://github.com/stablyai/orca/actions/runs/29424084938)
job 87381832092 passes 14:33:36Z–14:48:09Z. [Golden E2E 29424085004](https://github.com/stablyai/orca/actions/runs/29424085004)
passes macOS job 87381832460 and Linux job 87381832629.
- Oracle proved: every target-native Node 24 family executes the exact six-artifact collection,
accepted-key, canonical request, independent reconstruction, signature verification, hostile
input, cancellation, and cleanup suite without regressing runtime construction or adjacent CI.
- Does not prove: real downloaded signed macOS/Windows outputs, a provisioned accepted production
key, protected environment/seed/reviewer approval, live workflow execution, native trust, exact
oldest floors, publication, desktop embedding, SSH behavior, or an enabled tuple.
- Follow-up: implement the callable three-job workflow contract. Keep it disconnected and fail
closed while accepted production keys, the environment, and seed remain unprovisioned.
### E-M4-PROTECTED-MANIFEST-WORKFLOW-LOCAL-001 — Disconnected protected workflow contract passes locally
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: local implementation atop pushed head
`8cf80a0228ffa095beceec018a0de2e237b89e2d`; draft PR #8741.
- Runner/remote/network: local macOS 26.2 arm64, Node v26.0.0 and pnpm 10.24.0. Static workflow
parsing only; no Actions runner, artifact download, accepted production key, GitHub Environment,
seed, approval, release, desktop consumer, SSH host, publication, or enabled tuple.
- Focused command: `pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1
config/scripts/ssh-relay-runtime-manifest-signing-workflow.test.mjs` — PASS, 1 file / 1 test in
159 ms on the final contract/static-gate rerun (the first green implementation run passed in 169
ms).
- Broad release command: `/usr/bin/time -l sh -c "rg --files config/scripts | rg
'/ssh-relay.*[.]test[.]mjs$' | xargs pnpm exec vitest run --config config/vitest.config.ts
--maxWorkers=1"` — PASS, 51 files / 261 tests in 10.23 seconds Vitest / 11.41 seconds wall,
188,825,600-byte maximum RSS, zero swaps.
- Desktop parity/static results: manifest schema/signature/release-asset parity passes 3 files / 48
tests; typecheck, `node --check`, and workflow/source formatting pass. Full lint passes all 41
reliability gates, the 355-entry max-lines ratchet, bundled-skill, and localization gates; all 26
warnings remain in untouched existing files.
- Oracle proved: the reusable interface has only the exact source SHA, tag, timestamp, and protocol
inputs plus one required seed secret. Preparation and finalization are credential-free, download
six exact artifacts separately, and use 15-minute bounds. The sole five-minute protected job sees
no runtime artifacts, references the seed exactly once, and returns only key ID/signature. Final
reconstruction independently recollects all six inputs. Actions are SHA-pinned, permissions are
read-only, no wildcard merge/continue-on-error/write publication exists, and no release,
desktop, or rehearsal workflow calls it.
- Fail-closed provisioning gate: both credential-free stages reference the absent
`config/ssh-relay-runtime-manifest-accepted-keys.json`; the purpose test requires that absence so
no placeholder trust root can look provisioned. Consequently the workflow cannot expose a
signing request or reach the protected environment until a separately reviewed accepted key is
committed. The environment/seed/reviewer restrictions remain external and unprovisioned.
- Does not prove: GitHub accepts/executes the YAML, actual artifact downloads, accepted-key
provisioning, environment/tag policy, secret isolation at runtime, approval denial/timeout,
signature generation, final output, native trust, publication, desktop embedding, SSH behavior,
or an enabled tuple.
- Follow-up: checkpoint and push the workflow contract, require exact-head PR/native CI, and keep
live signing BLOCKED until accepted keys and the protected environment receive separate review.
### E-M4-PROTECTED-MANIFEST-WORKFLOW-CI-RED-001 — Ubuntu ARM dependency mirror is unreachable
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: exact pushed head `4979bc26c900b83b0f55bab6ebc2b540cde860fc`; draft PR #8741.
- Workflow/job: [SSH Relay Runtime Artifacts run 29426142423](https://github.com/stablyai/orca/actions/runs/29426142423),
first Linux arm64 job
[87388934005](https://github.com/stablyai/orca/actions/runs/29426142423/job/87388934005),
15:00:30Z–15:02:29Z.
- Runner/remote/network: GitHub-hosted `ubuntu-24.04-arm` image `20260706.52.2`, runner 2.335.1,
image provisioner `20260624.560`. This is a native arm64 artifact-build runner with public package
egress; no SSH remote, protected environment, signing seed, release, desktop consumer,
publication, or enabled tuple.
- Evidence command: `gh api repos/stablyai/orca/actions/jobs/87388934005/logs | rg -n -C 2
"Runner Image|Image:|Architecture|System:|ports\\.ubuntu\\.com|Failed to fetch|Unable to
fetch|exit code|Process completed"`.
- Result: expected infrastructure RED. `apt-get update` could not reach IPv6 or IPv4 endpoints for
`ports.ubuntu.com`; the later `build-essential_12.10ubuntu1_arm64.deb` fetch timed out and package
installation exited 100. Checkout, pnpm setup, Node 24.18.0 setup, and runner identity passed.
Source dependency installation and the runtime artifact contract tests were never reached, so no
implementation assertion failed and no test count or runtime metric exists for this attempt.
- Oracle proved: the job fails before producing evidence when its package mirror is unavailable;
this attempt cannot satisfy the Linux arm64 exact-head cell and must not be treated as a product
regression or erased by a replacement run.
- Does not prove: the protected-workflow contract on Linux arm64, artifact construction, baseline
smoke, signing, publication, desktop embedding, SSH behavior, or an enabled tuple.
- Follow-up: rerun only failed job 87388934005, retain this RED alongside the replacement job ID and
result, then collect exact purpose-suite counts for every native family plus PR Checks and Golden
E2E before closing E-M4-PROTECTED-MANIFEST-WORKFLOW-CI-001.
### E-M4-PROTECTED-MANIFEST-WORKFLOW-CI-RED-002 — Isolated Ubuntu ARM rerun reproduces port-80 failure
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: unchanged exact pushed head `4979bc26c900b83b0f55bab6ebc2b540cde860fc`; draft PR
#8741.
- Workflow/job: isolated attempt 2 of
[SSH Relay Runtime Artifacts run 29426142423](https://github.com/stablyai/orca/actions/runs/29426142423),
Linux arm64 replacement job
[87392977597](https://github.com/stablyai/orca/actions/runs/29426142423/job/87392977597),
15:16:05Z–15:20:13Z. Command: `gh run rerun --repo stablyai/orca --job 87388934005`.
- Runner/remote/network: GitHub-hosted `ubuntu-24.04-arm` image `20260706.52.2`, runner 2.335.1,
image provisioner `20260624.560`; the same image revision as the first attempt. Public package
egress only; no SSH remote, protected environment, signing seed, release, desktop consumer,
publication, or enabled tuple.
- Log command: `gh api repos/stablyai/orca/actions/jobs/87392977597/logs | rg -n -C 2
"Runner Image|Image:|Version:|ports\\.ubuntu\\.com|Failed to fetch|Unable to fetch|exit
code|Process completed"`.
- Result: infrastructure FAIL after 4 minutes 8 seconds. Ubuntu index acquisition spent about 150
seconds failing `http://ports.ubuntu.com:80`; the subsequent `build-essential` fetch also timed
out and `apt-get` exited 100. As in attempt 1, checkout, pnpm, Node 24.18.0, and runner identity
passed, while source dependencies and every implementation test were never reached.
- Oracle proved: a same-source isolated rerun does not recover the hosted ARM port-80 path. The
workflow currently lacks an authenticated mirror transport plus explicit per-request retry and
connection-time bounds; relying only on the 20-minute job timeout wastes runner time and leaves
the native proof cell empty.
- Does not prove: that HTTPS is reachable from the hosted runner, the bounded correction, runtime
contracts on Linux arm64, native build output, signing, publication, desktop embedding, SSH
behavior, or an enabled tuple.
- Follow-up: add a purpose assertion that fails against the current workflow, then use HTTPS,
bounded APT retries/connect timeouts, IPv4 selection, and bounded command settlement for hosted
Linux prerequisite acquisition. Require local focused/broad proof and a fresh exact-head native
run; keep both infrastructure RED attempts in the ledger.
### E-M4-LINUX-PREREQUISITE-TRANSPORT-LOCAL-RED-001 — Hosted Linux package acquisition is unbounded HTTP
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: uncommitted purpose assertion atop exact pushed head
`4979bc26c900b83b0f55bab6ebc2b540cde860fc`; draft PR #8741.
- Runner/remote/network: local macOS 26.2 arm64, Node v26.0.0 and pnpm 10.24.0. Static workflow YAML
parsing only; no APT request, Actions runner, SSH remote, protected environment, release,
publication, desktop consumer, or enabled tuple.
- Command: `/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1
config/scripts/ssh-relay-runtime-workflow.test.mjs`.
- Result: expected FAIL, 1 file / 1 failed and 6 passed of 7 tests in 180 ms Vitest / 0.86 seconds
wall, 131,989,504-byte maximum RSS, 96,196,008-byte peak footprint, zero swaps. The purpose
assertion receives only raw `sudo apt-get update` and `install` commands: no HTTPS mirror rewrite,
retry, per-request connection timeout, IPv4 selection, lock bound, or command settlement bound.
- Oracle proved: the workflow contract permits the exact unbounded port-80 behavior reproduced by
both native ARM attempts; the 20-minute job timeout is the only surrounding bound.
- Does not prove: a correction, runner HTTPS reachability, APT execution, runtime contracts, native
build output, signing, publication, desktop embedding, SSH behavior, or an enabled tuple.
- Follow-up: implement the narrowly planned HTTPS and bounded APT acquisition without changing any
runtime bytes or product/default behavior.
### E-M4-LINUX-PREREQUISITE-TRANSPORT-LOCAL-001 — HTTPS and bounded APT contract passes locally
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: local correction atop exact pushed head
`4979bc26c900b83b0f55bab6ebc2b540cde860fc`; draft PR #8741.
- Runner/remote/network: local macOS 26.2 arm64, Node v26.0.0 and pnpm 10.24.0. Static YAML and shell
syntax validation only; no APT request or Actions runner. No SSH remote, signing credential,
protected environment, release, publication, desktop consumer, or enabled tuple.
- Focused command: `/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts
--maxWorkers=1 config/scripts/ssh-relay-runtime-workflow.test.mjs` — PASS, 1 file / 7 tests in 165
ms Vitest / 0.82 seconds wall, 131,923,968-byte maximum RSS, 96,114,064-byte peak footprint, zero
swaps. The first post-implementation run failed only because the new test expected a literal
`/ubuntu-ports` suffix and prohibited the HTTP source string needed by the `sed` rewrite; the
corrected oracle asserts the exact HTTP-to-HTTPS transformation instead.
- Broad release command: `/usr/bin/time -l sh -c "rg --files config/scripts | rg
'/ssh-relay.*[.]test[.]mjs$' | xargs pnpm exec vitest run --config config/vitest.config.ts
--maxWorkers=1"` — PASS, 51 files / 262 tests in 11.73 seconds Vitest / 13.70 seconds wall,
189,661,184-byte maximum RSS, zero swaps.
- Desktop parity: `/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts
--maxWorkers=1 src/main/ssh/ssh-relay-artifact-schema.test.ts
src/main/ssh/ssh-relay-manifest-signature.test.ts src/main/ssh/ssh-relay-release-asset.test.ts` —
PASS, 3 files / 48 tests in 1.87 seconds Vitest / 3.49 seconds wall, 132,857,856-byte maximum RSS,
96,998,704-byte peak footprint, zero swaps.
- Static gates: `pnpm run typecheck` passes. Full `pnpm run lint` passes all 41 reliability gates,
the 355-entry max-lines ratchet, bundled-skill, localization catalog/parity, and localization
coverage gates; all 26 warnings remain in untouched existing files. Parsed install-step shell
source passes `bash -n`; focused five-file `oxfmt --check` and `git diff --check` pass.
- Oracle proved: Ubuntu ports, archive, security, and Azure archive domains are rewritten from HTTP
to HTTPS before APT. Both update and install use three retries, 15-second HTTP/HTTPS connection
timeouts, forced IPv4, a 60-second package-lock wait, a 180-second TERM bound, and a 15-second KILL
settlement. Nonzero exit or exhaustion still aborts the native job under `set -euo pipefail`.
Runtime construction, signing, release, desktop, SSH, and product/default paths are unchanged.
- Does not prove: HTTPS reachability or package installation on GitHub Linux x64/arm64, exact-head
Node 24 execution, artifact construction, native smoke, signing, publication, desktop embedding,
SSH behavior, or an enabled tuple.
- Follow-up: checkpoint and push, then require fresh exact-head Linux x64/arm64 plus all other native
contracts, PR Checks, and Golden E2E. Retain both port-80 RED attempts in the final evidence.
### E-M4-LINUX-PREREQUISITE-HTTPS-CI-RED-001 — ARM runner cannot reach bounded HTTPS mirror
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: exact pushed head `c9ffa26a90751fb0941e44066c36722d9c6ee49d`; draft PR #8741.
- Workflow/job: [SSH Relay Runtime Artifacts run 29428082375](https://github.com/stablyai/orca/actions/runs/29428082375),
Linux arm64 job
[87395626746](https://github.com/stablyai/orca/actions/runs/29428082375/job/87395626746),
15:26:30Z–15:30:10Z.
- Runner/remote/network: GitHub-hosted `ubuntu-24.04-arm` image `20260706.52.2`, runner 2.335.1,
image provisioner `20260624.560`; the same image revision as both port-80 REDs. Public package
egress only; no SSH remote, protected environment, signing seed, release, desktop consumer,
publication, or enabled tuple.
- Log command: `gh api repos/stablyai/orca/actions/jobs/87395626746/logs | rg -n -C 3
"Runner Image|Image:|Version:|https://ports\\.ubuntu\\.com|Ign:|Err:|Failed to fetch|exit
code 124|Process completed|Terminated"`.
- Result: expected CI RED. The HTTP-to-HTTPS source rewrite executes, then bounded APT update reaches
its 180-second TERM limit and 15-second KILL settlement; the job exits 124 after 3 minutes 40
seconds. Source dependencies and every implementation test are never reached. In the same run,
Linux x64 job 87395626849 crosses the identical prerequisite step and proceeds to runtime build.
- Oracle proved: the command-level settlement correction works and materially reduces the previous
unbounded wait, but HTTPS is not a sufficient availability assumption for this hosted ARM image.
Always contacting the mirror is unnecessary when the runner already contains the required
compiler and verification primitives.
- Does not prove: which required commands are preinstalled, compiler/linker execution, the
capability-first refinement, implementation tests on Linux arm64, artifact construction, signing,
publication, desktop embedding, SSH behavior, or an enabled tuple.
- Follow-up: require exact command presence, CA roots, and executable C/C++ compile/link/run probes
before skipping APT; keep the bounded HTTPS path only for genuinely missing prerequisites. Add a
purpose RED first and require a fresh exact-head native run after local proof.
### E-M4-LINUX-PREREQUISITE-CAPABILITY-LOCAL-RED-001 — Capability-first gate is absent
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: uncommitted purpose assertion atop exact pushed head
`c9ffa26a90751fb0941e44066c36722d9c6ee49d`; draft PR #8741.
- Runner/remote/network: local macOS 26.2 arm64, Node v26.0.0 and pnpm 10.24.0. Static workflow YAML
parsing only; no Linux compiler, APT request, Actions runner, SSH remote, protected environment,
release, publication, desktop consumer, or enabled tuple.
- Command: `/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1
config/scripts/ssh-relay-runtime-workflow.test.mjs`.
- Result: expected FAIL, 1 file / 1 failed and 6 passed of 7 tests in 185 ms Vitest / 0.85 seconds
wall, 131,629,056-byte maximum RSS, 95,851,968-byte peak footprint, zero swaps. The sole failure
shows no required-command list, CA-root gate, missing-requirements branch, or C/C++ probe; APT is
always invoked.
- Oracle proved: the workflow cannot use a complete preinstalled runner toolchain while package
mirrors are unavailable and therefore repeats a network dependency that is not inherently needed
for every build.
- Does not prove: implementation, actual preinstalled capabilities, native compile/link/execute,
APT fallback, artifact construction, signing, publication, desktop embedding, SSH behavior, or an
enabled tuple.
- Follow-up: implement the exact capability gate and preserve fail-closed bounded fallback for any
missing or broken prerequisite.
### E-M4-LINUX-PREREQUISITE-CAPABILITY-LOCAL-001 — Capability probes and conditional fallback pass locally
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: local correction atop exact pushed head
`c9ffa26a90751fb0941e44066c36722d9c6ee49d`; draft PR #8741.
- Runner/remote/network: local macOS 26.2 arm64, Node v26.0.0 and pnpm 10.24.0. Static YAML and shell
syntax only; native Linux probe execution remains CI evidence. No APT request, SSH remote,
protected environment, signing seed, release, publication, desktop consumer, or enabled tuple.
- Focused command: `/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts
--maxWorkers=1 config/scripts/ssh-relay-runtime-workflow.test.mjs` plus parsed install-step
`bash -n` — PASS, 1 file / 7 tests in 196 ms Vitest / 0.83 seconds wall, 131,923,968-byte maximum
RSS, 96,130,472-byte peak footprint, zero swaps. The subsequent stronger order assertions also
pass inside the broad suite.
- Broad release command: `/usr/bin/time -l sh -c "rg --files config/scripts | rg
'/ssh-relay.*[.]test[.]mjs$' | xargs pnpm exec vitest run --config config/vitest.config.ts
--maxWorkers=1"` — PASS, 51 files / 262 tests in 11.17 seconds Vitest / 13.03 seconds wall,
188,973,056-byte maximum RSS, zero swaps.
- Desktop parity: `/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts
--maxWorkers=1 src/main/ssh/ssh-relay-artifact-schema.test.ts
src/main/ssh/ssh-relay-manifest-signature.test.ts src/main/ssh/ssh-relay-release-asset.test.ts` —
PASS, 3 files / 48 tests in 1.47 seconds Vitest / 2.97 seconds wall, 131,809,280-byte maximum RSS,
95,917,312-byte peak footprint, zero swaps.
- Static gates: `pnpm run typecheck` passes. Full `pnpm run lint` passes all 41 reliability gates,
the 355-entry max-lines ratchet, bundled-skill, localization catalog/parity, and localization
coverage gates; all 26 warnings remain in untouched existing files.
- Oracle proved: command presence covers `cc`, `c++`, `make`, `ar`, `ld`, `strip`, `curl`, `gpg`,
`gpgv`, `python3`, and `xz`, plus the system CA root. Native C and C++ source is compiled, linked,
and executed before APT may be skipped. Any absent command, CA root, or failed toolchain probe
enters the bounded HTTPS branch; final command, CA, and both executable probes run again after any
fallback. Temporary probe files are removed on every exit. Nonzero probe/install status aborts the
job under `set -euo pipefail`.
- Does not prove: actual command availability or probe execution on GitHub Linux x64/arm64,
conditional APT avoidance, exact-head Node 24 tests, artifact construction, signing, publication,
desktop embedding, SSH behavior, or an enabled tuple.
- Follow-up: checkpoint and push, then require fresh exact-head Linux x64/arm64 proof plus all other
native contracts, PR Checks, and Golden E2E. Retain all three mirror REDs and the bounded-settlement
result.
### E-M4-LINUX-PREREQUISITE-CAPABILITY-CI-001 — Native Linux capability gates avoid unavailable mirrors
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: exact pushed head `bb4b527e4ea030cbd94f11ca9b6e284900ab8c8a`; draft PR #8741.
- Workflow/jobs: [SSH Relay Runtime Artifacts run 29428772206](https://github.com/stablyai/orca/actions/runs/29428772206),
15:35:38Z–15:49:34Z. Linux x64 job
[87398040874](https://github.com/stablyai/orca/actions/runs/29428772206/job/87398040874)
passes in 4m39s; Linux arm64 job
[87398040969](https://github.com/stablyai/orca/actions/runs/29428772206/job/87398040969)
passes in 4m14s.
- Runner/remote/network: GitHub-hosted Ubuntu 24.04.4, runner 2.335.1. X64 uses
`ubuntu-24.04` image `20260714.240.1`, provisioner `20260707.563`, Azure `westus`; arm64 uses
`ubuntu-24.04-arm` image `20260706.52.2`, provisioner `20260624.560`, Azure `northcentralus`.
There is no SSH remote, protected environment, signing seed, release, desktop consumer,
publication, or enabled tuple.
- Log command: `gh run view 29428772206 --repo stablyai/orca --log` followed by job-scoped `rg` for
runner identity, prerequisite-step boundaries, `missing Linux prerequisites`, test counts, and
durations.
- Result: PASS. The x64 gate runs from 15:36:34.048Z until the next step at 15:36:38.449Z; arm64
runs from 15:36:22.134Z until the next step at 15:36:26.177Z. In each complete job log, the exact
text `missing Linux prerequisites` appears only once in the echoed shell source and never as
runtime output, so neither runner enters APT. Native C and C++ compile/link/execute probes, final revalidation,
dependency installation, both clean runtime builds, exact equality, bundled Node, PTY/watcher
smoke, metadata, aggregate-ready finalization, and artifact upload all pass.
- Contract counts: each Linux job passes 50 files / 258 tests. Vitest duration is 8.12s on x64 and
6.42s on arm64. Both Linux oldest-userland supplements pass: arm64 job 87399667498 in 1m05s and
x64 job 87399667523 in 52s.
- Adjacent exact-head evidence: macOS x64 job 87398040917 passes in 6m21s (50 files / 258 tests,
28.75s Vitest), macOS arm64 job 87398040906 passes in 3m30s (50 / 258, 7.71s), Windows x64 job
87398040936 passes in 5m10s (51 files / 252 passed plus 10 skipped of 262, 11.49s), and Windows
arm64 job 87398041157 passes in 9m17s (51 / 252 plus 10 skipped, 13.70s). Windows x64 floor job
87400400656 passes in 2m11s. Windows arm64 floor job 87400400701 executes the runtime successfully
and then fails exactly because hosted build 26200 is not the required build 26100.
- Oracle proved: both GitHub Linux architectures possess and can execute the declared compiler,
linker, archive, strip, crypto, download, Python, XZ, and CA capabilities without package egress;
unavailable mirrors no longer block a complete native artifact job. A genuinely absent or broken
capability still enters the bounded HTTPS fallback and fails closed if installation cannot settle.
- Does not prove: the missing-capability APT success branch, Linux kernel 4.18, native signing/trust,
protected manifest signing, release publication/read-back, desktop embedding, SSH transfer/install,
packaged RPC behavior, performance against legacy, or any enabled tuple.
### E-M4-PROTECTED-MANIFEST-WORKFLOW-CI-001 — Protected workflow source contract passes all six native jobs
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source and jobs: exact pushed head `bb4b527e4ea030cbd94f11ca9b6e284900ab8c8a` in artifact run
[29428772206](https://github.com/stablyai/orca/actions/runs/29428772206); build jobs
87398040874, 87398040969, 87398040917, 87398040906, 87398040936, and 87398041157.
- Native runners: Linux x64 `ubuntu-24.04` image `20260714.240.1`; Linux arm64
`ubuntu-24.04-arm` `20260706.52.2`; macOS x64 `macos-15` `20260629.0276.1` on macOS 15.7.7;
macOS arm64 `macos-15-arm64` `20260706.0213.1` on macOS 15.7.7; Windows x64 `windows-2022`
`20260706.237.1` on Windows Server 2022 build 20348; Windows arm64 `windows-11-arm64`
`20260706.102.1` on Windows 11 build 26200. Every job uses runner 2.335.1 and Node 24.18.0.
- Result: PASS. `config/scripts/ssh-relay-runtime-manifest-signing-workflow.test.mjs` passes 1/1 on
Linux x64 in 44ms, Linux arm64 in 27ms, macOS x64 in 67ms, macOS arm64 in 15ms, Windows x64 in
45ms, and Windows arm64 in 30ms. The all-six broad counts and durations are recorded in
E-M4-LINUX-PREREQUISITE-CAPABILITY-CI-001.
- Adjacent exact-head workflows: PR Checks run
[29428772127](https://github.com/stablyai/orca/actions/runs/29428772127), job 87398002184, passes
15:35:42Z–15:49:26Z. Golden E2E run
[29428772389](https://github.com/stablyai/orca/actions/runs/29428772389) passes Linux job
87398002948 and macOS job 87398003007.
- Oracle proved: the callable workflow YAML parses identically on every target-native runner family;
accepts only the four exact inputs and one required seed; downloads six explicit artifacts in both
credential-free stages; exposes no runtime artifacts to the signer; exposes the seed only to the
environment-gated signer; accepts only the signature result; uses SHA-pinned actions and strict
job bounds; omits write permissions and publication commands; has no accepted-key placeholder;
and remains disconnected from release-cut, macOS release, and native-signing rehearsal consumers.
- Does not prove: workflow-call execution, environment/tag/reviewer policy, seed availability or
secrecy at runtime, approval denial/timeout, a real signature, accepted production keys, native
signing/trust, aggregate artifact passage, publication/read-back, desktop embedding, SSH behavior,
or any enabled tuple. Those gates remain open and fail closed.
### E-M4-DRAFT-UPLOAD-LOCAL-RED-001 — Bounded immutable draft uploader is absent
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: uncommitted purpose suite atop exact pushed head
`9b83971866cd5f7fc71de20a3e09ab2a120e01bd`; draft PR #8741.
- Runner/remote/network: local macOS 26.2 arm64, Node v26.0.0 and pnpm 10.24.0. Local temporary
files and injected responses only; no GitHub request, release write, credential, signing service,
SSH remote, desktop consumer, publication, or enabled tuple.
- Command: `/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts --maxWorkers=1
config/scripts/ssh-relay-runtime-draft-upload.test.mjs`.
- Result: expected RED. The one suite fails before collecting tests because
`ssh-relay-runtime-draft-upload.mjs` does not exist. Vitest reports 143ms; wall time is 0.90s,
maximum RSS 131,727,360 bytes, peak footprint 95,819,008 bytes, and zero swaps.
- Oracle proved: the worktree has immutable stage, recovery-planning, and read-back contracts but no
executable boundary that hashes local files, authenticates exact-draft metadata, safely uploads
missing bytes, or reconciles an uncertain POST before retry.
- Does not prove: implementation, real GitHub behavior, a release write, retry settlement, partial
draft recovery, read-back, archive execution, publication, desktop embedding, SSH behavior, or an
enabled tuple.
### E-M4-DRAFT-UPLOAD-LOCAL-001 — Exact-byte upload and partial-draft recovery pass locally
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: implementation commits `8d9013cd106734ecd979f785b515dd9640841330` and
`b37cacecf8f1c865f09c118f274ab62302e951ad`; draft PR #8741.
- Runner/remote/network: local macOS 26.2 arm64, Node v26.0.0 and pnpm 10.24.0. Local temporary
files and injected GitHub API/upload/CDN responses only. No network request, real token, release
write, signer, protected environment, SSH remote, desktop consumer, publication, or enabled tuple.
- Focused command: `/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts
--maxWorkers=1 config/scripts/ssh-relay-runtime-draft-upload.test.mjs` — PASS, 1 file / 8 tests in
183ms Vitest and 0.87s wall, with 131,694,592-byte maximum RSS, 95,868,280-byte peak footprint,
and zero swaps.
- Adjacent release command: `/usr/bin/time -l pnpm exec vitest run --config
config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-draft-upload.test.mjs
config/scripts/ssh-relay-runtime-draft-recovery.test.mjs
config/scripts/ssh-relay-runtime-draft-readback.test.mjs
config/scripts/ssh-relay-runtime-release-stage-gate.test.mjs
config/scripts/ssh-relay-runtime-workflow.test.mjs` — PASS, 5 files / 46 tests in 1.80s Vitest and
3.44s wall, with 131,940,352-byte maximum RSS, 96,179,648-byte peak footprint, and zero swaps.
- Broad release command: `/usr/bin/time -l sh -c "rg --files config/scripts | rg
'/ssh-relay.*[.]test[.]mjs$' | xargs pnpm exec vitest run --config config/vitest.config.ts
--maxWorkers=1"` — PASS, 52 files / 270 tests in 11.71s Vitest and 13.66s wall, with
188,841,984-byte maximum RSS and zero swaps.
- Static gates: `node --check` passes both new files. `pnpm run typecheck` passes. Full `pnpm run
lint` passes all 41 reliability gates, the 355-entry max-lines ratchet, bundled-skill verification,
localization catalog/parity, and localization coverage; all 26 warnings remain in untouched
existing files. Focused `oxfmt --check` and `git diff --check` pass.
- Oracle proved: only bounded regular files with exact declared name, path, size, SHA-256, per-file
size, aggregate size, and count may enter. The release must remain the exact ID/tag draft, and its
authenticated lightweight or recursively peeled annotated tag must resolve to the exact 40-hex
source commit; `target_commitish` is not trusted because existing-tag release creation does not
reliably preserve that SHA there. Existing managed assets are reused only after authenticated
metadata and complete downloaded-byte verification; only an approved HTTPS CDN redirect drops
authorization. Missing assets upload as bounded streams with exact length and content type.
Retryable 408/429/5xx or transport ambiguity is reconciled against downloaded draft bytes before
another POST, every retry re-hashes the local file, three-attempt exhaustion fails closed,
non-retryable authorization failure does not retry, cancellation settles, and partial drafts
recover without replacing exact already uploaded bytes. The capability has no command-line
entrypoint or workflow caller.
- Does not prove: Node 24 or Windows execution, live GitHub API/upload/CDN behavior, a real token or
release write, rate-limit timing, full-size artifact throughput/memory, final authenticated
read-back, downloaded archive execution, release publication, native signing/trust, desktop
embedding, SSH transfer/install, packaged RPC behavior, performance against legacy, or an enabled
tuple.
- Follow-up: checkpoint and push, then require exact-head syntax and eight-test execution on all six
native artifact jobs plus PR Checks and Golden E2E. Retain all production/default disconnections.
### E-M4-DRAFT-UPLOAD-CI-001 — Draft upload/recovery passes all six native Node 24 jobs
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: exact pushed head `b37cacecf8f1c865f09c118f274ab62302e951ad`; draft PR #8741.
- Workflow: [SSH Relay Runtime Artifacts run 29431510990](https://github.com/stablyai/orca/actions/runs/29431510990),
16:13:32Z–16:30:34Z. The aggregate conclusion is the expected failure only because the separate
Windows arm64 floor job rejects hosted build 26200 after successful runtime execution.
- Native build jobs and durations:
- Darwin x64 job 87407470012, `macos-15` image `20260629.0276.1`, runner 2.335.1, Azure `westus`,
16:13:52Z–16:20:58Z, PASS in 7m06s.
- Darwin arm64 job 87407470027, `macos-15-arm64` image `20260706.0213.1`, runner 2.335.1, Azure
`westus`, 16:13:50Z–16:17:32Z, PASS in 3m42s.
- Linux arm64 job 87407470041, `ubuntu-24.04-arm` image `20260706.52.2`, runner 2.335.1, Azure
`northcentralus`, 16:13:53Z–16:18:11Z, PASS in 4m18s.
- Windows x64 job 87407470042, `windows-2022` image `20260706.237.1`, runner 2.335.1, Azure
`westus`, 16:13:51Z–16:19:32Z, PASS in 5m41s.
- Linux x64 job 87407470091, `ubuntu-24.04` image `20260714.240.1`, runner 2.335.1, Azure
`westus3`, 16:13:50Z–16:17:27Z, PASS in 3m37s.
- Windows arm64 job 87407470316, `windows-11-arm64` image `20260706.102.1`, runner 2.335.1,
Azure `northcentralus`, 16:13:51Z–16:24:34Z, PASS in 10m43s.
- Exact uploader suite: `config/scripts/ssh-relay-runtime-draft-upload.test.mjs` passes 8/8 under
Node 24.18.0 on every native job: Darwin x64 260ms, Darwin arm64 51ms, Linux arm64 78ms, Windows
x64 151ms, Linux x64 89ms, and Windows arm64 192ms.
- Broad contract counts: every POSIX job passes 51 files / 266 tests; Vitest durations are Darwin
x64 24.06s, Darwin arm64 8.27s, Linux arm64 6.59s, and Linux x64 6.43s. Each Windows job passes 52
files / 260 tests plus 10 platform skips of 270; x64 takes 12.74s and arm64 17.32s.
- Downstream evidence: Linux arm64 supplement job 87409169300 passes in 54s; Linux x64 supplement
87409169317 passes in 51s; Windows x64 floor job 87410005329 passes in 1m27s. Windows arm64 floor
job 87410005404 uses `windows-11-arm64` image `20260714.109.1`, executes the artifact successfully
in 7,752.6288ms with 49,684,480-byte RSS, and then fails exactly because OS/kernel build 26200 is
not required floor 26100.
- Adjacent exact-head workflows: PR Checks run
[29431510764](https://github.com/stablyai/orca/actions/runs/29431510764), job 87407413500, passes
16:13:36Z–16:29:15Z, including lint, typecheck, Git compatibility, tests, unpacked build, and
packaged CLI smoke. Golden E2E run
[29431510883](https://github.com/stablyai/orca/actions/runs/29431510883) passes Linux job
87407414410 and macOS job 87407414424.
- Oracle proved: the uploader module, tests, and POSIX/PowerShell workflow wiring parse and execute
consistently on all six native Node 24 runner families. Every family exercises regular-file
hashing, exact draft/tag/source binding including annotated-tag peeling, authenticated redirect
isolation, exact reuse, uncertain-POST reconciliation, retry exhaustion, mutation detection,
authorization failure, cancellation, and partial-draft recovery. Full native artifact construction
and adjacent regressions remain green.
- Does not prove: live GitHub API/upload/CDN behavior, a real token or release write, full-size upload
throughput/memory, a real retry/429, final read-back, downloaded archive execution, publication,
native signing/trust, oldest macOS/Linux kernel/Windows arm64 floor, desktop embedding, SSH
transfer/install, packaged RPC behavior, performance against legacy, or any enabled tuple.
- Checklist items satisfied: exact-head all-six CI gate for the disconnected draft upload/recovery
capability. The broader draft upload/read-back/execution and Work Package 3 boxes remain open.
### E-M4-RELEASE-ASSETS-LOCAL-RED-001 — Relay-specific release required-asset gate is absent
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: uncommitted purpose-named test
`config/scripts/ssh-relay-runtime-release-assets.test.mjs`; draft PR #8741.
- Runner/remote/network: local macOS 26.2 arm64, Node v26.0.0 and pnpm 10.24.0. No network request,
credential, release write, signer, protected environment, SSH remote, desktop consumer,
publication, or enabled tuple.
- Command:
- `/usr/bin/time -l pnpm exec vitest run config/scripts/ssh-relay-runtime-release-assets.test.mjs`
- Result: expected FAIL, one suite / zero imported tests, 200ms Vitest and 0.97s wall. Maximum RSS
132,022,272 bytes; peak memory footprint 95,950,176 bytes.
- Failure oracle: Vitest reports only `Cannot find module './ssh-relay-runtime-release-assets.mjs'`
at the purpose-named import. No production module existed that derived exact archive/SBOM/
provenance/manifest/signature coverage from an already verified signed manifest and compared it
with authenticated draft metadata.
- Does not prove: implementation correctness, exact tag/channel closure, managed-asset closure,
upload state/size enforcement, signature-asset binding, native runner behavior, real GitHub
metadata, read-back byte identity, publication, desktop embedding, SSH behavior, or an enabled
tuple.
- Follow-up: implement only the disconnected metadata gate, retain the detached-signature encoding
decision and existing desktop release gate unchanged, then run the focused GREEN and broader
local regressions before adding native test-job integration.
### E-M4-RELEASE-ASSETS-LOCAL-001 — Exact signed-manifest release coverage passes locally
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: uncommitted `config/scripts/ssh-relay-runtime-release-assets.mjs`, its purpose-named test,
and POSIX/Windows native test-job wiring atop exact pushed head
`88a77eee91a34f8936882d096e568f499e9160e6`; draft PR #8741.
- Runner/remote/network: local macOS 26.2 arm64, Node v26.0.0 and pnpm 10.24.0. In-memory manifest and
authenticated-release-metadata fixtures only. No network request, credential, release write,
signer, protected environment, SSH remote, desktop consumer, publication, or enabled tuple.
- Focused command: `/usr/bin/time -l pnpm exec vitest run --config config/vitest.config.ts
--maxWorkers=1 config/scripts/ssh-relay-runtime-release-assets.test.mjs` — PASS, one file / 13
tests in 203ms Vitest and 0.92s wall; maximum RSS 152,403,968 bytes, peak footprint 96,114,064
bytes, and zero swaps.
- Adjacent release command: `/usr/bin/time -l pnpm exec vitest run --config
config/vitest.config.ts --maxWorkers=1 config/scripts/ssh-relay-runtime-release-assets.test.mjs
config/scripts/ssh-relay-runtime-draft-upload.test.mjs
config/scripts/ssh-relay-runtime-draft-recovery.test.mjs
config/scripts/ssh-relay-runtime-draft-readback.test.mjs
config/scripts/ssh-relay-runtime-release-stage-gate.test.mjs
config/scripts/ssh-relay-runtime-workflow.test.mjs
config/scripts/verify-release-required-assets.test.mjs` — PASS, 7 files / 64 tests in 988ms
Vitest and 1.72s wall; maximum RSS 135,806,976 bytes, peak footprint 95,802,744 bytes, and zero
swaps.
- Broad release command: `/usr/bin/time -l sh -c "rg --files config/scripts | rg
'/ssh-relay.*[.]test[.]mjs$' | xargs pnpm exec vitest run --config config/vitest.config.ts
--maxWorkers=1"` — PASS, 53 files / 283 tests in 9.97s Vitest and 10.94s wall; maximum RSS
189,071,360 bytes and zero swaps.
- Static gates: `node --check` passes both new files. `pnpm run typecheck` passes. `pnpm run lint`
passes all 41 reliability gates, the 355-entry max-lines ratchet, bundled-skill verification,
localization catalog/parity, and localization coverage; all 26 warnings remain in untouched
existing files. Focused `oxfmt --check` and `git diff --check` pass. The protected Node/npm
resolver files and existing `verify-release-required-assets.mjs` plus its tests have zero diff.
- Oracle proved: the pure gate accepts only an exact release ID and stable/RC/perf tag whose
authenticated metadata remains a draft with channel-correct prerelease state. It revalidates the
already-verified signed-manifest schema, derives every tuple archive/SBOM/provenance plus exact
manifest/signature descriptors, bounds count/per-file/aggregate sizes, and requires unique
managed names. The opaque detached-signature descriptor must bind the exact manifest SHA-256 and
exact embedded signer key IDs without deciding its byte encoding. Missing, unexpected managed,
duplicate, non-uploaded, empty, wrong-size, malformed, signature-disagreeing, cross-release,
cross-tag, and cross-channel states fail closed; unrelated desktop assets remain untouched.
- Consumer-disconnection oracle: repository search finds the new production module only in its own
focused test and POSIX/Windows artifact-job syntax checks; only the test file is executed. There is
no CLI entrypoint, API fetch, release-cut/default workflow caller, upload, publication, desktop
consumer, tuple enablement, or change to the legacy SSH path.
- Does not prove: Node 24/native-runner behavior, real authenticated GitHub metadata, cryptographic
verification before envelope construction, final detached-signature byte encoding, byte
read-back, downloaded archive execution, a real release draft/write, native signing/trust,
publication, desktop embedding, SSH transfer/install, performance against legacy, or any enabled
tuple.
- Checklist items satisfied: local implementation gate for the disconnected relay-specific
required-asset capability. The broader Milestone 4 release composition/publication box remains
open.
- Follow-up: commit and push the exact package, then require syntax and 13-test execution on all six
exact-head native Node 24 jobs plus PR Checks and Golden E2E. Keep every production/default
consumer disconnected.
### E-M4-RELEASE-ASSETS-CI-001 — Required-asset gate passes all six native Node 24 jobs
- Date: 2026-07-15
- Owner: Codex implementation owner
- Source: exact pushed head `5460563ff48846cbf54218860fdca1cc3c7b8614`; draft PR #8741.
- Workflow: [SSH Relay Runtime Artifacts run 29433808457](https://github.com/stablyai/orca/actions/runs/29433808457),
16:46:33Z–17:00:13Z. The aggregate conclusion is the expected failure only because the separate
Windows arm64 floor job rejects hosted build 26200 after successful runtime execution.
- Native build jobs, runner 2.335.1 throughout:
- Darwin arm64 job 87415257002, `macos-15-arm64` image `20260706.0213.1`, PASS in 5m12s.
- Windows x64 job 87415257023, `windows-2022` image `20260714.244.1`, PASS in 8m37s.
- Linux arm64 job 87415257044, `ubuntu-24.04-arm` image `20260714.61.1`, PASS in 4m24s.
- Linux x64 job 87415257081, `ubuntu-24.04` image `20260714.240.1`, PASS in 3m54s.
- Darwin x64 job 87415257094, `macos-15` image `20260629.0276.1`, PASS in 5m33s.
- Windows arm64 job 87415257120, `windows-11-arm64` image `20260706.102.1`, PASS in 9m30s.
- Exact required-asset suite: `config/scripts/ssh-relay-runtime-release-assets.test.mjs` passes
13/13 under Node 24.18.0 on every native job: Darwin arm64 26ms, Windows x64 41ms, Linux arm64
31ms, Linux x64 66ms, Darwin x64 66ms, and Windows arm64 38ms.
- Broad contract counts: every POSIX job passes 52 files / 279 tests; durations are Darwin arm64
15.51s, Linux arm64 6.18s, Linux x64 8.05s, and Darwin x64 27.03s. Each Windows job passes 53
files / 273 tests plus 10 platform skips of 283; x64 takes 25.34s and arm64 14.83s.
- Downstream evidence: Linux x64 supplement job 87416554990 passes in 43s; Linux arm64 supplement
87416555037 passes in 50s; Windows x64 floor job 87417454621 passes in 1m35s. Windows arm64 floor
job 87417454470 uses `windows-11-arm64` image `20260706.102.1`, executes bundled Node 24.18.0 and
native PTY/watcher smoke in 7,936.874ms with 49,553,408-byte RSS, and then fails exactly because
OS/kernel build 26200 is not the required floor 26100.
- Adjacent exact-head workflows: PR Checks run
[29433808934](https://github.com/stablyai/orca/actions/runs/29433808934), job 87415230751, passes
16:46:37Z–17:01:03Z including lint, typecheck, Git compatibility, tests, unpacked app build, and
packaged CLI smoke. Golden E2E run
[29433808372](https://github.com/stablyai/orca/actions/runs/29433808372) passes Linux job
87415226359 and macOS job 87415226314.
- Oracle proved: the pure required-asset module, purpose-named tests, and POSIX/PowerShell
syntax/test wiring parse and execute consistently on all six native Node 24 runner families.
Every family covers exact stable/RC/perf identity, manifest-derived managed closure, manifest and
opaque signature binding, uploaded/nonempty/exact-size metadata, extra/missing/duplicate rejection,
and zero network use. Full target-native runtime construction and adjacent product regressions
remain green.
- Does not prove: real authenticated GitHub metadata, cryptographic verification before envelope
construction, final detached-signature byte encoding, real release upload/materialization,
read-back archive execution, a release write, publication, native signing/trust, oldest macOS/
Linux kernel/Windows arm64 floor, desktop embedding, SSH transfer/install, performance against
legacy, or any enabled tuple.
- Checklist items satisfied: exact-head all-six CI gate for the disconnected relay-specific
required-asset capability. Release composition/publication remains open.
- Follow-up: checkpoint and push this evidence, then begin the disconnected authenticated draft
read-back materialization RED. Retain all production/default disconnections.
## 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 | All six native cells pass exact clean-build equality | Historical blocker is closed | Codex implementation owner | Met by E-M3-REPRODUCIBILITY-CI-001 | CLOSED |
| 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 |
| New rehearsal caller is not dispatchable | GitHub requires the workflow file on the default branch | Real Apple/SignPath/native-trust proof is gated | Repository release administrator + implementation owner | Reviewed PR is merged separately, then exact-source rehearsal passes | BLOCKED |
| 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
The project is not complete until every applicable item below is checked with evidence IDs.
- [ ] Milestone 0 legacy safety net is merged and live-proven.
- [ ] All Milestone 1 decisions are closed and reviewed.
- [ ] Artifact/manifest schema and full-runtime identity are implemented and hostile-input tested.
- [ ] Every enabled runtime tuple passes build, native, oldest-baseline, trust, and live SSH proofs.
- [ ] Relay artifacts are immutable prerequisites of every desktop build.
- [ ] Target-native builds, native signing jobs, and the fail-closed aggregate/manifest job pass all
failure and recovered-draft rehearsals before desktop packaging.
- [ ] Every packaged desktop embeds the exact signed manifest whose bytes are published.
- [ ] Client download/cache/extraction passes online, offline, proxy, integrity, concurrency, and
resource-failure gates.
- [ ] Every SSH transfer path is bounded, cancellable, no-tar-capable, mode-correct, and full-size
tested.
- [ ] Remote installation uses full-tree verification and a structured, mode-qualified completion
record.
- [ ] Declared POSIX/Windows bootstrap primitives, missing-command behavior, BusyBox variants, and
no-remote-hash-tool behavior are live-proven.
- [ ] The primary path launches with bundled Node and performs no remote npm or HTTP operation.
- [ ] Fallback aborts and joins bundled work, uses separate state, and is race/failure tested.
- [ ] Every integrity/security failure fails closed in `auto` without automatic legacy.
- [ ] The exact online/offline/cache matrix is live-proven.
- [ ] Every relay RPC family, reconnect, reattach, upgrade, downgrade, concurrent-client, and GC
contract passes through the packaged runtime.
- [ ] Security review, SBOM, provenance, key lifecycle, native signing, CVE ownership, and emergency
refresh through a new desktop build/embedded manifest are operational; old clients stay pinned.
- [ ] Numeric performance and resource budgets pass on the required matrix.
- [ ] Draft release read-back and public direct-URL behavior pass for exact stable/RC/perf tags.
- [ ] Three consecutive qualifying RCs pass without unexplained fallback or relay regression.
- [ ] Stable soak and rollback criteria pass.
- [ ] Every accepted gap is closed or explicitly retained with owner, fallback, and promotion rule.
- [ ] HTML plan, this checklist, reliability-gate metadata, troubleshooting docs, and PR evidence are
current.
- [ ] Legacy fallback remains unless a separate reviewed decision authorizes narrowing/removal.
## Next Required Action
Checkpoint and push E-M4-RELEASE-ASSETS-CI-001. Then add a purpose-named RED for exclusive local
materialization during the existing authenticated draft read-back: create only an absent output
directory, persist the exact already-streamed bytes without a second download, publish no partial
file before size/SHA-256 success, clean up on failure/cancellation, and return bounded asset paths
for the later archive-execution slice. Do not add archive execution, a workflow caller, or a real
release write in this package. Keep the existing desktop `verify-release-required-assets.mjs`
behavior and detached-signature byte encoding unchanged. The protected environment, accepted
production keys, and secret remain unprovisioned, so live signing evidence stays BLOCKED.
Keep Windows arm64 build 26100, macOS 13.5, Linux kernel 4.18, release-cut, desktop builds,
publication, and every tuple separately gated. Do not merge to `main`; retain every
production/default gate.
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.