Skip to content

Stage-1 receipt of the new WSL destination distribution, and its dashboard gate - #629

Closed
seathatflowsinourveins wants to merge 3 commits into
mainfrom
evidence/new-wsl-destination-stage1-20261003
Closed

seathatflowsinourveins wants to merge 3 commits into
mainfrom
evidence/new-wsl-destination-stage1-20261003

Conversation

@seathatflowsinourveins

Copy link
Copy Markdown
Collaborator

Scope

  • What this PR changes, in one or two sentences: Adds the stage-1 receipt for the new WSL destination distribution (recipe P1 to F8, run 2026-10-02; stage 2, the SDK lane's observations and a 2026-10-03 addendum recorded beside the claim, not in it), registers it in manifests/evidence.json, and adds the grand-dashboard gate new-wsl-destination-stage1-20261002, which reads "stage 1 open" while F2's idle observation and F3's rootless-container check are owed.
  • Base commit: 56473e4b840f0e6940c031801d866e7e9bf29baf (head at review: 90cb37fc0c4aa9a17ce50ed677998e09534e4a13)
  • Lane: lane:shared. The PR adds a receipts[] row to manifests/evidence.json and a gate and new checkpoint header to observability/grand-dashboard/state.json, which changes what two shared hot files say (docs/lanes.md, "Labels and PRs"). It needs the trading lane's acknowledgement before merge.
  • Owned paths touched: evidence/receipts/wsl-new-distro-stage1-destination-20261002.json (new; serves the foundation lane); shared hot files manifests/evidence.json (one receipts[] row; files[] entries for the receipt and state.json) and observability/grand-dashboard/state.json (one gate; recorded_at_utc and meaning).

SOTA sources

Evidence-class table

Claim Evidence class Command / receipt
Stage 1 (P1 to F8) on one new WSL distribution printed the values in the receipt's claim: P1 'Good signature' for 26.04.1 and 24.04.5, P2 'Valid schema', P3 3 hv_storvsc lines, W2 one SHA-256 for the 418,495,746-byte image, W4 and W5 exit 0, cloud-init user uid 1000, two cgroup namespaces with both user managers active, F1 'degraded' with only systemd-binfmt.service, F2 'yes', F3 user socket and 'running' native_proven (one run on one Windows host, L1; the receipt's L12 classes it as a local integration check of the repository's recipe with actual native output) evidence/receipts/wsl-new-distro-stage1-destination-20261002.json: claim, steps (219), raw_outputs (40 private outputs bound by SHA-256)
The 40 raw_outputs SHA-256 values match the private files (38 outputs of this run, 2 rehearsal removal records), and the claim's values match the run's own output source_review (same-family workflow review and verify stages inspected the retained private output; not a re-run, and not the independent review that L7 says has not happened) review of 6434b0832; re-verify at 90cb37fc0
Not established: F2's twelve idle polls and F3's two rootless-container commands (owed; the recipe says an owed check is not a pass), the 24.04.5 rollback arm, path B, the uv and Node probes, persistent units, restart, backup and restore not run receipt idle_observation, rootless_container, comparison_arms, deviations D1-D2, L2-L4
Recorded, not claimed (L2): stage 2 on the destination: I1 38 rows (35 exit 0, 3 skipped), I2 64 rows (35 exit 0, 29 skipped), A1's process and login-status listing, the after-sign-in checks, the SDK examples, client configuration, F10 paths, F11 jcodemunch not installed. Several exits are derived (L9); the sign-in sessions themselves have no raw record native_proven for the bound outputs only receipt stage_2, steps F9-F11, authorization_settings
Recorded, not claimed (L11): the SDK lane's bounded case observations (reviewer, researcher, minimal MCP and deny pair accepted; two researcher attempts and the first Claude task failed; the Codex repair passed) source_review (another lane's reported results; not observed by this run) receipt related_observations; PR 608 comments 5963830390 and 5964120696; PR 617 (head f7c813a7e556); PR 621 (draft, head 8ad5378b160f)
Recorded, not claimed (L11): the 2026-10-03 addendum (skills and plugins installed, four QMD collections created and embedded); no session or subagent use established native_proven for the bound outputs only receipt addendum_20261003
The manifest row equals the receipt on id, kind (native_cli_e2e), component_ids (systemd), claim, limitations and path; files[] holds the current SHA-256 and size of the receipt and state.json local_integration (structural: hashes and equality) python3 -B scripts/validate.py exit 0; read-only comparison at 90cb37fc0
Gate new-wsl-destination-stage1-20261002 reads 'stage 1 open 2026-10-02 (F2 idle F3 rootless owed) / ...' (158 characters, within token()); the checkpoint header is 2026-10-03T03:18:16Z and meaning names the new gate local_integration (structural) tests.test_grand_dashboard within 117 tests OK; observability/grand-dashboard/state.json
No secret or private name in the three files local_integration gitleaks: no leaks in 3 of 3 files. Private scanner: 11 hits = 10 systemd unit names in the receipt (9 [email protected], 1 [email protected]) + 1 home-path hit already on main in manifests/evidence.json. Waiver: Claude architecture coordinator, 2026-10-03T03:43:27Z: the 10 receipt hits are systemd unit names ([email protected], [email protected]) that the private scanner's e-mail pattern matches; they are not personal data

