fix(storage): harden source train continuity refresh - #3924
Conversation
The unreleased source-train fixture named source train 029 even though the live source tier is now version 031, so the production continuity guard skipped the fixture. Bootstrap also creates the train-state directory before the test does. Load the current packaged source train sidecar and tolerate the bootstrap-created directory so the test reaches reconcile_blob_ref_liveness and rejects the unreleased train before a receipt is written. Verification: focused durable/liveness/CLI suite (97 passed); devtools verify --quick (24 checks passed). Ref polylogue-6k0na
Source continuity refresh now rejects pre-mutation evidence unless it is explicitly source-tier evidence before reading mutation receipts or backup manifests. A real file-backed SQLite regression exercises the released-train refresh route with USER-labeled evidence and proves the direct fail-closed rejection. Ref polylogue-6k0na
|
Warning Review limit reached
Next review available in: 35 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
## Summary
Restore the guarded acceptance-contract snapshot for the 216 safely
reconciled Beads records and record the closure of the three
implementation lanes whose reviewed PRs are already merged.
## Problem
The merged repository contained the acceptance-contract tooling and
historical contract wave, but the current `.beads/issues.jsonl` snapshot
had lost nearly all structured contracts after a stale export. Three
implementation Beads also remained in progress after their exact-head
PRs merged.
## Solution
- Reconciled the historical contract snapshot against the current issue
population with the guarded repository reconciler.
- Imported 216 exact/timestamp-safe contract rows and adjudicated the
two drifted manifest rows (`4n8k` and `fbkr`) separately; the latter now
carries a fresh contract bound to its current closed record.
- Closed `fbkr`, `q4qpl`, and `6k0na` only for their implementation/test
scope, retaining live-operation successors and residual production work.
- Preserved the two operator-action rows without invented implementation
contracts.
## Verification
- Guarded reconciliation: 216 rows applied; two drifted rows separately
adjudicated.
- Structured contract population: 218 records present after import.
- `devtools lab policy bead-graph`: no cycles, no invalid contracts, and
no missing required contracts; two deferred operator-action rows remain
intentionally without AC (`av2g`, `n2f4`).
- Merged implementation evidence is recorded in the three closed Beads
and the exact PR carriers below.
<!-- polylogue-pr-scope:v1
{
"assigned_beads": [
"polylogue-fbkr",
"polylogue-q4qpl",
"polylogue-6k0na"
],
"beads_digest":
"1dba3dcb4de072e61123ac05863732ba9c05715f586651ec3ea69039db26beaf",
"dispositions": [
{
"bead_id": "polylogue-fbkr",
"disposition": "partial",
"evidence": [
{"kind": "commit", "ref": "d8ba0e3a9da6 merged PR #3922"},
{"kind": "test", "ref": "raw-authority frontier focused tests and quick
gate passed"},
{"kind": "review", "ref": "late mutation-preservation assertion repaired
and independently checked"}
],
"successors": ["polylogue-c0z2a"]
},
{
"bead_id": "polylogue-q4qpl",
"disposition": "satisfied",
"evidence": [
{"kind": "commit", "ref": "b941e330b152 merged PR #3923"},
{"kind": "test", "ref": "focused maintenance/CLI provenance suite and
quick gate passed"},
{"kind": "review", "ref": "offline post-promotion reconciliation
regression covered both checkpoint-write failures"}
],
"successors": []
},
{
"bead_id": "polylogue-6k0na",
"disposition": "satisfied",
"evidence": [
{"kind": "commit", "ref": "e33fbcac2 merged PR #3924"},
{"kind": "test", "ref": "focused durable/liveness/CLI suite: 97
passed"},
{"kind": "command", "ref": "devtools verify --quick: 24 checks passed"}
],
"successors": []
}
],
"head_sha": "d4c2e4ef3fb46d84af7120d414967c7d7f87f49d",
"scope_digest":
"edc3f90b7a687388dbe8a8385ae352673718b510edc8a2a0db70069088012508",
"version": 1
}
-->
Summary
Harden receipt-backed source-train continuity refresh for authorized source-tier mutations.
Problem
PR #3868 supplied the continuity refresh route, but its regression had drifted to a hard-coded source version and the guard lacked a direct typed rejection for wrong-tier pre-mutation evidence.
Solution
Verification
devtools verify --quick: 24 checks passed.