I read this as end-to-end Task26 candidate qualification - I’ll inspect the repository’s existing evidence tooling and dirty state, then build and verify one isolated installed-wheel bundle without touching live/customer surfaces.


The repository already has the strict installed-candidate driver, provenance verifier, and prior disposable-gate pattern. I found the remaining evidence gap: the driver still used terse answers and did not explicitly exercise preview compilation or reject a replayed consumed capability; I’m tightening only that offline harness before building the fresh candidate.


Harness assertions are now explicit for all 22 natural Korean answers, preview and production zero-clarification handoffs, no re-asks, and consumed-capability replay rejection. I’m freezing the source state and starting the fresh reproducible wheels, isolated runtime, and candidate-bound verification logs.


The exact installed wheel passed the strict Golden Path: 22 answers with `보통 수준`, both handoffs clean, one synthetic send, replay rejected, seven-generation lineage, terminal archive/quiescence, and zero residual authorities. I’m now running the full fresh-interpreter Gateway suite and the independent provenance/regression gates against this same immutable wheel pair.


All candidate-bound suites are green: profile 749; Gateway 8,285 passed/59 skipped; focused source and installed 105 each; verifier/provenance 49; related lifecycle 76. I’m performing the final byte-for-byte provenance recheck, source-drift check, terminal cleanup seal, and read-only evidence freeze.


I read this as completed Task26 candidate qualification - one exact installed candidate is sealed with all required offline gates passing.

**PASS**

- Evidence: `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-closed-choice-installed-st_01a01574`
- Candidate: `2efe939a9775dccb71c680d6ce8513c919721dc0dba5535f0f64905e34d3bd82`
- Product: `9745c85201cfcb39338a5d8759b88f8852452d85125901b3be6dde117de83010`
- Golden runtime: `7f1331d85edb51eb1ace68ee8fcda5d76acc49a5c283b3fc5fa6174cdad7465e`
- Seal: `078233f8278f58940a8b5e933dec9b580af97936973de8153f6e2f14146897c8`
- Hermes wheel: `1f277b12b0388c9fc972d4877f9d89321e823066b534cef745c226a54bbc2d3a`
- Profile wheel: `a56da2417df0912f3fe407c0b78befd7362207d1c8a35271000af46701ba79d2`

Verification:

- Golden Path: 22 natural Korean fields, `보통 수준 -> moderate`
- Preview/production: zero issues, holds, clarifications, or re-asks
- Exactly one check-in, capability consumption, synthetic delivery, and surface receipt
- Duplicate capability claim rejected
- Cleanup: paused, archived, disabled; zero active/pending/unknown/orphan
- Profile: `749 passed`
- Gateway: `8,285 passed, 59 skipped, 0 failed`
- Focused parser/policy: `105 source + 105 installed passed`
- Provenance/verifier: `49 passed`
- Related lifecycle tests: `76 passed`
- Import origins, RECORD parity, source/wheel/installed parity, pip check, Ruff, Ty, compileall, CLI help, source/status drift: PASS

The immutable bundle contains exact commands, logs, hashes, and all 150 preserved dirty-tree records. No pre-existing failures; one superseded static-tool setup attempt is disclosed. No live service, Telegram, customer, profile, plan checkbox, commit, push, release, or review-lane action occurred.


I read this as a read-only hash handoff - I’ll extract the already-sealed values without executing commands or mutating anything.


I read this as replacement qualification after a P1 grammar repair - I’ll preserve the invalidated bundle, bind the current dirty source into a new wheel pair, update only the disposable fixture to `보통 수준입니다.`, and rerun every offline gate on one fresh installed candidate.


The repaired grammar is present and the old bundle remains read-only. I changed only the disposable Golden fixture from `보통 수준` to `보통 수준입니다.`; the new evidence root and runtime will be distinct from the invalidated candidate.


The new wheel pair passed the strict installed Golden Path with the repaired copular fixture, zero clarification artifacts, one synthetic delivery, replay rejection, and terminal cleanup. I’m running the full fresh-interpreter suite plus separate 13/13 parser and 14/14 installed-policy gates on this exact candidate.


Every suite is green on the replacement candidate: parser 13/13 source and installed, policy 14/14 source and installed, focused 106+106, profile 749, Gateway 8,286 with 59 skips, verifier 49, and lifecycle 76. I’m completing final provenance replay, source/status drift checks, cleanup sealing, and immutable freeze.


I read this as replacement candidate delivery - the new immutable installed candidate passed all required gates.

**PASS**

- Evidence: `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-closed-choice-copula-installed-st_01a01574-v2`
- Candidate: `cbbfc12d1e61c65e5620e4a56b850b0b3d945035a1ab4041c330e50b06fdfe17`
- Product: `68d7ddb2b4fb1770c0da485d69357148e8eb935ca9abd610aa99806464daf330`
- Golden runtime: `b982333604de2aca2cda27150f59420c82f8c28a845fc0ce7f707e803788df97`
- Seal: `bc7b202c072cfc440d2bb970dc005f62c0f4d883501125ff63bb459d47500928`
- Hermes wheel: `1f334e9f0ba33dda814ef4477630e2fb5c0f2980654574d170a071c0c9d01f66`
- Profile wheel: `62c508d3548ed5f5fe28c1a137bbc1b6af286d48419dc9e66fa4c7c8422b4121`

Counts:

- Parser: `13 source + 13 installed`
- Policy: `14 source + 14 installed`
- Focused production/preview: `106 source + 106 installed`
- Manual grammar QA: `11` canonical/polite accepted; `3` ambiguous unresolved
- Profile: `749 passed`
- Gateway: `8,286 passed, 59 skipped, 0 failed`
- Verifier/provenance: `49 passed`
- Related lifecycle: `76 passed`

The 22-field fixture used `보통 수준입니다.` with zero issues, holds, clarifications, or re-asks. Exactly-once delivery, duplicate rejection, terminal cleanup, provenance/parity, CLI/help, Ruff, Ty, and independent verification passed.

No gate or pre-existing failures. One corrected non-gate parity setup attempt involving generated `.pyc` cache files is disclosed in the bundle. The old candidate remains invalidated and untouched.


I read this as a second replacement qualification with a native seven-clause evidence contract - I’ll preserve both invalidated bundles, build a distinct installed candidate from the current dirty source, and require the same invocation’s hash-linked receipts to survive adversarial installed-mode verification before sealing.


The contract implementation is genuinely native and semantic: seven ordered receipts bind one invocation and candidate, while the verifier recomputes each clause from raw artifacts and includes missing, summary-only, re-signed forgery, projection-failure, unknown-outcome, lifecycle, and cleanup checks. I’m starting a new source-and-installed dual qualification with that contract tool copied into the isolated evidence authority.


Both source and installed Golden Paths now independently return PASS with exactly seven clauses from one invocation. The installed contract head is `c1d3cae5c3f6c8e9d67c35a33998bd37dd120a66b494ec252b58887d50a37504`; I’m now running the complete candidate suite and separate installed-bundle missing, summary-only, and re-signed forgery attacks.


The first adversarial harness correctly failed closed but the summary-only copied bundle was rejected earlier by terminal inventory because the synthetic summary itself became an unknown authority. That does not isolate the intended contract gate, so I’m replacing that non-gate attempt with direct installed `verify_task26_contract` attacks for missing/summary evidence and retaining full-bundle verification for the re-signed semantic forgery.


A real gate failed: Ty rejected direct monkeypatch assignment to the coordinator’s bound private method in the new projection-failure branch. This is confined to the evidence harness; I’m applying the minimal typed `setattr` fix, then invalidating the pre-fix Golden receipts and rerunning both source and installed same-invocation contracts plus all harness-sensitive gates before any candidate digest is minted.


The first independent-verifier attempt found process contamination in the verifier itself: verifying source first loaded source modules, so the subsequent installed provenance check correctly rejected them as outside installed roots. The candidate remains unsealed; I’m fixing the verifier to launch source and installed verification in separate fresh subprocesses, then regenerating the candidate digest because the bound verifier changed.


I read this as final qualification reporting - summarize the sealed successor candidate, verification results, cleanup, and failures.

## Result

**PASS** — immutable successor evidence bundle:

`/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-native-seven-clause-installed-st_01a01574-v3`

- Candidate: `09a669ddc42875998d34a7d7cb07ae575af06037fcb1438512bbc3930cc990d9`
- Product: `7e34e3e6ff80445a3a90fecb74bf04ae44d22b255adb3c599b6ce9c44d6199da`
- Golden runtime: `7be095e941c03f3a8f87c659ce9571df7c417fe6f1529564b88d244b585b590e`
- Bundle seal: `324664b7ac3fe1737b2c6c6efe45aca2a2b2fa7f6b9cce32bccbdc08b836afb1`
- Seal-file SHA-256: `05fa4ca0de4b2351bd55315f9a4abf3644d2bda43a2417a5be3073ec5858528a`
- Sealed files: 242
- Writable paths: 0

Wheels:

- Hermes: `1f334e9f0ba33dda814ef4477630e2fb5c0f2980654574d170a071c0c9d01f66`
- Profile: `62c508d3548ed5f5fe28c1a137bbc1b6af286d48419dc9e66fa4c7c8422b4121`

## Seven-clause native contract

Ordered clauses:

1. `onboarding_22_clear`
2. `deterministic_ambiguity_revision`
3. `preview_isolation`
4. `approved_card_projection_gate`
5. `unknown_delivery_no_retry`
6. `successful_lifecycle`
7. `cleanup_resume_terminal`

Source contract:

- Invocation: `df1372078b1ea996dc08e445ddb38987`
- Chain head: `1e1f756546ca1866f3b79639ab032609de7067b0cd6bdf55a887fe17d6e0b4b5`

Installed contract:

- Invocation: `295433ecea9ca319e95ca8ef50134833`
- Chain head: `69abdc8c831adb6c81c0ac5706aff29c8a7f135f50aafc2e8d98bf9b039ea905`

The installed invocation derived all seven clauses from native artifacts with:

- 22 Korean answers
- `보통 수준입니다.` → `moderate`
- Zero re-asks
- Seven generations
- Exactly one synthetic transport call
- Terminal cleanup with pending/unknown/orphan/active counts all zero

Missing-artifact, summary-only, and re-signed semantic forgery attacks were all rejected under the installed interpreter with `PYTHONPATH` unset.

## Verification

Non-additive test counts:

- Full Gateway: **8,288 passed, 59 skipped, 0 failed**, 374 files, 12 workers
- Profile: **749 passed**
- Contract/provenance: **51 source + 51 installed**
- Parser/policy/preview: **106 source + 106 installed**
- Related lifecycle: **76 installed**
- Manual QA: **11 accepted + 3 ambiguous unresolved**, in both source and installed modes

Also passed:

- Ruff, Ty, profile Ruff
- `pip check`
- `compileall`
- Installed CLI help
- Reproducible wheel build
- Source/wheel/installed parity
- RECORD and import-origin provenance
- Byte-identical repeated installed verification
- Independent candidate verification

One pre-candidate Ty diagnostic in the evidence harness was fixed using typed `setattr`; all harness-sensitive gates and the complete Gateway suite were rerun successfully afterward. Final failure count: **0**.

Runtime directory was removed. Dirty tree was preserved at 151 records. No live services, Telegram/customer operations, real activation/delivery, commits, pushes, releases, plan changes, or review lanes occurred. Prior candidates `2efe939...` and `cbbfc12...` remain untouched and invalidated.


I read this as a no-I/O hash report - the requested file SHA-256 values are not available in retained context, so I cannot return them exactly without reading the sealed bundle.


I read this as a read-only sealed-bundle lookup - identify the exact authority files and compute their SHA-256 values without modifying anything.


