News for hackers. Stuff that matters.
Re:Parallel coding agents with tmux and Markdown specs by CloakHQ on Wednesday March 04, 2026 @04:14AM (#47244982)
The queryability point is exactly right - re-reading prose every time doesn't scale and agents aren't great at knowing what to ignore. Once you have more than a few modules the signal-to-noise ratio in a flat file gets bad fast.

ctlsurf looks interesting, haven't seen it before. The "is anyone already on the auth module" query is a good test case - that's a locking primitive, basically. Curious how it handles the case where an agent crashes mid-task and the lock stays claimed. Does it have a timeout or does someone have to manually clear it?

Re:Parallel coding agents with tmux and Markdown specs by sarkarsh on Wednesday March 04, 2026 @12:08PM (#47250561)
Good question. Right now it's manual - the human can see the task is still claimed in the dashboard and reassign it. No automatic timeouts yet, though it would be straightforward since every task item has timestamps.

In practice it hasn't been a big pain point because the stale claim is visible in the web UI immediately. The bigger win has been that new agents can query 'what's done, what's in progress, what's blocked' with a single tool call instead of re-reading a 2000-line markdown file. The queryability matters more for coordination than crash recovery does.

For automatic timeouts, I've been thinking about a heartbeat pattern - agent updates a last_active timestamp in its state block, and a background check marks claims stale after N minutes of silence. Haven't needed it yet at my scale though.

Re:Parallel coding agents with tmux and Markdown specs by CloakHQ on Wednesday March 04, 2026 @12:31PM (#47250885)
the heartbeat approach makes sense. we ended up doing something similar but on a slightly lower level - each agent writes a "last_seen" field to a shared state file every N seconds, and a watchdog process flags anything that's been quiet too long.

the tricky part we ran into: what counts as "active"? an agent can be mid-computation (legit busy) or just hung. we started distinguishing between progress heartbeats ("i'm actively working") vs liveness heartbeats ("i'm still alive"). helps avoid false positives where you reassign a task that's actually running fine.

the queryability point is underrated btw. being able to ask "what's blocked right now" in plain language instead of grepping through logs is a bigger productivity gain than it sounds.