Repository navigation
0.5.240: a contact's node key comes before their binding - #826
Merged
Merged
Conversation
On 0.5.239 with the canonical rolled, the canonical served the contact's announced owner-binding (#907 works) and linux refused it: persist admits `delegates_to(owner -> node)` only once it holds the node's Key row (`attested_key_id ... resolves as neither`), and 0.5.239 pulled the node's key only after the person resolved, so each waited on the other. A refused row is then held back by edge for a backoff window (CIRISEdge#544). The contact code already names the person's nodes (`owned_nodes`). Every add (not only a pending one) is now tracked with those node ids; the resolve pass pulls their keys first and asks for the person's records once they are held (after 60 s regardless, so a stale code cannot block). CONTACT UNRESOLVED gains code_nodes and code_node_keys_missing. The #907 probe now starts with the asker lacking the node key, as in the run, and resolves. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QriZxPx5aJvHXCGaTZmvKF
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
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.
Why
Five-platform run 40503540610: server 0.5.239 and client 0.5.234, with the canonical rolled to 0.5.239.
request:android<-linuxwas still red.attested_key_id ciris-node-bootstrap-… resolves as neither a registered federation_keys row …. Persist admitsdelegates_to(owner → node)only once the node's Key row is held.What
The contact code already names the person's nodes (
CodeAdmission.owned_nodes). This PR uses them.add_contact_for_ownertracks every add until the person resolves, not only adds completed by the pending pass. It passes along the node ids from the code.CONTACT UNRESOLVEDgainscode_nodesandcode_node_keys_missing.Tests
contact_key_pull_e2e::a_contacts_announced_owner_binding_arrives_on_a_subject_pullnow starts as the run did: the asker holds the person's key but not their node's. The test pulls the node key first, then the binding. Asking for the binding first reproduces the refusal and the #544 backoff.Local runs, all green:
-D warningsThe canonical needs no change for this fix. It already serves the key and the binding.
🤖 Generated with Claude Code
https://claude.ai/code/session_01QriZxPx5aJvHXCGaTZmvKF