I read this as a provenance and candidate-binding audit - I’ll inspect the candidate artifacts and derivation logic, independently rebuild twice, compare package hashes and contents, then report PASS/FAIL with exact evidence paths without modifying the worktree.


I found the sealed owner-risk evidence set and both package pairs. I’m now independently checking archive equality/content, recomputing the canonical binding from its inputs, and tracing the owner-risk authority path for any caller-supplied digest or reused predecessor identity.


The candidate is distinct from every predecessor and both component-wheel identities, and the runtime path takes it from the private, currently-authorized Task26 credential before sealing it into the owner-risk capability. I’m doing the final adversarial checks now: injected candidate values, reused predecessor values, and wheel RECORD integrity must all fail or match exactly as appropriate.


I read this as a provenance and candidate-binding audit - I inspected the sealed artifacts, independently recomputed identities, checked wheel contents, and tested digest substitution without modifying files.

# PASS

Candidate:

`5f848901cebcc06ac0e4310bcf527bbc78da3cb0c68c8b1719e3dcb67a8a2408`

## Wheel reproducibility

Both package builds are byte-identical (`cmp=0`):

- Hermes build A/B SHA-256:
  `96f167ce712048648cbdfd22803d6b4e3ec93022752b8eb0496862766aec8917`
- Profile build A/B SHA-256:
  `596d949407e11bc9bb4074ded51367863de06ca5fbd82d58b9806821873255a7`

Evidence:

- `.omo/evidence/v1.3.0-owner-risk-acceptance/build-a/`
- `.omo/evidence/v1.3.0-owner-risk-acceptance/build-b/`

All four wheels passed ZIP integrity and complete `RECORD` verification: Hermes 999/999 entries, profile 59/59 entries.

## Candidate binding

Independent canonical recomputation produced:

- Candidate digest:
  `5f848901cebcc06ac0e4310bcf527bbc78da3cb0c68c8b1719e3dcb67a8a2408`
- Binding SHA-256:
  `784865d1aa573a43a62397fbc6ef4ea115c15722c9d466ae219511dcd6626ec5`
- Binding file SHA-256:
  `ba9226ebaca79941af109b3098055e99d13dda27f018f392dd2fcfbc9cee4c5b`

Both build A and build B validated through `validate_product_binding` against their actual wheels.

Evidence:

- `.omo/evidence/v1.3.0-owner-risk-acceptance/candidate-binding.json`
- Derivation: `gateway/platforms/task26_candidate_derivation.py:201-203`
- Artifact validation: `gateway/platforms/task26_candidate_derivation.py:258-284`

## New wheel modules

Present identically in both builds and equal to worktree source:

- Hermes member `gateway/platforms/telegram_nutrition_onboarding_owner_risk.py`
  SHA-256: `16288b4553e5911da87ede8840e83a8241a183fa4364a6dfa6de8951094fe2de`
- Profile member `checkin_cli/nutrition_onboarding_owner_risk.py`
  SHA-256: `d6d38e517f1c1c2e22317b911db4450ddb6fd8bafcac7a7632d574060520f3bf`

## Injection and predecessor checks

- Arbitrary candidate substitution: rejected.
- Immediate predecessor candidate substitution (`66a770590a50bcbdb30ecdb646e1a795e0c828fea756577034e2ad57323c0410`): rejected.
- Injected wheel digest: rejected.
- Candidate is distinct from both wheel hashes and all inspected predecessor candidate identities.
- Runtime candidate comes from private Task26 authority and is authorized before activation: `gateway/platforms/task26_runtime_authority.py:357-390`, `gateway/platforms/telegram.py:2746-2750`.
- Owner-risk receipt requires exact constant-time equality with that active candidate: `gateway/platforms/telegram_nutrition_onboarding_owner_risk.py:105-110`.
- Callback records the sealed capability epoch, not caller payload identity: `gateway/platforms/telegram_nutrition_onboarding_runtime_callback.py:430`.

No files were modified.


I read this as a final-candidate provenance re-audit - I’ll verify build-c/build-d byte identity, independently recompute the binding, inspect hardened modules inside both wheels, and retest digest/predecessor substitution without modifying files.


I read this as the final hardened provenance verdict - I revalidated all requested artifacts and bindings without modifying files.

# PASS

Candidate:

`bfbd852a1207d0469289b3eb66927e3892d9ada293b7c5611e1da927addf7534`

- **Hermes build-c/build-d:** byte-identical (`cmp=0`)
  SHA-256: `fa9d515c0c1add8c4c03fbb0f08ffa2e3a152a726d35759389a0d15b83cae506`
- **Profile build-c/build-d:** byte-identical (`cmp=0`)
  SHA-256: `f714e336733e856c905c649bb1cb50ef20e339844ce2546a9e688a6faf067b7c`
- **Recomputed candidate:** exact match
- **Recomputed binding:**
  `a77fb286d0826bc715ea5937fca1a495f1d3b6fa209288b94e44597ea6362707`
- **Binding file SHA-256:**
  `d0000c1dde095128a2b457f34a0028f9c4a7e349e861eb39aabaf68b91696f56`

Both wheels passed ZIP and complete `RECORD` integrity checks with zero failures.

New module verification:

- Hermes owner-risk module:
  `16288b4553e5911da87ede8840e83a8241a183fa4364a6dfa6de8951094fe2de`
