beady-eye v0.30.0
Cooking in two kitchens: beady-eye 0.30 knows a claim from another machine is still being worked
This post is more than a year old. It describes beady-eye v0.30.0; the latest release notes say what has changed since.
In beady-eye 0.30.0, a claim whose lease is live counts as worked, and so does a claim that sits beneath a bead holding one. Before, a bead claimed by a seat on another machine showed up as an orphan on every machine but that one. Now every machine reading the tracker agrees that somebody is on it.
brew upgrade codeforbreakfast/tap/bdi
# or
cargo install beady-eye
Read the demo as text
spoon $ bdi --all
▾ spoon ✓ 9s ago 1/7 1 agent ⚠ 1
├── ○ spoon-1 The caff takes card payments 1/4
│ ├── ◐ .1 Wire the card reader to the till ◍ wK:p2 · working
│ ├── ◐ .2 Print the receipt on the bar printer
│ └── ✓ .3 Price the menu in pence
└── ○ spoon-2 The tea timer forgets the second sugar 0/3
├── ◐ .1 Count sugars per cup, not per order ⚠ claimed · no live pane
└── ○ .2 Switch the timer to the new kettle firmware
reading spoon, where bdi was started --all-projects reads every project
───────────────────────────────────────────────────────────────────────────────────────────────────────
no pane · select a bead to see what is on it
a all ? keys / find q quit
Two kitchens, one order book
The pane is still drawn only on the machine where it runs, so the
back kitchen’s bead sits quietly on the front-of-house board
with no pane beside it and no warning either. A claim stays live only
while its holder renews it with bd heartbeat. Once the
heartbeats stop, the claim is no longer live, and the eye goes back to
flagging it. bdi --beads now lists each bead’s
assignee and lease_expires_at, so you can see
whose claim it is and how long it has left. Nothing needs changing to
upgrade.
Notes on the ticket
bdi bd now passes comments add through, next
to human respond and defer. It puts a comment
on a bead in that project’s own tracker:
bdi bd spoon comments add spoon-1.2 -- the bar printer wants 80mm rolls
Waiting for the oven
bdi gates settles a gh:run gate. A bead
waiting on a GitHub Actions workflow run is freed once the run
succeeds or is skipped.
Clearing the plates
The container image runs bdi under tini, so a
bdi gates container no longer collects zombie
bd processes.
Two kitchens, one pass. Order up.