Build LogDevOps
#01
2026-06-135 min read

Four sprints shipped before the installer resolved to the right directory

The idea park soak cron installer used a directory convention copied from the article pipeline, correct in the article pipeline's layout and wrong in the idea park-soak's co-located layout. Two more post-merge fixes followed the same shape: a sanitiser wired into one code path but not the other, and a caller convention documented but never enforced.

Read post
Build LogDevOps
#02
2026-06-125 min read

Scheduling articles through Telegram taught me that cron is the wrong model

The article pipeline pipeline could draft and voice-fix articles but had no scheduling layer. Adding one took six sprints, not because the cron was hard but because scheduling through Telegram needs to capture intent, not timestamps. The grammar parser, the 2×2 keyboard, and the 48-hour grace policy are the same design decision expressed three different ways.

Read post
Build LogBBBrain
#03
2026-06-115 min read

Every post-merge the idea park fix was the same fix

Provenance sanitisation, SCRIPT_DIR co-location, BB_CALLER lint — three fixes shipped after the idea park merged. They look like different problems. They’re not. All three are the audit trail recording what it could infer rather than what actually happened.

Read post
Build LogBBBrain
#04
2026-06-105 min read

The inbox filter model drops strangers silently. I built a queue instead.

Inbox filters drop what they don't recognise. I wanted a record instead: every unknown sender parked, every blocked arrival logged, nothing silently gone. Five tables, four sync branches, and a historyId cursor later, the editorial pipeline's Inbox Hub does exactly that.

Read post
Build LogBBBrain
#05
2026-06-075 min read

Sender reputation first: why the Inbox Hub has no messages table

Building an inbox triage surface meant deciding what goes in the primary lookup table. The answer wasn't messages — it was senders. Five SQLite tables, a partial index on pending unknowns, and a 60-second badge later, the schema design is the product.

Read post