Make dependencies explicit
Represent work as a graph rather than hoping independent tasks will remain independent.
Trade-off: A graph can become stale as reality changes.
Track tasks and dependencies as multiple agents work on a codebase.
The summary describes what the project says it does; inclusion is not an endorsement.
Represent work as a graph rather than hoping independent tasks will remain independent.
Trade-off: A graph can become stale as reality changes.
github.com · Issue #3570
“Two workers polling within the same window can both observe the same ready bead, both claim it, and both begin work. Result: duplicated work, near-identical PRs, wasted compute.”
Reported from an overnight Gas Town convoy, and closed the same day. A closed issue doesn't show that every variant of the race is gone.
github.com · Issue #5998
“Multi-worker fleets polling with --claim currently double-fill.”
Reported against bd 1.2.2 four months after #3570 closed, and still open in October 2026. The same kind of failure, but nobody has shown it is the same code path.
github.com · Problem Statement, item 1
“Workers can't see each other's beads. A bead created by agent A is invisible to agent B until A's branch merges to main.”
Giving each worker its own branch let them write without contention, but they couldn't coordinate. The design doc moved everything to one shared main with explicit transactions, live since 24 February 2026.
github.com · Issue #2987
“bd list over the molecule's 50 step beads reported open=50, in_progress=0, closed=0 — zero progress reflected in the cached read.”
A shared database can still give two answers: cached list reads lagged the store by minutes. Open, with the cause suspected but not confirmed.
medium.com · Pull quote under the subtitle
“A durable work record is not the same thing as a durable procedure.”
A task that survives a crash in the tracker can still lose the process working on it. She has contributed hundreds of PRs to Gas City and runs it on itself.
medium.com · The three failures I wanted Temporal to stop
“Completion is fenced too: Beads accepts a receipt only when the work ID, generation, claim token, and Workflow identity still match.”
Fencing tokens borrowed from distributed systems, applied to agent work. She is careful to say two of the three fixes still run in shadow and the third in a scoped canary, so this is a design, not a proven guarantee.
medium.com · When a town won’t stay lit
“Because every dispatch reparsed the entire file under a lock, order firing froze. One wedged session claimed the same bead ten times over 5.6 hours.”
About 100 patrol and repair jobs were firing roughly 850 times an hour. The store had grown to 168 MB with 79,210 beads, 96% of them closed.
softwareengineeringdaily.com · Transcript, 0:15:01
“There's a JSON file, one line per issue, and it has merge conflicts all the time, and it gets xlerped into the database, and there's a daemon, and it gets stale.”
This describes the early Beads storage, which the move to Dolt replaced. It isn't how Beads works today.
softwareengineeringdaily.com · Transcript, 0:28:41
“Then one day a swarm took off and fixed all my bugs. I had like 30 Beads all like lined up to knock out. And I couldn't find them, and I panicked.”
The work was done, but the operator couldn't tell. A first-hand anecdote, not a benchmark; the episode doesn't say how many agents ran.
steve-yegge.medium.com · Beads: Ready for v1
“The inherent fragility of the v0.x Beads architecture, with its bidirectional sync, 3-way merge, two sources of truth, race conditions, and tombstone hell — that's all gone now.”