Signalbox harbor / ledgerline 112,408 agents on the line

Leases

Branches → Leases

Agents take a lease on the symbols they will change before they edit. Writers get the block alone. Readers share it and are told to rebase their plan when a writer commits. Conflicts are prevented before they exist.

Write leases held
38,912
Exclusive. One holder per symbol.
Read leases
211,400
Shared. Dropped when a writer commits.
Median lease wait
2.1 s
p99 is 14 s across the repo.
Hot spots
3
Queue over 10, or two intents clash.

Mimic panel

Live at 09:40 · main @ 4f9c2e1 · 98 of 24,806 leaseable symbols shown, busiest first
Colour by

Hot spots

Signaller actions apply to the whole queue on that symbol.

Lease timeline

ledger/Balance.ts · Balance.apply() · last 10 minutes
41 waiting

Why this is different

  • GitHub today: every agent works on its own branch and finds out about overlaps at merge time, hours later. Two branches that touch the same function look fine until they meet.
  • What breaks at 100k agents: the number of branch pairs grows with the square of the agents. Long-lived branches that diverge and merge later turn that into a flood of conflicts that no human can read.
  • Signalbox: an agent takes a lease on the symbols it will change, like a train taking a block of track. Write leases are exclusive. Read leases are shared and are invalidated when a writer commits, so the agent rebases its plan, not a pile of text.
  • Small blocks, short holds: a lease covers a function, a type or a file region, so unrelated edits in one file never wait. Leases renew by heartbeat and are revoked when an agent goes quiet, so a stalled train cannot hold the track.
  • The human routes: contention shows up as a hot spot on the panel. The signaller splits the symbol, orders the queue or sends a clash to the conflict room. Leases stop overlapping edits, and meaning clashes such as INT-4790 against INT-4801 still need a decision.