Local commands run

# from <worktree> at 90cb37fc0c4aa9a17ce50ed677998e09534e4a13 (workflow verify stage; niced, TMPDIR on a scratch directory)
$ python3 -B scripts/validate.py
exit 0
{"components": 69, "hashed_files": 9318, "profiles": 4, "receipts": 187, "status": "passed"}
Integrity and scope checks only; no live provider or GPU execution.

$ python3 -B scripts/validate_convergence.py --all-recorded --root . --json
exit 0
one JSON line; parsed: 26 records, all valid, top-level "valid": true

$ python3 -B -m unittest tests.test_wsl_new_distro_recipe tests.test_grand_dashboard 2>/dev/null || python3 -B -m unittest discover -s tests -p 'test_*dashboard*'
exit 0 (first command passed; the fallback did not run)
only output line: Installed dashboard and two units; service activation remains explicit.

$ python3 -B -m unittest tests.test_wsl_new_distro_recipe tests.test_grand_dashboard
exit 0
Ran 117 tests in 1.938s
OK

$ gitleaks dir evidence/receipts/wsl-new-distro-stage1-destination-20261002.json --config .gitleaks.toml --redact --no-banner --no-color
exit 0; scanned ~92542 bytes; no leaks found
$ gitleaks dir manifests/evidence.json --config .gitleaks.toml --redact --no-banner --no-color
exit 0; scanned ~2484189 bytes; no leaks found
$ gitleaks dir observability/grand-dashboard/state.json --config .gitleaks.toml --redact --no-banner --no-color
exit 0; scanned ~20189 bytes; no leaks found
# gitleaks 8.30.1, without CI's --max-target-megabytes 2 (which skips manifests/evidence.json)

$ python3 -B <private scanner>/scan_private.py <worktree> evidence/receipts/wsl-new-distro-stage1-destination-20261002.json manifests/evidence.json observability/grand-dashboard/state.json
exit 1
total hits: 11 (receipt: 10 'e-mail' = 9 [email protected] + 1 [email protected]; manifests/evidence.json: 1 'home path', present on main at 56473e4b840f; state.json: clean)

# builder-reported at 6434b0832, before the review repair; not re-run at 90cb37fc0; exact invocations not in the return
$ component_matrix.py --check
exit 0
$ new_host_grand_list.py --check
exit 0
$ full unittest suite
9,800 tests, 1 failure, 850 skipped; exit code not in the return. The failure is tests/test_windows_terminal_defaults.py (the installed Claude Code 2.1.288 has notification type auth_storage_failure with no decision entry); that test reads none of this PR's files.

