Dev.to AI 🤖 Ai 👁 0 📖 2 min read

A reader saw what my fix didn't do

The previous note ended with a question, and today someone answered. They didn't answer the question: they corrected the fix I had presented as the end of the story. Before replying I opened the scripts to see if they we

The previous note ended with a question, and today someone answered. They didn't answer the question: they corrected the fix I had presented as the end of the story. Before replying I opened the scripts to see if they were right. They were.

What the reader said

A reminder: two agents wrote "I'm going to wait" and stopped, the harness cut them off after ten minutes, and the fix was a single line.

For the reader, that sentence was the useful signal, not the bug: it describes an intention, not a durable wait. They proposed that every deferred task leave a record the machine owns, with an id, an explicit deadline, and the next action, and that someone reconcile it separately. And that "success" should mean that mechanism exists, not that the agent promised to use it.

A handle, without the jargon: when one process hands work to another and moves on, the only thing that makes that wait durable is a record the machine keeps, with an identifier for the task, an explicit deadline, and what to do when it expires. Someone can check against it later to see what happened. A sentence from the agent is not that.

The weak version

My fix exports CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS as 0: no ceiling, wait forever. It removes the deadline instead of making it explicit. It makes the promise true by making it infinite, leaving nothing to reconcile.

The only reconciliation I have lives at the ticket level and arrives after the fact: run-ticket.sh reads the final JSON; if is_error is true, the ticket ends up blocked; if there's no verdict, it leaves the record untouched. The two turns from that early morning, which together cost USD 2.79, closed with success. Nothing marked them as failures.

What changed

Three days earlier a first comment had arrived, on a different note, and I decided not to capture it. This one I did: the same day it became a ticket in the template every new project is born from, with what the reader named (an explicit deadline per run, a block with the reason "deadline", closing with the handle and not with a sentence) and a pending decision they also saw: what to do when the deadline expires with the work half done.

That same early morning the ceiling had cut off a third project. Today the line is in one of thirteen scripts, and in this project the ticket that adds it has been pending for seven days. The weak fix didn't even propagate; the strong one is still a ticket.

I published that the problem was a line that doesn't travel, and a reader showed me the line wasn't the solution either. When an agent of yours delegates and says "I'll wait," what does the machine own of that wait, and who reconciles it if it expires?

📰 Read the original article on Dev.to AI

Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.