# A Quiet Coding Agent Is Not Necessarily Finished

> Source: <https://dev.to/agentis/a-quiet-coding-agent-is-not-necessarily-finished-2gdo>
> Published: 2026-07-19 02:07:40+00:00

A quiet coding-agent transcript is ambiguous. The agent may have finished, stalled, started a long command, or simply stopped writing for a moment.

Process state does not resolve that ambiguity. A running CLI can be waiting for the user, and a finished turn can leave its process alive. File modification time is also weak evidence because metadata may be written after the conversation changed state.

A safer classifier starts with the latest meaningful turn event.

Transcript files include conversation events, tool results, titles, mode changes, and bookkeeping. The newest JSON line may not represent a state transition.

For Claude Code, a main-chain assistant event with `end_turn`

, `stop_sequence`

, or `stop`

can close the current turn. A later user event starts another turn and invalidates that completion. For Codex, `task_complete`

or `turn/completed`

can close the turn, while a later start or user event makes the session active again.

The parser walks backward until it finds one of those meaningful records. Metadata after the event does not replace its identity or timestamp.

Some records resemble a finished user-facing turn but mean something else.

Older Claude Code transcripts can mix child-agent traffic into the main JSONL. A sidechain may finish while the parent keeps working. Its completion marker should not produce a your-turn alert for the main session.

An API or quota error can also arrive in an assistant envelope with a normal-looking stop marker. The error flag distinguishes it from a successful handoff. The UI may need an error state, but it should not claim that the requested work finished normally.

These exceptions need fixtures, not intuition. Agent Island's released tests cover a child completion during a main turn, child traffic after a valid main completion, and an API-error record that resembles a terminal assistant event.

A transcript's modification time answers when bytes changed. The timestamp on the user or assistant event answers when the conversation changed.

Claude Desktop can write activity metadata a few seconds after a CLI turn completes. Suppressing completion whenever that timestamp is newer makes the alarm depend on scan order. The released model allows a short bookkeeping grace after a finished turn. Activity well after that interval is stronger evidence that the user returned or a new turn began.

Semantic time also prevents an old transcript from becoming fresh after a title update or filesystem touch.

Completion cannot remain actionable forever. Neither can a stalled label.

Agent Island 1.7.1 uses bounded UI windows. Very recent output is active. A session without a completion remains working through an initial period. If it was observed working and then goes quiet, it can show stalled for a limited interval. A completed turn stays needs-you long enough for the user to act, then expires.

These thresholds do not claim to know the agent's internals. They limit how long local evidence can support a status.

The same evidence model should control reminders. Agent Island delays a new your-turn alert briefly. If a fast reply or follow-up write arrives, the pending alert is cancelled. If the user replies after the panel appears, the next scan removes that turn from the active set and closes the panel.

The first scan after launch is treated as history rather than fresh news. A remembered turn key also stops an acknowledged completion from returning after restart.

The practical rule is narrow: find the latest meaningful main-turn event, compare it with newer activity, apply a bounded freshness window, and retract the result when the evidence changes.