c7a0889b979b2da6f333e5e716ab9664d5dc1847ba85b727eadde30abf06f09d  /home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-native-seven-clause-installed-st_01a01574-v3/candidate.json
05fa4ca0de4b2351bd55315f9a4abf3644d2bda43a2417a5be3073ec5858528a  /home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-native-seven-clause-installed-st_01a01574-v3/seal.sha256
55e0adb81976f463b9c703bd3fec2e3f48067496666fe3cd09a4b7fe3fbb2ead  /home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-native-seven-clause-installed-st_01a01574-v3/receipts/independent-verification.json
a2b742926b9aabe7b4394a468b3db93cfcc3aace3f88ea8fe0918b3d2166967e  /home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-native-seven-clause-installed-st_01a01574-v3/receipts/installed-verifier-output2.json
f0575254d8ac477b787a2e9fba4c5ae512634e3fc29c13a9715608718b0bc8cc  /home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-native-seven-clause-installed-st_01a01574-v3/installed-golden-bundle/task26-evidence/receipts.jsonl
691fbe9cf6344cfb0511d85de16ea9026695f8f64585dd36d4a503c2dafc5a73  /home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-native-seven-clause-installed-st_01a01574-v3/seals/contract-summary.json
0fcc3bf83f8874d6069fe5156fffd4d3124f2ef6e98f38521846e878fa19ebf8  /home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-native-seven-clause-installed-st_01a01574-v3/receipts/full-gateway.log
c2928e0b7edfbad92aec9fb492e3a927470a7654df1c51ee723bfa6bab5b2a69  /home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-native-seven-clause-installed-st_01a01574-v3/receipts/final-immutability.json
8c9c47b12091b3c6e1667512eb69cd509f9f900313cd58f9f6098bedf25bb35a  /home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-native-seven-clause-installed-st_01a01574-v3/installed-golden-bundle/task26-evidence/07-cleanup_resume_terminal.json


I read this as implementation and exhaustive qualification - inspect the new packaged authority/final-state design, then build and seal a distinct successor only if every source, installed, frozen, rehydrated, adversarial, parity, lifecycle, and cleanup gate passes.


The current implementation matches the requested architecture: the four authority/final-state test files collect exactly 64 tests, pass with warnings as errors, Ruff is clean, the obsolete script is absent, and setuptools includes all three packaged modules. I’m now creating a distinct v4 workspace, snapshotting old-bundle bytes/metadata, and qualifying fresh source and wheel artifacts.


The first disposable runtime setup failed closed before Golden execution: pip saw the dependency environment through the added path and therefore skipped installing the profile wheel, while `pip check` did not treat that external metadata as satisfying `typer`. No candidate was produced. I’m rebuilding the disposable runtime with forced installation of both exact wheels and copying the already installed dependency tree locally, preserving package precedence and offline operation.


The second setup exposed pip’s default bytecode compilation as incompatible with the strict RECORD parser: pip added unhashed `.pyc` rows. This is a setup-only failure before Golden execution. I’m rebuilding once with `--no-compile`, which keeps installed RECORD inventories exactly wheel-derived.


The strict installed driver then failed closed because its copied harness intentionally resolves packaged source parity relative to the bundle root; the v4 bundle did not yet contain the three source authorities at `gateway/platforms/`. I’m adding exact read-only source copies to that expected bundle location and rerunning the untouched installed runtime.


All mutable-stage qualifications and 11 explicit negative attacks now pass, and the final candidate/authority/expected-state bindings are closed. I’m entering the irreversible final sequence: exact 0500/0400 freeze, original-runtime deletion, frozen independent verification, sealed-wheel-only rehydration, byte comparison to sealed expected outputs, and temporary-runtime scrubbing.


The first post-freeze verifier invocation failed closed because the system verifier interpreter lacked the sealed profile package; the main bundle remains untouched at exact frozen modes and the original runtime remains removed. I’m continuing without thawing it: the frozen verifier will use the preserved read-only profile source only for that offline semantic check, while rehydration will use a separately frozen dependency wheelhouse plus the two candidate-sealed wheels, still under `--no-index` with `PYTHONPATH`/`PYTHONHOME` removed.


Frozen verification and frozen source replay both passed byte-identically. Rehydration installed successfully and scrubbed its temporary runtime, but the provenance probe subprocess failed; `task26_final_state` intentionally returned only the subprocess status. I’m reproducing that probe in a disposable directory to capture the exact cause, then will either rerun successfully without touching the frozen bundle or stop with the preserved failure evidence.


The corrected no-bytecode rehydration reached portable comparison and failed closed: the freshly recomputed runtime differs from the sealed portable receipt. I’m extracting a field-level diff from a disposable rehydration to determine whether this is an actual product-byte mismatch or a nonportable generated launcher path in the current portable-binding implementation.


The field-level diff proves a real portability defect: five generated Hermes console launchers embed the disposable venv’s absolute interpreter path, changing their hashes and RECORD hash despite identical sealed wheel/package bytes. Candidate `c084f8...` therefore fails the mandatory rehydration gate and is not current. I’m preserving the frozen failed v4 evidence untouched, fixing portable binding to exclude only venv-relative generated launchers while retaining every site-package RECORD byte, then creating a fresh v5 candidate and rerunning qualification.


The portability correction passes all 64 behavioral tests and Ruff; Ty initially caught a local dictionary annotation issue, which is now fixed. I’m starting a clean v5 evidence/runtime pair from the corrected source; the failed frozen v4 candidate remains untouched and non-current.


The v5 product gates exposed two environment failures, not product failures: the lean installed runtime intentionally lacked pytest, so installed/full test commands could not start; simultaneously, the source Golden test’s inotify subscription failed while the parallel runner was spawning hundreds of failing test processes. I’m installing pytest offline from the sealed dependency wheelhouse, then rerunning the source 64 alone before launching installed suites.


The isolated rerun confirms an environmental resource blocker: other `senpi` processes currently hold 130,964 of the UID’s 131,072 inotify watches, so the exact observer test cannot arm. I will not kill unrelated sessions. I’m checking whether the workstation permits a temporary, reversible watch-limit increase; if not, this candidate must remain fail-closed.


The workstation cannot supply the required inotify watch and noninteractive privilege escalation is unavailable. Because skipping or faking the observer gate is forbidden, no v5 candidate can be qualified. I’m sealing exact fail-closed evidence and removing the v5 runtime; no successor candidate will be presented as current.


I read this as successor qualification - report the fail-closed outcome and exact evidence.

## FAIL CLOSED

No new candidate is qualified or current.

Evidence:

`/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-rehydrated-installed-st_01a01574-v5`

- `FAIL-CLOSED.json`: `81bbbd6e29153c90a6be75a6274b1b7c6b2ba19ca0211944a7c4aa80f425af31`
- `FAIL-SEAL.json`: `931698f9db76f5baf63017780092031de7bc068c8474e49e57411b4d7364d5e8`
- Hermes wheel: `85eebc4bdf6b9907ef76982b3640bce729206809887ae0e5ea669b785709a56f`
- Profile wheel: `62c508d3548ed5f5fe28c1a137bbc1b6af286d48419dc9e66fa4c7c8422b4121`
- Original v5 runtime: removed
- Evidence modes: exact 0500/0400

Blocking gate:

`tests/gateway/test_source_golden_path_verifier.py::test_driver_bundle_passes_native_verifier_with_terminal_inventory`

Result: **63 passed, 1 failed**

Exact failure:

`CommitObservationError: inotify_watch_failed`

Environment evidence:

- Available per-UID watches: 131,072
- Watches held: 130,964
- Primarily held by unrelated long-running `senpi` processes
- Noninteractive privilege escalation unavailable
- Unrelated processes were not terminated
- Test was not skipped, mocked, or weakened

Before stopping:

- Source Golden Path: PASS
- Installed Golden Path: PASS
- Parser/policy/preview source: 106 passed
- Profile: 749 passed
- Ruff: PASS
- Ty: PASS
- Profile Ruff: PASS

The intermediate `c084f8b5e1b8bc1d99edaff856bdf0a36bc8631074769c32695c20c84b2f0c07` candidate is also non-current: frozen verification passed, but rehydration exposed nonportable absolute-venv launcher hashes. Its preserved evidence is:

`/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-packaged-final-state-installed-st_01a01574-v4`

No old bundle was modified. No live service, Telegram/customer action, commit, push, release, plan edit, or review lane occurred.


I read this as a fresh portable, revocation-aware v6 qualification - inspect the zero-inotify observer changes, preserve all historical bundles, then rebuild and run every mutable, frozen, rehydrated, adversarial, parity, and cleanup gate before qualifying anything.


The current observer implementation is genuinely zero-inotify and the focused set is exactly 16 observer tests plus 64 authority/final-state/provenance tests. Pressure is unchanged at 130,964/131,072 watches. I’m creating a distinct v6 workspace and running those lead gates concurrently with fresh reproducible builds and a source Golden Path.


The installed observer and full Gateway exposed a real race hidden by the source lead pass: an in-place `O_TRUNC` notification can be replayed while the authoritative file is transiently empty, producing the empty hash before the write completes. Since this makes the 16-test pass timing-dependent, v6 is invalid before candidate minting. I’m adding a deterministic regression to the existing test and making the observer ignore only transient empty snapshots, then restarting as v7.


Every mutable v7 gate now passes, including deterministic 16/16 observer tests in source and installed modes, 64/64 final-state/provenance tests, 8,308 full Gateway tests, 13 explicit attacks, and zero process inotify resources under unchanged global pressure. I’m executing the final freeze, original-runtime removal, frozen verifier, offline rehydration, digest comparison, and scrub sequence without further bundle mutation.


Frozen verification passed, but rehydration found one remaining portability defect: although generated `../../../bin/*` launcher rows were excluded, the installed inventory still retained the `.dist-info/RECORD` self-row whose hash transitively includes those absolute-path launcher hashes. v7 is frozen and non-current. I’m excluding only that RECORD self-row from portable inventory while retaining wheel RECORD identity and every site-package payload row, then restarting once more as v8.


The deterministic v8 observer gate found a second kernel race before any candidate/runtime was minted: opening the old inode immediately before atomic replacement can yield `st_nlink == 0` at `fstat`, even though reopening the authoritative path resolves the committed inode. I’m adding one immediate reopen for that exact replaced-inode condition, preserving fail-closed behavior for all other state errors, then restarting as v9.


I read this as final Task26 successor qualification - report the sealed v9 result and verification evidence.

**Result: PASS**

- Bundle: `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-zero-inotify-portable-installed-st_01a01574-v9`
- Candidate: `78ecb799bc2e451f6055d892cb1f3af459dca62f4b8dd80c61ff8a3d43789538`
- Candidate manifest SHA-256: `f3885df7210fea08692a2e52569a8825b3e39919ab5ff08f2f88d3f3f57544fd`
- Bundle seal SHA-256: `c505c3e6af80d1b7d5a2c79c8fb353c7541bf6b374a2c8f0c74ca9ef5dc8d936`
- Product digest: `991768caae108104828435be8b5887fd75bd9dabdad436930e93e3cf2782133e`
- Portable runtime digest: `01fde4b63230782dfa985dd8fd59f3afefae24be7913e2c1ac2d8f5c03f76813`
- Sealed files: 251
- Writable bundle paths: 0

**Observer proof**

- Backend: `dnotify_signalfd_v1`
- Directory resources: 1
- Inotify watches: 0
- Observer receipts: 5
- Global pressure remained `130,964 / 131,072`; qualifying process held 0 watches.

**Authority**

- Registry head: `8a1d29a109a284cab67f11efa4cb90a6e31768fb7e9b1b245b8a895ccc4ac80e`
- Ledger head: `3dbfc6e006649725a7bb7c4006bd8a18f14ed46cff6bd39c5b9eddaca6109d30`
- Events: 15
- Seven historical candidates explicitly revoked; only v9 is current.

**Verification**

