cmux-next sidebar: a working row's second line says what its agent does now ("Now: …")

Merged
TE
16d ago
+399-138

Slice S2 of Leo's sidebar-organization ask (item A, the "now:" line). It builds on #23390.

What changes

While an agent chat in a workspace works, a row that already has a second line shows "Now: …" there, with what the agent is doing right now (for example "Now: Running the test suite"). The text is the acpmux lane's step, which acpmux already masks; the raw prompt is never shown.

  • Rows keep their height. A one-line row stays one line, so rows don't grow and shrink as agents start and stop.
  • Which chat. With several chats working in one workspace, the one that started last is shown.
  • Toggle. Debug toggle sidebar.nowLine, on by default.
  • Strings. New string sidebar.row.now, in all 21 locales.

Capture

The capture uses expanded rows; the Debug fixture sidebar.laneFixture gives each row a sample agent state, picked by workspace name so it is the same on every run. The working rows (mobile, api-server) show "Now: Running the test suite", and S1's words show on the rest.

Capture steps-f80a41da25 at 3bc155c1a105 (fleet build, capture mini, text checked for private data)

LightDark
lightdark

Tests

Tests/CmuxNextAppTests/SidebarNowLineTests.swift (committed first):

  • a working row knows its step and an idle one doesn't;
  • a row with a second line says it there;
  • a one-line row stays one line;
  • toggle off.

Observed / Not run

  • Ran:
  • Not run locally: the Swift suites (no builds on this Mac); this PR's CI runs them.

Changelog

  • Added: A working sidebar row's second line says what its agent is doing now.

Agent session: cosmic-gray

🤖 Generated with Claude Code