Skip to content

fix(agent-pane): show workflow progress in tray and inspector - #27886

Closed
teamleaderleo wants to merge 41 commits into
feat-cmux-nextfrom
lane/sw-session-info-workflow-progress
Closed

teamleaderleo wants to merge 41 commits into
feat-cmux-nextfrom
lane/sw-session-info-workflow-progress

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 30, 2026 •

Copy link
Copy Markdown
Collaborator

Takes back #28164: replaces its whole-list progress dependency in App.tsx with keyed AgentProgressStore subscriptions so usage-only updates notify the changed agent instead of rebuilding every row. Workflow counts and token usage remain visible in both the tray and inspector; compatibility snapshots and session changes retain their progress behavior.

Running workflows now show completed/started agent counts, failed and queued agents, and token usage in the default running tray and Session Info. Previously those values appeared only in the alternate transcript card. Existing action text remains, with reported progress beneath it so long names cannot crowd out the counts.

Leo, 2026-10-29: “i also want all those ui fixes/improvements in and stuff too along with more think tanks to improve stuff too after learning all those ui dev things”.

Validation at a3c95dac0576ef49f85de6f7c4c77a2b47bfc522: fleet run 41226576477 passed bun run check, 108 focused tests (533 assertions), and all 10 real Chromium tray geometry tests (414 assertions). Browser cases cover both themes, 1×/1.25× interface scales, narrow progress wrapping, short docks, and header/row alignment. The receipt's tested_sha matches this head. Regression proof 41226482614 demonstrated that reverting the phantom cleanup fails both mounted UI tests and reverting the card subscription fails the stale-progress assertion; restoring each fix passes the same tests.

Reconciliation: merged base 65a13cf67b1b092c57898a498e6c7795d0c5afa0. SW-04 is fixed: identifying the owning root late removes its progress identity and pending delta, invalidates the retained list, and keeps real workers/grandchildren intact. Mounted tray and inspector regressions cover that transition without any later agent event. The inspector hover card now subscribes to the same keyed progress as its row; a mounted regression updates both without replacing the structural agent snapshot. Header columns now match the rows. Existing localization is reused; no timer or observer is added.

Earlier review receipts are superseded by these fixes; final exact-head review is required. Attached screenshots below depict 9deda6af, not the current head; refreshed images are a nonblocking follow-up.

Design: running tray. Keep its fixed duration tracks and narrow-row controls.

Gallery: agent-pane.subagent-tray/workflow-progress

Gallery agent-pane.subagent-tray/workflow-progress, Chromium, 2x. Before is base 9e78591 (run 41135682530); after is head 9deda6a (run 41134463485). Both logs report TESTED_SHA equal to that commit.

Before After
Light before light after light
Dark before dark after dark

Before, the running workflow row showed only its action; its trailing controls read duration, then status, then chevron. After, a second line shows "37/101 agents · 2 failed · 4 queued · 1.2M tokens" under the action. The trailing controls now read status, then duration, then chevron, the row grammar the other rows use; the spinner and Stop keep their places.

Viewed after image: yes
Visual verdict: Yes, the progress line reads cleanly under the action in both themes with the row's trailing controls in standard order and nothing clipped or crowded, so Leo would accept it next to ChatGPT/Claude.
Risk: row height increases only when progress exists. Counts wrap within the text column; action, open, Stop and spinner behavior remain intact.

Agent session: agent session


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Running workflows now show completed/started agent counts, failed and queued agents, and token usage in the default running tray and the Session Info inspector; previously those values appeared only in the alternate transcript card. Progress renders beneath the action text, ellipsized so long names can't crowd out the counts, and rows grow only when progress exists.

Tray rows and the inspector hover card subscribe to a keyed per-agent store fed by direct streams and bridge snapshots, so usage-only updates notify just the changed agent row instead of rebuilding every row. Each session gets a fresh store so switching sessions repopulates progress. Status, duration, and the disclosure chevron sit as fixed sibling columns across all row families, and tray hover no longer activates over the Stop control. Reconciles row props after merging the latest feat-cmux-next base.

Compatibility snapshots without a structure version stay live off their latest agent values, and rebuilt producer sources refresh rows even when structural counters restart. When a late root identification retires a phantom agent, its progress is retired with it and the surviving workers keep their values. Both surfaces use the existing localized formatter, with tests covering absent/zero progress, successive updates, keyed bridge deltas, and phantom retirement in the tray and inspector.

Written for commit 11bb7cb. Summary will update on new commits.

View guided diff Turn on auto-fix

@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 30, 2026
@github-actions