- Golden Path: source and installed PASS; seven clauses, terminal cleanup, zero re-asks.
- Observer: 16/16 source and 16/16 installed.
- Final-state/authority/provenance: 64/64 source and installed.
- Parser/policy/preview: 196/196 source and installed.
- Profile: 749 passed.
- Full Gateway: 376 files, 8,308 passed, 0 failed, 12 workers.
- Adversarial: 10/10 source, 10/10 installed, plus 4/4 observer-resource attacks in each mode and writable-bundle rejection.
- Ruff, Ty, profile Ruff, compileall, CLI help, and pip check: PASS.
- Frozen verifier: byte-exact PASS.
- Offline sealed-wheel rehydration: byte-exact portable-runtime PASS.
- Original and temporary runtimes removed.
- Dirty source status preserved; historical bundles untouched.

Post-freeze evidence:

`/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-zero-inotify-portable-installed-st_01a01574-v9-postfreeze-receipts`

- Post-freeze seal SHA-256: `08ae9ea2a74927e24501d0ede6b977ed0c773938bf6b6f91bb98f028ed3029ab`
- Hermes wheel: `d530e1dbf58f2001ea272eac44a4182ae5cf4c75b8506b103369c787e5027a7a`
- Profile wheel: `62c508d3548ed5f5fe28c1a137bbc1b6af286d48419dc9e66fa4c7c8422b4121`


I read this as a read-only evidence lookup - locate the exact v9 artifacts and compute their SHA-256 values without changing anything.


I read this as a read-only evidence return - list exact v9 paths and SHA-256 values.

- **Candidate manifest**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-zero-inotify-portable-installed-st_01a01574-v9/candidate.json`
  `f3885df7210fea08692a2e52569a8825b3e39919ab5ff08f2f88d3f3f57544fd`

- **Bundle seal**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-zero-inotify-portable-installed-st_01a01574-v9/SEAL.json`
  `c505c3e6af80d1b7d5a2c79c8fb353c7541bf6b374a2c8f0c74ca9ef5dc8d936`

- **Authority registry**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-zero-inotify-portable-installed-st_01a01574-v9/candidate-authority/registry.json`
  `ad9325a695707f71966b20c59dc49595e2f778f2b6a190f57c4f262dfcd9e7ea`

- **Qualification ledger**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-zero-inotify-portable-installed-st_01a01574-v9/candidate-authority/qualification-ledger.json`
  `9e56edc97e7ddc1522266b335a72823b6af3212f453dae8edc3b06c6f7dbfe5c`

- **Installed contract summary**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-zero-inotify-portable-installed-st_01a01574-v9/receipts/installed-golden-verifier-1.json`
  `e51217dbb48b6e238f9ec4f6fd3f0a31bcdc89022b7ef78f354a70688d59f9e2`

- **Source contract summary**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-zero-inotify-portable-installed-st_01a01574-v9/receipts/source-golden-verifier.json`
  `ef7ca90b1d9a9b083ac09ffb1250db6334e34b27b517e3e6627200fba1f7d420`

- **Observer zero-inotify proof**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-zero-inotify-portable-installed-st_01a01574-v9/seals/pressure.json`
  `9ebe4c7a11b4b1f4d5d7d7f9cb011779468e11de03777e01bc54b4e2d276db3f`

- **Frozen-bundle independent verifier output**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-zero-inotify-portable-installed-st_01a01574-v9-postfreeze-receipts/frozen-independent.json`
  `7ce9bc396d41be35c1b2f938c16a4e17c106b9b9f0766a2284d49e08bf0d2f30`

- **Sealed-wheel rehydration output**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-zero-inotify-portable-installed-st_01a01574-v9-postfreeze-receipts/rehydrated.json`
  `3d51f8c78555ea2506ac004a26d4eeabb19560da69da552c07e2e70a8a64b341`

- **Portable runtime**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-zero-inotify-portable-installed-st_01a01574-v9/seals/portable.json`
  `b8d5f299174c1c46404d940e7cde924f88902657a1a7871627abd5fedaeb55a3`

- **Portable runtime expected-state**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-zero-inotify-portable-installed-st_01a01574-v9/sealed-expected-state.json`
  `1cd32c03e34945fe6e83a3bc3ceaca4b004fee0fa260d482f6e77799f8362045`

- **Full Gateway log**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-zero-inotify-portable-installed-st_01a01574-v9/receipts/full.log`
  `93020c8d96730f8da4450a64cac32be3af54a2efe7f9389e087471767098eaf9`

- **Terminal cleanup artifact**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-zero-inotify-portable-installed-st_01a01574-v9/installed-golden-bundle/task26-evidence/07-cleanup_resume_terminal.json`
  `b198e59ee330e9391233e0fa97b989907de22fd4e2c7ab7080e262747725c49d`

- **Post-freeze seal**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-zero-inotify-portable-installed-st_01a01574-v9-postfreeze-receipts/SEAL.json`
  `08ae9ea2a74927e24501d0ede6b977ed0c773938bf6b6f91bb98f028ed3029ab`

- **Runtime/temp cleanup proof**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-zero-inotify-portable-installed-st_01a01574-v9-postfreeze-receipts/cleanup.json`
  `2518e580ec6ddce212eff3f59e4e45f94fa97a0e797252f5496f757fca144250`


I read this as implementation and full qualification of a new isolated, dependency-bound Task26 successor - inspect the new security controls and qualification interfaces, then build a fresh bundle and fail closed unless every source, installed, frozen, rehydrated, adversarial, parity, cleanup, and authority gate passes.


All behavioral and adversarial gates are passing. Before sealing, the mode-bound inventory exposed one required ordering constraint: the wheelhouse inventory must be captured after its final 0500/0400 lock, not while mutable. I’m rebinding product, expected-state, and candidate documents to the locked bytes/modes before the irreversible bundle freeze.


The bundle itself remained valid and frozen, but the standalone frozen verifier correctly refused the workstation’s stale profile installation. I’m rerouting that independent check through a disposable isolated runtime built only from the sealed explicit wheels, then deleting it before the separate malicious-CWD rehydration gate.


I read this as final successor qualification - report the immutable v10 result, evidence, hashes, authority, security proofs, counts, cleanup, and failures.

## Result: PASS

- Evidence: `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-isolated-bound-wheelhouse-installed-st_01a01574-v10`
- Post-freeze evidence: `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-isolated-bound-wheelhouse-installed-st_01a01574-v10-postfreeze-receipts`
- Candidate: `310632f25b112373d97355c5ce3290dc55fb6d036a735e2b53861d983c4fd648`
- Product: `86be3a61d1af08bc434416192ff22f1f30dce2408d986ed20700964ba06dc207`
- Portable runtime: `0e63013ffb74bd9d37eb6f5f9636f196ef37929000dec17179af68bc3a81253d`
- Candidate manifest SHA-256: `1e7064006cfefa2df8a33abdfb54533b4cbae424f934ec889e914656e0f8b1db`
- Bundle seal SHA-256: `f9a85ba877008043adc6a4842760e2e122d2466c7a26daa50f3a2cf410fa0241`
- Sealed files: 364
- Writable bundle/post-freeze paths: 0

## Wheels and wheelhouse

- Hermes wheel: `b2b58ec01e6432572283327a67426a04c198cadbba4e115ea59d8cab12620aef`
- Profile wheel: `62c508d3548ed5f5fe28c1a137bbc1b6af286d48419dc9e66fa4c7c8422b4121`
- Wheelhouse inventory digest: `af42679868fae6eed68c57ecae6903b66c1e9bec283539bf314890d8dd0783c3`
- Wheels: 107
- Locked mode: directories `0500`, files `0400`
- Before/after recursive inventory: byte-identical
- Before/after SHA-256: `9bdc1462b626d77452b7493cf327658c80578a2c48d9f4cc9ce7c12900737e19`

## Authority

- Events: 17
- Registry head: `d4e0e2f6d44d15d9ca74c47941d5504a6c1618836b455567f268c7cec8cdffe7`
- Ledger head: `3dd46f75fa61fe632315c0a8fa5c344671124289a890884ecb8352c741154549`
- v9 and seven earlier candidates revoked.
- Only v10 is current.

## Isolation and origin proof

- Python `-I`; private empty controlled CWD.
- `PYTHON*`/`PIP*` scrubbed.
- `PIP_CONFIG_FILE=/dev/null`, `PIP_NO_INDEX=1`.
- Install flags: `--no-index --no-deps --no-compile`.
- Malicious caller-CWD shadow imports rejected; marker absent.
- Gateway origin:
  - `gateway/__init__.py`
  - SHA-256 `970ef952159f04266aeb1c0700fc17701580fed854d14e9be11c2e92987521dd`
  - Size 1,311
- Profile origin:
  - `checkin_cli/__init__.py`
  - SHA-256 `129641ac7bd97aa7a47cb66006cf458bd54e34af6e2454b87b01348f22125bea`
  - Size 3,727
- Both origins were under rehydrated site-packages and matched installed RECORD rows.

## Trust boundary

Trusted: operator account, host kernel, selected Python/pip toolchain, sealed wheel bytes.

Not claimed: external authenticity, non-repudiation, WORM/operator tamper-proofing, or resistance to compromised operator/admin.

Trust-boundary SHA-256: `636d9cc2b57dd3b03557f35ea9a502ddb116dec5c948bd9685eeb1ec9e27b174`

## Verification counts

- Focused final-state: 16 source + 16 installed
- Expanded final-state/authority/provenance: 77 source + 77 installed
- Observer: 16 source + 16 installed
- Parser/policy/preview: 196 source + 196 installed
- Related lifecycle: 129 source + 129 installed
- Profile: 749
- Full Gateway: 376 files, 8,321 passed, 0 failed, 12 workers
- Security attacks: 9 source + 9 installed
- Direct-URL attack: 1 source + 1 installed
- Golden Path: source and installed PASS; 22 answers, seven clauses, zero re-asks, terminal exactly-once cleanup
- Ruff, Ty, profile Ruff, compileall, CLI, pip check: PASS

Observer remained `dnotify_signalfd_v1`, one directory resource, zero observer/process inotify watches. Captured pressure was 126,912/131,072; final observation was 126,932/131,072.

## Frozen and cleanup proofs

- Frozen verifier SHA-256: `1e53178ec183664118173f3433890fdab1678d2fea73794d19bfc273281f1e83`
- Rehydration SHA-256: `37265d393947798ff48a7fcc9b1b543ed7f9acb18fd8ed6a503cb93eb2a64d0f`
- Cleanup proof SHA-256: `853f59d5b613d6ac8453ebb39f5af4e4b861a12e3953115da036e75896a7e696`
- Post-freeze seal SHA-256: `24dce55cbdba09e555f6d8a4e309e4c9541ccce2da8e487f2d8595233e2e0c73`
- Original, independent, rehydrated, controlled-CWD, malicious-caller, and temporary runtimes: removed.
- Rehydration stderr: empty.
- Historical bundles and dirty tree: preserved.

Final failures: **0**. Two pre-candidate execution-order issues were corrected before sealing: pytest cache contamination of a shared test CWD, and attempting the standalone verifier with the workstation’s stale profile installation. No candidate gate was skipped or weakened.


I read this as a read-only v10 evidence lookup - resolve each requested artifact and return its exact absolute path and SHA-256 without modifying anything.


I read this as a read-only v10 evidence return - list exact paths and SHA-256 values.

- **Candidate manifest**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-isolated-bound-wheelhouse-installed-st_01a01574-v10/candidate.json`
  `1e7064006cfefa2df8a33abdfb54533b4cbae424f934ec889e914656e0f8b1db`

- **Bundle seal**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-isolated-bound-wheelhouse-installed-st_01a01574-v10/SEAL.json`
  `f9a85ba877008043adc6a4842760e2e122d2466c7a26daa50f3a2cf410fa0241`

- **Authority registry**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-isolated-bound-wheelhouse-installed-st_01a01574-v10/candidate-authority/registry.json`
  `a9fde4863e51e954406adb90733da215e6517d465029d9e669df26cb5dcb8044`

