cmux-next agent pane: render nested and numbered markdown lists

Merged
TE
1mo ago
+164-115

Part of the cmux-next parity work listed in #16174 (comment). One of the four agent pane bugs from the real-agent clip in #16231 (comment).

Problem

Markdown lists rendered one level only. A nested list showed inline in its parent item's text, and a numbered list starting at 3 started at 1.

Change

  • List items render nested lists as their own indented lists, at any depth. Numbered lists render as <ol> with their start number.
  • The row height measure includes nested items at their indented width, so the virtual transcript places rows correctly.

Verification

  • Red first: commit 1 adds tests in transcript.test.tsx (DOM shape) and model.test.ts (height), which fail before the fix.
  • bun test src/agent-session/acpmux (91 pass), typecheck, lint:ci, build-agent-pane-web.sh --check.

Screenshots

A real-agent clip from one fleet build with all four transcript fixes (feat-cmux-next-transcript-fixes-demo) will be added here. The mock transport writes rows directly and skips the client reducer, so a mock capture cannot show this fix.

🤖 Generated with Claude Code


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


Summary by cubic

Fixes the cmux-next agent pane so markdown lists render fully: nested lists now appear as their own indented lists instead of inline text, and numbered lists keep their starting number instead of restarting at 1.

  • Nested list items render at any depth, and numbered lists render as <ol> with their start attribute.
  • Row height estimation now measures nested items at their indented width, so the virtual transcript places rows correctly.
  • Adds tests covering the rendered DOM shape and row height for nested lists.