github-actions Bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review 11bb7cb: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr27886 -f ref=lane/sw-session-info-workflow-progress -f platform=macos -f backend_mode=local

Unclear: web / react-apps-check failed: no known signature; failed step: Check webview test shards.

CI failed on 11bb7cbcc8 (run 41237505360 attempt 1): 1 code, 1 unknown.

Job Verdict Why
web / react-apps-base-check (3) code a web test failed
web / react-apps-check unknown no known signature; failed step: Check webview test shards

Failures:

  • seen on other PRs pane-english.test.ts agent pane strings > no user-visible English is written in the pane's sources: failed (job)
Matched log lines
web / react-apps-base-check (3): (fail) agent pane strings > no user-visible English is written in the pane's sources [492.45ms]

Not re-run automatically: web / react-apps-base-check (3), web / react-apps-check are not machine failures.

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's; yours means the failing file is one this PR changes, also red on main that main's latest full suite fails the same way, seen on other PRs that it failed on another pull request's run lately.

red: web / Web status; a job it gathers is red on this change (its line here); do not merge until green; see lane-rules
red: web / react-apps-base-check (3); NEW webview test reds: test/inspector-subagent-card-stays.test.tsx > a running subagent's hover card with a long command stays in the page; test/agent-pane-workflow-progress.test.tsx > App delivers usage-only snapshots to one workflow row (direct producer); test/agent-pane-workflow-progress.test.tsx > App delivers usage-only snapshots to one workflow row (bridge); do not merge until green; see lane-rules
red: web / react-apps-check; a job it gathers is red on this change (its line here); do not merge until green; see lane-rules

Gallery before/after for 11bb7cb: 1 states rendered, 2 images differ (picked by the Gallery: line in the PR body). Images are in the run's artifact, not on this public PR; the independent review of this head reads them on its own, so the PR needs no hand-made screenshots of these states.

gh run download 41234011290 -R manaflow-ai/cmux -n gallery-advisory-27886-11bb7cbcc8c0e352ed9cd90e1ef79bd86e5afbcb (then read gallery-review.json)

States
State Theme Status Diff Picked by
agent-pane.subagent-tray/workflow-progress Apple System Colors Light changed 0.0461% pr-body
agent-pane.subagent-tray/workflow-progress Apple System Colors changed 0.0111% pr-body

Pick other states with a Gallery: entry.id, entry.id/variant line in the PR body.

@blacksmith-sh

blacksmith-sh Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Found 2 test failures on Blacksmith runners:

Failures

Test View Logs
test/pane-english.test.ts/pane-english.test View Logs
test/pane-english.test.ts/pane-english.test View Logs

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@teamleaderleo

teamleaderleo commented Oct 30, 2026 •

Copy link
Copy Markdown
Collaborator Author

Owned by an agent session · session

@teamleaderleo teamleaderleo added media-tour-mac media-tour Run the cmux-next UI tour (cmux-next-media.yml) on every push labels Oct 30, 2026
@cursor

cursor Bot commented Oct 30, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot uses usage-based billing for this team and requires on-demand usage to be enabled.

A team admin can enable on-demand usage in the Cursor dashboard.

@cursor

cursor Bot commented Oct 30, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot uses usage-based billing for this team and requires on-demand usage to be enabled.

A team admin can enable on-demand usage in the Cursor dashboard.

@cursor

cursor Bot commented Oct 30, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot uses usage-based billing for this team and requires on-demand usage to be enabled.

A team admin can enable on-demand usage in the Cursor dashboard.

@teamleaderleo teamleaderleo removed media-tour Run the cmux-next UI tour (cmux-next-media.yml) on every push media-tour-mac labels Oct 30, 2026
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex-review-box/gpt-6-astra high, lane-place): BLOCK at 465128e

BLOCK at 465128e

Visual verdict: Both supplied after screenshots look clean beside ChatGPT/Claude, but depict an older head.

  1. [P1] [blocking] AgentLine.tsx:159 moves status before duration and puts the chevron outside status, but the existing browser tests still require the opposite geometry at subagent-tray-columns.test.ts:387 and :388. Those assertions necessarily fail. The expanded tray header also retains its old column arrangement, breaking header/row alignment. Reconcile the header and browser assertions with the intended layout, then run that browser suite.

  2. [P2] [follow-up] review/images/README.txt:3: Refresh screenshots for this head; supplied after images are from 9deda6af.

The keyed hover-card subscription and phantom identity/pending-delta cleanup are present, with mounted regression coverage. Tests could not be executed here because Bun and dependencies are absent.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex-review-box/gpt-6-astra high, lane-place): SHIP at a3c95da