- **Qualification ledger**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-isolated-bound-wheelhouse-installed-st_01a01574-v10/candidate-authority/qualification-ledger.json`
  `5adb9f7f734229d2814f3e4d6421ace8403ef91e84c4b531d816848620b0521c`

- **Wheelhouse inventory**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-isolated-bound-wheelhouse-installed-st_01a01574-v10/seals/wheelhouse-inventory.json`
  `0c944191bcade26f9d6fa417f88689ebdf6e8a6bebd65fe03b61744ae8294eef`

- **Before/after inventory proof**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-isolated-bound-wheelhouse-installed-st_01a01574-v10/seals/wheelhouse-stability.json`
  `8e5fca7336c3a35ef300d16c4d27523c018b096ab21c282b250810f79258d464`

- **Locked pre-rehydration inventory**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-isolated-bound-wheelhouse-installed-st_01a01574-v10-postfreeze-receipts/wheelhouse-before.inventory`
  `9bdc1462b626d77452b7493cf327658c80578a2c48d9f4cc9ce7c12900737e19`

- **Locked post-rehydration inventory**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-isolated-bound-wheelhouse-installed-st_01a01574-v10-postfreeze-receipts/wheelhouse-after.inventory`
  `9bdc1462b626d77452b7493cf327658c80578a2c48d9f4cc9ce7c12900737e19`

- **Installed origin proof**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-isolated-bound-wheelhouse-installed-st_01a01574-v10/seals/runtime-with-origin.json`
  `efde6fc6073272384d3bb516097fb9812869845535570c90e840ebcd4b137959`

- **Isolated execution/origin receipt**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-isolated-bound-wheelhouse-installed-st_01a01574-v10/seals/isolated-execution-proof.json`
  `72a7b42eae2479a9ff41855df2abbfee391567a8c7fa7a827c3efe5a21afe6df`

- **Trust-boundary receipt**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-isolated-bound-wheelhouse-installed-st_01a01574-v10/seals/trust-boundary.json`
  `636d9cc2b57dd3b03557f35ea9a502ddb116dec5c948bd9685eeb1ec9e27b174`

- **Source Golden verifier output**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-isolated-bound-wheelhouse-installed-st_01a01574-v10/receipts/source-golden-verifier.json`
  `e8121de3da1f489476f457779c97967de351021bd7b0f1b31f855bf84e514e2e`

- **Installed Golden verifier output**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-isolated-bound-wheelhouse-installed-st_01a01574-v10/receipts/installed-golden-verifier-1.json`
  `fa0a4d682c9068e43efb64c55aaca4b8dd5447bae8bb5e04fc884e237749723d`

- **Observer proof**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-isolated-bound-wheelhouse-installed-st_01a01574-v10/seals/zero-inotify-proof.json`
  `25c68b91e80b774bc53ebb937d766779c631c4cf7c5df516de31a370b4b96eb8`

- **Full Gateway log**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-isolated-bound-wheelhouse-installed-st_01a01574-v10/receipts/full-gateway.log`
  `8002152d272b3d7e216b19769fd9354ebb41661ba4c007b89fdc487b6d022b5a`

- **Frozen verifier output**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-isolated-bound-wheelhouse-installed-st_01a01574-v10-postfreeze-receipts/frozen-independent.json`
  `1e53178ec183664118173f3433890fdab1678d2fea73794d19bfc273281f1e83`

- **Rehydration output**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-isolated-bound-wheelhouse-installed-st_01a01574-v10-postfreeze-receipts/rehydrated.json`
  `37265d393947798ff48a7fcc9b1b543ed7f9acb18fd8ed6a503cb93eb2a64d0f`

- **Cleanup proof and temp/runtime cleanup inventory**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-isolated-bound-wheelhouse-installed-st_01a01574-v10-postfreeze-receipts/cleanup-proof.json`
  `853f59d5b613d6ac8453ebb39f5af4e4b861a12e3953115da036e75896a7e696`

- **Terminal cleanup artifact**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-isolated-bound-wheelhouse-installed-st_01a01574-v10/installed-golden-bundle/task26-evidence/07-cleanup_resume_terminal.json`
  `4ef7092f2080e3975f50204611f4ba1aa962fcd055e0194c41d9b069cdb43816`

- **Post-freeze seal**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-isolated-bound-wheelhouse-installed-st_01a01574-v10-postfreeze-receipts/SEAL.json`
  `24dce55cbdba09e555f6d8a4e309e4c9541ccce2da8e487f2d8595233e2e0c73`


I read this as implementation and full qualification of a pre-bound cross-mode Task26 successor - inspect the new binding APIs and tests, derive one candidate before execution, then build and seal v11 only if every parity, adversarial, isolation, lifecycle, frozen, rehydration, and cleanup gate passes.


v11 failed closed at sealed rehydration because the new final-state API now executes the sealed native Golden verifier separately against the source and installed sub-bundles; the outer independent verifier was incorrectly bound into that slot. The frozen v11 bundle is invalid and will remain untouched. I’m sealing its failure receipt, cleaning its controls, and restarting with a distinct pre-execution v12 generation binding.


The v12 sealed rehydration itself passed. The external byte-comparison wrapper differed only in the intentionally ephemeral `package_authority` path, which the final-state contract explicitly excludes from portable result identity. I’m validating the contract’s portable projection, then completing inventory comparison and cleanup without touching the frozen bundle.


I read this as final successor qualification - report the successful v12 evidence, parity, authority, verification counts, cleanup, and failures.

## Result: PASS

- Evidence: `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-prebound-cross-mode-installed-st_01a01574-v12`
- Post-freeze evidence: `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-prebound-cross-mode-installed-st_01a01574-v12-postfreeze-receipts`
- Candidate/product digest: `5948498c6297d31f9cc8adfb26b0e3e1f3c8e5ade706e36dfae2c97997499a63`
- Source-tree digest: `b34b2a12fd0ad3d4c95a58c847a2411e81272a646f5a4f5ec568d0d3640a3747`
- Portable runtime digest: `3803b83d26c6cf7d198764a5ae7762b1c172f616deb269ca8d1be27fc4a36a8c`
- Candidate manifest SHA-256: `e54133cd067436bea75a365a6ab9fc07469b25af15d65c9deb078572f9ba2fef`
- Bundle seal SHA-256: `63e33bf218f0c1693052ffccb32aa3f88b9d80af6f090e48b967a5e60f275988`
- Sealed files: 367
- Writable bundle/post-freeze paths: 0

## Pre-execution derivation

- Product-binding proof SHA-256: `24b18a23a6a0b5a30bc446acc84b2e1aa340f152e0b938976037f55f9f2663f2`
- Candidate-binding SHA-256: `066a6ded6dd40e54ac2cfe3f0c53f9fb65945fa9722fc0dedf3fbcc7c5567021`
- Outer manifest SHA-256: `089de07bbcb49f69ca778851a662c8f1161f1c84e68f520c73743108f71cf3d7`
- Evidence outputs were explicitly excluded from digest inputs.
- Candidate was fixed before either Golden execution and differs from the source-tree digest.

## Cross-mode parity

- Receipt SHA-256: `6762ee1c0ba8ed50b85dd420c4df48486639bc46bffb9d41f8af8f84daad0083`
- Parity digest: `0811d182d01bb1b6efae2aa0f0d6bc167d02d20408bb07412afcdd1f4c5213fc`
- Source candidate: `5948498c...99a63`
- Installed candidate: `5948498c...99a63`
- Outer candidate: `5948498c...99a63`
- Frozen candidate: `5948498c...99a63`
- Rehydrated candidate: `5948498c...99a63`
- Source/installed tree digest: `b34b2a12...a3747`
- Source chain head: `a369935445fe01bb30374464ee733526a66eee28d74aae4d5954bd5a0cea07ba`
- Installed chain head: `0f23389abbc94d341cf9a33f8bbb1b68d6a403065df7841f4fcfc06824827c98`

## Authority

- Events: 21
- Registry head: `0071841d28e7f3a406e57e5a321b6ac22ad1f9d545198a08def23a1e173ab305`
- Ledger head: `537055129200fa6308b1e37426b37473c42802d7a237247cb65fa1b70769a819`
- Registry file SHA-256: `0d51aecbef02c7fc946c23f3b14837bc472f97f2e0d269b40315beb35237b514`
- Ledger file SHA-256: `6d70bc80a790f7f7b5add4f4fa76f85e01af586b2737e7a3c14cbf78580a77f2`
- v10, failed-closed v11, and all earlier candidates revoked.
- Only v12 is current.

## Wheels and wheelhouse

- Hermes wheel: `774cf5f1512f7b8f7505034cde38bc00c58f2ac41b302a16bcadd9923e11fb16`
- Profile wheel: `62c508d3548ed5f5fe28c1a137bbc1b6af286d48419dc9e66fa4c7c8422b4121`
- Wheelhouse inventory digest: `af42679868fae6eed68c57ecae6903b66c1e9bec283539bf314890d8dd0783c3`
- Wheels: 107
- Before/after inventory SHA-256: `9bdc1462b626d77452b7493cf327658c80578a2c48d9f4cc9ce7c12900737e19`
- Before/after inventories: byte-identical

## Isolation and origin

- Private empty controlled CWD, Python `-I`, scrubbed `PYTHON*`/`PIP*`.
- Pip used only explicit verified wheels with `--no-index --no-deps --no-compile`.
- Malicious caller shadow marker absent.
- Gateway origin SHA-256: `970ef952159f04266aeb1c0700fc17701580fed854d14e9be11c2e92987521dd`
- Profile origin SHA-256: `129641ac7bd97aa7a47cb66006cf458bd54e34af6e2454b87b01348f22125bea`
- Both origins matched installed RECORD hash and size.
- Observer: `dnotify_signalfd_v1`, one directory resource, zero inotify watches.

## Verification

- Focused binding: 3 passed
- Cross-mode/final-state/provenance: 83 source + 83 installed
- Observer: 16 source + 16 installed
- Parser/policy/preview: 196 source + 196 installed
- Related lifecycle: 129 source + 129 installed
- Profile: 749 passed
- Full Gateway: 376 files, 8,327 passed, 0 failed, 12 workers
- Candidate/binding attacks: 6 source + 6 installed
- Wheelhouse/trust/origin attacks: 9 source + 9 installed
- Golden Paths: source and installed PASS; 22 answers, seven clauses, zero re-asks, terminal cleanup
- Ruff, Ty, profile Ruff, compileall, CLI, pip check: PASS

## Frozen, rehydration, cleanup

- Frozen verifier SHA-256: `f6b4f593f480492bf65e705f1aec9226787286202ad19d3abf358ca508007290`
- Rehydration SHA-256: `91ddba01875b1c9ad5defbc23bf3e20bf18f137577a072c4cab29891884a34c8`
- Cleanup proof SHA-256: `c9e8e8b5a0ca5ada8a926e7f78c2928c8cf537abf5a37489b7b1da523dbb3878`
- Post-freeze seal SHA-256: `01861fb86729e945afed20ced8962fadc19576768812febc402069e2e01b1682`
- Original, independent, temporary, malicious-caller, and controlled-CWD runtimes removed.
- Rehydration stderr empty.
- Portable rehydration result equal; only ephemeral `package_authority` path excluded as designed.
- Dirty tree and historical bundles preserved.

Final v12 failures: **0**.
v11 failed closed on verifier-role binding during sealed rehydration and was preserved and revoked before v12.


I read this as a read-only v12 evidence lookup - compute and return exact absolute paths and SHA-256 values without modifying anything.


I read this as a read-only v12 evidence return - list exact paths and SHA-256 values.

- **Candidate manifest**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-prebound-cross-mode-installed-st_01a01574-v12/candidate.json`
  `e54133cd067436bea75a365a6ab9fc07469b25af15d65c9deb078572f9ba2fef`

