[BUG] /workflows detail dialog overflows terminal height in default renderer — top border and header pushed off-screen

Status Open
Reported on v2.1.233
Maintainer reply None cached
Activity 1 comment · opened Aug 18, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

The /workflows detail dialog renders taller than the terminal in the default (inline) renderer. The frame bottom-anchors, so the dialog's top border and its 3-row header (rule line, workflow name, subtext/stats) are pushed above the top of the screen and are never visible. With only one spawned agent, the dialog interior is stretched with blank rows (flexGrow spacers up to the forced minHeight), so the screen shows one agent row at the very top edge, a huge mostly-empty bordered box, and then the keybar/prompt/status line. The overflow amount is constant, so a taller terminal does not help.

Root cause (from inspecting the bundled JS of the 2.1.233 release binary): the workflow detail dialog (debug name workflow-detail-dialog) sizes itself with

minHeight: max(12, min(availableRows - 1, rows - 6))
maxHeight: max(11, availableRows - 1)

where the sizing hook returns availableRows = the full terminal row count in the default renderer (it only returns pane-measured rows when inside the fullscreen renderer's scrollbox context, or rows/2 in fullscreen-without-pane). The hard-coded 6-row reserve is smaller than the chrome actually rendered below the dialog: blank + input line + blank + status line + permission-mode hint + blank + persistent workflow-status row + blank ≈ 8–10 rows. The workflow-status row is present exactly when a workflow is running — i.e. precisely when /workflows is used to inspect a live run — so the dialog reliably overflows by ~3–4 rows.

What Should Happen?

The dialog fits within the terminal height with its top border and header visible — as it already does in fullscreen mode, where availableRows comes from the pane context that excludes the footer chrome. Ideally the height budget would be derived from the real footer height rather than a hard-coded 6-row reserve (and/or the forced minHeight relaxed so a 1-agent view doesn't render as a screen-tall empty box).

Error Messages/Logs

No error output (visual bug). Sanitized rendition of what the screen looks like:

<top of terminal - dialog top border + header are cut off above this line>
|                | * read:agent-1     <model> - 193k tok           15m19s
|                |
|  (left pane    |  (~50 blank rows inside the box)
|   empty)       |
+----------------------------------------------------------------------+
 ^v select - x stop workflow - p pause - esc back - s save

 > (input box)
 (model/context status line)
 (permission-mode hint line)

 o my-workflow  workflow description...    0/4 agents done - 15m - 710k tokens

Steps to Reproduce

  1. Use the default (inline) renderer: no "tui": "fullscreen" in settings.json, CLAUDE_CODE_NO_FLICKER unset. (Observed under plain tmux over SSH, but the math is renderer-level, not tmux-specific.)
  2. Have at least one extra persistent row below the prompt — e.g. the permission-mode hint ("bypass permissions on (shift+tab to cycle)").
  3. Start a long-running multi-agent workflow so the persistent workflow status row ("... N/M agents done · ... tokens") is shown below the prompt.
  4. While it is running, run /workflows and open the running workflow's detail view.
  5. Observe: the dialog's top border and header (workflow name/stats) are cut off above the top of the terminal; the box interior is mostly blank when few agents have spawned; only the bottom border, keybar, prompt and status rows are laid out correctly.

The overflow is deterministic: dialog minHeight (terminalRows − 6) + ~9 rows of footer chrome > terminalRows, at any terminal size.

Claude Model

_No response_

Is this a regression?

No, this never worked

Last Working Version

_No response_

Claude Code Version

2.1.233 (Claude Code)

Platform

AWS Bedrock

Operating System

Other Linux

Terminal/Shell

iTerm2

Additional Information

  • Workaround confirmed: /tui fullscreen (or "tui": "fullscreen" in settings.json, or CLAUDE_CODE_NO_FLICKER=1). In fullscreen mode the dialog reads pane-measured rows from the scrollbox context and fits correctly.
  • Checked the 2.1.234 changelog: no related fix mentioned. 2.1.233 is the newest version available through our managed package channel.
  • Screenshot not attached because it contains non-public content; the ASCII rendition above is faithful to it.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