From 98d2840506bb0ecd2250c92aa2dd040525b5fe86 Mon Sep 17 00:00:00 2001 From: tegwick Date: Thu, 15 Oct 2026 00:39:13 +0200 Subject: [PATCH] REINAH-WP-0008-T07: record rebuilt owner runtime 818b1b7c as install candidate Owner-approved rebuild of the corrected runtime from the same pinned inputs as ee3d0a53 (not retained). Digest differs only by embedded build-source paths. bwrap startup smoke passed (sandbox 28df7a1d); not installed on railiance01 (still b6e4e8a4) or admitted. T07 stays wait. Co-Authored-By: Claude Opus 5.5 Assistant: claude-code Assistant-Model: opus Assistant-Process: 358047@bnt-lap001 Assistant-Session: fad68125-297a-449d-bfa7-cf9cdd49ca1d --- .../2026-10-15-rebuilt-owner-runtime.json | 70 +++++++++++++++++++ docs/native-metered-proof.md | 15 ++++ ...INAH-WP-0003-governed-runtime-integrity.md | 5 ++ .../REINAH-WP-0008-simpler-metered-retry.md | 17 ++++- 4 files changed, 104 insertions(+), 3 deletions(-) create mode 100644 docs/evidence/2026-10-15-rebuilt-owner-runtime.json diff --git a/docs/evidence/2026-10-15-rebuilt-owner-runtime.json b/docs/evidence/2026-10-15-rebuilt-owner-runtime.json new file mode 100644 index 0000000..616ccbc --- /dev/null +++ b/docs/evidence/2026-10-15-rebuilt-owner-runtime.json @@ -0,0 +1,70 @@ +{ + "observed_at": "2026-10-15", + "built_on": "workstation (bnt-lap001)", + "purpose": "Owner-approved rebuild of the corrected owner runtime for REINAH-WP-0008-T07 step 1; the ee3d0a53 artifact was not retained on the workstation", + "reported_by": "sand-boxer hub message 8a7962f7-76a6-42f7-b3e9-9e343baab315 (thread 82faf25c-8319-4684-945f-bc30dac5de7a)", + "builder": { + "repo": "sand-boxer", + "script": "scripts/build-rein-runtime.py --owner-runtime", + "commit": "4cffd7d (builder unchanged since)", + "includes_fix": "81b5fcf relocate long-path runtime console launchers", + "sources": "clean detached worktrees at the pinned commits" + }, + "runtime_sha256": "818b1b7c8292e904a05e3f215fef9b67a61e7c00d34bfa36689352e8003df359", + "artifact_path": "/home/worsch/.local/share/sandboxer/runtimes/818b1b7c8292e904a05e3f215fef9b67a61e7c00d34bfa36689352e8003df359/", + "supersedes_install_candidate_sha256": "ee3d0a53248a69a1707b27c0ef9c079f7ffbfd7059d9934b2353f728a4c7eb7b", + "replaces_runtime_sha256": "b6e4e8a429393d68831c996a65c0489664205df969ac9882e581983ec2da4969", + "inputs_identical_to": "docs/evidence/2026-10-13-corrected-owner-runtime-build.json", + "source_revisions": { + "rein-aharness": "d897a833ba73ab5f439ea6bcf5c3d112b0f76442", + "llm-connect": "37436bb562a3f20abc3b88defc5bae6508c32e7e", + "glas-harness": "30be81808140a3a3d137e731d1fe9aed59ad8581", + "sandboxer": "221126cb77ea41ec283598a23d628f760a51bdea" + }, + "claude": { + "sha256": "19842705e989393fce936804df6d2ab034860e24b8f8880357981d87ffd83fac", + "version": "2.1.266", + "unchanged": true + }, + "uv_lock_sha256": "8775904b5c0b19aa16e09c25f7e33d1877abeef894b2d0127843c94fcff32683", + "runtime_contract_ok": true, + "verify_runtime_lock": "ok", + "source_contents": { + "files_verified": 165, + "manifest_sha256": "473c6ad3d167ad55571f0203f37055a74de1e0bec6a49f235b61f113f465a772" + }, + "digest_difference_from_ee3d0a53": "The builder embeds absolute build-source paths in 8 files (each package's dist-info/direct_url.json and build-info.json claude.source). Detached worktrees give different paths, hence a different digest; the pinned content set is otherwise the same.", + "startup_proof": { + "command": "sand-boxer scripts/smoke-bwrap-runtime.py --require-owner-entrypoints --claude-version 2.1.266", + "sandbox": "28df7a1d", + "ok": true, + "exit_code": 0, + "rein_cli_started": true, + "glas_cli_started": true, + "adapter_imported": true, + "packages_inside_runtime": true, + "runtime_readonly": true, + "source_absent": true, + "worktree_clean": true, + "interfaces": ["lo"], + "python_prefix": "/opt/sandboxer/runtime", + "claude_version": "2.1.266 (Claude Code)", + "credential_refs": [], + "model_run_proven": false, + "cleanup": "workspace and proxy removed" + }, + "verified_by_rein_aharness": { + "build_info_source_revisions_match_2026_10_13_receipt": true, + "build_info_uv_lock_sha256_matches": true, + "build_info_source_contents_match": true, + "build_info_runtime_contract_ok": true, + "build_info_owner_runtime": true, + "bin_claude_sha256_matches": true, + "launcher_shebangs": "bin/rein-aharness and bin/glas-harness start with #!/opt/sandboxer/runtime/bin/python3 (owner_bootstrap rule)", + "runtime_digest_recomputed": false, + "startup_proof_rerun": false + }, + "no_credentials_provider_requests_or_queue_access": true, + "railiance01": "nothing copied or installed; still pins b6e4e8a4", + "status": "built and startup-proven; not yet installed on railiance01 or admitted" +} diff --git a/docs/native-metered-proof.md b/docs/native-metered-proof.md index d69c5b8..592af89 100644 --- a/docs/native-metered-proof.md +++ b/docs/native-metered-proof.md @@ -115,3 +115,18 @@ adds the `43e6214` pre-claim launcher rejection. Both launchers carry the mount-path shebang and exit 0 inside bwrap with the build directory hidden. No credentials or model calls were used. It is not installed or admitted yet. Receipt: `docs/evidence/2026-10-13-corrected-owner-runtime-build.json`. + +## Rebuilt owner runtime — 2026-10-15 + +The `ee3d0a53…` artifact was not kept on the workstation. With owner approval, +Sand-boxer rebuilt it from the same inputs: the same four source commits, +`uv.lock` and Claude 2.1.266 binary, and the same builder (`4cffd7d`, which +includes `81b5fcf`). The new digest is `818b1b7c…`. It differs only because +the builder embeds absolute build-source paths in 8 files, and this rebuild +used detached worktrees. The bwrap startup smoke passed in sandbox +`28df7a1d`: both CLIs started, the runtime was read-only, the source was not +visible, only loopback was present and there were no credential refs. No model +run was made. `818b1b7c…` replaces `ee3d0a53…` as the install candidate for +REINAH-WP-0008-T07. It is not installed on railiance01, which still pins +`b6e4e8a4…`, and it is not admitted. +Receipt: `docs/evidence/2026-10-15-rebuilt-owner-runtime.json`. diff --git a/workplans/REINAH-WP-0003-governed-runtime-integrity.md b/workplans/REINAH-WP-0003-governed-runtime-integrity.md index 95f8ab8..d077210 100644 --- a/workplans/REINAH-WP-0003-governed-runtime-integrity.md +++ b/workplans/REINAH-WP-0003-governed-runtime-integrity.md @@ -803,6 +803,11 @@ T06 stays `wait`. repository grant v2, which was handled under T04 (`4695649`, `5c36d80`). It does not answer `27cd4c47`, so T05 still waits on that reply. +2026-10-15: the corrected owner runtime was rebuilt as `818b1b7c…`, which +replaces `ee3d0a53…` as the install candidate for REINAH-WP-0008-T07 +(`docs/evidence/2026-10-15-rebuilt-owner-runtime.json`). It is not installed; +railiance01 still pins `b6e4e8a4`. T05 stays `wait`. + ## Re-prove one governed profiled run and close residuals ```task diff --git a/workplans/REINAH-WP-0008-simpler-metered-retry.md b/workplans/REINAH-WP-0008-simpler-metered-retry.md index 9e305a2..024e7ab 100644 --- a/workplans/REINAH-WP-0008-simpler-metered-retry.md +++ b/workplans/REINAH-WP-0008-simpler-metered-retry.md @@ -278,12 +278,23 @@ Everything this repo can do is done: the rehearsal (T01), the settlement rule in informed-decision `ee6a65b`. What remains needs the owner, in order: 1. Accept the memo in the attended sitting. -2. Rebuild `ee3d0a53` from the pinned commits in - `docs/evidence/2026-10-13-corrected-owner-runtime-build.json` and install - it on railiance01. +2. ~~Rebuild `ee3d0a53` from the pinned commits~~ (done 2026-10-15 as + `818b1b7c…`, see below) and install it on railiance01. 3. Run `metered-once --rehearse`. 4. Run `owner renew` with the memo's terms, then update the Secrets Engine file pins. 5. Approve the native actions and run the first attempt. Sand-boxer's steps 2–4 in message `82faf25c` are this same sequence. + +### Runtime rebuilt — 2026-10-15 + +Step 1 is done. The owner approved a rebuild because `ee3d0a53…` was not kept +on the workstation. Sand-boxer built `818b1b7c…` from the same pinned inputs +and builder. The digest differs only because the build-source paths are +embedded in the artifact. The bwrap startup smoke passed (sandbox `28df7a1d`) +with no credentials and no model run. `818b1b7c…` is now the install +candidate. It is not installed on railiance01 (still `b6e4e8a4…`) or admitted. +Receipt: `docs/evidence/2026-10-15-rebuilt-owner-runtime.json`. The memo still +still has to be created, admitted, loaded and accepted first. The owner steps +are in informed-decision `docs/batches/2026-10-14-three-attempts/OPERATOR.md`.