fix(agent): settle finalized SWM after catch-up - #2035
Open
branarakic wants to merge 2 commits into
Open
Conversation
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.
User impact
A cold Edge receiver that explicitly subscribes to a public Context Graph now converges to one user-visible finalized state after foreground catch-up:
This closes the testnet-canary seam where durable VM catch-up succeeded first, then public SWM snapshot materialization re-exposed the same finalized assertion as live SWM.
Before
sequenceDiagram participant E as Cold Edge participant C as Core provider participant S as Local store participant Q as User query E->>C: Foreground durable VM catch-up C-->>E: Finalized assertion and confirmed metadata E->>S: Store exact VM E->>C: Public SWM snapshot catch-up C-->>E: Retained recovery snapshot and verified head E->>S: Materialize SWM and advance checkpoint Q->>S: Query VM and SWM S-->>Q: Finalized assertion appears in both viewsAfter
sequenceDiagram participant E as Cold Edge participant C as Core provider participant B as Chain participant S as Local store participant Q as User query E->>C: Foreground durable VM catch-up C-->>E: Finalized assertion and confirmed metadata E->>S: Store exact VM E->>C: Public SWM snapshot catch-up C-->>E: Retained recovery snapshot and verified head E->>S: Materialize SWM and verified metadata E->>S: Reverify exact confirmed VM E->>B: Read latest root, version, and CG binding B-->>E: Current canonical state E->>S: Recheck exact SWM under per-KA writer lock E->>S: Stamp local retirement marker E->>E: Advance sync checkpoint Q->>S: Query VM and SWM S-->>Q: Finalized assertion only in VM; newer SWM drafts remainSafety properties
Validation
git diff --checkpassed.Stack
Stacked on #2034. The fresh two-node testnet-canary validation runs against this exact head after review CI starts; no production Core deployment and no merge are part of this PR.