Repository navigation
spec(port): port the observer fingerprint rotation guard (Refs #8887) - #9865
Merged
1 commit merged intoOct 17, 2026
Merged
1 commit merged into
1 commit merged into
Conversation
…y-S-AI-DNA#8887) The twenty-ninth CR-CHAT-07 ring target (W2, R-CHAT-10): the fingerprint rotation rules - the tracked ceiling, the empty batch accepted, then per session the empty-fingerprint probe and the length ceiling, then the run fold (a session equal to its predecessor grows the same-fingerprint run, a run past the window of eight answers NoRotation with the run length, a change counts one rotation), then the rotation ceiling over the whole batch - as the D5 verdict, the original's rule order, and all ten OFRG tests transcribed plus helper and rule-order tests. The original's SameAsPrevious is declared and unreachable and stays in the enum. The original's Vec<u8> fingerprint becomes the fixed [128]u8 capacity plus its length; the Option<&[u8]> previous becomes a has-previous flag over the record fields. The rule-order probes pin the observable orders: the tracked ceiling answers over a flooded batch of empty forms, the per-session probes answer inside the loop before the rotation ceiling is read (a sixty-fifth rotation waits while the last session answers its own empty or over-long code), and the run fold answers NoRotation at nine. Checks (conventions 0-14): t27b test 12 passed 0 failed; t27c test-report 12/12, 0 vacuous; gen-rust output compiles under rustc; coverage Untested 0; ASCII only; seal saved, all hashes MATCH;
Contributor
Author
|
All required checks green (validate, check-linked-issue, parse-ratchet, t27b-native-linux, t27b-native-macos); cli-tri / duplicate-bodies / t27b-native-ratchet are the known non-required reds. Steward READY. Requesting owner merge when convenient — 29 of ~34 CR-CHAT-07 targets delivered, Refs #8887. |
This was referenced Oct 17, 2026
Merged
Merged
Merged
gHashTag
enabled auto-merge (squash)
October 17, 2026 18:13
This was referenced Oct 17, 2026
gHashTag
disabled auto-merge
October 17, 2026 18:42
This was referenced Oct 17, 2026
spec(policy): l2_generation -- gen/json/ is t27c gen-json's backend directory (Closes #10079)
#10082
Merged
Merged
Merged
Merged
12f5af8
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.
The twenty-ninth CR-CHAT-07 ring target (W2, R-CHAT-10, tracker #8887): port of
crates/trios-chat/rings/CR-CHAT-07/src/observer_fingerprint_rotation_guard.rs.A wire observer fingerprints a device by its stable characteristics (cipher suite, ALPN, burst gap, size class); an unchanged fingerprint tracks the user across sessions, links chat traffic to other protocols and re-identifies after a gap. The rules, in the original's order:
NoRotationwith the run length, a change counts one rotation,Carried as the D5 verdict (Ok-first enum + named struct with the one payload field — the run length for
NoRotation). The original'sSameAsPreviousis declared and never answered; it stays in the enum, declared and unreachable exactly as in the original.Adaptations (t27 conventions):
Vec<u8>fingerprint → fixed[128]u8capacity +fp_len;Option<&[u8]>previous →has_prevflag over the record fields; fingerprints compare over the shared length via a whole-form scan helper with direct tests.All 10 original OFRG tests transcribed with exact asserts, plus the helper test and a rule-order test (12 total): the tracked ceiling answers over a flooded batch of empty forms; the per-session probes answer inside the loop before the rotation ceiling is read (a sixty-fifth rotation waits while the last session answers its own empty or over-long code); the run fold answers NoRotation at nine.
Checks (conventions 0-14):
t27b test12 passed 0 failed, 0 blockers;t27c test-report12/12, 0 vacuous; gen-rust output compiles under rustc (0'static str, 0Vec<const); coverage Untested 0; ASCII only; seal saved, all hashes MATCH; ledger row added todocs/reports/t27b_expectations.json.Refs #8887