Agent status signals: pane title, activity clock, evidence merge - #103
Open
Raphael-Hao wants to merge 1 commit into
Open
Agent status signals: pane title, activity clock, evidence merge#103Raphael-Hao wants to merge 1 commit into
Raphael-Hao wants to merge 1 commit into
Conversation
This was referenced Aug 24, 2026
Raphael-Hao
force-pushed
the
feature/agent-status-signals
branch
from
August 24, 2026 11:40
5cde418 to
b677920
Compare
Raphael-Hao
force-pushed
the
feature/agent-status-classifier
branch
from
August 24, 2026 11:40
a08c3a8 to
4fc25d1
Compare
PANE_FORMAT now carries #{window_activity}, #{window_panes}, and
#{pane_title} (title last — it may contain tabs; parse_panes splits
bounded and degrades missing/empty tails instead of dropping the pane).
The remote probe appends a date +%s reading behind a second marker so
activity freshness is judged on the remote's own clock, skew-free.
merge_status orders the evidence: visible blocker > viewer overlay
(keep_previous, resolved against the previous status at snapshot apply)
> live working tell / fresh output > positive idle tells > weak
passthrough. Fresh output sits above the idle tells deliberately: a
previous turn's completed line lingers on screen while the next turn
streams, and only live evidence may keep Working lit.
Verified live on codex-cli 0.149.1: the pane title cycles
work -> "⠧ work" mid-turn -> work, spinning through the streaming
phase the buffer misses, while window_activity tracks output and
freezes at completion.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0141oi9wW2ak6qv2DbgUHv1A
Raphael-Hao
force-pushed
the
feature/agent-status-classifier
branch
from
August 25, 2026 06:50
4fc25d1 to
2389213
Compare
Raphael-Hao
force-pushed
the
feature/agent-status-signals
branch
from
August 25, 2026 06:50
b677920 to
7ca783c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
PR 2+3 of
docs/agent-status-plan.md(stacked on #102 — merge that first; this diff shows only the delta once GitHub retargets).PANE_FORMATgains#{window_activity},#{window_panes},#{pane_title}— title last and bounded-split, since titles are arbitrary program text that may contain tabs. Missing/empty tail fields degrade toNone, never a dropped pane, so older remote tmux keeps working.date +%sbehind a second shell-safe marker: activity freshness is judged against the remote's own clock, so ssh-host clock skew never enters the freshness window. Same single ssh hop.merge_status+activity_freshinagent-detect: visible dialog > viewer overlay (keep_previous, resolved against the previous status at snapshot apply inapp/refresh.rs) > live working tell / fresh output > positive idle tells > weak passthrough. Fresh output deliberately outranks the idle tells: a previous turn's "…ed for N" line lingers on screen while the next turn streams.window_panes == 1(it is window-scoped; a split's neighbor would masquerade as agent output).Verified live (codex-cli 0.149.1)
Idle title
work→ mid-turn⠧ work(spinning through the text-streaming phase, which the buffer classifier cannot see) → back toworkat completion;window_activityadvanced with output and froze the second the turn ended. This closes the streaming blind spot for Codex two independent ways (title + clock); for Claude 2.1.241 (whose title never spins) the clock is the one that closes it.Tests
772 workspace tests pass; new table-driven tests for
merge_status/activity_fresh, parser tolerance tests for old/truncated tmux output.🤖 Generated with Claude Code
https://claude.ai/code/session_0141oi9wW2ak6qv2DbgUHv1A