Repository navigation
spec(port): port the external proposal origin unbound guard (Refs #8883) - #9912
Merged
1 commit merged intoOct 17, 2026
Merged
1 commit merged into
1 commit merged into
Conversation
…nity-S-AI-DNA#8883) The eighth CR-CHAT-03 ring target (W3, L-CHAT-3-epou, R-CHAT-11, RFC 9420 12.1.8.2/6.2): the external-proposal origin rules, in the original's fixed order - the canonical signature length (sixty-four), the origin declared by the group, the kind permitted for that origin (new members may only Add and external-init; Update is forbidden from every external origin), the group agreement, the epoch agreement, the fresh (origin, proposal) pair and the non-zero signature sentinel - as the D5 verdict (all seven original variants carry no payload, so the code is the whole verdict), the original's rule order, and all ten EPOU tests transcribed plus helper and rule-order tests. The original's proposal and view structs become flat parameters; the origin enum with one carrying variant becomes a kind enum plus a record holding the sender index (unread by the unit kinds); the declared-origins and permitted-pairs vectors become slices of records, and the used-proposals vector a slice of records holding the origin and the proposal identifier at its declared maximum capacity with the length - the original's three contains probes answered by scans. Checks (conventions 0-14): t27b test 17 passed 0 failed; t27c test-report 17/17, 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. Eighth CR-CHAT-03 target (8/47 T-PORT) — requesting owner merge when convenient, Refs #8883. |
This was referenced Oct 17, 2026
Merged
Merged
Merged
This was referenced Oct 17, 2026
Merged
Merged
gHashTag
enabled auto-merge (squash)
October 17, 2026 18:14
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 eighth CR-CHAT-03 ring target (W3, tracker #8883, epic Trinity-S-AI-DNA/trios#1812): port of
crates/trios-chat/rings/CR-CHAT-03/src/external_proposal_origin_unbound.rs(Wave-33, L-CHAT-3-epou, R-CHAT-11, RFC 9420 12.1.8.2/6.2).An external proposal is authored outside the membership — by a declared external sender or a prospective new member — and carries its origin. The gate rejects: a phantom origin the group never declared, a kind the origin may not submit (new members may only Add and external-init per RFC 9420 12.1.8.2; Update is forbidden from every external origin), a cross-group or cross-epoch splice, a replayed (origin, proposal_id) pair, a non-canonical signature length, and the all-zero Ed25519 sentinel. Rules, in the original's fixed order:
Carried as the D5 verdict — all seven original error variants carry no payload, so the code is the whole verdict.
Adaptations (t27 conventions): proposal/view structs → flat parameters; the
ExternalOriginenum (one carrying variant) → kind enum + record holding the sender index (unread by the unit kinds); declared-origins and permitted-pairs vectors → slices of records; the used-proposals vector → slice of records holding the origin and the proposal identifier at its declared maximum capacity (255) with the length; the original's threecontainsprobes answered by scans.All 10 original EPOU tests transcribed with exact asserts (the canonical acceptance is the ExternalSender-Remove path, the only one permitted Remove), plus 6 helper tests and a full rule-order ladder stacking each earlier rule's violation on the later ones (17 total).
Checks (conventions 0-14):
t27b test17 passed 0 failed, 0 blockers;t27c test-report17/17, 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 #8883