Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
269 commits
Select commit Hold shift + click to select a range
e8b890e
tools: Delete the digest-share meter
plaidfinch Nov 5, 2026
54a85ae
codec: Write each frame with one vectored write
plaidfinch Nov 5, 2026
ac2907b
pipe: Flush the write half only when the multiplexer runs out of read…
plaidfinch Nov 5, 2026
cd6ab1a
clippy: Disallow Tokio's mpsc
plaidfinch Nov 5, 2026
2cf56cc
streaming: Share one window between an endpoint's walk and its proxy
plaidfinch Nov 5, 2026
a1fc54a
proxy, tests: Check that takes answer published questions, by label
plaidfinch Nov 5, 2026
3dbce09
proxy tests: Replace high-water assertions that compared a queue with…
plaidfinch Nov 5, 2026
31fb80b
formal: Restate the remote-transport bridge for one multiplexed pipe
plaidfinch Nov 5, 2026
60e0d02
streaming tests: State the walk's invariants without citing the forma…
plaidfinch Nov 5, 2026
ee01f45
formal, AGENTS: Archive the formal development
plaidfinch Nov 5, 2026
ccd4780
testkit, tests: Model a link with bandwidth, delay, and send buffers
plaidfinch Nov 5, 2026
177c11d
alloc-meter: Record a thread's allocation requests in a reserved trace
plaidfinch Nov 5, 2026
72566ae
alloc-meter: Classify a trace's blocks into per-label lifetimes
plaidfinch Nov 5, 2026
8312f93
alloc-meter: Read the trace position and per-segment transient peaks
plaidfinch Nov 5, 2026
aa2e768
streaming: Mark the code that allocates for each place a session holds
plaidfinch Nov 5, 2026
0d9301d
streaming tests: Predict every reply from leaf paths and check sessio…
plaidfinch Nov 5, 2026
1d8b251
streaming: Assemble supplied subtrees over their open right spine
plaidfinch Nov 5, 2026
6b65f8d
tree, streaming: Store each branch's grandchild count as an exact agg…
plaidfinch Nov 5, 2026
08e1afd
streaming: Report the bytes each node explosion allocates
plaidfinch Nov 5, 2026
5b47c90
streaming: Name listing entries with a Listed type
plaidfinch Nov 5, 2026
81c8a93
streaming: Carry each listed child's grandchild count on the wire
plaidfinch Nov 5, 2026
5725e31
streaming: Keep a ledger of what each session holds and invites
plaidfinch Nov 5, 2026
5a3246b
streaming: Receive each reply in chunks and act on each as it arrives
plaidfinch Nov 5, 2026
73f0411
streaming: Yield each answer in chunks, one question at a time
plaidfinch Nov 5, 2026
223533a
streaming: Admit the walk's work against each side's budget, the floo…
plaidfinch Nov 5, 2026
8634b62
throughput tests: State no slowdown and the send buffer in budget bytes
plaidfinch Nov 5, 2026
a406760
streaming, tests: Configure each session by its budget alone
plaidfinch Nov 5, 2026
0c61ee0
streaming: Remove the window and describe the budget as pipelining
plaidfinch Nov 5, 2026
95056b0
tests: Measure each peer's transient heap against its ledger, place b…
plaidfinch Nov 5, 2026
4ac7282
streaming: Remove node prices from the backend contract
plaidfinch Nov 5, 2026
da0b627
streaming, testkit: Report each admission, and share the throughput
plaidfinch Nov 5, 2026
33885ee
streaming tests: Run redacting forks through the liveness grid
plaidfinch Nov 5, 2026
5cf51e1
streaming: Charge a supplied node's explosion as the deletion filter …
plaidfinch Nov 5, 2026
3b59b00
streaming: Return a question's own charge when its reply is finished
plaidfinch Nov 5, 2026
494376c
streaming: Bound an answer's resolution and grant by one fan
plaidfinch Nov 5, 2026
4b63966
streaming: Return a reply's unused parked room as soon as it is known
plaidfinch Nov 5, 2026
baca624
streaming: Price a dispute question at the child's exact child count
plaidfinch Nov 5, 2026
bb9abaa
testkit: Date shallow admissions, integrate each place, and size mess…
plaidfinch Nov 5, 2026
ebc6abd
testkit: Count the root answer's depth-1 question grants
plaidfinch Nov 5, 2026
5e211aa
streaming: Price an answer at the children its scope can hold
plaidfinch Nov 5, 2026
796b094
streaming: Release a reply's room as soon as the reply shows it unused
plaidfinch Nov 5, 2026
c682ea7
streaming: State what the root's version bound feeds
plaidfinch Nov 5, 2026
6c13f92
streaming: Shrink a ledger charge to 16 bytes
plaidfinch Nov 5, 2026
be5b5f7
streaming: Keep per-place and peak ledger counters only where observed
plaidfinch Nov 5, 2026
4906348
rumors: Report the units the budget held back in SessionStats
plaidfinch Nov 5, 2026
a65f865
streaming: Fail the session on a node count no node can have
plaidfinch Nov 5, 2026
3309da0
streaming: Give admission's bookkeeping its own meter place
plaidfinch Nov 5, 2026
562cf5d
streaming: Charge an answer's plan
plaidfinch Nov 5, 2026
3ff9e59
streaming: Return an answer's unneeded grant before its questions wait
plaidfinch Nov 5, 2026
2eaa439
conformance: Check each explosion report against what listing allocates
plaidfinch Nov 5, 2026
0617d6f
session budget: Floor the outgoing replies' charges at half what they…
plaidfinch Nov 5, 2026
37fb2a5
session budget: Hold the bound with a redacting replica
plaidfinch Nov 5, 2026
31baf5b
streaming: Fail the session on an explosion report above the backend'…
plaidfinch Nov 5, 2026
050454d
admission: Open the module docs with the model the rule serves
plaidfinch Nov 5, 2026
1a3a2c2
testkit: Check admission's grants against the ledger's rises in every…
plaidfinch Nov 5, 2026
cb320e8
streaming: Admit a unit at once when nothing waits
plaidfinch Nov 5, 2026
a1e1d05
streaming: Check the greeting's root grandchild count at the sender
plaidfinch Nov 5, 2026
4da8619
streaming: Fail the session on a child count the listing does not bea…
plaidfinch Nov 5, 2026
7f19e7a
streaming: Price a leaf parent's derived records, and hold them in a
plaidfinch Nov 5, 2026
5ca4c08
streaming: Price an answer at the exact union of both sides' children
plaidfinch Nov 5, 2026
71f6e31
session budget: State why admission's measured bound and the redactin…
plaidfinch Nov 5, 2026
d935e5c
decoder: End a chunk at each question, whenever its frames arrive
plaidfinch Nov 5, 2026
c4bdf96
session budget: Meter hashing as its own place
plaidfinch Nov 5, 2026
f11761f
ledger: Record how a session spends its budget over time
plaidfinch Nov 5, 2026
587bef5
admission: Admit each depth's invitations by the banker's sum of thei…
plaidfinch Nov 5, 2026
985dee6
streaming: Count the multiplexer's lane polls per frame
plaidfinch Nov 5, 2026
33876a4
pipe: Poll only the lanes whose channels woke the multiplexer, from a…
plaidfinch Nov 5, 2026
597f3b7
gossip: State the sizes of the futures every session boxes
plaidfinch Nov 5, 2026
f95bc1d
driver: Hold each session value once, shrinking the boxed descent
plaidfinch Nov 5, 2026
d49c409
ledger, testkit: Record where and when the share peak occurs
plaidfinch Nov 5, 2026
17917e1
proxy: Poll the multiplexer and demultiplexer in the walk's task set
plaidfinch Nov 5, 2026
26d7344
pipe: Read a frame opener's worth ahead of each item, not one byte
plaidfinch Nov 5, 2026
4cc9084
adapter: Encode each reply chunk into a stream its caller pins
plaidfinch Nov 5, 2026
ec138a1
testkit: Measure the budget model's quantities per shape
plaidfinch Nov 5, 2026
a1d2d9e
streaming: Count the sends that park on each kind of protocol edge
plaidfinch Nov 5, 2026
463c97c
pipe: Model each lane's channel as a queue of its capacity in the fra…
plaidfinch Nov 5, 2026
6049e8f
streaming: Give every edge that needs one slot a second
plaidfinch Nov 5, 2026
5883be5
session_budget: Fork the hop sweep's fixture from one seeded network and
plaidfinch Nov 5, 2026
5765957
build: Optimize rumors at opt-level 1 in the development profile
plaidfinch Nov 5, 2026
953963f
session_budget: Keep the explosion sums and leaf-request counts per t…
plaidfinch Nov 5, 2026
14c92f8
tests: Count the calls a session makes on its transport halves
plaidfinch Nov 5, 2026
d954374
pipe: Buffer the multiplexer's writes
plaidfinch Nov 5, 2026
184a1b2
rumors: Take the read half as AsyncBufRead
plaidfinch Nov 5, 2026
6156039
streaming: Hand Backend::parent the node it reassembles
plaidfinch Nov 5, 2026
8bb5c7b
tree, tests: Count the work sessions do on branches and their memos
plaidfinch Nov 5, 2026
ff1187e
tree, streaming: Return a scope's node whole when its children come b…
plaidfinch Nov 5, 2026
55b8d3a
tree: Seed a rebuilt branch's bounds from the node it replaces
plaidfinch Nov 5, 2026
26550c6
pipe: Derive the write buffer's frame count from the TLS send limit
plaidfinch Nov 5, 2026
2334f6f
tree: Hash paths and digests with SHA-256; compare 16-byte digests
plaidfinch Nov 5, 2026
c2b1c48
streaming: Add ByteSet, a set of bytes with one canonical encoding
plaidfinch Nov 5, 2026
0b5ca5b
streaming: Carry a reply's later matches in its first Match
plaidfinch Nov 5, 2026
317f325
peer: Keep a joiner's party once it has fully arrived
plaidfinch Nov 5, 2026
fa8e24c
rumors: Report what redact, redact_all and a batch's redactions removed
plaidfinch Nov 5, 2026
5afa775
rumors, rumors-testkit: Seed every test network from a proptest-drawn…
plaidfinch Nov 5, 2026
87470f3
rumors-testkit, tests: Carry a network seed in every generated schedu…
plaidfinch Nov 5, 2026
6c18925
rumors: Seed unit-test networks from proptest
plaidfinch Nov 5, 2026
edc0a3f
tests: Range local and single-session suites over network seeds
plaidfinch Nov 5, 2026
d470f90
tests: Range membership and bookmark suites over network seeds
plaidfinch Nov 5, 2026
db7bf9e
tests: Name the fixed network seeds of the exact-count suites
plaidfinch Nov 5, 2026
f9748a2
tests: Split session_budget's committed figures from its seed-ranging…
plaidfinch Nov 5, 2026
8322a0e
tests: Range the connection and session-driver suites over network seeds
plaidfinch Nov 5, 2026
1476fe5
tests: Range the remaining membership and bookmark fixtures over netw…
plaidfinch Nov 5, 2026
072bb57
tests: Seed the budget-corner and dispute-wire fixtures by what they …
plaidfinch Nov 5, 2026
f199fda
rumors-tracing: Seed the adapter's end-to-end networks from proptest
plaidfinch Nov 5, 2026
80d6275
rumors-testkit: Delete wire::divergent_pair
plaidfinch Nov 5, 2026
2aef0ce
AGENTS.md: Put an adversary outside the peers in model
plaidfinch Nov 5, 2026
0a95a4b
deps: Move the workspace to the rand 0.10 generation
plaidfinch Nov 5, 2026
4e248c3
secret: Seal a network secret for a bootstrapping peer with HPKE
plaidfinch Nov 5, 2026
6dc4ca4
network, peer: Give each network a secret, and derive its public ID f…
plaidfinch Nov 5, 2026
e17a35f
typed, local: Peel compressed nodes as views in the in-memory backend
plaidfinch Nov 5, 2026
bf5cfe7
streaming: Delete the explosion accounting
plaidfinch Nov 5, 2026
bda2e93
local: Walk supplied leaves as views
plaidfinch Nov 5, 2026
50eba48
streaming: Fold Radices into ByteSet
plaidfinch Nov 5, 2026
5da3270
streaming: Price covered sets net of their covered children's slots
plaidfinch Nov 5, 2026
d9377a7
tests: Say what a child listing allocates in session_budget's attribu…
plaidfinch Nov 5, 2026
092d59c
tree, network: Key leaf paths with a key derived from the network secret
plaidfinch Nov 5, 2026
bb4ffb3
peer: Draw a network secret from the operating system
plaidfinch Nov 5, 2026
0663677
streaming, tests: Check that every chunk the decoder parks fits its room
plaidfinch Nov 5, 2026
b3e8b5a
streaming: Hold a reply's queries to the listing its count leaves
plaidfinch Nov 5, 2026
7548184
streaming: Reject a reply reaction that does not ascend by radix
plaidfinch Nov 5, 2026
a3bdc2e
testing, streaming: Size the in-memory handle terms by the backend's …
plaidfinch Nov 5, 2026
9298558
tree, tests: Move and copy children in the reassembly properties
plaidfinch Nov 5, 2026
8152349
tests: Cancel each side of a bootstrap at every suspension
plaidfinch Nov 5, 2026
a3b3d62
typed, streaming: Derive each handle's peel from its height, checking…
plaidfinch Nov 5, 2026
5162afd
streaming: Check and price a reply's parked room through one allowance
plaidfinch Nov 5, 2026
76a670d
adapter: Delete SupplyOrder, which the radix order subsumes
plaidfinch Nov 5, 2026
f196fd9
work: Count covered children in the fit hook's reaction slots
plaidfinch Nov 5, 2026
1dfcaa7
adapter: Count a replay's covered positions ahead in constant time
plaidfinch Nov 5, 2026
ca02a9c
work: Compute an answer's union of radixes once
plaidfinch Nov 5, 2026
50b0fcf
adapter tests: Measure the disputed reply's halves against their deri…
plaidfinch Nov 5, 2026
4dbfe4c
testing, tests: Say what a network seed cannot replay; scale two prop…
plaidfinch Nov 5, 2026
aa66a23
network, tree, peer: Derive a network's keys once, by one HKDF schedule,
plaidfinch Nov 5, 2026
3700d76
tree: Make HMAC-SHA-256 under the network's key the tree's only hash
plaidfinch Nov 5, 2026
5feac14
mirror, peer: Return the counterparty from the preamble as one value
plaidfinch Nov 5, 2026
85f2c62
tests: Check that networks seeded across a fork differ
plaidfinch Nov 5, 2026
9daf76d
streaming: Rename UNPARKED_CAPACITY to HANDOFF_CAPACITY
plaidfinch Nov 5, 2026
27c7203
streaming: Price a reply's parked room exactly at its allowance's ope…
plaidfinch Nov 5, 2026
6a6b8aa
tests: Sweep budgets across a ladder against the exact properties
plaidfinch Nov 5, 2026
0daf17f
hop_trace: State the hop rule and check it as a property
plaidfinch Nov 5, 2026
c6a86ed
streaming: Price a reply's records part exactly from a fresh allowanc…
plaidfinch Nov 5, 2026
85207ba
streaming tests: Price the parking proptest's room through Left
plaidfinch Nov 5, 2026
d317c1f
mirror: Place each listed child once
plaidfinch Nov 5, 2026
2c03a34
throughput tests: Carry the floor/budget substitution at the cells wh…
plaidfinch Nov 5, 2026
82ed61f
throughput tests: Bound every session below by its busier direction a…
plaidfinch Nov 5, 2026
a942441
rumors: Claim the reunited peer through a OnceLock
plaidfinch Nov 5, 2026
f9bbcdf
testkit: Signal one-shot events through tokio's SetOnce
plaidfinch Nov 5, 2026
5f7dc57
rumors: Raise every public sync budget to a minimum
plaidfinch Nov 5, 2026
9c25656
rumors: Correct the public docs toward the code
plaidfinch Nov 5, 2026
c536607
rumors: Mark the sizing guide's figures for restatement
plaidfinch Nov 5, 2026
b15148a
rumors-testkit, tests: Correct two test docs
plaidfinch Nov 5, 2026
c3325e5
rumors-testkit: Seed a fixture pair's network; read each depth's shar…
plaidfinch Nov 5, 2026
2252fc4
throughput tests: Assert the budget criterion above the largest grant
plaidfinch Nov 5, 2026
7a21916
counter, rumors-testkit, tests: Restate the widen convention, the
plaidfinch Nov 5, 2026
5c35bed
network, secret, streaming: Correct the key-material, sealing and cha…
plaidfinch Nov 5, 2026
b7a6d99
streaming, mirror, tree: Correct maintainer docs toward the code
plaidfinch Nov 5, 2026
f233ce8
mirror, streaming, counter: Correct the allocation, decode-fan and da…
plaidfinch Nov 5, 2026
c07d3fe
peer, testkit, tests: Add decoded leaves to the budget's exclusions a…
plaidfinch Nov 5, 2026
b85b5f3
streaming: Price a question's lead at one fan of reactions, from one …
plaidfinch Nov 5, 2026
7b7484b
conformance: Check that a backend lists children at strictly ascendin…
plaidfinch Nov 5, 2026
5325826
transport_calls: Record frames per flush on the disjoint session
plaidfinch Nov 5, 2026
8760d1d
streaming: Hand runs over at completion and hold a chunk's charge unt…
plaidfinch Nov 5, 2026
c2e85ac
streaming: Charge the opening question's room as the roles are elected
plaidfinch Nov 5, 2026
1726c9b
streaming: Size the reply path's lanes and outgoing replies at a fan
plaidfinch Nov 5, 2026
0df4a88
rumors: Move every tuning default into the default module
plaidfinch Nov 5, 2026
6847d88
pipe, peer: Flush after the encoders have had a turn, and batch write…
plaidfinch Nov 5, 2026
c37a4ce
peer: Compute the effective sync budget from both settings at use
plaidfinch Nov 5, 2026
d6298b9
streaming: Set the session's fixed state aside in the memory budget
plaidfinch Nov 5, 2026
78e887e
streaming: Charge each derived record until its encoder answers it
plaidfinch Nov 5, 2026
f748ab7
pipe: Bound supply runs with byte-counted wire pools per direction
plaidfinch Nov 6, 2026
a384c60
streaming: Set the wire pools and the pipe's fixed state aside in the…
plaidfinch Nov 6, 2026
fd69fee
peer, docs: Restate the budget's coverage in terms of the wire pools
plaidfinch Nov 6, 2026
f82b3e2
testing: Make the floor allowance a constant and name the no-cost poi…
plaidfinch Nov 6, 2026
061079f
conformance: Measure each node beyond its own inline bytes
plaidfinch Nov 6, 2026
5a9facc
codec, tests: Restate the greeting's spelling, the full-fan query frame,
plaidfinch Nov 6, 2026
fcb022b
rumors-budget-curves: Measure and plot slowdown against budget
plaidfinch Nov 6, 2026
956e794
sizing: Restate the guide's figures from the budget curves' simulated
plaidfinch Nov 6, 2026
418b6c9
rumors-netperf: Measure sessions over emulated links and between hosts
plaidfinch Nov 6, 2026
25116bf
netperf: Take enough calibration readings that no one reading decides…
plaidfinch Nov 5, 2026
3e7b22f
netperf: Judge and report the shards of one run measured on several h…
plaidfinch Nov 5, 2026
3778986
reconciliation: Say version bounds settle only exclusive subtrees
plaidfinch Nov 5, 2026
03a8c91
streaming: Check the deletion filter against a leaf-by-leaf sieve
plaidfinch Nov 5, 2026
7ee2881
conformance: Reconcile the corpora across redactions the backend's bo…
plaidfinch Nov 5, 2026
e488c1c
conformance: Hold a backend's converged digest to the in-memory backe…
plaidfinch Nov 5, 2026
9d82941
streaming: Require a backend's node handles to answer the same for life
plaidfinch Nov 5, 2026
f1ba4f0
peer tests: Race redactions from two threads against a session's publ…
plaidfinch Nov 5, 2026
dd24a3c
bookmark: Test that configuring a peer ignores a held bookmark lock
plaidfinch Nov 5, 2026
ae42af1
bookmark: Keep the size limit outside the session lock
plaidfinch Nov 5, 2026
866dd11
rumors: Release a leaked session's bookmark lock when reclaiming the …
plaidfinch Nov 5, 2026
fb6e2de
rumors: Fuse the gossip driver's stream
plaidfinch Nov 5, 2026
6a4aa1e
proxy: Fail a session on any pipe failure during the walk
plaidfinch Nov 5, 2026
4fb2df0
tests: Sweep read and write cuts at the end of either side's traffic
plaidfinch Nov 5, 2026
10a393e
network: Say what callers can do with a Network, deserializing included
plaidfinch Nov 5, 2026
fd2e117
tree: Drop the ghost link to testing::max_bound_bytes
plaidfinch Nov 5, 2026
00421ef
nextest: Drop the note on measurement suites the tree does not hold
plaidfinch Nov 5, 2026
b805248
channel: Count a send's occupancy before the item reaches the receiver
plaidfinch Nov 5, 2026
18ca23e
pipe tests: Check that lane wakes from other threads reach the multip…
plaidfinch Nov 5, 2026
9a5a9f0
hop_trace: Check the hop rule at every parting depth from 5 to the le…
plaidfinch Nov 5, 2026
fcfcd89
tests: Floor the join's and the causal staging's allocation ceilings
plaidfinch Nov 5, 2026
441d3ab
testkit: Check every grant against its slot bound and one side's parity
plaidfinch Nov 5, 2026
68adde2
budget_criterion: Check that the first burst saturates at the depth-1…
plaidfinch Nov 5, 2026
e7c26c3
streaming tests: Check that every depth's claims return to zero after…
plaidfinch Nov 5, 2026
a9f9b1c
peer, sizing: State that the budget is approximate overall
plaidfinch Nov 5, 2026
c397de3
peer: List the budget's remaining exclusions and the lock state
plaidfinch Nov 5, 2026
79e30f5
framing tests: Bound what a greeting or hand-off body read holds at once
plaidfinch Nov 5, 2026
44da833
unknown tests: Check the deletion filter along descents mixed at every
plaidfinch Nov 5, 2026
f53b6b0
decode_alloc: Price a lone record past the budget whose body is withheld
plaidfinch Nov 5, 2026
9967193
session_budget: Check large byte-vector payloads against the budget's
plaidfinch Nov 5, 2026
f997888
peer: Clamp the message-size target to what the memory budget affords
plaidfinch Nov 5, 2026
627463e
default: Set the message-size target to 256 KiB
plaidfinch Nov 5, 2026
4fca14d
materialized: Merge the internal and leaf-parent walks into one
plaidfinch Nov 5, 2026
0ba644a
streaming decode: Reject a supplied leaf this side has already seen
plaidfinch Nov 5, 2026
7099648
streaming decode: Check a supply against the peer's version in the de…
plaidfinch Nov 5, 2026
8e1b0fc
ledger: Dissolve Charge::absorb; the opening takes its one question
plaidfinch Nov 5, 2026
8b057e3
tests: Name the serial configuration the zero-budget suites rely on
plaidfinch Nov 5, 2026
8605b7c
admission: Admit by what each kind and depth holds, not by floor slots
plaidfinch Nov 6, 2026
9a90cd5
testkit: Check that each kind and depth has one waiting unit at a time
plaidfinch Nov 5, 2026
b12274a
peer: Hold the session settings Peer and Bootstrap share in one struct
plaidfinch Nov 5, 2026
81e9341
materialized: Rename the reply's Allowance to ReplyQuota
plaidfinch Nov 5, 2026
676e281
budget_criterion: Judge the criterion at every ledger budget, zero in…
plaidfinch Nov 5, 2026
cd355d2
deps: Update every dependency to its latest compatible release
plaidfinch Nov 5, 2026
967c469
deps: Update criterion to 0.8
plaidfinch Nov 5, 2026
ee671da
deps: Update itertools to 0.15
plaidfinch Nov 5, 2026
780d2bb
deps: Update base64 to 0.23
plaidfinch Nov 5, 2026
55782c1
deps: Update rcgen to 0.14
plaidfinch Nov 5, 2026
5387bee
deps: Update Wasmtime to 50
plaidfinch Nov 5, 2026
56ccf55
deps: Update num-bigint to 0.5
plaidfinch Nov 5, 2026
b229e6e
deps: Update idna_adapter to 1.2
plaidfinch Nov 5, 2026
8b4d86c
deps: Record why pollster stays at 0.4
plaidfinch Nov 5, 2026
02a7e1b
lifecycle: Test that a leaked session cannot keep observers alive
plaidfinch Nov 6, 2026
bbbf4e1
peer: Borrow the replica in the bootstrap fork's guard
plaidfinch Nov 6, 2026
2874c95
session_budget: Require each large payload to lie where its docs plac…
plaidfinch Nov 6, 2026
0ee6f35
session_budget: Send the within-budget large payload at a target that…
plaidfinch Nov 6, 2026
eb01474
sizing: Restate the guide's slowdown at the smallest budget; drop its…
plaidfinch Nov 6, 2026
b6dc192
lifecycle: Test that a leaked bootstrap service pauses reclamation on…
plaidfinch Nov 6, 2026
b4a5437
rumors: Forget a leaked session's fork reservation when reclaiming th…
plaidfinch Nov 6, 2026
a6b3da7
streaming: Mark a place's work through methods on Holding; name a rol…
plaidfinch Nov 6, 2026
f7084e8
streaming: Name the event where maintainer docs said "the take"
plaidfinch Nov 6, 2026
9b51a3e
peer: Report a join's connection fate apart from whether it joined
plaidfinch Nov 6, 2026
af6791b
peer: Report a retirement's connection fate apart from whether it left
plaidfinch Nov 7, 2026
2875fbe
peer: Take a reusable connection's halves back with into_halves
plaidfinch Nov 7, 2026
3ddadd0
rumors: State conventions directly instead of citing who decided them
plaidfinch Nov 7, 2026
7a5ce11
before: State conventions directly instead of citing who decided them
plaidfinch Nov 7, 2026
47cf369
formal: State the claims and designs directly instead of citing who d…
plaidfinch Nov 7, 2026
7b23d2a
shadow_validity: Remove the seed that predates the Schedule strategy'…
plaidfinch Nov 7, 2026
1ff4564
before: Name the required architectures, contract texts and derived s…
plaidfinch Nov 7, 2026
dd32f3d
ledger: Test that a unit fitting its bound waits behind an earlier wa…
plaidfinch Nov 7, 2026
0f37878
ledger: Admit first come, first served within each kind and depth
plaidfinch Nov 7, 2026
2e0a0d5
admission: Rewrite the module's docs for clarity and concision
plaidfinch Nov 7, 2026
e9bb1dd
budget-curves, throughput tests: Say the link model's sessions are ex…
plaidfinch Nov 8, 2026
3ca0f89
sizing: Rewrite the guide for choosing a budget
plaidfinch Nov 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 2 additions & 9 deletions .config/nextest.toml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ not (
| package(focused-fuel-guest)
| package(focused-fuel-harness)
| package(focused-fuel-protocol)
| package(rumors-budget-curves)
| package(rumors-netperf)
| package(fuzzfit-guest)
| package(fuzzfit-harness)
| package(suanpan-fuel-guest)
Expand Down Expand Up @@ -95,12 +97,3 @@ slow-timeout = { period = "60s", terminate-after = 9 }
# while the job sets none.
[profile.high-count]
slow-timeout = { period = "60s" }

# The window measurement suites (window_knee, window_operator,
# window_corners, gossip_pipelining) need no scheduling isolation: their
# pins assert on exact virtual wire time (`benches/support/latency.rs`),
# which machine load cannot move, so they run interleaved with the rest
# of the suite like any other test. The one wall-clock upper bound among
# them (window_corners' real-clock promptness cross-check) holds a
# ~0.5 s measured catch-up under a 5 s budget: that ~8x headroom is what
# absorbs load there, where the virtual pins need none.
7 changes: 4 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@
# `ci` is the build-everything tier — lints, docs, the feature matrix, the
# full test and doctest run, bench compilation, fuzz-target verification, and
# the viz bundle;
# the justfile's `ci` recipe line is the roster of record, ordered
# the justfile's `ci` recipe line names every leg this job runs, ordered
# cheap-first. It builds the fuzz targets but does not run the smoke (`just all`
# adds that locally — libFuzzer minutes are a poor per-commit spend). The
# `instruments` job beside it re-runs the gate judgments that belong on a
# shared runner: dependency policy, the board verdicts and pins, and surface
# totality. Its job comment says which instruments stay local and why.
# The `properties` job runs Rumors in release at the larger case count pinned
# by `test-release` in the justfile.
# The `properties` job runs Rumors in release codegen, with overflow checks
# and debug assertions, at the larger case count pinned by `test-release` in
# the justfile.
# The justfile owns each job's roster. The workflow names only those groups,
# so adding or removing a check cannot leave a copied workflow list behind.
#
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ formal/lean/.lake/
formal/quint/node_modules/
formal/quint/_apalache-out/

# Fetched TLC binary; the sha256 pin alongside it is the artifact of record.
# Fetched TLC binary; only the sha256 pin alongside it is tracked.
formal/tla/tla2tools.jar

# EventDag analysis dumps (lake exe eventdag); regenerable from the tool.
Expand Down
52 changes: 30 additions & 22 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# rumors — project notes

A guidepost, not a manual: it orients and points, and the documentation of
record is the rustdoc. Keep this file small and accurate; when detail needs a
durable home, put it in the docs and point there.
A guidepost, not a manual: it orients and points, and the rustdoc holds the
documentation. Keep this file small and accurate; when detail needs a durable
home, put it in the docs and point there.

## Orientation

Expand All @@ -22,11 +22,16 @@ tour, and the comment above each recipe says what it checks and why.
`just fmt`.
- After editing crate-level rustdoc, run `just readme`: the READMEs are
derived, never hand-edited.
- Before committing, get the checks that can read the change fully clean:
`just gate` for anything that can alter what builds or runs, its
build-free tier `just gate-lints` for a change confined to plain comments
and test doc comments, and nothing for a commit-message rewrite. The
comment above the `gate` recipe gives the reasoning.
- Choose verification by what your diff can break: the comment above each
recipe says what it checks. Before a commit, run the recipes that check
what you touched. A change that can alter what builds or runs needs at
least `just clippy` and the affected tests; a change confined to plain
comments and test doc comments needs only the build-free tier
`just gate-lints`; a rewrite of a commit message alone needs no check.
- Get `just gate` fully clean on the tip proposed for `main`, and on every
commit `main`'s first-parent line gains: its merges, and commits made
directly on `main`. Commits inside a merged branch need not each pass the
gate; first-parent bisection (below) is what makes that safe.
- After a gate leg fails, fix it and rerun that leg and any leg the fix can
reach, not the whole gate: the legs that passed still hold for what they
read.
Expand All @@ -45,7 +50,7 @@ justfile's `nightly_toolchain` give the reason and the bump procedure.

- Unit and protocol tests live in a sibling file: `mod tests;` in the source,
`tests.rs` next to it. Cross-peer suites are binaries in `tests/`, built on
the fixtures in `crates/rumors-testkit` (its `common` module doc maps them).
the fixtures in `crates/rumors-testkit` (its `common` module doc describes them).
- Give every test a doc comment stating the behavior and invariant it
protects. The gate's `testdoc` checks that the comment exists; review holds
it to the standard.
Expand Down Expand Up @@ -91,28 +96,31 @@ No gate leg checks these; review does.
- Nothing in the tree refers to code that no longer exists: no "formerly", no
"was removed", no deleted API names. Restate prose in terms of what is;
provenance lives in git history.
- Code may cite the Lean artifact by *theorem or definition name*, never by
file path, when a kernel-checked statement backs the claim, and still states
the invariant inline.
- The model of record is uniform-hash and authenticated-honest-peer: the
- The assumed model is uniform-hash and authenticated-honest-peer: the
transport is pre-authenticated and authorized, and an authorized peer already
holds write authority over the set. Hostile peers are off-model, so no
design or cost argument rests on adversary economics, and fail-fast checks
detect conformance bugs rather than enforce security. Add no machinery to
guarantee termination against non-conforming peers or links (applications
own deadlines for those waits); preserve progress under conforming traffic
and propagate detected failures promptly.
design or cost argument rests on a hostile peer's economics, and fail-fast
checks detect conformance bugs rather than enforce security. An adversary
outside the peers is in model: it observes the transport, steers gossip
timing and topology (cutting connections included), and triggers
insertions and redactions through the application, but cannot alter a
session or make a peer depart from the protocol. The protocol's integrity
must not depend on the transport's confidentiality, nor on that adversary
being unable to infer replica contents or versions. Add no machinery to
guarantee termination against non-conforming peers or connections
(applications own deadlines for those waits); preserve progress under
conforming traffic and propagate detected failures promptly.
- Never let two independently `seed`ed universes interact. Within a universe,
the linearity of parties is the invariant everything rests on (see
`before`'s `Party` docs).
- Redaction leaves no tombstones: a deletion is honored by observing versions,
so reason about it in version ceilings and floors, not markers.
- The `insta` snapshots and the exact byte counts in
`tests/protocol_overhead.rs` pin the wire and storage formats. Re-accept
them only for a deliberate, owner-ruled change to a format or to the capture
renderer, named in the re-accepting commit, never to accommodate drift. Once
a release ships, a wire format change means a new protocol version, never a
mutation of a released one.
them only for a deliberate change to a format or to the capture renderer,
named in the re-accepting commit, never to accommodate drift. Once a release
ships, a wire format change means a new protocol version, never a mutation
of a released one.
- A bookmark snapshot that moves because the encoding changed is an on-disk
format change: bump `BOOKMARK_FORMAT_VERSION` in the same commit.
- A snapshot that moves only because its test fixture changed is a fixture
Expand Down
Loading
Loading