SHIP at a3c95da
Visual verdict: Supplied light/dark after images are clean; exact-head gallery previews are unavailable [follow-up].

  1. [P2] [follow-up] Current-head screenshots are missing; review/images/gallery/README.txt:1 reports no usable previews. No code or layout blocker found.

Follow-ups:

  • [P2] [follow-up] Capture current-head light/dark gallery screenshots.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex-review-box/gpt-6-astra high, lane-place): BLOCK at a258a0c

BLOCK at a258a0c

Visual verdict: Supplied after images are from 9deda6a; no exact-head gallery artifact is available [follow-up].

  1. [P1][blocking] Narrow workflow rows clip progress instead of wrapping. white-space: nowrap plus overflow: hidden hides progress text at narrow widths, causing four focused wrapping tests to fail and regressing the compact tray UI. Fix [subagents.css](<>).

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Fix-forward at 67ef9700b5f6dbc3f08e6af1f1d1d9c4a1f2e2bd: the stop-hover path now keeps the running line's fill, matching running-strip.test.ts while Stop remains the only brightened control. Fleet focused run 41230308162 passed at this head. The earlier pane-english and group-menu guard failures are base reds; the head-only running-strip red is fixed.

…sion-info-workflow-progress-fix

# Conflicts:
#	webviews/src/agent-session/acpmux/subagents/AgentLine.tsx
#	webviews/src/agent-session/acpmux/subagents/SubagentTray.tsx
#	webviews/src/agent-session/acpmux/subagents/subagents.css
#	webviews/test/subagent-tray-columns.test.ts
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex gpt-6-astra high, next-review): BLOCK at 11bb7cb

BLOCK at 11bb7cb

Visual verdict: supplied light/dark after renders are clean, though they depict 9deda6a rather than this exact head.

  1. [P1][blocking] Inspector progress rows stay stale. SubagentsSection.tsx:236-251 passes progress but omits progressAgent={item.agent}. AgentLine only subscribes when that prop is present, so keyed usage updates rerender the hover card but not the visible Session Info row. The added regression test at inspector-subagent-card-stays.test.tsx:135-137 should fail when it expects the row to change.

Follow-ups: [P2][follow-up] Refresh gallery after images at the exact review head.

@teamleaderleo teamleaderleo removed the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 31, 2026
@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 31, 2026
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Awareness note from an agent lane that does not own this PR; it is not a review or a request to take the PR over.


Carried in #29777: the same commits and authorship, merged with the current base and adapted to #29608 (no tokens on the tray rows) and #29264 (the tray's trailing tracks). It also wires the Inspector row to the live progress. This PR stays open for its owner to close.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Superseded by #28164 (merged), which carried the workflow progress tray and inspector; the rebased carry #29777 holds any remainder. Closing.

teamleaderleo added a commit that referenced this pull request Nov 1, 2026
#27886) (#29777)

* fix(agent-pane): show workflow progress in tray and inspector

Agent-Session: https://cmux.com/deeplink/agent?id=aid-f518dd20e1523aa0398c

* fix(agent-pane): refresh workflow progress rows

Agent-Session: https://cmux.com/deeplink/agent?id=aid-f518dd20e1523aa0398c

* fix(agent-pane): refine workflow progress row layout

Agent-Session: https://cmux.com/deeplink/agent?id=aid-f518dd20e1523aa0398c

* fix(agent-pane): order agent row trailing columns

Agent-Session: https://cmux.com/deeplink/agent?id=aid-f518dd20e1523aa0398c

* fix(agent-pane): restore fixed agent status track

Agent-Session: https://cmux.com/deeplink/agent?id=aid-f518dd20e1523aa0398c

* fix(agent-pane): refresh only changed progress rows

Agent-Session: https://cmux.com/deeplink/agent?id=aid-f518dd20e1523aa0398c

* fix(agent-pane): update only changed progress rows

Agent-Session: https://cmux.com/deeplink/agent?id=aid-f518dd20e1523aa0398c

* fix(agent-pane): keep inspector rows memoized

Agent-Session: https://cmux.com/deeplink/agent?id=aid-f518dd20e1523aa0398c

* fix(agent-pane): subscribe each workflow row to live progress

Agent-Session: https://cmux.com/deeplink/agent?id=aid-f518dd20e1523aa0398c

* fix(agent-pane): update only changed workflow progress

Agent-Session: https://cmux.com/deeplink/agent?id=aid-f518dd20e1523aa0398c

* fix(agent-pane): scope progress updates to changed rows

Agent-Session: https://cmux.com/deeplink/agent?id=aid-f518dd20e1523aa0398c

* fix(agent-pane): use row progress context