- Hardened profile owner-risk module:
  `9c36890221c0861aead17366e654b2111bc42d8516cab6079fb2818c1a02f2fd`

Wheel members exactly match worktree source hashes in both builds.

Arbitrary candidate substitution and predecessor reuse using prior candidate `5f848901...a2408` were both rejected by canonical validation. The final candidate is distinct from component wheels and all inspected predecessor identities.

Evidence paths:

- `.omo/evidence/v1.3.0-owner-risk-acceptance/build-c/`
- `.omo/evidence/v1.3.0-owner-risk-acceptance/build-d/`
- `.omo/evidence/v1.3.0-owner-risk-acceptance/candidate-binding.json`
- `.omo/evidence/v1.3.0-owner-risk-acceptance/capability-receipt.json`


I read this as the definitive provenance audit - I’ll independently hash and compare build-e/build-f, recompute the canonical candidate and binding, verify wheel integrity/modules, and test identity substitution without modifying files.


I read this as the definitive provenance verdict - all requested checks were independently recomputed without modifying files.

# PASS

Candidate:

`4a1827822ec8e41c8df13cdb5711c4b22a62cdb86918e8e6f3cab3ce9ad8ea36`

- **Hermes build-e/build-f:** byte-identical (`cmp=0`)
  `6fe29ec733746c5c9ddc9cfedba749b7eeb25147bb02c5716110021c7e5e5bf0`
- **Profile build-e/build-f:** byte-identical (`cmp=0`)
  `a2f63cbe8f4945a3e732f91ebfa317d9c834dbaaf7463b3fb0db8cbcbcd18937`
- **Recomputed candidate:** exact match
- **Recomputed binding:** exact match
  `8d8a556f7afa5a375261aa85f21455ae263bf39c012a0b4ebcd71a3cdd6fe982`
- **Binding file SHA-256:**
  `e68069f42ae729a70720545351ba8b57222f9d12df217bbd0d9df1e599809347`

All four wheels passed ZIP and complete `RECORD` verification with zero failures. Both builds contain source-identical owner-risk modules:

- Hermes module: `16288b4553e5911da87ede8840e83a8241a183fa4364a6dfa6de8951094fe2de`
- Profile module: `da7ef1e68d3896e397f18c7896c7ed17dfdc4236bff13d564330356d464b311e`

Arbitrary digest substitution and predecessor identity reuse using `bfbd852a...addf7534` were rejected by canonical validation. The capability receipt is sealed to the final candidate; file SHA-256:

`04b259900445668e93f383faa11ab19610ac33553b5df7bc9d53ce590ca7b29a`

Evidence:

- `.omo/evidence/v1.3.0-owner-risk-acceptance/build-e/`
- `.omo/evidence/v1.3.0-owner-risk-acceptance/build-f/`
- `.omo/evidence/v1.3.0-owner-risk-acceptance/candidate-binding.json`
- `.omo/evidence/v1.3.0-owner-risk-acceptance/capability-receipt.json`


I read this as the final mixed-build provenance recheck - I’ll compare Hermes build-g/build-h and profile build-i/build-j, recompute the canonical candidate/binding against those exact wheels, and verify archive integrity and substitution rejection without modifying files.


I read this as the final mixed-build provenance verdict - all requested checks passed without modifying files.

# PASS

Candidate:

`9dcf52724fcc8fb9abc7d3789d765e1ec7cf54d5573ca6e1cb38be5d1f41a189`

- **Hermes build-g/build-h:** byte-identical (`cmp=0`)
  `6fe29ec733746c5c9ddc9cfedba749b7eeb25147bb02c5716110021c7e5e5bf0`
- **Profile build-i/build-j:** byte-identical (`cmp=0`)
  `95b160ce0710556a5d0190a9733c62b69ca8314b235dea26e5919fa93ad116a2`
- **Recomputed candidate:** exact match
- **Recomputed binding:** exact match
  `cf4d1a1caf56356df635dc1348e7b999562139024408f4bc6759f32162b66169`
- **Binding file SHA-256:**
  `f9b09e0a901594b5049be2d773281c193d3c5827ccd287bde0712e87fabbf58d`

Both mixed pairs—build-g + build-i and build-h + build-j—passed canonical `validate_product_binding`.

All four requested wheels passed ZIP and complete `RECORD` integrity verification with zero failures. Owner-risk wheel modules match source exactly:

- Hermes: `16288b4553e5911da87ede8840e83a8241a183fa4364a6dfa6de8951094fe2de`
- Profile: `da7ef1e68d3896e397f18c7896c7ed17dfdc4236bff13d564330356d464b311e`

Arbitrary digest injection and predecessor reuse using candidate `4a182782...ad8ea36` were rejected.

Evidence:

- `.omo/evidence/v1.3.0-owner-risk-acceptance/build-g/`
- `.omo/evidence/v1.3.0-owner-risk-acceptance/build-h/`
- `.omo/evidence/v1.3.0-owner-risk-acceptance/build-i/`
- `.omo/evidence/v1.3.0-owner-risk-acceptance/build-j/`
- `.omo/evidence/v1.3.0-owner-risk-acceptance/candidate-binding.json`
- `.omo/evidence/v1.3.0-owner-risk-acceptance/capability-receipt.json`