diff --git a/docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist-summary.md b/docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist-summary.md index df25d6405e6..01d7bd1cfec 100644 --- a/docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist-summary.md +++ b/docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist-summary.md @@ -47,7 +47,13 @@ found the open-heartbeat-handle directory-rename incompatibility under `E-M5-ARTIFACT-CACHE-LOCK-CI-WINDOWS-RED-001`; Windows arm64 also found equivalent zlib truncation wording outside the extraction test oracle under `E-M5-ARTIFACT-EXTRACTION-CI-WINDOWS-ARM64-RED-001`. The ownership-preserving release order and equivalent-error assertion are locally green under -`E-M5-WINDOWS-NATIVE-GATE-CORRECTIONS-LOCAL-001`; a fresh all-six Node 24 run is now required. Desktop consumers, cache publication/quarantine/eviction, SSH transfer/install, +`E-M5-WINDOWS-NATIVE-GATE-CORRECTIONS-LOCAL-001`. Replacement exact-head run +[29459424864](https://github.com/stablyai/orca/actions/runs/29459424864) closes the content lock on all +six primary native Node 24 jobs under `E-M5-ARTIFACT-CACHE-LOCK-CI-001`; both Linux supplements, +PR Checks [29459424977](https://github.com/stablyai/orca/actions/runs/29459424977), and Golden E2E +[29459424789](https://github.com/stablyai/orca/actions/runs/29459424789) pass. Windows arm64 retains +only the explicit hosted build-26200 versus required-26100 floor rejection after runtime/tree smoke. +Next is the disconnected immutable publication/lookup/quarantine package. Desktop consumers, cache eviction, SSH transfer/install, mode wiring, tuple enablement, publication, production keys/environment/seed, and merge to `main` remain disconnected. @@ -351,8 +357,8 @@ remain disconnected. active split packages and are not implemented yet. The lock-only audit/RED is recorded under `E-M5-ARTIFACT-CACHE-AUDIT-001` and `E-M5-ARTIFACT-CACHE-LOCK-LOCAL-RED-001`; the implementation is locally green and wired to both native families under `E-M5-ARTIFACT-CACHE-LOCK-LOCAL-001` - and `E-M5-ARTIFACT-CACHE-LOCK-CI-WIRING-LOCAL-001`. All-six execution remains required before - marking lock coordination complete. + and `E-M5-ARTIFACT-CACHE-LOCK-CI-WIRING-LOCAL-001`; all-six native execution is closed by + `E-M5-ARTIFACT-CACHE-LOCK-CI-001`. Immutable publication/lookup/quarantine remains next. - [ ] Prove verified cached bytes can be transferred while the client is offline. - [ ] Preserve `ORCA_RELAY_PATH` behind the official-build trust boundary. diff --git a/docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md b/docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md index 2d74dec03ae..f567096625a 100644 --- a/docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md +++ b/docs/reference/plans/2026-07-14-ssh-relay-github-release-implementation-checklist.md @@ -8,8 +8,8 @@ work; keep exact commands, runner identities, hashes, metrics, and residual gaps Date created: 2026-07-14
Last updated: 2026-07-15
-Current phase: Milestone 5 / Work Package 4 desktop cache boundary — **In progress — 2026-07-15, Codex implementation owner: checkpoint and fresh all-six Windows-native correction proof**. E-M5-WINDOWS-NATIVE-GATE-CORRECTIONS-LOCAL-001 closes the narrow local release-order and equivalent truncation-oracle corrections exposed by run `29458719333`. Checkpoint and push the exact tree, then require all six primary Node 24 jobs plus companion PR Checks and Golden E2E to pass before beginning immutable cache-entry publication/quarantine. Do not add a desktop caller, SSH transfer/install, tuple enablement, mode wiring, release publication, or default behavior.
-Session checkpoint: **In progress — 2026-07-15, Codex implementation owner** — resumed with user authority for end-to-end PR-contained implementation, commits, pushes, CI, rehearsals, and release writes, with merging to `main` explicitly prohibited. The worktree was clean and exactly matched pushed head `869603a3e86933cc9985f9e4d240e615146d86d8` at session start. Both Windows jobs then reproduced the open-handle `EPERM`; Windows arm64 also exposed equivalent zlib truncation wording outside the assertion oracle. The corrected local tree passes 31 focused lock/extraction tests, 95 artifact tests with one environment skip, all 279 release-runtime tests, typecheck, full lint, formatting, max-lines, and diff gates. Cache publication remains gated; there is no release publication, cache entry, cache consumer, SSH transfer/install, tuple enablement, or production/default behavior change. Legacy remains the production default.
+Current phase: Milestone 5 / Work Package 4 desktop cache boundary — **In progress — 2026-07-15, Codex implementation owner: immutable cache-entry publication/lookup/quarantine package**. E-M5-ARTIFACT-CACHE-LOCK-CI-001 closes the disconnected lock capability on exact head `44ef150da39b3977f4a462dbf52f55c5988b6bf7`: all six primary native Node 24 jobs, both Linux oldest-userland supplements, PR Checks, and Golden E2E pass. Begin only the audited package-2 boundary: refine immutable-entry contracts, add a purpose-named RED, then implement exclusive same-filesystem staging, structured proof, final archive/tree revalidation, atomic publication, lookup, and corruption quarantine. Keep eviction/in-use leases and every consumer/default path separate.
+Session checkpoint: **In progress — 2026-07-15, Codex implementation owner** — resumed with user authority for end-to-end PR-contained implementation, commits, pushes, CI, rehearsals, and release writes, with merging to `main` explicitly prohibited. The first native run exposed and recorded Windows open-handle rename and equivalent zlib-error-oracle REDs; narrow corrections passed locally and at exact-head CI. In replacement run `29459424864`, all six primary jobs pass the 10 lock and 21 extraction contracts plus deterministic artifact build/smoke. The workflow's sole failure is the retained Windows arm64 hosted build-26200 versus required-26100 floor rejection after runtime/archive/tree/Node/PTTY/watcher proof; no tuple is enabled from it. PR Checks `29459424977` and Golden E2E `29459424789` pass. There is no release publication, cache entry, cache consumer, SSH transfer/install, tuple enablement, or production/default behavior change. Legacy remains the production default.
Primary design: [SSH relay GitHub Release plan](./2026-07-14-ssh-relay-github-release-plan.html)
Motivating issues: [#8450](https://github.com/stablyai/orca/issues/8450), [#1693](https://github.com/stablyai/orca/issues/1693) @@ -1092,8 +1092,14 @@ Suggested concrete modules: The disconnected full-tree verifier passes locally and on all six native clients under E-M5-ARTIFACT-EXTRACTION-LOCAL-001 and E-M5-ARTIFACT-EXTRACTION-CI-001; atomic cache publication is deliberately absent and keeps this combined item open. -- [ ] Coordinate cache ownership across multiple Orca processes and windows. -- [ ] Recover stale download/extraction locks without deleting an active writer. +- [x] Coordinate cache ownership across multiple Orca processes and windows. + E-M5-ARTIFACT-CACHE-LOCK-LOCAL-001 and E-M5-ARTIFACT-CACHE-LOCK-CI-001 prove real + second-process contention and ownership transfer on all six native client tuples. Cache-entry + integration remains separately gated. +- [x] Recover stale download/extraction locks without deleting an active writer. + E-M5-ARTIFACT-CACHE-LOCK-LOCAL-001 and E-M5-ARTIFACT-CACHE-LOCK-CI-001 prove conservative + same-host liveness, stale-dead-owner tombstoning, live/ambiguous-owner preservation, and + displaced-owner successor safety. No downloader/extractor consumer is connected yet. - [ ] 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. @@ -13174,6 +13180,65 @@ sort`; targeted `rg -n` over `cache|extract|atomic|quarantine`; and complete rea - Follow-up: checkpoint/push, require all six primary native jobs plus PR Checks and Golden E2E, and record exact runner/job evidence before opening the immutable cache-entry publication package. +### E-M5-ARTIFACT-CACHE-LOCK-CI-001 — Content lock and corrected extraction contracts pass all six native clients + +- Date: 2026-07-15 +- Owner: Codex implementation owner +- Source: exact pushed correction head `44ef150da39b3977f4a462dbf52f55c5988b6bf7`; SSH Relay + Runtime Artifacts run [29459424864](https://github.com/stablyai/orca/actions/runs/29459424864). +- Exact evidence commands: + - `gh api 'repos/stablyai/orca/actions/runs/29459424864/jobs?per_page=100' --jq ...` for job, + runner, label, step, and timestamp identity; + - `gh api repos/stablyai/orca/actions/jobs//logs 2>&1 | rg + "ssh-relay-artifact-cache-lock.test.ts|ssh-relay-artifact-extraction.test.ts|Test Files|Tests " | + tail -8` for each primary job; + - `gh api repos/stablyai/orca/actions/jobs/87500906175/logs 2>&1 | rg -n + "Node runtime version|archive|tree|PTY|watcher|Windows|osBuild|26100|26200|runner does not prove|Process completed" + | tail -100` for the retained Windows arm64 floor gap. +- Primary native results: + + | Client tuple | Job / runner | Job duration | Contract duration | Lock suite | Extraction suite | Result | + | --- | --- | ---: | ---: | ---: | ---: | --- | + | darwin-arm64 | [87499607559](https://github.com/stablyai/orca/actions/runs/29459424864/job/87499607559), `GitHub Actions 1000056437`, `macos-15` | 1m52s | 13s | 10 pass, 530ms | 21 pass, 524ms | PASS | + | darwin-x64 | [87499607640](https://github.com/stablyai/orca/actions/runs/29459424864/job/87499607640), `GitHub Actions 1000056435`, `macos-15-intel` | 6m45s | 1m03s | 10 pass, 825ms | 21 pass, 3,062ms | PASS | + | linux-arm64-glibc | [87499607604](https://github.com/stablyai/orca/actions/runs/29459424864/job/87499607604), `GitHub Actions 1000056440`, `ubuntu-24.04-arm` | 12m20s | 11s | 10 pass, 514ms | 21 pass, 784ms | PASS | + | linux-x64-glibc | [87499607591](https://github.com/stablyai/orca/actions/runs/29459424864/job/87499607591), `GitHub Actions 1000056439`, `ubuntu-24.04` | 3m38s | 14s | 10 pass, 569ms | 21 pass, 949ms | PASS | + | win32-arm64 | [87499607605](https://github.com/stablyai/orca/actions/runs/29459424864/job/87499607605), `GitHub Actions 1000056441`, `windows-11-arm` | 9m01s | 29s | 10 pass, 801ms | 21 pass, 1,152ms | PASS | + | win32-x64 | [87499607584](https://github.com/stablyai/orca/actions/runs/29459424864/job/87499607584), `GitHub Actions 1000056438`, `windows-2022` | 5m29s | 22s | 10 pass, 751ms | 21 pass, 1,698ms | PASS | + +- Aggregate contract results: each POSIX job passes 64 files; each Windows job passes 65 files. The + suite includes same-process contention, a real second Node process, bounded cancellation, + owner-handle heartbeat, same-host stale-dead reclaim, live/malformed-owner preservation, and + nonce-displacement fail-closed behavior. Both Windows architectures therefore prove the corrected + close-after-final-ownership-check release ordering on native NTFS semantics. +- Supplemental results: Windows x64 oldest-baseline job + [87500906186](https://github.com/stablyai/orca/actions/runs/29459424864/job/87500906186) passes. Linux + x64 job [87501380503](https://github.com/stablyai/orca/actions/runs/29459424864/job/87501380503) + and Linux arm64 job + [87501380508](https://github.com/stablyai/orca/actions/runs/29459424864/job/87501380508) pass their + pinned oldest-userland supplements. +- Retained floor gap: Windows arm64 job + [87500906175](https://github.com/stablyai/orca/actions/runs/29459424864/job/87500906175) reconstructs + and verifies the exact runtime, archive, and tree and records Node/PTTY/watcher proof, then correctly + rejects hosted Windows build `10.0.26200` because the manifest requires build `26100`. This expected + fail-closed evidence is the workflow's sole failure and does not enable or close that floor cell. +- Companion regression evidence: PR Checks run + [29459424977](https://github.com/stablyai/orca/actions/runs/29459424977), job + [87499607955](https://github.com/stablyai/orca/actions/runs/29459424977/job/87499607955), runner + `GitHub Actions 1000056436` / `ubuntu-latest`, passes in 13m56s. Golden E2E run + [29459424789](https://github.com/stablyai/orca/actions/runs/29459424789) passes Linux job + [87499607002](https://github.com/stablyai/orca/actions/runs/29459424789/job/87499607002) in 4m31s and + macOS job [87499607004](https://github.com/stablyai/orca/actions/runs/29459424789/job/87499607004) + in 4m31s. +- Closure: cross-process content ownership, bounded wait/cancellation, heartbeat, conservative stale + recovery, owner-only release, native Windows release ordering, and equivalent truncation diagnostics + are closed for the disconnected cache-lock capability. +- Residual gaps: abrupt process kill was not separately injected on every OS; network filesystems and + PID namespaces remain unproved. Cache-entry publication/lookup/quarantine, in-use lease/eviction, + packaged Electron path selection, SSH, and every tuple/default path remain absent. +- Follow-up: checkpoint the evidence, then begin only audited package 2 with a purpose-named immutable + cache-entry RED. Keep eviction/in-use leases and consumers separate. + ## Accepted Gaps No product gap is accepted merely because it appears in this list. Each entry requires explicit