Repository navigation
EPIC: Trinity Secure Chat (crates/trios-chat) written once in .t27 and generated by t27c gen-rust #1812
Description
This epic tracks the rewrite of Trinity Secure Chat (this repository, crates/trios-chat) into the .t27 language. The goal: the chat logic is written once in .t27 and the Rust is generated by t27c gen-rust, instead of being written by hand.
Name. Here "Trinity Secure Chat" means only crates/trios-chat (design doc docs/chat/trinity-chat-design.md, TRINITY-CHAT-001, ADR-CHAT-001..010). It does not mean the trios.app Swift agent chat, QueenUI, the t27.ai Queen chat, the legacy IGLA "Trinity Chat v2.x" chatbot, the app.t27.ai kanban card chat or the TRI-NET Video messenger. Scope decision D1 (owner, 2026-10-11): only crates/trios-chat.
Links
- Roadmap goal, stage 6 (trios Rust rings, target
t27c gen-rust): [roadmap] Stage 6: trios Rust rings and trios-railway t27#4548 - Product epic TRINITY-CHAT-EPIC-001: 💬 EPIC: Trinity Secure Chat — Privacy-First Chat for Users ↔ Agent Bots trinity-fpga#28
- Earlier scaffold tracker (closed 2026-05-19): 💬 EPIC tracker: Trinity Secure Chat (mirror of trinity-fpga#28) #632
- Stage 8, interfaces (why the Swift chat UI is out of scope): [roadmap] Stage 8: Interfaces: the open question t27#4550
- Stage 9, dependencies (why sea_orm, tokio and the dalek crates are out of scope): [roadmap] Stage 9: Endgame: the browser and every dependency t27#4858
- Law L0 PURPOSE:
docs/T27-CONSTITUTION.mdin gHashTag/t27, adopted 2026-09-23. Everything below the interface is written once in .t27 and generated; the seed (t27c) and the interface (Swift for trios, TSX for web) are the named exceptions.
Baseline
Measured on main at 8b229e9489ee (no new commits since 2026-09-24, still HEAD on 2026-10-11):
- 319
.rsfiles, 86,357 lines by the inventory count (it counts one line more thanwc -lper file), about 4,373 fns. - 3,063
#[test]plus 7#[tokio::test]= 3,070 tests. All pass in a scratch workspace (rustc 1.94, fresh dependency resolution). This number is not yet measured with this repository'sCargo.lock; W0 re-measures it. - 12 ring crates (CR-CHAT-00..07, CR-CHAT-LAWS, BR-OUTPUT-CHAT, BR-IO-CHAT-05, BR-IO-CHAT-07) plus the shim (
src/,tests/). - No crate in gHashTag depends on trios-chat (code search, 2026-10-10). The private 999-multibots-telegraf repository could not be read and was not checked.
- The shim
crates/trios-chatis not in[workspace].members. Soe2e_chat_25,falsifier_runnerandtests/r_chat_guard.rsare not built in CI. - Port state in gHashTag/t27 on 2026-10-10 about 22:30 UTC: 8 files merged, 9 open PRs, 7 open issues without a PR, 295 files untouched.
Two deliverables per file
- PORT. A .t27 spec on gHashTag/t27 master at
specs/port/trios/crates/trios-chat/<path>.t27that meets the extended definition of done below. - SWAP. In this repository the hand-written logic is replaced by the byte-identical
t27c gen-rustoutput, vendored atrings/<R>/src/t27gen/<stem>.rsbehind a thin hand-written adapter. The original#[cfg(test)]modules stay byte-identical and are the oracle, becausegen-rustdoes not lower tests.
Partition of the 319 files (2026-10-10)
| Group | Files | What happens |
|---|---|---|
| W0 pilot: merged ports whose generated Rust compiles | 5 | swap only |
| W1 repair: merged ports that are defective | 3 | repair the spec, then swap |
| Queen lane (WQ): 9 open PRs + 7 issues without a PR | 16 | bees finish them; T-VERIFY; swap after merge |
| Own lane: new specs (CR-CHAT-00 in W1, the rest in W2-W7) | 287 | port from the fork dmitrii-f-t27/t27, then swap |
| Kept as hand-written Rust (exceptions) | 8 | recorded in crates/trios-chat/T27_EXCEPTIONS.md |
| Total | 319 |
Rule: an untouched file that the stage-6 feeder files before our ring tracker takes effect joins the in-flight group. All new work is done by dmitrii-f-t27 (owner decision D2). The total stays 319.
Waves
| Wave | Content | Files | Who merges |
|---|---|---|---|
| W0 | workspace member, frozen baseline + golden vectors, pin test, 5-file swap pilot, conventions, ring claims | 5 | dmitrii-f-t27 (trios); the workspace and baseline PRs change /Cargo.toml and /Cargo.lock (CODEOWNERS @gHashTag), so they merge only after gHashTag's approval |
| W1 | W1a: CR-CHAT-00 types, repair of CR-CHAT-LAWS and skipped_message_key_gap_bound_guard; W1b (after gHashTag closes t27 issues 7617 and 8366): repair of envelope_size_distribution_uniformity, exact-variant tests of ratchet_tree_resolution_guard | 4 | gHashTag (t27 fork PR); dmitrii-f-t27 (trios swaps) |
| W2 | CR-CHAT-04 and CR-CHAT-07 (consumed by CR-CHAT-01 and BR-IO-CHAT-07) | 70 | same |
| W3 | CR-CHAT-03, CR-CHAT-05, CR-CHAT-06 | 121 | same |
| W4 | CR-CHAT-02, CR-CHAT-01 guards | 73 | same |
| W5 | crypto-adjacent decisions and byte layouts; the audited crates stay in the adapters | 15 | same |
| W6 | BR-IO-CHAT-05 store guard, BR-IO-CHAT-07 step model; 5 I/O exceptions | 7 | same |
| W7 | injection matcher, assembler constants, bins, final parity; 3 exceptions | 8 | same |
| WQ | the 16 in-flight Queen items | 16 | auto-merger or gHashTag |
Swap order is innermost first: CR-CHAT-00 and LAWS, then CR-CHAT-04/07, CR-CHAT-03/05/06, CR-CHAT-02 and CR-CHAT-01 guards, crypto-adjacent decisions (CR-CHAT-01 sealed.rs after the CR-CHAT-04 swap), BR-IO rings, BR-OUTPUT and the shim.
Lanes (owner decision D2, answered 2026-10-11: own lane only)
- Own lane. Agents working as dmitrii-f-t27 write the new specs from the fork and do every swap here. Ring trackers in gHashTag/t27 (one per ring, with "Port" in the title, no Boundary) keep the stage-6 feeder off those files.
- In-flight items. The 16 items already in progress in gHashTag/t27 (9 open PRs, 7 issues without a PR on 2026-10-10; 2 more files gained bee issues on 2026-10-11) stay with their current work. We do not duplicate active work. If an item stalls, we finish it with our own PR as dmitrii-f-t27. Every merged item is checked (T-VERIFY) and swapped here.
Conventions and layout
- Port conventions:
docs/chat/T27_PORT_CONVENTIONS.md(child issue, linked below). - Swap layout per file:
rings/<R>/src/t27gen/<stem>.rs(generated, never edited) +rings/<R>/src/<stem>.rs(original types, docs, error enums and test module, with an adapter: 22-35 non-blank lines in the minimal form and 49 in the in-tree form, measured on 5 drafts). crates/trios-chat/T27_PINrecords the t27 SHA, the spec path, the seal file and the sha256 of each vendored file.tests/t27_pin.rschecks the hashes (no.shfiles undercrates/trios-chat).- Crypto boundary: child issue, linked below. The audited crates (x25519-dalek, ed25519-dalek, chacha20poly1305, ml-kem, hkdf, sha2, subtle, zeroize, rand_core) stay in the hand-written adapters.
Definition of done (summary)
- Every one of the 319 files has a final status: ported and swapped; Queen lane, merged and swapped; or a documented exception.
- Every chat spec on gHashTag/t27 master: Zig 0.16
t27c test-reportexits 0 with 0 FAIL, 0 BLOCKED, 0 vacuous; test blocks >= the original#[test]count with exact verdict asserts (split and crypto-adjacent files: a test-mapping table instead);t27c gen-rustoutput compiles withrustc --edition 2021 --crate-type lib --out-dir; one unique module line (full path for own-lane specs; merged pilot and Queen-lane specs keep their short names, because renaming changes the seal file); ASCII only for new specs, no Cyrillic in any;t27c coverageshows 0 untested functions; a seal with numeric tests, or the hash recorded as unsealed with a reseal request pending. crates/trios-chatis a workspace member. On the final merged SHA,cargo test --allis green in CI, and per-ring test names and counts equal the frozen baseline.e2e_chat_25gives the same 25/25 PASS list.falsifier_runnergives the same stdout and exit code as the frozen baseline, or differs only through a separate fix PR merged earlier.golden_vectorsoutput is identical.- A mutation proof is recorded for every swapped file.
- An honest L0 statement with the remaining hand-written Rust line counts is in this epic.
What this epic does not claim
- No constant-time claim for any generated code. No timing measurement exists, and .t27 has no optimisation barrier or zeroize construct.
- No post-quantum claim. The prekey bundle ML-KEM field is a SHA-256 placeholder,
kem.rsis not wired into the handshake, and the default ratchet DH step is X25519 only. - No sender-anonymity claim.
SealedEnvelopecarriessrc_x25519_pubin clear. - No "Coq-verified" claim.
proofs/chat/Trinity_Chat.vhas no extraction and no mechanical link to the Rust, and no CI job compiles it. - No "3600/3600 falsifier" claim. Measured in scratch on 2026-10-10: 3147/3200 blocked, exit 1, 400 corpus rows skipped.
- A merged port is not proof of equivalence, and a seal is not proof that the generated Rust compiles.
Remaining hand-written Rust after the swap (estimate, not measured)
- Adapters: 283 pure-guard/pure-logic files x 22-49 non-blank lines = 6,226-13,867 lines. Crypto, I/O and glue adapters come on top and are not measured.
- The original test modules stay.
- Whether
roadmap-stack.mjscountst27gen/files as Rust is not known. Asked of gHashTag; until answered: I cannot confirm this.
Child issues (filled after filing)
- W0 workspace member: (to be linked)
- W0 baseline, golden vectors, pin test: (to be linked)
- W0 swap pilot (5 files): (to be linked)
- W0 port conventions: (to be linked)
- Behaviour quirks decision (D6): (to be linked)
- Crypto boundary decision (D8, D6b): (to be linked)
- Scope and client surfaces (D15): (to be linked)
- Ring swaps (one per ring, draft 06): CR-CHAT-00, CR-CHAT-LAWS, CR-CHAT-04, CR-CHAT-07, CR-CHAT-03, CR-CHAT-05, CR-CHAT-06, CR-CHAT-02, CR-CHAT-01, BR-IO-CHAT-07, BR-IO-CHAT-05, BR-OUTPUT-CHAT + shim
- gHashTag/t27 side: gen-rust repro issue (draft 10), repair issue (draft 12), 9 ring trackers: (to be linked)
Owner decisions
D1 scope, D2 lane (D2c: trackers before gHashTag's reply), D3 swap target, D4 adapters, D5 verdict convention, D6 quirks (D6b secret bytes), D7 falsifier parity, D8 where SHA-256 runs, D9 seals, D10 injection deny table, D11 exceptions and first email, D12 Postgres, D13 Coq, D14 mode, D15 mesh chat phase 2, D16 chat outside the ZCode zone. Status (2026-10-11): D1 = only crates/trios-chat; D2 = own lane only, all work by dmitrii-f-t27; D2c = trackers filed before the 2026-10-12 stage-6 run, email the same day; D3 = swaps land in trios main, one ring per PR; D4 = yes (interim adapters + gen-rust repro issue); D5 = verdict struct with Ok first; D16 = chat excluded from the parallel ZCode sweep. D6-D15: pending, decided before the wave that needs them.
Appendix: per-file status (2026-10-10, generated from data/inventory-classified.csv)
Lines use the inventory count. "Task" names the task type from the package. Update this table as files move.
| Ring | File | Lines | Tests | Wave | Task | State |
|---|---|---|---|---|---|---|
| BR-IO-CHAT-05 | entities/chat_envelope.rs | 47 | 0 | W6 | exception | untouched |
| BR-IO-CHAT-05 | entities/mod.rs | 7 | 0 | W6 | exception | untouched |
| BR-IO-CHAT-05 | lib.rs | 32 | 0 | W6 | exception | untouched |
| BR-IO-CHAT-05 | migrations/m2026_05_09_000001_create_chat_envelope.rs | 88 | 0 | W6 | exception | untouched |
| BR-IO-CHAT-05 | migrations/mod.rs | 23 | 0 | W6 | exception | untouched |
| BR-IO-CHAT-05 | store.rs | 219 | 0 | W6 | T-SPLIT | untouched |
| BR-IO-CHAT-07 | lib.rs | 222 | 0 | W6 | T-PORT | untouched |
| BR-OUTPUT-CHAT | lib.rs | 144 | 4 | W7 | T-PORT | untouched |
| CR-CHAT-00 | lib.rs | 274 | 9 | W1 | T-SPLIT | untouched |
| CR-CHAT-01 | appack_replay.rs | 413 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | credential_chain_path_length_guard.rs | 221 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | ephemeral_mailbox_unlinkability.rs | 325 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | epoch_advancement_guard.rs | 208 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | handshake_fingerprint.rs | 343 | 10 | W5 | T-CRYPTO-DECISION | untouched |
| CR-CHAT-01 | identity.rs | 436 | 12 | W5 | T-SPLIT + T-CRYPTO-DECISION | untouched |
| CR-CHAT-01 | identity_key_compromise_recovery_guard.rs | 227 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | identity_key_cross_device_binding_guard.rs | 244 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | identity_key_fingerprint_consistency_guard.rs | 217 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | identity_key_predecessor_acknowledgment_guard.rs | 258 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | identity_key_rotation_age_freshness_guard.rs | 238 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | identity_key_rotation_guard.rs | 202 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | identity_key_rotation_proof_guard.rs | 226 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | identity_key_signature_algorithm_consistency_guard.rs | 247 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | identity_key_usage_count_guard.rs | 139 | 10 | WQ | Queen lane | open issue 7108, no PR |
| CR-CHAT-01 | kem.rs | 277 | 10 | W5 | T-CRYPTO-DECISION | untouched |
| CR-CHAT-01 | kem_decap_oracle.rs | 286 | 10 | W5 | T-CRYPTO-DECISION | untouched |
| CR-CHAT-01 | key_package_expiry_guard.rs | 178 | 10 | W0 | swap pilot | merged (PR 8187) |
| CR-CHAT-01 | key_package_lifetime_grace_window_expiry.rs | 288 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | keypackage_capabilities_binding.rs | 234 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | keypackage_init_key_reuse.rs | 270 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | lib.rs | 272 | 0 | W7 | T-PORT | untouched |
| CR-CHAT-01 | one_time_prekey_exhaustion_guard.rs | 188 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | otpk.rs | 286 | 6 | W5 | T-CRYPTO-DECISION | untouched |
| CR-CHAT-01 | prekey_bundle_binding_guard.rs | 231 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | prekey_bundle_cipher_suite_consistency_guard.rs | 239 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | prekey_bundle_expiry_guard.rs | 256 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | prekey_bundle_freshness_guard.rs | 211 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | prekey_bundle_hash_chain_integrity_guard.rs | 266 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | prekey_bundle_lifetime_enforcement_guard.rs | 229 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | prekey_bundle_one_time_use_guard.rs | 198 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | prekey_bundle_rotation_rate_limit_guard.rs | 258 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | prekey_bundle_sig_algo_downgrade_prevention_guard.rs | 236 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | prekey_bundle_signature_algorithm_consistency_guard.rs | 250 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | prekey_bundle_signature_field_coverage_guard.rs | 245 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | prekey_bundle_signature_validity_window_guard.rs | 240 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | prekey_bundle_single_use_enforcement_guard.rs | 257 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | prekey_bundle_timestamp_freshness_guard.rs | 241 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | prekey_signature_algorithm_downgrade.rs | 231 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | prekey_signature_chain.rs | 373 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | prekey_signature_nonce_freshness.rs | 200 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | revocation.rs | 315 | 6 | W5 | T-CRYPTO-DECISION | untouched |
| CR-CHAT-01 | sealed.rs | 293 | 12 | W5 | T-SPLIT + T-CRYPTO-DECISION | untouched |
| CR-CHAT-01 | sealed_sender_recipient_hash_uniqueness_guard.rs | 252 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | sealed_sender_replay_guard.rs | 226 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | sealed_sender_replay_window_consistency_guard.rs | 243 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | signature_algorithm_pinning_guard.rs | 177 | 10 | WQ | Queen lane | open issue 7976, no PR |
| CR-CHAT-01 | signed_prekey_signature_binding_guard.rs | 221 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-01 | welcome_encrypted_group_info_aead.rs | 268 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | application_data_aead_nonce_reuse.rs | 281 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | chain_key_derivation_domain_separation_guard.rs | 266 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | chain_key_epoch_transition_guard.rs | 223 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | chain_key_epoch_transition_timing_guard.rs | 273 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | chain_key_forward_seed_uniqueness_guard.rs | 205 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | clock_skew.rs | 349 | 7 | W4 | T-PORT | untouched |
| CR-CHAT-02 | cover_traffic_decoy_indistinguishability.rs | 315 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | deniable.rs | 220 | 6 | W5 | T-CRYPTO-DECISION | untouched |
| CR-CHAT-02 | dh_output_validation.rs | 190 | 10 | WQ | Queen lane | open PR 8806 (issue 8784) |
| CR-CHAT-02 | double_ratchet_chain_key_rotation_bound_guard.rs | 233 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | double_ratchet_sending_chain_rotation_guard.rs | 182 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | ephemeral_public_key_reuse_detection_guard.rs | 246 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | epoch_authentication_failure.rs | 301 | 10 | W5 | T-CRYPTO-DECISION | untouched |
| CR-CHAT-02 | epoch_rollover_wraparound_guard.rs | 161 | 10 | W0 | swap pilot | merged (PR 7647), issue 7634 still open |
| CR-CHAT-02 | forward_secrecy_key_wipe.rs | 218 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | header_key_derivation_epoch_separation_guard.rs | 248 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | kdf_label_domain_separation.rs | 180 | 10 | WQ | Queen lane | open issue 7635, no PR |
| CR-CHAT-02 | key_package_hash_pinning.rs | 244 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | lib.rs | 1028 | 28 | W5 | T-SPLIT + T-CRYPTO-DECISION | untouched |
| CR-CHAT-02 | message_key_commitment_binding_guard.rs | 226 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | message_key_derivation_binding_guard.rs | 212 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | message_key_derivation_label_uniqueness_guard.rs | 237 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | message_key_usage_lifetime_bound_guard.rs | 248 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | ratchet_replay_window_guard.rs | 189 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | ratchet_skip_message_bound_guard.rs | 198 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | receiving_chain_gap_bound_guard.rs | 235 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | root_key_derivation_chain.rs | 240 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | root_key_derivation_chain_length_guard.rs | 198 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | root_key_derivation_context_label_guard.rs | 281 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | root_key_derivation_salt_uniqueness_guard.rs | 225 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | root_key_forward_secrecy_verification_guard.rs | 246 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | root_key_rotation_frequency_bound_guard.rs | 263 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | sender_chain_fork_detection_guard.rs | 210 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | sender_data_header_encryption.rs | 299 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | sending_chain_advancement_bound_guard.rs | 239 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | sending_chain_advancement_limit_guard.rs | 238 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | sending_chain_key_seed_diversity_guard.rs | 284 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | skipped_message_key_cache_size_bound_guard.rs | 235 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | skipped_message_key_eviction_policy_guard.rs | 267 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | skipped_message_key_exhaustion.rs | 186 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-02 | skipped_message_key_gap_bound_guard.rs | 178 | 10 | W1 | T-REPAIR | merged (PR 8500) |
| CR-CHAT-02 | welcome_init_secret_kdf_label_confusion.rs | 229 | 10 | W4 | T-PORT | untouched |
| CR-CHAT-03 | commit_path_secret_aead_keying_mismatch.rs | 366 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | commit_secret_export_collision.rs | 298 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | commit_signature.rs | 343 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | concurrent_add_remove.rs | 419 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | confirmation_tag_chain.rs | 290 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | external_commit.rs | 258 | 6 | W3 | T-PORT | untouched |
| CR-CHAT-03 | external_commit_resumption_psk_misbinding.rs | 318 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | external_proposal_origin_unbound.rs | 344 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | external_psk_id_provenance.rs | 260 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | group_context_hash_consistency_guard.rs | 202 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | group_epoch_commit_ordering_guard.rs | 196 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | group_member_removal_verification_guard.rs | 204 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | group_membership_authorization_guard.rs | 214 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | leaf_node_key_uniqueness_guard.rs | 213 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | leaf_node_priority_inversion_guard.rs | 200 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | leaf_node_signature_validation.rs | 306 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | lib.rs | 1396 | 37 | W3 | T-SPLIT | untouched |
| CR-CHAT-03 | membership_tag_binding.rs | 254 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | parent_hash_chain_validation_guard.rs | 239 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | pcs_healing.rs | 352 | 7 | W3 | T-PORT | untouched |
| CR-CHAT-03 | proposal_ref_collision.rs | 265 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | proposal_validation.rs | 329 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | psk_external_injection.rs | 345 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | ratchet_tree_blank_node_depth_guard.rs | 227 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | ratchet_tree_resolution_guard.rs | 180 | 10 | W0 | swap pilot | merged (PR 8461), issue 8366 still open |
| CR-CHAT-03 | ratchet_tree_update_integrity_guard.rs | 223 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | reinit_freshness.rs | 317 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | transcript_hash_chain.rs | 229 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | treekem_blank_leaf_count_bound_guard.rs | 230 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | treekem_epoch_transition_integrity_guard.rs | 244 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | treekem_group_membership_change_rate_guard.rs | 252 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | treekem_group_membership_epoch_continuity_guard.rs | 249 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | treekem_leaf_node_key_freshness_guard.rs | 242 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | treekem_leaf_node_version_monotonicity_guard.rs | 261 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | treekem_parent_hash_binding.rs | 317 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | treekem_parent_hash_chain_continuity_guard.rs | 315 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | treekem_parent_node_resolution_depth_guard.rs | 243 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | treekem_path_secret_forward_secrecy_guard.rs | 204 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | treekem_path_secret_freshness_guard.rs | 260 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | treekem_path_secret_uniqueness_guard.rs | 211 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | treekem_resolution_node_coverage_guard.rs | 235 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | treekem_resolution_path_node_uniqueness_guard.rs | 286 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | treekem_sibling_node_independence_guard.rs | 251 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | treekem_unmerged_leaf_count_accumulation_guard.rs | 249 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | treekem_update_path_coverage_guard.rs | 217 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | treekem_update_path_length_bound_guard.rs | 257 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | treekem_update_path_secret_uniqueness_guard.rs | 242 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | treekem_update_path_uniqueness_guard.rs | 226 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | treekem_update_path_validation.rs | 194 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-03 | unmerged_leaves_bound_guard.rs | 172 | 10 | W0 | swap pilot | merged (PR 8445), issue 8125 still open |
| CR-CHAT-04 | application_message_generation_skip_dos.rs | 302 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | external_init_secret_pinning.rs | 353 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | header_extension_order_guard.rs | 201 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | lib.rs | 541 | 19 | W2 | T-SPLIT | untouched |
| CR-CHAT-04 | mac_truncation.rs | 296 | 10 | W5 | T-CRYPTO-DECISION | untouched |
| CR-CHAT-04 | mls_plaintext_framing_integrity.rs | 304 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_alignment_boundary_guard.rs | 205 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_block_alignment_uniformity_guard.rs | 255 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_block_cipher_mode_uniformity_guard.rs | 273 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_block_size_alignment_guard.rs | 254 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_byte_entropy_guard.rs | 195 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_byte_pattern_uniformity_guard.rs | 265 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_ciphertext_length_class_balance_guard.rs | 302 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_ciphertext_length_consistency_guard.rs | 220 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_class_collision_guard.rs | 189 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_class_downgrade_guard.rs | 178 | 10 | WQ | Queen lane | open PR 8455 (issue 8437) |
| CR-CHAT-04 | padding_class_oracle.rs | 314 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_class_selection_entropy_guard.rs | 258 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_class_transition_audit.rs | 206 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_class_transition_entropy_guard.rs | 268 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_class_transition_monotonicity_guard.rs | 228 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_crypto_binding_guard.rs | 204 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_fill_byte_randomness_guard.rs | 261 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_key_derivation_domain_separation_guard.rs | 234 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_key_derivation_uniqueness_guard.rs | 213 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_key_rotation_uniformity_guard.rs | 244 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_length_class_transition_uniformity_guard.rs | 300 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_length_distribution_guard.rs | 206 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_metadata_leak_guard.rs | 158 | 10 | WQ | Queen lane | open PR 7582 (issue 7562) |
| CR-CHAT-04 | padding_nonce_reuse_detection_guard.rs | 220 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_oracle_chosen_ct.rs | 309 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_oracle_timing_sidechannel.rs | 190 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_payload_entropy_minimum_guard.rs | 269 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_response_timing_fingerprint_guard.rs | 269 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_timing_side_channel_guard.rs | 263 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | padding_timing_uniformity_guard.rs | 285 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | safety_number.rs | 217 | 6 | W5 | T-CRYPTO-DECISION | untouched |
| CR-CHAT-04 | welcome_path_secret_unmasking.rs | 295 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-04 | wire_frame_integrity_guard.rs | 185 | 10 | WQ | Queen lane | open PR 8673 (issue 8600) |
| CR-CHAT-05 | cross_session_duplicate_envelope.rs | 244 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | data_store_encryption_at_rest_guard.rs | 216 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | envelope_counter_gap_detection_guard.rs | 263 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | envelope_ordering_integrity.rs | 229 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | envelope_size_distribution_uniformity.rs | 167 | 10 | W1 | T-REPAIR | merged (PR 7623), issue 7617 still open |
| CR-CHAT-05 | group_context_extensions_consistency.rs | 318 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | key_rotation.rs | 413 | 7 | W3 | T-SPLIT | untouched |
| CR-CHAT-05 | key_rotation_replay_guard.rs | 195 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | lib.rs | 698 | 19 | W3 | T-SPLIT | untouched |
| CR-CHAT-05 | psk_secret_extraction_chain_order_mismatch.rs | 268 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | sender_keys_epoch_window_replay.rs | 303 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | session_isolation_verification.rs | 220 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | session_store_key_expiry_guard.rs | 214 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | snapshot_atomicity_guard.rs | 178 | 10 | WQ | Queen lane | open PR 8787 (issue 8780) |
| CR-CHAT-05 | store_checkpoint_consistency_guard.rs | 255 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | store_compaction_integrity_guard.rs | 173 | 10 | WQ | Queen lane | open PR 7920 (issue 7895) |
| CR-CHAT-05 | store_encryption_key_derivation_context_guard.rs | 234 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | store_encryption_key_rotation_integrity_guard.rs | 241 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | store_encryption_key_version_monotonicity_guard.rs | 275 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | store_encryption_nonce_uniqueness_guard.rs | 283 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | store_envelope_counter_monotonicity_guard.rs | 272 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | store_integrity_hash_chain.rs | 229 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | store_migration_compat_guard.rs | 276 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | store_record_deletion_depth_bound_guard.rs | 253 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | store_record_deletion_integrity_guard.rs | 191 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | store_record_size_distribution_uniformity_guard.rs | 311 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | store_record_tombstone_gc_guard.rs | 253 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | store_record_tombstone_resurrection_guard.rs | 280 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | store_revision_monotonicity_guard.rs | 187 | 10 | WQ | Queen lane | open PR 8674 (issue 8596) |
| CR-CHAT-05 | store_session_isolation_verification_guard.rs | 244 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | store_snapshot_hash_chain_continuity_guard.rs | 288 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | store_snapshot_integrity_hash_guard.rs | 289 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | store_tombstone_purging_consistency_guard.rs | 212 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | store_wal_entry_sequence_continuity_guard.rs | 289 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | store_write_amplification_bound_guard.rs | 258 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | store_write_atomicity_guard.rs | 258 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | store_write_ordering_monotonicity_guard.rs | 259 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | tombstone_retention_guard.rs | 206 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | wal_entry_checksum_guard.rs | 209 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | wal_entry_crc_chain_integrity_guard.rs | 287 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | wal_fsync_barrier_guard.rs | 221 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-05 | welcome_keypackage_pinning.rs | 384 | 10 | W5 | T-SPLIT + T-CRYPTO-DECISION | untouched |
| CR-CHAT-05 | welcome_secret_treekem_pruning.rs | 287 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | agent_capability_scope_boundary_guard.rs | 272 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | agent_context_window_budget_guard.rs | 185 | 10 | WQ | Queen lane | open PR 8822 (issue 8800) |
| CR-CHAT-06 | agent_context_window_overflow_guard.rs | 248 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | agent_output_content_type_validation_guard.rs | 249 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | agent_output_format_validation_guard.rs | 250 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | agent_output_rate_limit_guard.rs | 209 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | agent_output_redaction_completeness_guard.rs | 262 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | agent_prompt_injection_depth_accumulation_guard.rs | 245 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | agent_prompt_injection_depth_bound_guard.rs | 245 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | agent_prompt_injection_depth_guard.rs | 203 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | agent_prompt_injection_detection_rate_guard.rs | 243 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | agent_rate_limit_burst_detection_guard.rs | 255 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | agent_resource_usage_limit_guard.rs | 258 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | agent_response_length_bound_guard.rs | 231 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | agent_response_size_burst_bound_guard.rs | 275 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | agent_session_concurrency_limit_guard.rs | 254 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | agent_session_timeout_enforcement_guard.rs | 246 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | agent_session_token_expiry_enforcement_guard.rs | 253 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | agent_tool_argument_schema_compliance_guard.rs | 252 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | agent_tool_authorization_scope_guard.rs | 262 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | agent_tool_call_audit_log_guard.rs | 194 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | agent_tool_call_dependency_cycle_guard.rs | 265 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | agent_tool_call_frequency_burst_guard.rs | 247 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | agent_tool_call_rate_limit_guard.rs | 204 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | agent_tool_input_sanitization_guard.rs | 211 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | agent_tool_output_size_validation_guard.rs | 193 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | agent_tool_response_content_type_guard.rs | 248 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | agent_tool_result_cache_staleness_guard.rs | 239 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | capability.rs | 239 | 6 | W5 | T-CRYPTO-DECISION | untouched |
| CR-CHAT-06 | capability_scope_escalation_guard.rs | 214 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | confused_deputy.rs | 346 | 6 | W5 | T-CRYPTO-DECISION | untouched |
| CR-CHAT-06 | injection.rs | 5875 | 5 | W7 | T-SPLIT | untouched |
| CR-CHAT-06 | injection_pattern_depth_guard.rs | 220 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | lib.rs | 255 | 0 | W7 | exception | untouched |
| CR-CHAT-06 | session_capability_replay.rs | 256 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | tag_stripping.rs | 380 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | tool_arg_confusion.rs | 503 | 7 | W3 | T-PORT | untouched |
| CR-CHAT-06 | tool_argument_schema_guard.rs | 258 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | tool_call_chain_depth_guard.rs | 197 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | tool_cot_leak_guard.rs | 187 | 10 | WQ | Queen lane | open issue 8464, no PR |
| CR-CHAT-06 | tool_output_sanitization.rs | 190 | 10 | W3 | T-PORT | untouched |
| CR-CHAT-06 | tool_response_size_bound.rs | 173 | 10 | WQ | Queen lane | open issue 8728, no PR |
| CR-CHAT-06 | tool_response_timeout_guard.rs | 181 | 10 | WQ | Queen lane | open issue 8478, no PR |
| CR-CHAT-07 | blind_signature_sender_token.rs | 302 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | cover_decoy_ratio_governor.rs | 179 | 10 | W0 | swap pilot | merged (PR 7969) |
| CR-CHAT-07 | cover_traffic_burst_detection.rs | 253 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | cover_traffic_burst_interval_regularity_guard.rs | 278 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | cover_traffic_destination_rotation_frequency_guard.rs | 278 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | cover_traffic_destination_uniformity_guard.rs | 248 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | cover_traffic_emission_jitter_guard.rs | 219 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | cover_traffic_emission_pattern_randomness_guard.rs | 295 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | cover_traffic_entropy_fingerprint.rs | 224 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | cover_traffic_generation_rate_stability_guard.rs | 271 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | cover_traffic_inter_arrival_autocorrelation_guard.rs | 265 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | cover_traffic_inter_destination_timing_uniformity_guard.rs | 269 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | cover_traffic_inter_epoch_continuity_guard.rs | 244 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | cover_traffic_payload_length_distribution_guard.rs | 267 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | cover_traffic_payload_size_variance_guard.rs | 249 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | cover_traffic_replay_detection_guard.rs | 233 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | cover_traffic_size_distribution_guard.rs | 293 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | cover_traffic_starvation.rs | 320 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | cover_traffic_timing_correlation_guard.rs | 232 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | cover_traffic_timing_jitter_uniformity_guard.rs | 281 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | cover_traffic_volume_ratio_stability_guard.rs | 264 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | cover_traffic_volume_stability_guard.rs | 245 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | decoy_message_payload_entropy_guard.rs | 243 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | decoy_payload_indistinguishability.rs | 195 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | egress_fingerprint.rs | 262 | 6 | W2 | T-PORT | untouched |
| CR-CHAT-07 | emission_cadence_uniformity.rs | 210 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | jitter_side_channel.rs | 405 | 11 | W2 | T-SPLIT | untouched |
| CR-CHAT-07 | lib.rs | 447 | 4 | W2 | T-SPLIT | untouched |
| CR-CHAT-07 | message_size_class_distribution_guard.rs | 237 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | mixnet_path_diversity_guard.rs | 218 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | network_flow_direction_uniformity_guard.rs | 234 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | observer_fingerprint_rotation_guard.rs | 223 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | ratchet_tree_extension_tampering.rs | 358 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | receiver_side_traffic_analysis.rs | 172 | 10 | WQ | Queen lane | open issue 8468, no PR |
| CR-CHAT-07 | replay_detection_window_guard.rs | 181 | 10 | WQ | Queen lane | open PR 8734 (issue 8724) |
| CR-CHAT-07 | traffic_burst_pattern_uniformity_guard.rs | 231 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | traffic_shaping_burst_uniformity_guard.rs | 213 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | traffic_volume_correlation_guard.rs | 207 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-07 | wire_timing_anomaly_guard.rs | 205 | 10 | W2 | T-PORT | untouched |
| CR-CHAT-LAWS | lib.rs | 78 | 4 | W1 | T-REPAIR | merged (PR 7193) |
| src | src/bin/e2e_chat_25.rs | 266 | 0 | W7 | exception | untouched |
| src | src/bin/falsifier_runner.rs | 256 | 0 | W7 | T-SPLIT | untouched |
| src | src/lib.rs | 30 | 0 | W7 | exception | untouched |
| tests | tests/r_chat_guard.rs | 41 | 3 | W7 | T-PORT | untouched |
Dmitrii Fedorov (@dmitrii-f-t27)
Activity
dmitrii-f-t27 commentedon Oct 11, 2026
Status 2026-10-11 (W0 swap pilot and ring CR-CHAT-00).
Swap pilot: issue #1895, PR #1896 (head ea88625, stacked on 1820 and 1827). Five guards now run
t27c gen-rustoutput (t27 5e5493cab) behind adapters; the original test modules are unchanged.Measured per file (adapter = whole non-test part of the original file, non-blank / non-comment lines; mutation = original tests failing after one flipped comparison in the generated file):
Time: about 8 minutes for the 5 files, starting from the 2026-10-10 adapter drafts. Ring suites equal the frozen baseline (476, 431, 520, 381); e2e, falsifier and golden vectors identical; required checks green on ea88625.
Baseline: PR #1827 now also freezes BR-IO-CHAT-07 (6/6, commit 4a87e09).
Ring CR-CHAT-00 (tracker gHashTag/t27#8880): spec PR gHashTag/t27#9131 from the fork,
specs/port/trios/crates/trios-chat/rings/CR-CHAT-00/src/lib.t27, test-report 16/16, sealed. The CR-CHAT-00 swap in trios follows after that spec merges.Dmitrii Fedorov (@dmitrii-f-t27)
dmitrii-f-t27 commentedon Oct 11, 2026
@gHashTag, please approve and merge these four PRs into
main.mainrequires your approval, so I cannot merge them myself. State at 2026-10-11 15:45Z: each PR is MERGEABLE, all 11 checks pass on its head, and the only block is REVIEW_REQUIRED.adbe1a145trios-chatin the workspace (rootCargo.toml)4a87e0978T27_PIN, pin tests (rootCargo.lock); BR-IO-CHAT-07 measured 6/6. Contains the #1820 commitea886258at27c gen-rustoutput behind adapters (measurements in the comment above). Contains the #1820 and #1827 commits6b93cf54eThe t27 side of ring CR-CHAT-00 is gHashTag/t27#9131 (Refs gHashTag/t27#8880). It is in the t27 merge list gHashTag/t27#9136. The CR-CHAT-00 swap in trios comes after it merges.
Also for the Queen branch: #1768 vendors
specs/queen/claim.t27and waits for gHashTag/t27#8768 (head4b6ee3b82, required checks pass, also in gHashTag/t27#9136). After that merge, I merge #1768 intoqueenmyself once its latest head is green, and close #1767.Dmitrii Fedorov (@dmitrii-f-t27)
dmitrii-f-t27 commentedon Oct 14, 2026
@gHashTag, two t27 PRs of this epic are ready for your merge in
gHashTag/t27(I have read access only there). State checked 2026-10-14 against master d06eaedc9:a5a960fa5lib.t27; head is now a merge of master d06eaedc9 (no spec change, seal still matches)394732ec3skipped_message_key_gap_bound_guard(was BLOCKED in Zig) andCR-CHAT-LAWS lib(vacuous tests, did not lower to Rust)Each PR body has the table of red checks with the master evidence (identical
tools/dupe_scan.pyset on a clean master checkout; the last master cli-tri run 38297236431 fails at the samecargo build -p tri --all-targetsstep under rustc 1.99.0; the same 155 t27b rows on both PRs, none for these specs).The four trios PRs in my comment above (1820, 1827, 1896, 1826) are unchanged since 2026-10-11: same heads, all checks pass, still waiting for your approval in the order given there.
Dmitrii Fedorov (@dmitrii-f-t27)
dmitrii-f-t27 commentedon Oct 15, 2026
Merge request for the gHashTag merger (own-lane port work, EPIC W2):
@ gHashTag — please merge t27#9614.
dmitrii-f-t27 commentedon Oct 15, 2026
Merge requests for the gHashTag merger (own-lane W2 port work, CR-CHAT-04):
@ gHashTag — please merge t27#9614 and t27#9641.
dmitrii-f-t27 commentedon Oct 15, 2026
Merge requests for the gHashTag merger (own-lane W2 port work, CR-CHAT-04) — one consolidated note, three READY PRs, merge in this order:
All three carry one-line ledger insertions in the same gap, so each later merge needs a one-line rebase — I take those on request. Steward verdicts and check evidence are on each PR. @ gHashTag — please merge.
dmitrii-f-t27 commentedon Oct 15, 2026
Merge requests for the gHashTag merger (own-lane W2 port work, CR-CHAT-04) — consolidated note, four READY PRs, merge in this order:
Each carries a one-line ledger insertion in the same gap, so each later merge needs a one-line rebase — I take those on request. Steward verdicts and evidence on each PR. @ gHashTag — please merge.
dmitrii-f-t27 commentedon Oct 15, 2026
Merge requests for the gHashTag merger (own-lane W2 port work, CR-CHAT-04) — five READY PRs now, merge in this order:
Each carries a one-line ledger insertion in the same gap — each later merge needs a one-line rebase, which I take on request. Steward verdicts and evidence on each PR. @ gHashTag — please merge.
dmitrii-f-t27 commentedon Oct 15, 2026
Merge requests for the gHashTag merger (own-lane W2 port work, CR-CHAT-04) — six READY PRs now, merge in this order:
Each carries a one-line ledger insertion in the same gap — each later merge needs a one-line rebase, which I take on request. Steward verdicts and evidence on each PR. @ gHashTag — please merge.
dmitrii-f-t27 commentedon Oct 15, 2026
Merge requests for the gHashTag merger (own-lane W2 port work, CR-CHAT-04) — seven READY PRs now, merge in this order:
Each carries a one-line ledger insertion in the same gap — each later merge needs a one-line rebase, which I take on request. Steward verdicts and evidence on each PR. @ gHashTag — please merge.
dmitrii-f-t27 commentedon Oct 15, 2026
Merge requests for the gHashTag merger (own-lane W2 port work, CR-CHAT-04) — eight READY PRs now, merge in this order:
Each carries a one-line ledger insertion in the same gap — each later merge needs a one-line rebase, which I take on request. Steward verdicts and evidence on each PR. @ gHashTag — please merge.
dmitrii-f-t27 commentedon Oct 15, 2026
Merge requests for the gHashTag merger (own-lane W2 port work, CR-CHAT-04) — nine READY PRs now, merge in this order:
Each carries a one-line ledger insertion in the same gap — each later merge needs a one-line rebase, which I take on request. Steward verdicts and evidence on each PR. @ gHashTag — please merge.
dmitrii-f-t27 commentedon Oct 16, 2026
Merge requests for the gHashTag merger (own-lane W2 port work, CR-CHAT-04) — ten READY PRs now, merge in this order:
Each carries a one-line ledger insertion in the same gap — each later merge needs a one-line rebase, which I take on request. Steward verdicts and evidence on each PR. @ gHashTag — please merge.
31 remaining items
dmitrii-f-t27 commentedon Oct 17, 2026
Consolidated merge request — CR-CHAT-03 lane, @gHashTag (tracker t27#8883; 11 of 47 T-PORT targets delivered)
Newly requesting: #9916 group_epoch_commit_ordering_guard (Refs t27#8883) — steward READY, required checks green.
CR-CHAT-03 ordered merge list: #9875 → #9896 → #9904 → #9906 → #9908 → #9909 → #9910 → #9912 → #9913 → #9915 → #9916. Each steward READY, required checks green; known non-required reds cli-tri / duplicate-bodies / t27b-native-ratchet. Ledger conflicts between consecutive merges resolve trivially; rebases on this side if a batch lands. Earlier CR-CHAT-04 (36) and CR-CHAT-07 (34) lists stand as posted.
dmitrii-f-t27 commentedon Oct 17, 2026
Consolidated merge request — CR-CHAT-03 lane, @gHashTag (tracker t27#8883; 12 of 47 T-PORT targets delivered)
Newly requesting: #9925 group_member_removal_verification_guard (Refs t27#8883) — steward READY, required checks green.
CR-CHAT-03 ordered merge list: #9875 → #9896 → #9904 → #9906 → #9908 → #9909 → #9910 → #9912 → #9913 → #9915 → #9916 → #9925. Each steward READY, required checks green; known non-required reds cli-tri / duplicate-bodies / t27b-native-ratchet. Ledger conflicts between consecutive merges resolve trivially; rebases on this side if a batch lands. Earlier CR-CHAT-04 (36) and CR-CHAT-07 (34) lists stand as posted.
dmitrii-f-t27 commentedon Oct 17, 2026
Consolidated merge request — CR-CHAT-03 lane, @gHashTag (tracker t27#8883; 13 of 47 T-PORT targets delivered)
Newly requesting: #9926 group_membership_authorization_guard (Refs t27#8883) — steward READY, required checks green.
CR-CHAT-03 ordered merge list: #9875 → #9896 → #9904 → #9906 → #9908 → #9909 → #9910 → #9912 → #9913 → #9915 → #9916 → #9925 → #9926. Each steward READY, required checks green; known non-required reds cli-tri / duplicate-bodies / t27b-native-ratchet. Ledger conflicts between consecutive merges resolve trivially; rebases on this side if a batch lands. Earlier CR-CHAT-04 (36) and CR-CHAT-07 (34) lists stand as posted.
dmitrii-f-t27 commentedon Oct 17, 2026
Consolidated merge request — CR-CHAT-03 lane, @gHashTag (tracker t27#8883; 14 of 47 T-PORT targets delivered)
Newly requesting: #9928 leaf_node_key_uniqueness_guard (Refs t27#8883) — steward READY, required checks green.
CR-CHAT-03 ordered merge list: #9875 → #9896 → #9904 → #9906 → #9908 → #9909 → #9910 → #9912 → #9913 → #9915 → #9916 → #9925 → #9926 → #9928. Each steward READY, required checks green; known non-required reds cli-tri / duplicate-bodies / t27b-native-ratchet. Ledger conflicts between consecutive merges resolve trivially; rebases on this side if a batch lands. Earlier CR-CHAT-04 (36) and CR-CHAT-07 (34) lists stand as posted.
dmitrii-f-t27 commentedon Oct 17, 2026
Consolidated merge request — CR-CHAT-03 lane, @gHashTag (tracker t27#8883; 15 of 47 T-PORT targets delivered)
Newly requesting: #9929 leaf_node_priority_inversion_guard (Refs t27#8883) — steward READY, required checks green.
CR-CHAT-03 ordered merge list: #9875 → #9896 → #9904 → #9906 → #9908 → #9909 → #9910 → #9912 → #9913 → #9915 → #9916 → #9925 → #9926 → #9928 → #9929. Each steward READY, required checks green; known non-required reds cli-tri / duplicate-bodies / t27b-native-ratchet. Ledger conflicts between consecutive merges resolve trivially; rebases on this side if a batch lands. Earlier CR-CHAT-04 (36) and CR-CHAT-07 (34) lists stand as posted.
dmitrii-f-t27 commentedon Oct 17, 2026
Consolidated merge request — CR-CHAT-03 lane, @gHashTag (tracker t27#8883; 16 of 47 T-PORT targets delivered)
Newly requesting: #9931 leaf_node_signature_validation (Refs t27#8883) — steward READY, required checks green.
CR-CHAT-03 ordered merge list: #9875 → #9896 → #9904 → #9906 → #9908 → #9909 → #9910 → #9912 → #9913 → #9915 → #9916 → #9925 → #9926 → #9928 → #9929 → #9931. Each steward READY, required checks green; known non-required reds cli-tri / duplicate-bodies / t27b-native-ratchet. Ledger conflicts between consecutive merges resolve trivially; rebases on this side if a batch lands. Earlier CR-CHAT-04 (36) and CR-CHAT-07 (34) lists stand as posted.
dmitrii-f-t27 commentedon Oct 17, 2026
Consolidated merge request — CR-CHAT-03 lane, @gHashTag (tracker t27#8883; 17 of 47 T-PORT targets delivered)
Newly requesting: #9932 membership_tag_binding (Refs t27#8883) — steward READY, required checks green.
CR-CHAT-03 ordered merge list: #9875 → #9896 → #9904 → #9906 → #9908 → #9909 → #9910 → #9912 → #9913 → #9915 → #9916 → #9925 → #9926 → #9928 → #9929 → #9931 → #9932. Each steward READY, required checks green; known non-required reds cli-tri / duplicate-bodies / t27b-native-ratchet. Ledger conflicts between consecutive merges resolve trivially; rebases on this side if a batch lands. Earlier CR-CHAT-04 (36) and CR-CHAT-07 (34) lists stand as posted.
dmitrii-f-t27 commentedon Oct 17, 2026
Consolidated merge request — CR-CHAT-03 lane, @gHashTag (tracker t27#8883; 18 of 47 T-PORT targets delivered)
Newly requesting: #9933 parent_hash_chain_validation_guard (Refs t27#8883) — steward READY, required checks green.
CR-CHAT-03 ordered merge list: #9875 → #9896 → #9904 → #9906 → #9908 → #9909 → #9910 → #9912 → #9913 → #9915 → #9916 → #9925 → #9926 → #9928 → #9929 → #9931 → #9932 → #9933. Each steward READY, required checks green; known non-required reds cli-tri / duplicate-bodies / t27b-native-ratchet. Ledger conflicts between consecutive merges resolve trivially; rebases on this side if a batch lands. Earlier CR-CHAT-04 (36) and CR-CHAT-07 (34) lists stand as posted.
dmitrii-f-t27 commentedon Oct 17, 2026
Consolidated merge request — CR-CHAT-03 lane, @gHashTag (tracker t27#8883; 19 of 47 T-PORT targets delivered)
Newly requesting: #9935 pcs_healing (Refs t27#8883) — steward READY, required checks green.
CR-CHAT-03 ordered merge list: #9875 → #9896 → #9904 → #9906 → #9908 → #9909 → #9910 → #9912 → #9913 → #9915 → #9916 → #9925 → #9926 → #9928 → #9929 → #9931 → #9932 → #9933 → #9935. Each steward READY, required checks green; known non-required reds cli-tri / duplicate-bodies / t27b-native-ratchet. Ledger conflicts between consecutive merges resolve trivially; rebases on this side if a batch lands. Earlier CR-CHAT-04 (36) and CR-CHAT-07 (34) lists stand as posted.
dmitrii-f-t27 commentedon Oct 17, 2026
Consolidated merge request — CR-CHAT-03 lane, @gHashTag (tracker t27#8883; 20 of 47 T-PORT targets delivered)
Newly requesting: #9944 proposal_ref_collision (Refs t27#8883) — steward READY, required checks green.
CR-CHAT-03 ordered merge list: #9875 → #9896 → #9904 → #9906 → #9908 → #9909 → #9910 → #9912 → #9913 → #9915 → #9916 → #9925 → #9926 → #9928 → #9929 → #9931 → #9932 → #9933 → #9935 → #9944. Each steward READY, required checks green; known non-required reds cli-tri / duplicate-bodies / t27b-native-ratchet. Ledger conflicts between consecutive merges resolve trivially; rebases on this side if a batch lands. Earlier CR-CHAT-04 (36) and CR-CHAT-07 (34) lists stand as posted.
dmitrii-f-t27 commentedon Oct 17, 2026
Consolidated merge request — CR-CHAT-03 lane, @gHashTag (tracker t27#8883; 21 of 47 T-PORT targets delivered)
Newly requesting: #9945 proposal_validation (Refs t27#8883) — steward READY, required checks green.
CR-CHAT-03 ordered merge list: #9875 → #9896 → #9904 → #9906 → #9908 → #9909 → #9910 → #9912 → #9913 → #9915 → #9916 → #9925 → #9926 → #9928 → #9929 → #9931 → #9932 → #9933 → #9935 → #9944 → #9945. Each steward READY, required checks green; known non-required reds cli-tri / duplicate-bodies / t27b-native-ratchet. Ledger conflicts between consecutive merges resolve trivially; rebases on this side if a batch lands. Earlier CR-CHAT-04 (36) and CR-CHAT-07 (34) lists stand as posted.
dmitrii-f-t27 commentedon Oct 17, 2026
Consolidated merge request — CR-CHAT-03 lane, @gHashTag (tracker t27#8883; 22 of 47 T-PORT targets delivered)
Newly requesting: #9946 psk_external_injection (Refs t27#8883) — steward READY, required checks green.
CR-CHAT-03 ordered merge list: #9875 → #9896 → #9904 → #9906 → #9908 → #9909 → #9910 → #9912 → #9913 → #9915 → #9916 → #9925 → #9926 → #9928 → #9929 → #9931 → #9932 → #9933 → #9935 → #9944 → #9945 → #9946. Each steward READY, required checks green; known non-required reds cli-tri / duplicate-bodies / t27b-native-ratchet. Ledger conflicts between consecutive merges resolve trivially; rebases on this side if a batch lands. Earlier CR-CHAT-04 (36) and CR-CHAT-07 (34) lists stand as posted.
dmitrii-f-t27 commentedon Oct 17, 2026
Consolidated merge request — CR-CHAT-03 lane, @gHashTag (tracker t27#8883; 23 of 47 T-PORT targets delivered)
Newly requesting: #9947 ratchet_tree_blank_node_depth_guard (Refs t27#8883) — steward READY, required checks green.
CR-CHAT-03 ordered merge list: #9875 → #9896 → #9904 → #9906 → #9908 → #9909 → #9910 → #9912 → #9913 → #9915 → #9916 → #9925 → #9926 → #9928 → #9929 → #9931 → #9932 → #9933 → #9935 → #9944 → #9945 → #9946 → #9947. Each steward READY, required checks green; known non-required reds cli-tri / duplicate-bodies / t27b-native-ratchet. Ledger conflicts between consecutive merges resolve trivially; rebases on this side if a batch lands. Earlier CR-CHAT-04 (36) and CR-CHAT-07 (34) lists stand as posted.
dmitrii-f-t27 commentedon Oct 17, 2026
Consolidated merge request — CR-CHAT-03 lane, @gHashTag (tracker t27#8883; 24 of 47 T-PORT targets delivered)
Newly requesting: #9949 ratchet_tree_update_integrity_guard (Refs t27#8883) — steward READY, required checks green.
CR-CHAT-03 ordered merge list: #9875 → #9896 → #9904 → #9906 → #9908 → #9909 → #9910 → #9912 → #9913 → #9915 → #9916 → #9925 → #9926 → #9928 → #9929 → #9931 → #9932 → #9933 → #9935 → #9944 → #9945 → #9946 → #9947 → #9949. Each steward READY, required checks green; known non-required reds cli-tri / duplicate-bodies / t27b-native-ratchet. Ledger conflicts between consecutive merges resolve trivially; rebases on this side if a batch lands. Earlier CR-CHAT-04 (36) and CR-CHAT-07 (34) lists stand as posted.
dmitrii-f-t27 commentedon Oct 17, 2026
Consolidated merge request — CR-CHAT-03 lane, @gHashTag (tracker t27#8883; 24 of 47 T-PORT targets delivered)
Newly requesting: #9977 ratchet_tree_update_integrity_guard (Refs t27#8883) — steward READY, required checks green; it supersedes #9949 (rebased onto c4bb3b6ce for the dupe-ledger blessings of #9970, content identical).
CR-CHAT-03 ordered merge list: #9875 → #9896 → #9904 → #9906 → #9908 → #9909 → #9910 → #9912 → #9913 → #9915 → #9916 → #9925 → #9926 → #9928 → #9929 → #9931 → #9932 → #9933 → #9935 → #9944 → #9945 → #9946 → #9947 → #9977. Each steward READY, required checks green; known non-required reds cli-tri / t27b-native-ratchet. Ledger conflicts between consecutive merges resolve trivially; rebases on this side if a batch lands (the owner's current merging cadence may ask for more — we watch and rebase). Earlier CR-CHAT-04 (36) and CR-CHAT-07 (34) lists stand as posted.