Skip to content

What bee held back

Terminal window
bee steering
bee steering --since 7d --json

bee spends context on every turn. Until this existed it recorded not one delivery, so the question “which of my rules never actually arrive” was not hard to answer — it was unanswerable, because the data did not exist.

What bee delivers is already in the agent’s own transcript. What bee held back is recorded nowhere by anything:

┌──────────┬──────────┬──────────────┬──────────┬──────────┐
│ what │ id │ held back by │ at least │ surfaces │
├──────────┼──────────┼──────────────┼──────────┼──────────┤
│ rule │ bb29871f │ rule-cap │ 14 │ prompt │
│ rule │ 7197a5e8 │ rule-cap │ 14 │ prompt │
└──────────┴──────────┴──────────────┴──────────┴──────────┘

A rule added last month can be starved by a cap on every turn since, while bee hook rule list keeps showing it as enabled. That is what this finds.

The block itself now names them too, so it is visible in the moment:

… 3 more rule(s) over the per-turn budget: bb29871f, 7197a5e8, 7a83d14f

Said on every render, not in a footnote. The ledger is capped and drops oldest, and a concurrent drain can lose a write, so every number is at least this often, never exactly. A sampled instrument that implies completeness is worse than no instrument, because it will be believed.

It records what bee sent. It cannot show whether the model read it. Those are different claims and only the first one is bee’s to make.

Every failure is swallowed. An unwritable home, a full disk, a locked file — each costs one ledger line and nothing else. Verified with the bee directory made read-only: the hook exited 0, emitted its full block, and wrote nothing to stderr.

It is also bounded without anyone running a background worker, which is the state most machines are in. The file has a ceiling enforced by the writer, dropping oldest, checked with one stat per write.

surface rules memories
session start 12 8
every prompt 12 5
on a file write 20 3

The per-write caps are higher because those items were selected by matching that exact path, so they are far likelier to apply than the standing set.

See what each costs:

Terminal window
bee budget
bee budget --path src/Catalog/Data/ProductDataSource.cs