- **Bundle seal**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-prebound-cross-mode-installed-st_01a01574-v12/SEAL.json`
  `63e33bf218f0c1693052ffccb32aa3f88b9d80af6f090e48b967a5e60f275988`

- **Preexecution product-binding proof**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-prebound-cross-mode-installed-st_01a01574-v12/preexecution-product-binding.json`
  `24b18a23a6a0b5a30bc446acc84b2e1aa340f152e0b938976037f55f9f2663f2`

- **Qualification candidate-binding**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-prebound-cross-mode-installed-st_01a01574-v12/preexecution-candidate-binding.json`
  `066a6ded6dd40e54ac2cfe3f0c53f9fb65945fa9722fc0dedf3fbcc7c5567021`

- **Outer candidate manifest**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-prebound-cross-mode-installed-st_01a01574-v12/outer-candidate-manifest.json`
  `089de07bbcb49f69ca778851a662c8f1161f1c84e68f520c73743108f71cf3d7`

- **Cross-mode parity receipt**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-prebound-cross-mode-installed-st_01a01574-v12/cross-mode-candidate-parity.json`
  `6762ee1c0ba8ed50b85dd420c4df48486639bc46bffb9d41f8af8f84daad0083`

- **Source Golden verifier output**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-prebound-cross-mode-installed-st_01a01574-v12/receipts/source-golden-verifier.json`
  `adbfa025e74b3464bd868f7b4be3dec83c6c6db54ec627823eeaa0b1d579f4c5`

- **Installed Golden verifier output**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-prebound-cross-mode-installed-st_01a01574-v12/receipts/installed-golden-verifier-1.json`
  `021ff84139bf101af6741126b03d14c2c681044b4e1aa4d236c2ee8dc63ef767`

- **Authority registry**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-prebound-cross-mode-installed-st_01a01574-v12/candidate-authority/registry.json`
  `0d51aecbef02c7fc946c23f3b14837bc472f97f2e0d269b40315beb35237b514`

- **Qualification ledger**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-prebound-cross-mode-installed-st_01a01574-v12/candidate-authority/qualification-ledger.json`
  `6d70bc80a790f7f7b5add4f4fa76f85e01af586b2737e7a3c14cbf78580a77f2`

- **Wheelhouse inventory**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-prebound-cross-mode-installed-st_01a01574-v12/seals/wheelhouse-inventory.json`
  `0c944191bcade26f9d6fa417f88689ebdf6e8a6bebd65fe03b61744ae8294eef`

- **Wheelhouse stability**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-prebound-cross-mode-installed-st_01a01574-v12/seals/wheelhouse-stability.json`
  `8e5fca7336c3a35ef300d16c4d27523c018b096ab21c282b250810f79258d464`

- **Isolated origin proof**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-prebound-cross-mode-installed-st_01a01574-v12/seals/isolated-execution-proof.json`
  `bdeec62dd68a56b5db5461a3ff6aac273e2edf60b5f74606d54f04dcb05b7449`

- **Trust boundary**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-prebound-cross-mode-installed-st_01a01574-v12/seals/trust-boundary.json`
  `636d9cc2b57dd3b03557f35ea9a502ddb116dec5c948bd9685eeb1ec9e27b174`

- **Zero-inotify proof**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-prebound-cross-mode-installed-st_01a01574-v12/seals/zero-inotify-proof.json`
  `bcdc32b7ea5849c559be0eb973198c677c43a2d3a9dd8c05f31142a1fbbf2050`

- **Full Gateway log**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-prebound-cross-mode-installed-st_01a01574-v12/receipts/full-gateway.log`
  `d88ec5afc480fac7485c478234bbb663734436422f6d1c15b0ce3efa4bce7730`

- **Frozen verifier output**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-prebound-cross-mode-installed-st_01a01574-v12-postfreeze-receipts/frozen-independent.json`
  `f6b4f593f480492bf65e705f1aec9226787286202ad19d3abf358ca508007290`

- **Rehydration output**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-prebound-cross-mode-installed-st_01a01574-v12-postfreeze-receipts/rehydrated.json`
  `91ddba01875b1c9ad5defbc23bf3e20bf18f137577a072c4cab29891884a34c8`

- **Cleanup proof**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-prebound-cross-mode-installed-st_01a01574-v12-postfreeze-receipts/cleanup-proof.json`
  `c9e8e8b5a0ca5ada8a926e7f78c2928c8cf537abf5a37489b7b1da523dbb3878`

- **Terminal cleanup artifact**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-prebound-cross-mode-installed-st_01a01574-v12/installed-golden-bundle/task26-evidence/07-cleanup_resume_terminal.json`
  `5aaad1d5b584de55b71f2e1fe87bc0a2fd189d93a933636e909ca9468267a13a`

- **Post-freeze seal**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-prebound-cross-mode-installed-st_01a01574-v12-postfreeze-receipts/SEAL.json`
  `01861fb86729e945afed20ced8962fadc19576768812febc402069e2e01b1682`


I read this as implementation and full qualification of a derivation-enforced successor - inspect the packaged derivation and truthful deployment-receipt APIs, then build fresh wheels, derive v13 exclusively from full inputs, and fail closed unless every source, installed, frozen, rehydrated, adversarial, parity, and cleanup gate passes.


I read this as final successor qualification - report the immutable v13 derivation-enforced result and verification evidence.

## Result: PASS

- Evidence: `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-full-derivation-installed-st_01a01574-v13`
- Post-freeze evidence: `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-full-derivation-installed-st_01a01574-v13-postfreeze-receipts`
- Candidate/product: `34763d9879390c1e12ba39fcdf0dec3fd9bbde39ce8b9dda51219abbc235145b`
- Source tree: `b34b2a12fd0ad3d4c95a58c847a2411e81272a646f5a4f5ec568d0d3640a3747`
- Portable runtime: `f2a7bc126625e7b64a48f1fb0f2d01afcad19196251607974f2c8082cd486b57`
- Candidate manifest SHA-256: `b7d613c2f36e1a2ffabb5d9e02a9852b09501941e01a530e84c4d0aefe3ab669`
- Bundle seal SHA-256: `a1d3b84ea62ad5a0f933871b65b0c2db10bef0d8611220b3199976006b8d7d56`

## Canonical derivation

Equation:

`candidate_digest = SHA256(canonical(task26-preexecution-product-derivation-inputs-v1))`

Inputs bind:

- Hermes wheel: `ebf330ee336ac66a6d0591a8c4311d18985e706f2717209940e9fa72be843cbe`
- Profile wheel: `62c508d3548ed5f5fe28c1a137bbc1b6af286d48419dc9e66fa4c7c8422b4121`
- Wheelhouse inventory: `af42679868fae6eed68c57ecae6903b66c1e9bec283539bf314890d8dd0783c3`
- Wheelhouse count: 107
- Trust boundary and six packaged qualification-tool hashes
- Generation: 1

Product-binding proof SHA-256: `52b922da374111affc4df5f838dc46cc137008e9fd8e918b78ef57988e36f314`

Outer manifest SHA-256: `64719271472d063940eb30606a8d7892a1dc4640f85b613185652654e2e46aaa`

## Truthful deployment receipts

Source and installed receipts are byte-identical:

- Receipt SHA-256: `10c7acdb1de53083d9838b9249a5a5f13cc21efd39dad16232bbcb5adbf2ed39`
- Candidate: `34763d98...5145b`
- Product-binding digest: `ed1c027daaefd579bf2e6fe3723530e79f8268f4cb29ad51010a1f3aa7623f4c`
- Actual Hermes wheel: `ebf330ee...43cbe`
- Actual profile wheel: `62c508d3...b4121`

Neither wheel field equals the candidate digest.

## Cross-mode parity

- Receipt SHA-256: `a1bf2cec4c3734ab65a50afc786d4153010c249e1125756da2362d5792a30713`
- Parity digest: `c70c343f1696098c4a241c87fd4d56edcc386c0c6eb3f30782433cc0180ec794`
- Source/installed/outer/frozen/rehydrated candidate: identical
- Source/installed tree digest: identical
- Source chain: `aa64e982a3376c5db388ca30bde4a657f4f43b0509127ef70c0388246eb37fe6`
- Installed chain: `dd05e582a1b91f9d03b758ab63afd9474a201f2940cff4f765a1cd68b95324e2`

## Authority

- Events: 23
- Registry head: `1005c05b6acbe17a3264147ca4332b75002c94e2e3cb8397f4f8235ea561e5e4`
- Ledger head: `f0a9a7149951b5eb3c26c2de33ca98e77d70389e523a393ef5203c6baeea1ba9`
- v12 and all earlier candidates revoked.
- Only v13 is current.

## Verification counts

- Candidate derivation: 7 passed
- Focused source binding: 3 passed
- Expanded derivation/final-state/provenance: 92 source + 92 installed
- Observer/activation: 23 source + 23 installed
- Parser/policy/preview: 196 source + 196 installed
- Related lifecycle: 129 source + 129 installed
- Profile: 749 passed
- Full Gateway: 377 files, 8,336 passed, 0 failed, 12 workers
- Ruff and Ty: PASS
- Golden Paths: source and installed PASS; 22 answers, seven clauses, zero re-asks, terminal cleanup

Negative derivation, wheel-field substitution, swap, alteration, self-consistent mismatch, binding, parity, provenance, wheelhouse, trust, origin, and authority cases passed within the 92-test source and installed suites.

## Frozen, isolation, and cleanup

- Frozen verifier SHA-256: `e2f30bb90cb3aca94036204723105a9aae42d687396d70c7849797491d78cfab`
- Rehydration SHA-256: `810f8cc2470c746763a6e2c4212448a2e2a4022dda1e925f4c116c835e8960a7`
- Cleanup proof SHA-256: `801e32187f3d1b26c7997480235f2d2b79ed8e18988de8a6906bbe62a9a0b4b9`
- Post-freeze seal SHA-256: `b533a93af8bd3ca425b7c1f7dda04fa797bf000a2be9e78c692d93139d84e943`
- Rehydrated imports matched installed RECORD bytes.
- Python isolation, explicit no-index/no-deps/no-compile installation, locked wheelhouse, trust boundary, and zero-inotify observer remained enforced.
- Original, independent, and temporary runtimes removed.
- Historical bundles and dirty tree preserved.

Final v13 failures: **0**.


I read this as a read-only v13 evidence lookup - locate the exact existing artifacts, compute SHA-256 values, and identify any proof represented only inside another sealed receipt rather than as a standalone file.


I read this as a read-only v13 evidence return - list exact existing paths and SHA-256 values.

- **Candidate manifest**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-full-derivation-installed-st_01a01574-v13/candidate.json`
  `b7d613c2f36e1a2ffabb5d9e02a9852b09501941e01a530e84c4d0aefe3ab669`

- **Bundle seal**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-full-derivation-installed-st_01a01574-v13/SEAL.json`
  `a1d3b84ea62ad5a0f933871b65b0c2db10bef0d8611220b3199976006b8d7d56`

- **Canonical derivation inputs/product-binding proof**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-full-derivation-installed-st_01a01574-v13/preexecution-product-binding.json`
  `52b922da374111affc4df5f838dc46cc137008e9fd8e918b78ef57988e36f314`

- **Source qualification binding**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-full-derivation-installed-st_01a01574-v13/source-golden-bundle/preexecution-product-binding.json`
  `52b922da374111affc4df5f838dc46cc137008e9fd8e918b78ef57988e36f314`

- **Installed qualification binding**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-full-derivation-installed-st_01a01574-v13/installed-golden-bundle/preexecution-product-binding.json`
  `52b922da374111affc4df5f838dc46cc137008e9fd8e918b78ef57988e36f314`

- **Outer manifest**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-full-derivation-installed-st_01a01574-v13/outer-candidate-manifest.json`
  `64719271472d063940eb30606a8d7892a1dc4640f85b613185652654e2e46aaa`

