You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit a7102e8
Browse filesBrowse the repository at this point in the historyBrowse files
Fix D31: find a subject by its own key, not by a guessed depth
`pool::subject_topic` hashes the subject key and nothing else. `carry_share`
uses it for every subject it carries, so two peers no longer have to agree about
how big the pool is in order to meet. Buckets keep dividing unknown subjects
among volunteers, which is the job D21 justified them for.
Proven by mutation, and the signature matters more than the pass:
`peers_that_disagree_about_pool_size_still_meet` forces one peer to carry as if
the pool were tiny and the other as if it were large. With the subject topic
they sync in 3 seconds. Without it, `carrier events: []` — sixty seconds and not
one sync session. The peers never discover each other, so in the field this bug
is silence rather than an error, which is why it has passed as flakiness.
The old bucket topic is carried alongside during the transition: moving a
subject's topic fails silently rather than loudly, and the live pool is a phone
driving an insulin pump. Marked for deletion once nothing uses it.
While both are carried, `broadcast` returns 2 — one operation to two
rendezvous, not two sends. Noted at the seam and in D31, because a doubling in
a diagnostic is what this project keeps misreading.
diaswarm-net 47 passed, 0 failed, from cargo's own exit code.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
0 commit comments