fix: preserve failure diagnostics and recover historical admission layout - #64
Open
MarcoPorcellato wants to merge 25 commits into
Open
fix: preserve failure diagnostics and recover historical admission layout#64MarcoPorcellato wants to merge 25 commits into
MarcoPorcellato wants to merge 25 commits into
Conversation
Owner
Author
|
CI status for exact head The workflow successfully checked out trusted base This is consistent with the explicit NOT-RUN boundary in the PR description: no live admission recovery, candidate build, CCP run, or evidence publication has been authorized for this head. No retry or synthetic status override was performed. Next safe gate is a separate exact-hash authorization binding:
|
MarcoPorcellato
added a commit
that referenced
this pull request
Aug 28, 2026
## Summary - add the derived `matrix-v2-legacy-v1` compatibility profile needed to reproduce the trusted historical Matrix V2 digests without hard-coding expected output; - retain current admission and terminal-cleanup behavior while binding legacy plan, policy, runtime, and receipt provenance; - make the two Matrix fixture tests use the reviewed writable `CCP_TEST_ROOT` binding under a read-only repository mount. ## Exact evidence - head: `faf587890e4f899803f027660bc66452623f405e` - tree: `4615028176f3d594fbce0554f5e5edecfb802af1` - candidate SHA-256: `7cde4c2888721d72fbb8c86b4fdcc75f992050979c5175a5bf10b0cecfa7c6f8` - plan digest: `bc348df299ee58ecc8f7cfc7f2dc743b5c03f1a90f7e5dbff45754017955e901` - receipt ID: `sha256:65ff7b62fa949b549c87c1d599e76d67ebfa3edb3cc15d0cfae3972fdde236d9` - receipt raw SHA-256: `12f6d8988be5dc119eaa469cd3617a0f74e3416f7f66b5155d6cf3e1c1219670` - public evidence: `ccp-evidence/faf587890e4f899803f027660bc66452623f405e:.ccp/receipt.json` The single generation-1 qualification passed formatting, all-target/all-feature tests, strict Clippy, documentation, and release-metadata checks. Candidate and installed-stable verification both returned `PASS` for the same receipt. ## Review boundary This PR is intentionally draft. It is 32 commits ahead of public `main` and overlaps parts of the still-open PR #64, so it must not be made ready or merged until that interaction is reconciled. The qualified candidate is not installed by this PR.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #63.
This PR closes two related fail-closed observability and recovery gaps:
unknown;admission layout-recoverystatus/apply flow for the single supported historical case: a CCP-owned, plain, emptyagent-tickets/directory.The sidecar is strict, owned, and bound to the exact terminal
failed+unknownentry. The layout recovery keeps normal admission strict, requires a separately authorized exact plan digest, rebuilds the plan under queue-then-slot locks, and preserves the empty directory through a rename-only move into deterministic quarantine.Trust claim checklist
layout-recovery statusis read-only and authorizes neither apply nor a later heavy run.layout-recovery applyauthorizes only one exact hash-bound recovery; it does not authorize CCPrun, Docker, publication, or R5.not_appliedandrecovery_uncertainremain non-success outcomes; uncertainty is never promoted to success.Impact and rollback
agent-tickets/until a separately authorized recovery completes.renameonly, synchronizes both parents, never overwrites/deletes, and has no EXDEV copy/delete fallback.Validation
Validated exact head:
742ac544ebaedfcc656b683424d9045da30a2b32.cargo fmt --all -- --check— PASS.RUSTFLAGS=-Dwarnings cargo check --locked --all-targets— PASS.cargo test --locked— 357 passed, 3 ignored/NOT_RUN.git diff --check— PASS.Cargo.toml/Cargo.lockdiff — empty.Explicitly not run
admission layout-recovery statusorapplyagainst the platform coordinator;run, Docker, network workload, receipt publication, or R5 qualification;A future live apply must be separately authorized against the exact source commit, absolute candidate path, candidate SHA-256, and recovery plan SHA-256. Any later receipt run requires another exact-head authorization.