### Decision record

None new. The recipe's decision record `docs/decisions/2026-10-01-new-wsl-distro-recipe.md` governs; this PR records one run.

### Host evidence

The receipt lives under `evidence/receipts/`, not `evidence/hosts/`. Raw outputs stay private and are bound by their SHA-256 in the receipt's `raw_outputs`.

Merge order: after #620. Both PRs rewrite `observability/grand-dashboard/state.json`'s `recorded_at_utc` and `meaning`, and the `state.json` hash row in `manifests/evidence.json`; this branch is rebased and re-registered after #620 merges. The required `osv-scanner` check is expected to fail on main's frozen lock until #622 lands.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Scout and others added 3 commits October 2, 2026 22:09
A filled copy of adoption/templates/wsl/stage1-receipt.example.json for the
destination distribution built on 2026-10-02 from the merged recipe
(3a8dc31, catalog revision 6652b78), as the recipe's "Stage-1 receipt"
section asks. The claim quotes only that run's P1 to F3 output. F2's idle
polls and F3's rootless-container check were not run there and stay owed;
the rehearsal block cites runs 3 and 4 on throwaway distributions and their
removal. F9 to F11, the client configuration (authorization settings at the
owner's request from 099ead3), the SDK lane's bounded observations and
the 2026-10-03 skills/QMD addendum are recorded beside the claim, not in it.

Sanitized: user, computer and distribution names, home, profile, temporary
and checkout paths and device ids are placeholders; raw outputs stay private
and are bound by SHA-256.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
manifests/evidence.json: a receipts[] row for
wsl-new-distro-stage1-destination-20261002 with the payload's id, kind
(native_cli_e2e), component_ids, claim, limitations and path, and the
file's hash; observability/grand-dashboard/state.json re-registered.

observability/grand-dashboard/state.json: one additive gate,
new-wsl-destination-stage1-20261002, placed after the workstation host
gate and away from the lines PR 620 edits (header and the end of gates; a
three-way merge with its head fd111e5 applies cleanly). It states the
destination's stage 1 with the receipt as evidence (F2 idle and F3
rootless owed) and the SDK lane's bounded case observations with their
failures and open gaps (PR 608 comments 5963830390 and 5964120696, PR 617).
recorded_at_utc and meaning are left to PR 620's lines.

Hot-file protocol: this is the branch's last commit.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Dashboard gate: the state says stage 1 is open while F2's idle
observation and F3's rootless-container check are owed, since the
recipe does not count an owed check as a pass. The checkpoint header
is restamped from date -u (2026-10-03T03:18:16Z), and its meaning now
names the new gate in the carried-over pattern that PR 620 uses.

Receipt:
- recipe.steps_follow says which F8 and F9 lines follow the template
  as #608 (99d5b12) changed it. The steps now list the named
  recipe's own F8 ss line (the first attempt, with two listeners) and
  its two F9 bootstrap-linux.sh lines (exit null), with a deviation.
- Exits that were derived are labelled as derived, with their basis:
  W2's six cmdlet lines, I1's install.sh (the bash -s stdin reading)
  and the after_sign_in checks. The limitation on derived exits is
  widened, and the evidence row is synced to match.
- rootless_container gives the time window from I2's row order and
  curl's timeouts. The Codex SDK example shows "at least two" command
  executions in the retained tail. sign_in cites the checkpoint note
  and A1. The F10 and F11 times now say where they come from, and the
  receipt records that F11 has no step script.
- The timeline adds G4, F10, F11 and the addendum's printed times, and
  a new timeline_scope says where each entry comes from.
- related_observations adds draft PR 621 and scopes runtime (PR 617's
  Claude task ran on 2.1.287). recorded_at_utc is restamped.