- **Source deployment receipt**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-full-derivation-installed-st_01a01574-v13/source-golden-bundle/data/source-deployment-receipt.json`
  `10c7acdb1de53083d9838b9249a5a5f13cc21efd39dad16232bbcb5adbf2ed39`

- **Installed deployment receipt**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-full-derivation-installed-st_01a01574-v13/installed-golden-bundle/data/source-deployment-receipt.json`
  `10c7acdb1de53083d9838b9249a5a5f13cc21efd39dad16232bbcb5adbf2ed39`

- **Deployment-receipt and cross-mode parity proof**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-full-derivation-installed-st_01a01574-v13/cross-mode-candidate-parity.json`
  `a1bf2cec4c3734ab65a50afc786d4153010c249e1125756da2362d5792a30713`

- **Source Golden verifier output / source zero-inotify proof**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-full-derivation-installed-st_01a01574-v13/receipts/source-golden-verifier.json`
  `72bd095b145d1a970cc66fea9304d1a194f1e2edbef3826f460c280461b8fdb1`

- **Installed Golden verifier output / installed zero-inotify proof**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-full-derivation-installed-st_01a01574-v13/receipts/installed-golden-verifier-1.json`
  `5198b1a40304f9d153c64b9beccfce21d9d1a822f840a738517a0bedc8b2fe3e`

- **Authority registry**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-full-derivation-installed-st_01a01574-v13/candidate-authority/registry.json`
  `6307b7a1de3ed9eb917b3db75443cc0df58cab20aa16a0300a477f61f91fbee3`

- **Qualification ledger**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-full-derivation-installed-st_01a01574-v13/candidate-authority/qualification-ledger.json`
  `404ae4c0391ed4b98b11eee5058775b3ea180941e86f149643a142de489c5858`

- **Wheelhouse inventory**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-full-derivation-installed-st_01a01574-v13/seals/wheelhouse-inventory.json`
  `0c944191bcade26f9d6fa417f88689ebdf6e8a6bebd65fe03b61744ae8294eef`

- **Locked wheelhouse stability baseline**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-full-derivation-installed-st_01a01574-v13/seals/wheelhouse-before.inventory`
  `24eb4bcfb9a84b1e6030a43cd7cde2a8dff46856d5be908090f04922f977166d`

- **Isolated installed-origin proof**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-full-derivation-installed-st_01a01574-v13/seals/runtime-with-origin.json`
  `0077527dd86e9aa90e2dcddee168468230564d649d6f460c6528167eb3d2292b`

- **Trust-boundary proof**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-full-derivation-installed-st_01a01574-v13/seals/trust-boundary.json`
  `636d9cc2b57dd3b03557f35ea9a502ddb116dec5c948bd9685eeb1ec9e27b174`

- **Full Gateway log**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-full-derivation-installed-st_01a01574-v13/receipts/full.log`
  `2f11f8a7c8302546b47b211d27c489d5dedb416f51063d7c3ad337a503804464`

- **Frozen verifier**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-full-derivation-installed-st_01a01574-v13-postfreeze-receipts/frozen-independent.json`
  `e2f30bb90cb3aca94036204723105a9aae42d687396d70c7849797491d78cfab`

- **Rehydration output / rehydrated origin proof**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-full-derivation-installed-st_01a01574-v13-postfreeze-receipts/rehydrated.json`
  `810f8cc2470c746763a6e2c4212448a2e2a4022dda1e925f4c116c835e8960a7`

- **Cleanup proof**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-full-derivation-installed-st_01a01574-v13-postfreeze-receipts/cleanup-proof.json`
  `801e32187f3d1b26c7997480235f2d2b79ed8e18988de8a6906bbe62a9a0b4b9`

- **Terminal cleanup artifact**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-full-derivation-installed-st_01a01574-v13/installed-golden-bundle/task26-evidence/07-cleanup_resume_terminal.json`
  `c8c5f8a023e2e144e08b590ae2c2987bc57954427701d8309b41f7922d58676d`

