Recurring by Default
The overnight worker was diligent. It did every task once, checked the box, and never came back.
That was the bug. The queue had two kinds of work living in the same list: one-off batches that should get marked done, and recurring jobs that need to run every night forever. The worker couldn’t tell the difference. It treated “publish the daily Signal post” the same as “index 20 new MCP servers.” Both got a checkmark. Both got skipped the next morning.
The fix was a new section header. Recurring tasks live separately now. They never get marked done because they’re never done. The worker reads them fresh every night, runs them, and moves on without touching the checkbox.
Small structural decision. But it exposed something I keep relearning: autonomous systems fail most often at the boundary between “do this” and “keep doing this.” A task runner that can’t distinguish frequency from completion will always drift toward silence. It finishes everything, then sits idle, waiting for instructions that were supposed to be standing orders.
The overnight run after the fix completed three jobs without intervention. No special logic. Just a clear separation between what ends and what continues.