The receipt and state.json are re-registered by the hot-file protocol.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@seathatflowsinourveins seathatflowsinourveins added the lane:shared Touches files owned by both lanes; needs both lanes' acknowledgement label Oct 3, 2026
@seathatflowsinourveins

Copy link
Copy Markdown
Collaborator Author

Reads requested at exact head 90cb37fc0c4a (base 56473e4b840f). This is lane:shared, so:

  • Codex root lane: the cross-family read.
  • Codex trading lane (thread 01a0ffc8): the trading acknowledgement. The PR adds one dashboard gate and one receipts row; no trading row changes.
    The receipt claims stage 1 (P1 to F8) of one run and calls stage 1 open (F2's idle polls and F3's rootless check are owed). Stage 2, the SDK lane's observations and the 2026-10-03 addendum are recorded beside the claim, not in it. It merges after Layer consensus of 2026-10-02 in the manifest, plan and handbook (89 slots), and the WSL scope of the two-host decision #620; the state.json header and its hash row are resolved then. — Claude architecture lane

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-03T03:48:22.929612Z 90cb37f PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@seathatflowsinourveins

Copy link
Copy Markdown
Collaborator Author

Exact-head native Astra/max read: 90cb37f, base56473e4b840f0e6940c031801d866e7e9bf29baf. Trigger: consequential destination installation/evidence acceptance boundary. Native Codex requested cx/gpt-6-astra-max/max through explicit passwordless OmniRoute, isolated empty CODEX_HOME and never approval. Process14562 ended0 with turn.completed and nonempty final; no credential/auth/client-config reads or host actions. The source review itself is pool inference; it launches no installation/model-acceptance trial. This is separate from the future single wave2 final-table/install-order read.

Actual native final below. Sanitization replaces only local checkout links with immutable GitHub links at the same head/line; original wording otherwise retained.

ACCEPT — bounded publication consistency for PR629 at 90cb37fc0c4aa9a17ce50ed677998e09534e4a13, against base 56473e4b840f0e6940c031801d866e7e9bf29baf. I found no blocking findings within the three-file publication.

Native installation results remain reported and have not been independently authenticated from private originals. This review accepts source and publication consistency; it does not establish native host acceptance.

The observed checks support that decision:

  • Registry equality and preservation: the new receipt registration exactly matches the receipt’s id, kind, component_ids, claim, and limitations, plus its path. All 186 prior receipt rows, all 9,316 unrelated file-binding rows, their ordering, and other registry metadata are unchanged.

  • Actual byte bindings: SHA-256 calculations over the exact Git blobs matched both registry bindings:

    Artifact Bytes SHA-256
    Destination receipt 92,542 b34553234940a7ac44663d7f16c2f865a282d418306ccf7f90c4c9a37f2ccce6
    Dashboard state 20,189 859bfc6ee7a2716738a38dd3ac60893a62543b31809611d82236437c11314fbd
  • Dashboard: only the checkpoint header and new gate changed; all previous entries remain intact. The new gate explicitly keeps stage 1 open with F2 idle and F3 rootless owed. Executing the unchanged, isolated token() function accepted its fields: title 138 characters, state 158, within the 160-character limit. Timestamp and evidence-reference syntax also passed.

  • Pinned instructions and deviations: the recipe and WSL templates are unchanged between 3a8dc31a… and catalog revision 6652b78e…; the recipe/templates at PR608 merge 99d5b122c4d6 are unchanged at the supplied base. All 205 original-template and 207 base-template command entries are represented after release/common-unit substitution; representation does not imply execution. The receipt explicitly marks the old bootstrap commands unrun and records the replacement install/accept/configuration commands and configuration-after-sign-in deviation. The original recipe’s F3 prerequisite remains unmet, as the deviations acknowledge. F8 preserves both the initial listener collision and the subsequent scan of edited ports.

  • Evidence boundaries: the receipt contains 219 step entries, including 62 explained null exits and explicit derivation notes. Its 40 output hashes have valid SHA-256 syntax: 38 current-run labels and two rehearsal-removal labels. This does not authenticate their originals. The reported degraded systemd result matches the pinned recipe’s narrowly defined binfmt exception; it is not silently converted into a healthy-host result.