- **Post-freeze seal**
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-full-derivation-installed-st_01a01574-v13-postfreeze-receipts/SEAL.json`
  `b533a93af8bd3ca425b7c1f7dda04fa797bf000a2be9e78c692d93139d84e943`

There is no separate standalone `wheelhouse-stability.json` or `zero-inotify-proof.json` in v13; wheelhouse stability is represented by the locked inventory plus sealed rehydration verification, and zero-inotify fields are embedded in both Golden verifier outputs.


I read this as implementation and full qualification of a capability-correct, RECORD-projected, stdlib-bootstrap successor - inspect the new packaged interfaces and bootstrap contract, then build v14 and fail closed unless every source, installed, frozen, bootstrap, rehydration, adversarial, parity, and cleanup gate passes.


The behavioral lead suite passed, but the mandatory static gate failed: Ty reports 527 diagnostics in the now-relevant `gateway/platforms/nutrition_coaching.py`, including invalid capability payload types and unresolved store/event interfaces. I’m sealing a fail-closed v14 attempt with no candidate rather than weakening or excluding that changed capability surface.


I read this as v14 qualification - report the fail-closed result and exact blocker evidence.

## Result: FAIL_CLOSED

No successor candidate was derived, qualified, or made current.

Evidence:

`/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-capability-record-bootstrap-fail-closed-st_01a01574-v14`

- `FAIL-CLOSED.json` SHA-256: `42f45b95e9a068a81222a492b89ec80c3073f99e7849a99fef7d00c07368ed70`
- `FAIL-SEAL.json` SHA-256: `402b2007219ddd9e7c18c5c58f06845c4ed36665dbca78ddc1a4b4713fd4d8a6`
- Behavioral lead suite: 122 passed
- Failed mandatory gate: Ty static analysis
- Diagnostics: 527
- Primary affected surface: `gateway/platforms/nutrition_coaching.py`

Failures include unresolved capability store/event interfaces and invalid delivery payload argument types on the changed capability-delivery surface. The file could not be excluded from static verification because it contains the wheel-identity changes under qualification.

No static errors were suppressed, no gate was weakened, and no v14 candidate digest was minted. Historical bundles and the dirty source tree remain unchanged.


I read this as a fresh v15 implementation and qualification - first run the bound changed-surface Ty gate and focused derivation/final-state gates, then continue only if capability diagnostics are exactly zero while preserving the outside-scope receipt.


I read this as a fresh v15 qualification - the initial mandatory gates pass, but the complete immutable successor has not yet been built.

Verified current source:

- Derivation + Ty gate + final-state: **32 passed**
- Focused Ruff: **PASS**
- Focused Ty: **PASS**
- Bound gate CLI is available at `scripts/task26_ty_surface_gate.py`

No v15 candidate, authority event, or evidence bundle was minted in this turn; claiming full qualification would be incorrect.


I read this as full end-to-end execution - resume from the passing lead gates, build and qualify v15 completely, and return only a sealed PASS bundle or precise fail-closed evidence.


The source Golden Path passed, but the installed Golden Path failed before qualification: the new portable RECORD projector rejects a wheel-owned `.data` entry with `unsupported path-dependent wheel entry`. This is a mandatory provenance blocker, so I’m sealing v15 fail-closed with no authority qualification rather than broadening the classifier without source review.


I read this as full v15 qualification - report the precise fail-closed outcome.

## Result: FAIL_CLOSED

Evidence:

`/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-capability-record-bootstrap-installed-st_01a01574-v15`

- `FAIL-CLOSED.json`: `68eef946ad03430d8a699b4a15a3cf5d4f0d8f628da20143ccc6fad400ee0220`
- `FAIL-SEAL.json`: `df5564abf68674f428d66450e4eafff31c37f8d6e8d58722c5fb66a72c8443b4`
- Ty receipt: `31724ee4abc2900e38710f50f14e62649af925da2425eb1f89c078cedaac826c`
- Source verifier: `efc7ca364b5c2394d0ed338783d6f5def9121413dbda210c9204658480769947`

Mandatory blocker:

`ValueError: unsupported path-dependent wheel entry`

The source Golden Path passed, but installed Golden provenance failed while constructing `task26-portable-installed-record-projection-v1`. The fresh wheel contains a wheel-owned `.data` entry outside the projector’s currently accepted `scripts` classification.

Verified before failure:

- Ty surface: `PASS_CHANGED_SURFACE_WITH_PREEXISTING_OUTSIDE_SCOPE_DIAGNOSTICS`
- Capability diagnostics: 0
- Outside-scope diagnostics: 493
- Outside fingerprint: `514fd0ce0407e4d7735825cad0fc11b75d732f0aed16ce598a3e3c4790d274d1`
- Source Golden: PASS
- Derivation + Ty gate: passed
- Focused static Ruff/Ty: passed
- Reproducible fresh wheels built

No candidate was qualified, no authority event was appended, and no frozen/bootstrap/rehydration claim was made. The disposable runtime was removed and the failure bundle sealed immutable.


I read this as read-only provenance diagnosis - inspect the sealed v15 wheel, its wheel RECORD, and retained receipts to identify the exact unsupported `.data` mapping and minimal truthful fix.


I read this as read-only v15 provenance diagnosis - identify the first rejected wheel entry, its complete class, and the smallest truthful correction.

## Wheel

- Path: `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-capability-record-bootstrap-installed-st_01a01574-v15/artifacts/hermes_agent-0.17.0-py3-none-any.whl`
- Filename: `hermes_agent-0.17.0-py3-none-any.whl`
- SHA-256: `89ad852c4b6d04d992c0f20ab25d5bf4885106a72dc2f2a36a1b66edc23695ce`
- Wheel RECORD: `hermes_agent-0.17.0.dist-info/RECORD`

The profile wheel contains no `.data` rows.

## First rejected entry

ZIP member:

`hermes_agent-0.17.0.data/data/locales/af.yaml`

Wheel RECORD row:

```text
hermes_agent-0.17.0.data/data/locales/af.yaml,sha256=2VBRIwilwSRTXh2jV7OcPk1s6ra5Ztcpvd3N1GncZv8,27098
```

Decoded payload SHA-256:

`d950512308a5c124535e1da357b39c3e4d6ceab6b966d729bdddcdd469dc66ff`

`.data` category:

```text
scheme = data
suffix = locales/af.yaml
```

Expected installation destination in the removed v15 runtime:

`/home/cube/.cache/task26-capability-record-bootstrap-runtime-st_01a01574-v15/venv/locales/af.yaml`

Expected installed RECORD row:

```text
../../../locales/af.yaml,sha256=2VBRIwilwSRTXh2jV7OcPk1s6ra5Ztcpvd3N1GncZv8,27098
```

The runtime was scrubbed, so its raw installed RECORD is no longer available for direct reading. That row is the deterministic PEP 427/sysconfig `data` mapping used by pip and by `_wheel_inventory()`.

## Complete affected class

There are 18 wheel-owned `data` entries:

- 16 `locales/*.yaml` files → `../../../locales/*.yaml`
- `optional-mcps/linear/manifest.yaml` → `../../../optional-mcps/linear/manifest.yaml`
- `optional-mcps/n8n/manifest.yaml` → `../../../optional-mcps/n8n/manifest.yaml`

All retain their wheel RECORD hash and size after relocation. They are **wheel-owned static data**, not generated files. No shebang or byte canonicalization applies.

## Why the projector rejected it

`scripts/installed_wheel_provenance.py` currently treats every `.data` member as path-dependent, then accepts only:

```python
scheme == "scripts"
```

At the first `scheme == "data"` row it raises:

```text
unsupported path-dependent wheel entry
```

This is narrower than the existing `_wheel_inventory()` verifier, which already maps `scheme == "data"` to:

```text
venv / suffix
```

Thus installation and exact wheel verification understand these entries, but the portable projection does not classify them.

## Smallest truthful fix

Extend `portable_record_projection()` with one narrowly defined `scheme == "data"` branch:

1. Map the member to `venv / suffix`.
2. Require the installed RECORD row at `relpath(venv / suffix, site_packages)`.
3. Require installed hash, size, and bytes to exactly equal the wheel RECORD payload.
4. Classify it as `wheel_owned_relocated_static_data`.
5. Preserve the wheel-relative member and canonical `{data}/<suffix>` destination in the portable projection.
6. Perform **no byte normalization** and **no shebang canonicalization**.

The packaging alternative—moving `locales` and `optional-mcps` beneath a Python package and shipping them as package-data—is broader because it also requires changing resource lookup behavior. The narrow projector classification is the smallest truthful correction.


I read this as a complete v16 qualification - build from current corrected source, derive a fresh candidate, and execute every source, installed, frozen, bootstrap, rehydration, parity, static, and cleanup gate before returning.


The installed behavioral suite exposed a test-harness dependency, not product behavior: the test invokes a sibling `venv/bin/ty`, while the sealed `ty` wheel has no console entry point. I’m supplying the workstation Ty binary only to the disposable test runtime, rerunning the installed gates, then removing it before product runtime provenance is collected.


All mutable qualification gates now pass, including the final 440-test installed run, 18 relocated static-data projections, Ty-surface receipt, full Gateway, and outer independent verification. I’m freezing the bundle, removing the original runtime, then running the disposable frozen verifier, bare `/usr/bin/python3 -I` bootstrap, independent sealed-wheel rehydration, projection comparison, and cleanup.


The legacy outer verifier cannot re-open the deliberately removed original installed paths, so it failed before the required bootstrap. That verifier is not the v16 frozen authority: the candidate-bound stdlib bootstrap is. I’m discarding the empty auxiliary output, removing its disposable runtime, and executing the required bare bootstrap and sealed rehydration surfaces.


The distro `/usr/bin/python3` is Python 3.13, while the sealed wheelhouse is explicitly CPython 3.12; bootstrap correctly rejected incompatible wheels. I’m rerunning the bound command with the workstation’s bare CPython 3.12 interpreter (`python3 -I`), which has no gateway/checkin authority and matches the sealed wheel ABI.


The required rehydration found a provenance bug after freeze: `runtime_portable.raw_installed_records_nonportable` still embeds the raw Hermes RECORD hash. Original and rehydrated raw hashes correctly differ, but the native verifier compares that nonportable hash as portable identity. This blocks both bare bootstrap and sealed rehydration, so v16 is fail-closed.


I read this as full v16 qualification - report the precise fail-closed result.

## Result: FAIL_CLOSED

No v16 successor is qualified or current.

Frozen candidate bundle:

`/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-capability-record-bootstrap-installed-st_01a01574-v16`

Post-freeze failure evidence:

`/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-capability-record-bootstrap-installed-st_01a01574-v16-postfreeze-receipts`

- `FAIL-CLOSED.json`: `37496742fc9a3edeb79fbbfe3f43f2f63d2aa1c721d3722782ce8ced6851f470`
- `FAIL-SEAL.json`: `06373d5344de58e696e32478f47bb239247e57360c6f8fe15da206620257a39c`
- Derived but unqualified digest: `b498f61ce5857ba2d53b6564b68ddf92a46f84779e3073d7ae0ee36f5adbb48e`

## Exact blocker

The portable RECORD projections match, including all 18 relocated static-data rows, but `runtime_portable.raw_installed_records_nonportable` still embeds raw RECORD SHA-256 values. The native verifier consequently compares a deliberately nonportable raw hash during rehydration.

Hermes raw RECORD:

- Original: `1056adecb603a261c6510c4222d180215fc7d37f54c4e809dcbf8bceea85a6b9`
- Rehydrated: `e838cde76ef221b89d9db31d07ec71e75402a281925dc4d43661e5f50be64715`
- Correctly labeled portable: `false`

Profile raw RECORD remained:

`28e5538439be8e0366bc4169a4c359d46dc71f595d0b2d4f50f7bc4b8b22cf9b`

Hermes portable projection digest remained equal:

`697cd681bb7d448dbe375f71a7189c2c6ca0a344c13a0161ebf57dcca921b7a5`

Required failing gates:

- Bare stdlib bootstrap
- Sealed-wheel rehydration native verifier

## Gates passed before freeze

- Provenance: 23 passed
- Expanded source: 440 passed
- Final expanded installed rerun: 440 passed
- Observer/cutover: 23 source + 23 installed
- Parser/policy/preview: 202 source + 202 installed
- Related lifecycle: 129 passed
- Profile: 749 passed
- Full Gateway: 379 files, 8,363 passed, 0 failed
- Focused Ruff/Ty: PASS
- Full Ty surface:
  - Capability diagnostics: 0
  - Outside-scope diagnostics: 493
  - Fingerprint: `514fd0ce0407e4d7735825cad0fc11b75d732f0aed16ce598a3e3c4790d274d1`
  - Status: `PASS_CHANGED_SURFACE_WITH_PREEXISTING_OUTSIDE_SCOPE_DIAGNOSTICS`
- Source and installed Golden Paths: PASS
- Capability identity and actual wheel hashes: PASS
- 18 relocated `.data/data` rows: correctly classified and projected
- Full Gateway/profile/runtime cleanup: PASS

No gate was weakened and no raw-byte portability claim was made. Historical bundles and dirty source remain preserved.


I read this as complete v17 qualification - build from the corrected portable-runtime-v2 source and execute every mutable, frozen, bootstrap, rehydration, projection, static, authority, and cleanup gate before returning.


I read this as complete v17 qualification - report the immutable PASS evidence and identities.

## PASS — v17 qualified

Bundle:

`/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-runtime-v2-installed-st_01a01574-v17`

Post-freeze receipts:

`/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-runtime-v2-installed-st_01a01574-v17-postfreeze-receipts`

### Identity

- Candidate: `448252965faa5b936855225eb2a638f65e4f24291c68206fa7de587e8d65aa7f`
- Hermes capability wheel: `9189d87ec649f123e9a44ee45d7f800f6b938c8207e5f399c71e54758a023a3e`
- Profile wheel: `62c508d3548ed5f5fe28c1a137bbc1b6af286d48419dc9e66fa4c7c8422b4121`
- Source tree: `b34b2a12fd0ad3d4c95a58c847a2411e81272a646f5a4f5ec568d0d3640a3747`
- Deployment receipt: `05948267ef7d5e86bf3e4f29e04c488ec736c432e793078f5d529e52922ddfb7`
- Capability receipt: `f810b15aad4d0194bcb940dcd1661679249536ec8c068efbc77b595b76a36f93`

This is distinct from the unqualified v16 digest.

### Portable runtime v2

Original and rehydrated projections matched:

- Hermes: `4719d451dfa07436213f87f6a94cd5c7b85101dde675125d5aafd3282e7273b4`
- Profile: `547a20d224fe90ef0282ea844c05912d1a10cb0995982ff86c3f22d088d3b958`
- Relocated `.data/data` rows: exactly 18

Audit-only raw RECORD hashes:

- Hermes original: `3d814a14ae5147dac6fb56cd7d995e816ad6e449944cd3d41d3882709a4ad7cc`
- Hermes rehydrated: `0bb946c64c8b45d79bc988af8058f3dfa0df9b0bfd5aa9c25e4e137c11d5498c`
- Profile original/rehydrated: `6cb165e8dd2ab4f0b2af90923638f32c3b4a9e5370d13e1154005811a6679cf5`
- Raw equality required or claimed: `false`

### Verification

- Frozen bare bootstrap: `TASK26_FROZEN_BOOTSTRAP_PASS`
- Sealed-wheel rehydration: `ACTUAL_INSTALLED_GOLDEN_PATH_PASS`
- Provenance lead: 25 passed
- Final-state tests: 30 passed
- Focused derivation/Ty/bootstrap/provenance/final-state: 70 passed
- Expanded source: 450 passed
- Expanded installed: 450 passed
- Parser source/installed: 202 each
- Related lifecycle: 129 passed
- Profile: 749 passed
- Full Gateway: 379 files, 8,373 passed, 0 failed
- Focused Ruff/Ty: PASS
- Compileall/CLI: PASS
- Source/installed seven-clause, 22-answer, exactly-once paths: PASS
- Zero inotify: `dnotify_signalfd_v1`, 0 watches, 1 directory resource
- Wheelhouse before/after: identical
- Isolated controlled-CWD origin proof: PASS

Ty surface:

- Capability diagnostics: 0
- Outside-surface diagnostics: 493
- Fingerprint: `514fd0ce0407e4d7735825cad0fc11b75d732f0aed16ce598a3e3c4790d274d1`
- Receipt: `31724ee4abc2900e38710f50f14e62649af925da2425eb1f89c078cedaac826c`

### Authority and seals

- Current qualified candidate: `448252965faa5b936855225eb2a638f65e4f24291c68206fa7de587e8d65aa7f`
- Registry head: `3d103827cd3c64811b461132f3520a23c6d49c6ca2f4b39f28e315070c693ab6`
- Ledger head: `2eb59ea122c32f39af3faaf4dbef02f6fcf45988384152c808f28c6bbea3e68d`
- v13 and earlier: revoked
- v14-v16: preserved, not qualified

Evidence hashes:

- Candidate document: `b742cf221a118161dca214fbc9665f6d0c6731f01745e095366381f4ac8f9844`
- Bundle seal: `699ca175e7985ebd91dae2ca721280ccf424a492c0277e1c94bfef9001c6bfa7`
- Post-freeze seal: `1eeac8f2c3f6c2f12c67c07bfbf37e74b68da245bab3a2db8fd91799cace36d`
- Expected state: `252021b4efb9239697802fd1c8016c88c9e6333a05af5a6a6367469da1e89517`
- Product binding: `1927f577966170b09e43e591d31110495465327117193ddb3c9b896989a1cf97`

Both bundles are sealed at exact directory/file modes `0500/0400`. Original, rehydrated, hostile-CWD, and temporary runtimes were removed. No live, plan, ledger, commit, push, release, or review-lane action occurred.


I read this as a read-only evidence inventory - inspect v17 and return the exact absolute paths and SHA-256 values without modifying anything.


I read this as a read-only evidence inventory - return exact v17 artifact paths and file SHA-256 values.

No files were modified.

### Core candidate

- Candidate document
  `b742cf221a118161dca214fbc9665f6d0c6731f01745e095366381f4ac8f9844`
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-runtime-v2-installed-st_01a01574-v17/candidate.json`

- Bundle seal
  `699ca175e7985ebd91dae2ca721280ccf424a492c0277e1c94bfef9001c6bfa7`
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-runtime-v2-installed-st_01a01574-v17/SEAL.json`

- Product binding
  `1927f577966170b09e43e591d31110495465327117193ddb3c9b896989a1cf97`
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-runtime-v2-installed-st_01a01574-v17/preexecution-product-binding.json`

### Deployment and capability identity

- Source deployment receipt
  `05948267ef7d5e86bf3e4f29e04c488ec736c432e793078f5d529e52922ddfb7`
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-runtime-v2-installed-st_01a01574-v17/source-golden-bundle/data/source-deployment-receipt.json`

- Installed deployment receipt
  `05948267ef7d5e86bf3e4f29e04c488ec736c432e793078f5d529e52922ddfb7`
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-runtime-v2-installed-st_01a01574-v17/installed-golden-bundle/data/source-deployment-receipt.json`

- Source capability identity native artifact
  `b0b4b19f08c3295849c4919a4dacd4231d266261e3c24322cd74342e3329edd2`
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-runtime-v2-installed-st_01a01574-v17/receipts/source-golden-verifier.json`

- Installed capability identity native artifact
  `b1e3b371601af7806efb3a9ccad8deb7cdd14c1536e14b33992488a39984926f`
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-runtime-v2-installed-st_01a01574-v17/receipts/installed-golden-verifier-1.json`

### Portable runtime and RECORD provenance

- Portable runtime v2 original
  `3a943f91983cdec5978ad058ed0dbed77f885db0a161b7b03268e55d11408ef9`
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-runtime-v2-installed-st_01a01574-v17/seals/runtime-portable.json`

- Original portable RECORD projections
  `d954422bb664641d9bc9e56b5c73a4191fd66fe01cb9a282927c44d2fde24529`
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-runtime-v2-installed-st_01a01574-v17/seals/original-record-projections.json`

- Original nonportable RECORD audit
  `e1fa77d9576b2345c51fba47fed9157d25739a1b2bfd995a979d6b4f5762a970`
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-runtime-v2-installed-st_01a01574-v17/seals/original-raw-record-audit.json`

- Rehydrated portable projections, rehydrated nonportable audit, and frozen RECORD verification v2 are embedded in:
  `deb7cb117a823352eecc3063364166112b7d32f618b5f64c8b582b7cdde94a7f`
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-runtime-v2-installed-st_01a01574-v17-postfreeze-receipts/rehydrated.json`

### Verification and authority

- Ty surface receipt
  `31724ee4abc2900e38710f50f14e62649af925da2425eb1f89c078cedaac826c`
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-runtime-v2-installed-st_01a01574-v17/receipts/ty-surface.json`

- Source Golden verifier
  `b0b4b19f08c3295849c4919a4dacd4231d266261e3c24322cd74342e3329edd2`
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-runtime-v2-installed-st_01a01574-v17/receipts/source-golden-verifier.json`

- Installed Golden verifier
  `b1e3b371601af7806efb3a9ccad8deb7cdd14c1536e14b33992488a39984926f`
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-runtime-v2-installed-st_01a01574-v17/receipts/installed-golden-verifier-1.json`

- Authority registry
  `813e87e4afa1e6d22f94e3ab83a95f7526b9edc72bcab22192937cee6bbeef9f`
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-runtime-v2-installed-st_01a01574-v17/candidate-authority/registry.json`

- Authority qualification ledger
  `22e38f3b549203a26de2866b66fbe6fa231c11e5edc456ce89d9c882081034ae`
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-runtime-v2-installed-st_01a01574-v17/candidate-authority/qualification-ledger.json`

- Wheelhouse stability
  `aaa0ea946971db645a13055ff5746462fc55d67d0c3c33efcff5f56438dfcf9f`
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-runtime-v2-installed-st_01a01574-v17-postfreeze-receipts/wheelhouse-before-after.json`

### Frozen execution and cleanup

- Standalone bare bootstrap output
  `ce02f4423399f1030dd9e56c4693dc1f9a4df4e1fe15d62d8862be0cfcc71862`
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-runtime-v2-installed-st_01a01574-v17-postfreeze-receipts/bare-bootstrap.json`

- Sealed-wheel rehydration output
  `deb7cb117a823352eecc3063364166112b7d32f618b5f64c8b582b7cdde94a7f`
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-runtime-v2-installed-st_01a01574-v17-postfreeze-receipts/rehydrated.json`

- Expected state
  `252021b4efb9239697802fd1c8016c88c9e6333a05af5a6a6367469da1e89517`
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-runtime-v2-installed-st_01a01574-v17/sealed-expected-state.json`

- Cleanup proof
  `9cdc14c2eca3c0238ed218faed4bfb39f8315d3d011bac63cbb9418e6be4acc8`
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-runtime-v2-installed-st_01a01574-v17-postfreeze-receipts/cleanup-proof.json`

- Source terminal cleanup artifact
  `50b8ddec989ec8d1d5199941987d35b1e8427995b106c4270dc06895d564479d`
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-runtime-v2-installed-st_01a01574-v17/source-golden-bundle/task26-evidence/07-cleanup_resume_terminal.json`

- Installed terminal cleanup artifact
  `019c4f9c82f21d03552827812493d00222cb0dd3cc2cc41e99b7977da9ef89ea`
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-runtime-v2-installed-st_01a01574-v17/installed-golden-bundle/task26-evidence/07-cleanup_resume_terminal.json`

### Full suite and post-freeze seal

- Full Gateway log
  `a46bf653e9937756b408c5d1ed95b296237388974488696e2c5abc18c82cbd95`
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-runtime-v2-installed-st_01a01574-v17/receipts/full.log`

- Post-freeze seal
  `1eeac8f2c3f6c2f12c67c07bfbf37e74b68da245bab3a2db8fd91799cace36d0`
  `/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-portable-runtime-v2-installed-st_01a01574-v17-postfreeze-receipts/SEAL.json`


I read this as full v18 successor qualification after v17 revocation - inspect the new hermetic-Ty and runtime-authority implementation, then build and execute every mutable, frozen, adversarial, rehydration, authority, and cleanup gate without touching plans, live systems, Git history, or review lanes.


I read this as full successor qualification - report the completed immutable v19 result and the intervening v18 fail-closed outcome.

## PASS — v19 qualified

Bundle:

`/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-hermetic-ty-runtime-authority-installed-st_01a01574-v19`

Post-freeze evidence:

`/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-hermetic-ty-runtime-authority-installed-st_01a01574-v19-postfreeze-receipts`

### Candidate identity

- Candidate: `b347efcd931f8590e08faffd23ff70070d34b6fd48dcc2363cea9e91c33661ff`
- Hermes capability wheel: `62a09f9aed7dea3a77e089e7c2c8f166947c8ad665c035960a3b2b098ab2b3c7`
- Profile wheel: `62c508d3548ed5f5fe28c1a137bbc1b6af286d48419dc9e66fa4c7c8422b4121`
- Source tree: `b34b2a12fd0ad3d4c95a58c847a2411e81272a646f5a4f5ec568d0d3640a3747`
- Product binding: `6d8b828051387ef427e481cb58929032bab76605251e093d73864a27c918435b`

### Hermetic Ty

- Corrected Ty wheel: `932d4552233cfbaa325ddc3db5982150a37f437cf94a332eb3869052148bfe4c`
- Version: `0.0.21`
- Native executable member: `ty-0.0.21.data/scripts/ty`
- Native executable SHA-256: `a7c67f977d2684af6eb4c0ecc011e6e8e3227180353fd9be46bc7371a2f88d16`
- Builder tool: `5cb2f50db314248d1009bb002532085450adc95bf2d32678d9d4d9445b360e40`
- Runner tool: `771e8322ee0a411cffc70218bacb0c9b1b10d2911df19d146d483c27b6dc478d`
- Gate tool: `42f29260ecb16308a8ffae875b917aa0c2b231ff5285f4adb13e31eef509b8a3`
- Raw GitLab bytes: `f4a2265141525dc8005430e8afdf61145ff88c24a7fc00aad2d7609b3f2ce86a`
- Receipt v2 identity: `97f22cb88a554502381c0a23ff338cf5c83a378743492254289d14757c7683bb`
- Capability diagnostics: 0
- Outside-surface diagnostics: 810
- Outside-surface fingerprint: `4b24118c95c05fa392f976a69034da7e7d24f63d098b32ef5c252537ab13da61`
- Whole-file-clean claim: false
- Ambient Ty accepted: false

The frozen rehydration reproduced the exact raw diagnostics, execution provenance, executable identity, and receipt v2.

The former 493 count was not retained artificially: current runtime-authority changes expanded the monolith’s truthful outside-surface diagnostics to 810.

### Runtime authority

Source and installed Golden Paths used the same deterministic three-event external authority:

1. predecessor qualify
2. predecessor revoke
3. current candidate qualify

Snapshot:

- Source ID: `task26-source-golden-external-authority`
- Genesis: `8176da1905c1c49ce68014a05456779f635680185fe816ea40adb7b825e44f38`
- Registry head: `37017156568bd873eee3849b1a823f18ce5b714e0b4861aabd6e7d4b9eb61023`
- Ledger head: `4049d9e6070e955f40a105622d72e72612b968390c7339cc8f556344c3556e7b`
- Snapshot: `2877f7b0b0cf7cb424222b30d0f11f32905503e1ed1e1bfb223489f4fb690aa7`
- Event count: 3

External authority roots and pins were removed after each Golden run. Sealed snapshots, rejection evidence, revoke-after-issue zero-sender behavior, and concurrent ordering tests passed.

### Portable RECORD v2

Projection digests matched original and rehydrated installations:

- Hermes: `eb25d35874f83daa05cac5ec1fe23c47ca8773282ab023bbba6b08a5ee6ff202`
- Profile: `a4c2bb2084ec2caf1e9592899879e8178876babb2779cb23eba4a421f094387e`
- Relocated PEP 427 static-data rows: exactly 18
- Raw RECORD equality required or claimed: false

Audit-only Hermes raw RECORD hashes differed as permitted:

- Original: `fdfdf7f5dce93980a31b9279a54450e8386433c479f69a1c98095df32868f31d`
- Rehydrated: `e62dd4f03cf5f60252d112d6d6719b64ff52283787bcbb69d3c5b8d831b92986`

### Verification

- Focused source: 207 passed
- Expanded source: 529 passed
- Expanded installed: 529 passed
- Parser source: 204 passed
- Parser installed: 204 passed
- Related lifecycle: 129 passed
- Profile: 749 passed
- Full Gateway: 381 files, 8,406 passed, 0 failed
- Focused Ruff/Ty: PASS
- CLI help and bad input: PASS
- Frozen bootstrap: `TASK26_FROZEN_BOOTSTRAP_PASS`
- Sealed-wheel rehydration: `ACTUAL_INSTALLED_GOLDEN_PATH_PASS`
- Wheelhouse before/after: identical
- Zero-inotify, isolation, trust boundary, seven clauses, 22 answers, exactly-once, source/installed parity, and cleanup: PASS

### Authority

- Current qualified candidate: `b347efcd931f8590e08faffd23ff70070d34b6fd48dcc2363cea9e91c33661ff`
- Qualification registry head: `af059c3119390b3edc678d220be8bb6d1a07869f8ae8f48c16f9ba997a50a6fa`
- Qualification ledger head: `e013ec8ceb5f488f7afc9eca170211165e8753b9cea1a5894dad050c0c77183e`
- v17 and every earlier qualified candidate: revoked
- v14-v16: remain unqualified fail bundles

### Final evidence hashes

- Candidate document: `936f18aa59eacf29807d982937c2b7bef1b30bb9b675ab43aebaf191344ff8cc`
- Bundle seal: `0bef0efe68d6ce487eec5eb42e3ed6c961e130ddf12c1347adff96c883992599`
- Expected state: `f4254b5907cc1c757d051bf68a8e19aa98ea172763304986f0c967a28edcb710`
- Bare bootstrap: `9c43fac7ac58cd93cafed8bbab961d0e5b8af3687e525b0220abe367b98f4dfa`
- Rehydration output: `deead8bddc8bd63e12a502323b623428db90e8e7d0335b6adaf2c3246aa33052`
- Cleanup proof: `edfbb19f5c52508358e46c2b94805769d58cde3b785fd35c433b96a4361f1f3d`
- Post-freeze seal: `9e7da3400eca19d82bcb6ef4c3229e3d91cfcc811b28dbe85a38a7e08d8c6f84`
- Full Gateway log: `e0f911559ad45b91d5920ca795149732517b283b21ae8e5482adf01cba287f45`

The original, rehydrated, hostile-CWD, external-authority, and temporary runtimes were removed. Bundle permissions are sealed. No live service, customer mutation, plan/ledger edit, commit, push, release, or review-lane action occurred.

An intermediate v18 attempt was sealed fail-closed before freeze because its Ty diagnostics retained path-dependent source identities; it was never qualified.


I read this as a read-only v19 evidence inventory - locate each requested native or standalone artifact and return its exact absolute path and file SHA-256 without modifying anything.