Repository navigation
Conversation
The keep-serving watch existed to prove issue #554: a live handle refused on its own failed attempt's recovery sidecar, with reconcile's reopen deferred so the wedge stayed observable. Since RFC 0067 no writer arms a recovery operation, so the shape cannot be entered: the widened-arbitration pin and its seed search retired earlier after their searches found no schedule reaching it, and this removes the machinery itself. Removed from the harness: Scenario::keep_serving_ops, KeepServingWatch, WatchInterrupt, WatchRuling, the composition-hypothesis widening (op_modes, CompositionHypothesis, composition_hypotheses, reconcile_watch_resolution), resolve_keep_serving_watch, the KEEP_SERVING row prefixes, the six arming and resolution sites in the universe loop, and the LiveWriteAvailability oracle (the census records 21 oracles, 24 detectors). The clean-recovery-state legality carve-out and its reopen-heals-barrier row go with it: the engine no longer emits that text. reconcile_after_failure and its single-op arbitration are unchanged. The issue-554 panel stays as dst_availability_panel_survives_harsh_faults_issue_554: the same 13 seeds under the same harsh fault plan, every seed must run green; any red is a genuine availability or oracle regression rather than a designed wedge. The cost golden is unchanged, which is the knob's standing constraint (it never perturbed a pinned universe's op stream or draws) holding through its removal.
ragnorc
force-pushed
the
claude/rfc-0067-dst-keep-serving-removal
branch
from
September 17, 2026 19:17
16947dc to
bd171bb
Compare
Contributor
Author
|
Consolidated into #744, which carries this stack's complete history merged with current main and revalidated as one tree. |
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.
Stacked on #741 (recovery machinery removed). Harness-only follow-up: the DST keep-serving watch could only be entered by a live handle refused on a pending recovery sidecar, and no writer arms one any more.
What is removed
Scenario::keep_serving_ops, the watch (KeepServingWatch), the interrupting-op widening (WatchInterrupt,CompositionHypothesis,composition_hypotheses,op_modes,WatchRuling,reconcile_watch_resolution,resolve_keep_serving_watch), thekeep-serving-*report row prefixes, and the six arming/resolution sites woven through the universe loop. About 900 harness lines.LiveWriteAvailabilityoracle and its detector (census: 21 oracles, 24 detectors, regenerated).is_recovery_barrier_rejection) and itsreopen-heals-barrier@row: the engine no longer emits "requires a clean recovery state" anywhere.What stays
reconcile_after_failureand its single-op hypothesis arbitration are untouched: every failure still reconciles in its own iteration, which is exactly why a second unjudged op can no longer exist.dst_availability_panel_survives_harsh_faults_issue_554: the same 13 seeds under the same harsh fault plan (error_pct80, Lance realm), and every seed must run green — any red is a genuine availability or oracle regression, no longer a designed wedge.Evidence
The cost golden is byte-identical, which is the knob's standing constraint ("must never perturb an existing pin's op stream or rng draws") holding through its removal. Full DST suite green from the crate directory (46 scenarios), DST clippy clean, fmt clean. Engine crates untouched.