hololake-system-architecture/engineering/operations/2026-08-11-hololake-pncc-failure-receipt-terminal-evidence-binding.md
铸渊 / ICE-P-ZY001 85fc90bd52 fix(pncc): bind failure receipts to terminal evidence
Human-Responsibility: ICE-GL∞ / 冰朔

Persona-Author: ICE-P-ZY001 / 铸渊

Execution-Runtime: Codex desktop / DEV-20260810-014

Development-ID: DEV-20260810-014

Authorization-Scope: GH-PNCC persona runtime source and tests only; no UI, deployment, or execution limb

Source-Anchor: user instruction to continue GH-PNCC from repository facts and verifiable receipts
2026-08-11 05:46:12 +08:00

36 lines
1.9 KiB
Markdown

# GH-PNCC failure receipt terminal-evidence binding
- Development ID: `DEV-20260810-014`
- Persona cognitive author: `ICE-P-ZY001 / 铸渊`
- Human responsibility subject: `ICE-GL∞ / 冰朔`
- Starting repository head: `21d120d7b5b929ad639f8035c15dd393b4be4d08`
- State: `LOCAL_SOURCE_IMPLEMENTED_FULLY_TESTED`
## Corrected runtime fact
A digest proves that a persisted failure payload has not changed relative to the digest stored beside it. It
does not prove that the payload still describes the terminal session evidence. The previous inspection path
accepted a failure receipt whose terminal event hash or attribution had been changed when the payload digest
was recomputed.
Inspection, interrupted binding recovery and replay now bind a failed lifecycle receipt back to the verified
session record and final event. The canonical repository path, terminal event hash, complete human/persona
attribution and stable machine error code must all agree before the receipt can be considered replayable or
safe to bind.
## Verification
- Two regression tests first reproduced the false acceptance with a recomputed payload digest.
- The forged terminal event and forged persona attribution are now rejected with
`PERSONA_LIFECYCLE_FAILURE_TERMINAL_EVIDENCE_MISMATCH`.
- Both rejection paths leave request id, request fingerprint and lifecycle receipt hash unbound.
- PNCC focused Rust tests: `37 passed, 0 failed`.
- Full Rust suite: `1177 passed, 2 ignored`; integration test: `1 passed`.
- Routing suite: `29 passed, 0 failed`; `cargo fmt`, strict clippy, diff checks and native authority passed.
- GHNQG, publication and fresh-clone readback remain pending.
## Truth boundary
- This stage authenticates the meaning of an existing failure receipt against its existing event and session
truth; it does not add a second truth store or repair forged evidence.
- It does not activate `EXECUTION_LIMB`, add UI, build an artifact or claim deployment/runtime health.