Skip to content

fix(tui): align status dialog with picker inset - #60185

Open
Rexarrior wants to merge 1 commit into
anomalyco:devfrom
Rexarrior:codex/status-dialog-inset
Open

Rexarrior wants to merge 1 commit into
anomalyco:devfrom
Rexarrior:codex/status-dialog-inset

Conversation

@Rexarrior

@Rexarrior Rexarrior commented Oct 29, 2026 •

Copy link
Copy Markdown

Issue for this PR

Closes #42181

Type of change

  • Bug fix
  • New feature
  • Refactor / code improvement
  • Documentation

What does this PR do?

Status uses the default 3-cell DialogLayout inset, while pickers align their content at 4 cells. Pass the existing DIALOG_LIST_INSET to Status so its title, body, and escape hint line up with pickers.

This adapts the Status part of #43728 to the current layout API. The old PR was closed by automated cleanup. Other dialogs are unchanged.

How did you verify your code works?

A single renderer regression compares empty Status with DialogSelect at 100 columns, checking the title, body, and escape hint. Removing the inset fix makes it fail by one column.

  • Full TUI suite (bun run test in packages/tui): 1,645 passed, 2 skipped, 0 failed.
  • Regression repeated 10 times: 10 passed, 0 failed.
  • Root bun run check: lint completed without errors and all 35 typecheck tasks passed.
  • bun run typecheck:tsc in packages/tui passed.
  • Opened Status and the command palette in the branch TUI at 120×32 and compared their alignment.
  • Prettier and git diff --check pass.

Verified locally with Bun 1.4.4.

Visual

Illustration of the alignment change (not a renderer capture):

<svg xmlns="http://www.w3.org/2000/svg" width="240" height="72" viewBox="0 0 240 72">
  <g fill="none" stroke="currentColor" opacity=".25">
    <rect x="8" y="5" width="224" height="27" rx="4"/>
    <rect x="8" y="40" width="224" height="27" rx="4"/>
    <path d="M28 9v54" stroke-dasharray="2 3"/>
  </g>
  <g fill="currentColor" font-family="monospace" font-size="10">
    <text x="28" y="23">Select model</text>
    <text x="192" y="23" opacity=".5">esc</text>
    <g>
      <text x="28" y="58">Status</text>
      <text x="192" y="58" opacity=".5">esc</text>
      <animateTransform attributeName="transform" type="translate" values="-5 0;0 0;0 0;-5 0" keyTimes="0;.3;.85;1" dur="3s" repeatCount="indefinite"/>
    </g>
  </g>
</svg>

Screenshots / recordings

Before: current-dev reproduction with recording and screenshots.

After, at 120×32:

Status after fix

Command palette at the same terminal size for comparison:

Command palette reference

Checklist

  • I have tested my changes locally
  • I have not included unrelated changes in this PR

@github-actions github-actions Bot added the needs:compliance This means the issue will auto-close after 2 hours. label Oct 29, 2026
@github-actions github-actions Bot removed the needs:compliance This means the issue will auto-close after 2 hours. label Oct 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thanks for updating your PR! It now meets our contributing guidelines. 👍

@Rexarrior
Rexarrior marked this pull request as ready for review October 29, 2026 12:11

@opencodejr opencodejr Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. I ran the reproduction from #42181 with opencode-drive at 120×36 on the base and on this branch. On the base, the Status title, "No MCP servers" and the esc hint are one column off from the command palette. With this change they line up exactly. DialogLayout uses inset as side padding for the header, body and footer, so this one prop covers all three, the same way dialog-fork.tsx already does it. The new test passes here and fails on the base. tsc -b in packages/tui passes, and the branch merges cleanly with the latest dev.

Public API: unchanged.

The test is clear and doesn't look flaky, but 43 lines is a lot for a one-prop fix. You could cut it down to a single case (one width, no MCP server), or drop it to keep the change minimal.

Before

After

@Rexarrior
Rexarrior force-pushed the codex/status-dialog-inset branch from afaae24 to 69b8be2 Compare November 4, 2026 20:07

@opencodejr opencodejr Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new commit cuts the test down to a single small case, which addresses my earlier note. The fix itself is unchanged. I re-ran the reproduction from #42181 at 120×36 on the current base and on this branch. On the base, Status is still one column off from the command palette. With this change, the title, body text and esc hint line up. The test passes and tsc -b in packages/tui passes.

Public API: unchanged.

I found nothing new that should block it.

Before

After

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Catalog feedback] Status

1 participant