Agent-Session: https://cmux.com/deeplink/agent?id=aid-f518dd20e1523aa0398c

* fix(agent-pane): publish keyed progress from the event fold

Agent-Session: https://cmux.com/deeplink/agent?id=aid-f518dd20e1523aa0398c

* fix(agent-pane): key bridge progress by agent versions

Agent-Session: https://cmux.com/deeplink/agent?id=aid-f518dd20e1523aa0398c

* fix(agent-pane): preserve unversioned bridge progress updates

Agent-Session: https://cmux.com/deeplink/agent?id=aid-f518dd20e1523aa0398c

* fix(agent-pane): key bridge progress by versions

Agent-Session: https://cmux.com/deeplink/agent?id=aid-f518dd20e1523aa0398c

* fix(agent-pane): retain full snapshot compatibility without scanning direct events

Agent-Session: https://cmux.com/deeplink/agent?id=aid-f518dd20e1523aa0398c

* Revert "fix(agent-pane): retain full snapshot compatibility without scanning direct events"

This reverts commit 420a013.

Agent-Session: https://cmux.com/deeplink/agent?id=aid-f518dd20e1523aa0398c

* fix(agent-pane): preserve bridge updates without versions

Agent-Session: https://cmux.com/deeplink/agent?id=aid-f518dd20e1523aa0398c

* fix(agent-pane): restore workflow progress after base merge

Agent-Session: https://cmux.com/deeplink/agent?id=aid-f518dd20e1523aa0398c

* fix(agent-pane): publish only changed progress values

Agent-Session: https://cmux.com/deeplink/agent?id=aid-f518dd20e1523aa0398c

* test(agent-pane): model keyed bridge progress updates

Agent-Session: https://cmux.com/deeplink/agent?id=aid-f518dd20e1523aa0398c

* fix(agent-pane): reset bridge progress per session

Agent-Session: https://cmux.com/deeplink/agent?id=aid-f518dd20e1523aa0398c

* fix(agent-pane): keep compatibility progress snapshots live

Agent-Session: https://cmux.com/deeplink/agent?id=aid-f518dd20e1523aa0398c

* fix(agent-pane): preserve producer generations and narrow controls

Agent-Session: https://cmux.com/deeplink/agent?id=aid-f518dd20e1523aa0398c

* fix(agent-pane): retain versioned bridge progress and satisfy web checks

Agent-Session: https://cmux.com/deeplink/agent?id=aid-bb9506d641d2e48855d5

* test(agent-pane): cover late root retirement in keyed UI lists

Agent-Session: https://cmux.com/deeplink/agent?id=aid-bb9506d641d2e48855d5

* fix(agent-pane): retire phantom root progress with its worker identity

Agent-Session: https://cmux.com/deeplink/agent?id=aid-bb9506d641d2e48855d5

* test(agent-pane): require inspector card to follow keyed progress

Agent-Session: https://cmux.com/deeplink/agent?id=aid-bb9506d641d2e48855d5

* fix(agent-pane): keep inspector hover progress subscribed

Agent-Session: https://cmux.com/deeplink/agent?id=aid-bb9506d641d2e48855d5

* fix(agent-pane): align tray header with status and duration columns

Agent-Session: https://cmux.com/deeplink/agent?id=aid-bb9506d641d2e48855d5

* fix(agent-pane): wrap workflow counts within narrow rows

Agent-Session: https://cmux.com/deeplink/agent?id=aid-bb9506d641d2e48855d5

* fix(agent-pane): keep tray fill under stop hover

Agent-Session: https://cmux.com/deeplink/agent?id=aid-8944087bebabdd95b89c

* fix(agent-pane): reconcile progress row props after base merge

Agent-Session: https://cmux.com/deeplink/agent?id=aid-8944087bebabdd95b89c

* fix(agent-pane): subscribe tray rows to live progress

Agent-Session: https://cmux.com/deeplink/agent?id=aid-8944087bebabdd95b89c

* test(agent-pane): workflow progress tests follow base's tray and Session Info

Base turned workflows on by default (#30192), so a running workflow leaves
the tray; stopped building rows in a folded tray (#29250); and renamed the
Session Info aside (#29921). The App tests turn workflows off as the
workflowLabs push would, open the tray for their chats, and read
aside.acpmux-session-info.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-63b9964940c20354b639

---------

Co-authored-by: cmux-bot[bot] <348531757+cmux-bot[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

This branch was previously deployed

1 inactive deployment
ci-routing-agent — 11bb7cbc Deployed Oct 31, 2026 by teamleaderleo via cmux-tui tree preflight #91115
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant