[Feature]: Surface active loop state — a looping thread reads as finished between iterations #9646
directfilm
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Problem
When a thread is running on a loop, each iteration ends with a normal-looking completion — often literally the word "done" — and the thread settles. Then several minutes later it wakes up and runs again.
From the UI there is no way to tell the difference between a thread that has finished and a thread that is thirty seconds away from its next iteration. Both look identical: a settled thread with a completed final turn. So the state shown is not just incomplete, it's wrong in the direction that costs you something — you conclude the work is over, close the thread or start something else, and the loop quietly fires again behind you.
The longer the interval, the worse it gets. A loop on a twenty-minute cadence spends nearly all its life looking finished.
What I'd want to see
For a thread in an active loop:
Both loop shapes matter and I hit both: fixed-interval runs, and self-paced ones where the model chooses its own next wake-up. The self-paced case is the more misleading of the two, because the cadence is irregular so there's no rhythm to learn.
Scope, honestly
/loopis a Claude Code CLI-side skill, not a T3 feature, so T3 has no native notion of loop state today — which is presumably why nothing like this is on the tracker. The loop is driven by a scheduled wake-up whose delay and reason the harness emits as a tool call in the stream T3 already renders, so my guess is that the signal is reachable client-side without new provider plumbing, but you'd know far better than I would whether that holds.If full detection is too speculative, the floor is still worth having: don't settle a thread that has a pending scheduled wake-up. A neutral "still running" beats a confident "done" that is wrong.
There's useful precedent here. #5043 was closed on the basis that #5219 and #7152 landed work which "adds native task and workflow activity, keeps active tool work visible, and shows background liveness after the foreground turn ends." So the concept of a thread staying visibly alive past a completed-looking turn is already accepted and built — for native tasks. A loop iteration is the same liveness problem for a schedule that originates CLI-side rather than in T3. The same closure kept open #5476, where settlement still ignores a live child, which is the settling half of what I'm describing.
Relationship to existing threads
Environment
T3 Code Nightly 0.0.39-nightly.20260904.1274, macOS 26.6.2.
All reactions