Repository navigation
design(id): #2240 session checkpoint encoding - #3867
Conversation
|
Caution Review failedThe pull request is closed.
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. |
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. |
|
🤖 Agent note · task 5240 review fix (queue worker, lane F) One factual correction pushed in 25b1449 before merge: the design cited the waiting pool at Full acceptance review (all five pinned decisions, record shapes, CBOR/vector spec, verifier walk) is in the task 5240 completion note on issue #2240. Merging once the Codex re-review of 25b1449 is clean/dispositioned. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 25b1449bef
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| 3. **Validate start:** bind the session ID to the start event ID; check sorted unique participants/observers, initial-state hash, key suite/commitment shape, flush policy, and effective session limits against the world configuration. Authorized key holders also verify the delivered key against the commitment. The raw key is never expected in graph bytes. | ||
| 4. **Resolve dependencies:** require the start event and immediate predecessor in `after`/the author chain before processing. If absent, leave the event waiting. If a dependency expires, do not accept the child as verified. | ||
| 5. **Validate checkpoint chain:** check session owner, header ID, consecutive segment number, immediate predecessor, frame sequence/count bounds using checked arithmetic, state continuity, close reason, and root domain. Reject gaps, replays under another session ID, inconsistent state hashes, and segments exceeding the signed policy. | ||
| 6. **Validate available frames:** if the segment body is present, verify each frame MAC, strict frame sequence, and the ordered rolling root; replay only under the class’s deterministic consumer. If bytes are absent, report “signed root committed; frames not independently replayed,” not “replay verified.” |
There was a problem hiding this comment.
Define a keyless verification path for retained segment bodies
When a retained segment body is fetched by an auditor who was not a session participant, this step requires MAC verification that the auditor cannot perform: the key policy delivers the secret only to header participants, and acceptance invariant 2 excludes it from checkpoint archives. Consequently, possessing the signed checkpoint and complete replay bytes is insufficient to complete the specified verifier walk. Distinguish keyless root/replay verification from MAC-authenticated verification, or specify how authorized historical auditors obtain the key.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Fixed in 047786e1e (task 5240): verifier step 6 now distinguishes (a) keyless root/replay verification — any verifier with the segment body recomputes frame digests from the recorded (canonical frame, MAC) pairs, folds the rolling root, and replays, reported as 'replay-verified (keyless)' — from (b) MAC-authenticated verification, which is key-holders only. A non-participant auditor reaches (b) via post-close key disclosure (fresh per-session key; checkpoints/roots already signed, so disclosure cannot rewrite history). The segment-body paragraph in section 1 now also specifies the per-frame (canonical frame, frame MAC) record shape that makes keyless root recomputation possible.
…ent bodies (Codex P2)
|
@codex review Codex P2 (keyless verification path) fixed in |
|
Codex Review: Didn't find any major issues. 👍 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Summary
Adds a decision-ready, docs-only design record for #2240: typed
session.startandsession.checkpointgraph events, canonical CBOR and verifier contract, key/rotation policy, 256-frame-or-2-second boundaries, fork/waiting/pruning invariants, and class-specificpeer_signaturerules.Scope
No implementation or PoC is included. The #2241 PoC remains gated on review under #2056. This PR does not close #2240.
Validation
git diff --check6874cd4635357605f3dcabff2a9340b68ec62da4.Related: #2240