fix(session-store): add nonabsorbing fenced history v2 - #704
fix(session-store): add nonabsorbing fenced history v2#704VerifiedOrganic wants to merge 28 commits into
Conversation
…fenced-history-wm-20260818 # Conflicts: # crates/opc-session-net/src/consumer.rs # crates/opc-session-net/tests/stateless_quorum_consumer.rs # crates/opc-session-store/src/consensus/store.rs # crates/opc-session-store/src/fenced_transition.rs # crates/opc-session-store/src/lib.rs # docs/session-store-atomic-fenced-transition.md
|
Exact-head 131,073-transition qualification output for |
Signed-off-by: VerifiedOrganic <verifiedorganic@sent.com>
|
ePDG #181 integration blocker found during the production final-attach audit: The V2 history work here is required, but the current The separate generic final-attach atomicity requirement is now tracked as #707. It must land after this history lifecycle, without an ePDG-local consensus/storage substitute. Downstream will consume only a normally merged, current-head-qualified SDK commit and will retain the exact SDK-first pin/docs/consumer landing order. |
Signed-off-by: VerifiedOrganic <verifiedorganic@sent.com>
Signed-off-by: VerifiedOrganic <verifiedorganic@sent.com>
Signed-off-by: VerifiedOrganic <verifiedorganic@sent.com>
|
Frozen-head peer review: APPROVE
Review limitation: static frozen-tree review. Local focused store tests and hosted gates are tracked independently; this review is not the downstream ePDG issue #181 acceptance artifact. |
|
Exact-head local gate checkpoint for
The hosted heavy-1 shard is presently red on the unchanged multiprocess mTLS test command. This is not being waived or hidden: the full hosted log will be inspected after the workflow closes, then the failed shard will be rerun only if the evidence confirms an isolated runner failure. The authoritative 1,010,000-operation release qualification is still running and has not yet been claimed as passed. |
|
Authoritative release qualification result: FAIL CLOSED
This does not pass the authoritative 1,010,000-operation/eight-epoch release gate, and the historical 131,074-attempt artifact is not being substituted. A bounded root-cause review is determining whether the first defect is retry observability, leader/quorum lifecycle, or the public V2 batch/storage path. No timeout, retry count, load target, or validator is being relaxed. |
Signed-off-by: VerifiedOrganic <verifiedorganic@sent.com>
Signed-off-by: VerifiedOrganic <verifiedorganic@sent.com>
Signed-off-by: VerifiedOrganic <verifiedorganic@sent.com>
Signed-off-by: VerifiedOrganic <verifiedorganic@sent.com>
Signed-off-by: VerifiedOrganic <verifiedorganic@sent.com>
Signed-off-by: VerifiedOrganic <verifiedorganic@sent.com>
Refs #702
Refs #696
Downstream: https://github.com/VerifiedOrganic/epdg/issues/181
Scope
This PR removes the singleton absorbing-history ceiling through a versioned SDK contract. V1 remains wire- and behavior-compatible with its frozen 4,096-entry permanent ledger. V2 adds a durable epoch lifecycle with deterministic retirement/reclamation, irreversible replay floors, and a writable successor epoch.
This is generic SDK state/consensus behavior. It does not contain an ePDG product pin, product hot-path composition, synthetic evidence substitution, or the separate failure matrix.
Frozen candidate
3db6f92c4c03badd818e691dbe876e430df88d2c580678beb2f4947e373f785ca09edcdf30f156105e2204ec24ec689ed660d736b9f152f3999e5708verified=true,reason=validCapacity and compatibility contract
The architectural cause was the frozen V1 singleton ledger: correct replay protection had no lifecycle, so every successful unique transition consumed one permanent slot and the 4,097th was terminally
HistoryFull. V2 fixes that cause without weakening V1.Evidence and gates
The unchanged source lineage completed this real three-voter fixed durable-quorum OpenRaft/SQLite historical capacity qualification; it is supporting evidence, while the authoritative eight-epoch/1,010,000-operation qualification is tracked separately:
committed=131073,reclaimed=131072,transient_exact_retries=22142,182,756,256bytes; snapshot envelope2,077,053,072bytes2:57:18; peak RSS308,544 KiB; CPU260%cargo test --locked -p opc-session-store --test fenced_transition_v2_qualification --all-features sustained_131073_unique_v2_transitions_bind_exact_epoch_capacity -- --ignored --exact --nocapture910c98af114164cbee5ce740fab69708aef4f0713d6db847280c6af44040afe4; complete output is preserved in the PR commentsFocused V1/V2 store, SQLite, snapshot/recovery, OpenRaft, revision-4 mTLS transport, migration, capability/profile, maintenance-reselection, conflict, and mutation tests passed. Format, diff check, warnings-denied Clippy, and all hosted CI/security/platform checks reported green on the unchanged source parent. The exact documentation-correction head is rerunning hosted gates./ Independent capacity/compatibility review found no remaining P0/P1/P2 in this slice.
Downstream limit
This capacity evidence is real, but it is not the final ePDG issue #181 acceptance artifact. The final 50,000 retained/active, 1,000 actor, 960,000 attach production-mTLS run must occur only after this contract, the bounded managed-provider network/SVID contract, and the downstream ePDG hot-path consumer are normally landed.