I read this as a read-only recovery investigation and disposable sealing exercise - I’ll trace the stale r2 overlay, prove the corrected closure with two disposable candidates, remove all disposable roots, and write the requested recovery evidence only.


The immutable history shows r2 was sealed after the 134-file freeze but still carries a predecessor overlay artifact; I’m now comparing only path/hash metadata and tracing the sealer’s overlay/input-root semantics before creating disposable proofs.


The root cause is now exact: r2 used a fresh receipt-only root but passed attempt1’s separate `task-v15r71b-maintenance-inputs/successor-overlay.sha256`; the sealer copied current source bytes while binding the stale preparation hash, so canonical verification fails. I’m sealing two candidates from one newly generated, inode-distinct disposable bundle to establish the r3 digest and outer-path independence.


The disposable result matches the current expected identity (`2a85524e...`) twice and both canonical verifiers pass. I’m validating the evidence artifact and rechecking cleanup, authoritative-root absence, and immutable-tree preservation.


I read this as completed recovery evidence delivery - I traced the stale overlay, proved a safe r3 sequence, and verified cleanup and immutability.

Created:

`/home/cube/projects/richard/traning coach/.omo/evidence/nutricoach-telegram-checkin-stepper/task-10-r71b-candidate-r3-overlay-recovery.json`

- Verdict: `RECOVERABLE`
- Expected candidate digest: `2a85524e610edef582583bb89e6cde57ccd03fe9a9489887fd6c8319e10843f6`
- Evidence SHA-256: `5e27bc6d6179294638daccec7950fbaff7be1516a15ae9cbc7fd8e6d1a4e5acd`
- Root cause: r2 used its fresh receipt root but reused attempt1’s stale shared overlay.
- Two disposable candidates passed canonical verification with identical identities under different outer paths.
- Disposable roots removed; authoritative r3 roots remain absent.
- Attempt1 and r2 immutable trees remained unchanged.
- JSON parsing, diagnostics, freeze134 revalidation, and root-absence checks passed.