Repository navigation
fix(coordinator): preserve acknowledged state across access changes - #28
Merged
Merged
Conversation
RFC 0001 §7.5 resends all five slices on every declaration change, and STATE_SYNC carries a value for each owned path. The SDK resent the configured values, so an ACL-only change (revoking one guest) rolled every resident's view back to the initial state while reporting it current (reproduced with the real Go relay and browser host: owner 22 -> 21, stale:false). - StateManager records each batch the relay acknowledges (STATE_SET_OK), including one abandoned after handoff, tagged with the state-slice revision it targeted and its send order. Rejected and outcome_unknown batches are never recorded, so nothing unacknowledged is replayed. - DeclarationManager stages those values in every re-declaration of the same state revision (ACL, events, functions, reconnect, new epoch). An explicit state.declare/configure carries a new revision and stays authoritative; a rejected one leaves acknowledged values in force. - A batch pending when a re-declaration starts is acknowledged before that STATE_SYNC is (per-connection order), so the unhanded transaction is restarted with the acknowledged value instead of activating the stale one. Revocation never waits for a missing ACK. A protocol-violating late ACK after handoff triggers one follow-up transaction. - STATE_SYNC cannot declare a valueless path, so an acknowledged deletion is reapplied by one SDK-sent STATE_SET delete right after activation; a refusal is reported on coordinator.errors and the relay value becomes acknowledged. - 20 regression tests; README documents the behavior and the deletion window. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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
miakapi@4.0.0-alpha.1; CLI stays at alpha.9.Evidence
Limits / deployment