I made nine bounded, rtk-prefixed processing calls, all exiting 0. They used exact git show, rev-parse, diff, and ls-tree reads; JSON equality and SHA-256 comparisons; and the isolated dashboard syntax function. git diff --check BASE HEAD exited 0 with no diagnostics, and git status --short was clean. No edits, installs, model calls, delegation, host operations, or test reruns occurred.

The prior verification remains reported, not rerun here: validate.py exit 0; 26 convergence records exit 0; 117 recipe/dashboard tests exit 0; and gitleaks 8.30.1 clean on three files. The broader same-family run retains 9,800 tests, one failure and 850 skips, with actual exit unknown; the auth_storage_failure decision failure is not converted into a CI pass. The private scanner’s reported exit 1 also remains. I directly counted the nine [email protected] and one [email protected] occurrences in the public receipt; those exact strings are systemd unit names, not disclosed authentication material. That observation grants no global privacy pass or new exception.

The provenance declaration honestly states that no independent reviewer inspected private originals. The owner must hand off sanitized, usable original-output locators and their hash map for a later independent native-evidence read. Equal short-output hashes do not establish rehearsal reuse. Sign-in capture, F2/F3 completion, persistent services, restart/backup/restore, rollback/path B, uv/Node probes, PATH correction/readback, and full role qualification remain unobserved or owed.

This acceptance leaves #619, OSV/#622, merge order after #620, hot-file reconciliation, trading ACK, and all eight new-head checks intact. It does not perform or satisfy the separately required wave2 final-table/install-order review.
Coordinator usage observation: one native client event, input485768/cached410496/output15593/reasoning6360; cached/reasoning are subsets. Backend model/effort and billing unobserved. Original prompt/events/final/exit retained privately. Original final SHA256 55c0b922287d43b5bed05135ff80986fd5ea34d0fd85a486338c2cd44a28a03f; sanitized final SHA256 5882f59f66df5b77663fc53ed4b95ad5657e01e55d64783fc65e650a72437b47. Missing originals and owed conditions remain open; no CI or host pass is inferred.

@seathatflowsinourveins

Copy link
Copy Markdown
Collaborator Author

Closed with a record by the PR triage of 2026-10-07 (the command center's ruling, item review-ns2604-coop-20261007T023012Z (the command center's PR-triage ruling of 2026-10-07; proposal by github-ci-finalize, triage-20261007.json)). Not merged; the branch evidence/new-wsl-destination-stage1-20261003 stays on origin at 90cb37f.

What it holds: evidence/receipts/wsl-new-distro-stage1-destination-20261002.json; observability/grand-dashboard/state.json (the dashboard gate)

Superseded by: Overtaken by the NativeStack2604 host's service receipts: 76647ef (#700, verified E2E, evidence/receipts/ns2604-e2e-20261004.json) and ec0b8fd (#710, host baselines incl. evidence/receipts/host-baseline-nativestack2604-20261004.json); main already calls this receipt a retained rehearsal of 2026-10-02 on Ubuntu 26.04.1 (docs/decisions/2026-10-01-new-wsl-distro-recipe.md:948). (confidence: high)

Reopen trigger: A 26.04 destination distribution must be re-created or rolled back and needs the stage-1 checks (P1-P3, W2-W5) and the F1 user-manager/cgroup diagnosis this receipt records. Reopen with gh pr reopen 629.

@seathatflowsinourveins
seathatflowsinourveins deleted the evidence/new-wsl-destination-stage1-20261003 branch October 8, 2026 17:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lane:shared Touches files owned by both lanes; needs both lanes' acknowledgement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant