Code for Breakfast

beady-eye v0.24.0

Off the pass early: in beady-eye 0.24, a bead can stop waiting once its pull request leaves draft

beady-eye 0.24.0 gives bdi gates a second way to settle a gh:pr gate. Put awaits=ready_for_review in the gate's metadata, and it closes once its pull request is open and out of draft, or merges. The bead behind it is ready while the review is still going on. A gate without the key settles on merge, as before.

brew upgrade codeforbreakfast/tap/bdi
# or
cargo install beady-eye
The receipt bead waits on the till's pull request #42, and its badge shows the wait even with the bead folded. #42 has just left draft. bdi gates finds it up for review and closes the gate, and the next look at the tree shows it ticked off.
Read the demo as text
▾ spoon  ✓ 3s ago                                                               1/8  3 agents
  ├── ○ spoon-1  The caff takes card payments                                             1/6
  │   ├── ◐ .1       Wire the card reader to the till                       ◍ wK:p2 · working
  │   ├── ◐ .3       Refund a cold bacon roll                                  ◍ wK:p5 · idle
  │   ├─▸ ○ .2       Print the VAT line on the receipt  ⇢ till #42                        0/2
  │   └── ✓ .4       Price the menu in pence
  └── ○ spoon-2  The tea timer forgets the second sugar                                   0/2
      └── ◐ .1       Count sugars per cup, not per order                    ◍ wK:p3 · working
  reading spoon, where bdi was started                     --all-projects reads every project
─────────────────────────────────────────────────────────────────────────────────────────────
  no pane · nobody is working this bead
a all   ? keys   / find   q quit

spoon $ bdi
spoon $ bdi gates
bdi gates: settling the gh:pr gates of 1 project, for every owner's repositories, every 60s
greasy-spoon/till#42 is ready for review: spoon closed gate spoon-pou
^C
spoon $

▾ spoon  ✓ 6s ago                                                               2/8  3 agents
  ├── ○ spoon-1    The caff takes card payments                                           2/6
  │   ├── ◐ .1         Wire the card reader to the till                     ◍ wK:p2 · working
  │   ├── ◐ .3         Refund a cold bacon roll                                ◍ wK:p5 · idle
  │   ├── ○ .2         Print the VAT line on the receipt                                  1/2
  │   │   └┄┄ ✓ spoon-pou  Gate: gh:pr 42  ⇢ till #42
  │   └── ✓ .4         Price the menu in pence
  └── ○ spoon-2    The tea timer forgets the second sugar                                 0/2
      └── ◐ .1         Count sugars per cup, not per order                  ◍ wK:p3 · working
  reading spoon, where bdi was started                     --all-projects reads every project
─────────────────────────────────────────────────────────────────────────────────────────────
  no pane · nobody is working this bead
a all   ? keys   / find   q quit

Set the key on the gate when you make it:

bd update "$gate" --set-metadata awaits=ready_for_review

Before you upgrade: the link is on the menu now

Until now, bdi drew a gate's pull-request link without being asked. From 0.24 it draws one only from a [[badges]] entry in your config, and bdi --json no longer carries a pull_request field. Add the README's entry to keep the link:

[[badges]]
key      = "metadata.repo"
when     = { await_type = "gh:pr", await_id = "[0-9]+" }
match    = "(?<owner>[A-Za-z0-9_.-]+)/(?<name>[A-Za-z0-9_.-]+)"
render   = "⇢ {name} #{await_id}"
short    = "⇢ #{await_id}"
link     = "https://github.com/{owner}/{name}/pull/{await_id}"
drawn_on = "blocked"

drawn_on = "blocked" is what puts ⇢ till #42 on the folded receipt in the demo. A badge can also choose its beads now, with when and unless patterns over any of the bead's fields, and place any field in its text. The configuration guide has the details.

bdi gates is gentler with GitHub, too. It asks about all of a repository's gated pull requests in one query, and it waits out a rate limit rather than spend the login's budget. Two instances can split the owners between them with [gates] excluded_owners.

Up for review counts as served. Order up.

Cooked in the same kitchen

Code For Breakfast built this. It cooks for clients too.

Code For Breakfast Ltd is a UK software consultancy, based in Reading and working remote-first. The kitchen that made this ships well-tested software for clients, fast, and builds and operates real multi-agent AI systems.