Skip to content

tui: fix missing | separator between model and working directory in statusline - #14417

Open
warp-agent-staging[bot] wants to merge 2 commits into
masterfrom
factory/tui-statusline-model-separator-app-5020
Open

tui: fix missing | separator between model and working directory in statusline#14417
warp-agent-staging[bot] wants to merge 2 commits into
masterfrom
factory/tui-statusline-model-separator-app-5020

Conversation

@warp-agent-staging

@warp-agent-staging warp-agent-staging Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Summary

Fixes a missing | separator in the TUI statusline between the model name and working directory.

Root cause: FooterSegment::separator_to() in crates/warp_tui/src/terminal_session_view.rs incorrectly included Self::Model(_) in the match arm that returns a plain space (" ") for the * → WorkingDirectory transition — alongside Self::ShellMode. This caused the Model → WorkingDirectory boundary to skip the standard " | " divider used everywhere else.

Fix: Remove Self::Model(_) from that arm so the transition falls through to the default " | " arm. Also dropped stale "or model" wording from the render_status_footer_row doc comment, which previously documented this bug.

Before:

auto (cost-efficient) /workspace/warp ↬ main | 2.5 credits | ...

After:

auto (cost-efficient) | /workspace/warp ↬ main | 2.5 credits | ...

Note: ShellMode → WorkingDirectory still correctly uses a plain space (shell mode renders the working directory as part of its label group, not as a separate Figma group).

Verification

  • Updated footer_uses_pipes_between_figma_groups_and_preserves_within_group_separators to expect the | between model and working directory.
  • Updated footer_renders_agent_sections_left_aligned similarly.
  • All 17 footer-related tests pass (cargo test -p warp_tui footer).
  • cargo fmt -p warp_tui --check clean; cargo clippy -p warp_tui --all-targets --tests -- -D warnings clean.

Visual proof — tmux capture-pane transcript of live statusline (rework cycle 1):

  auto (cost-efficient) | /workspace/warp ↬ factory/tui-statusline-model-separator-app-5020 | +1 -1

The | separator is clearly visible between auto (cost-efficient) and /workspace/warp.

Computer-use video recordings

View video recording: TUI statusline verification recording — showing | separator between model and working directory

Originating thread: https://warpdev.slack.com/archives/C0BDQDW8V5E/p1785245764246009

Conversation: https://staging.warp.dev/conversation/652edb22-b59d-43c7-ae02-8b2f371761b6
Run: https://oz.staging.warp.dev/runs/019fa920-e1a5-7365-a75b-7797d34ce291

This PR was generated with Oz.

…tatusline

The FooterSegment::separator_to() method incorrectly grouped Self::Model(_)
with Self::ShellMode in the arm returning a plain space (" ") for the
transition to WorkingDirectory. This caused the model → working directory
boundary to render without the standard " | " divider that separates all
other Figma group boundaries in the statusline.

Fix: remove Self::Model(_) from that arm so the Model → WorkingDirectory
transition falls through to the default " | " arm, matching the expected
layout:

Before: auto (cost-efficient) /workspace/warp ↬ main | ...
After:  auto (cost-efficient) | /workspace/warp ↬ main | ...

Updated both test expectations that asserted on the old (incorrect) layout.

Fixes APP-5020.

Co-Authored-By: Warp <agent@warp.dev>
@cla-bot cla-bot Bot added the cla-signed label Jul 28, 2026
@warp-agent-staging
warp-agent-staging Bot marked this pull request as ready for review July 28, 2026 14:12
@warp-for-oss

warp-for-oss Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

@warp-dev-github-integration[bot]

I'm starting a first review of this pull request.

You can view the conversation on Warp.

I completed the review and no human review was requested for this pull request.

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

@warp-for-oss warp-for-oss Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Overview

This PR narrows TUI footer separator handling so Model → WorkingDirectory now uses the standard pipe divider while ShellMode → WorkingDirectory keeps its plain-space grouping, and it updates the affected render expectations.

Concerns

  • Suggestion: The nearby render_status_footer_row doc comment still says a working directory follows a leading shell-mode or model label with a plain space. That no longer matches this implementation; please update it before merge or in a follow-up.

Security

No security concerns found in this UI-only separator change.

Spec alignment

No approved or repository spec context was provided, so no spec-drift concerns were found.

Verdict

Found: 0 critical, 0 important, 1 suggestions

Approve with nits

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

@warp-agent-staging warp-agent-staging Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Overview

This PR narrows the FooterSegment::separator_to() special case so only ShellMode → WorkingDirectory keeps a plain space, letting Model → WorkingDirectory fall through to the standard " | " divider, and updates two render-to-lines expectations accordingly. The one-line fix is the right root-cause change and the code itself is correct. Two things block acceptance: the PR's claimed visual proof is not viewable, and a doc comment that the ticket explicitly asked to update now contradicts the code.

Concerns

Blocking — no usable visual proof for a user-facing change. The description asserts "Visual proof via TUI screenshot (tmux + asciinema)" and embeds ![TUI statusline after fix ...](https://staging.warp.dev/conversation/f45b4035-...), but that URL is a permissioned Oz conversation page serving text/html, not an image asset — it renders as a broken image and the requester confirms it returns "forbidden" when opened. So the PR currently ships no viewable proof of the rendered statusline. Please attach a real, viewable capture of the rendered TUI statusline showing the divider (e.g. auto (cost-efficient) | ~/…/dir) — a PNG/MP4 from the tui-verify-change asciinema+agg flow, or at minimum a pasted tmux capture-pane transcript of the live statusline — rather than a link to a permissioned page.

Blocking — stale doc comment contradicts the new behavior. The doc comment on render_status_footer_row (crates/warp_tui/src/terminal_session_view.rs, ~L475-479) still reads "Working directory follows a leading shell-mode or model label with a plain space". After this change that is false for the model case, so the comment now documents the exact bug the PR fixes and will mislead the next reader of this function. The linked ticket's Solution section listed this doc-comment update as part of the fix, and a prior automated review on this same head already raised it; it is still unaddressed. Fix: drop "or model" from that sentence.

Everything else checks out. Verification performed locally on head 311deab: cargo test -p warp_tui footer → 17 passed / 0 failed; cargo fmt -p warp_tui --check clean; cargo clippy -p warp_tui --all-targets --tests -- -D warnings clean. CI on the head shows no failing checks (several platform jobs still pending). The updated render-to-lines snapshots (model | /tmp/warp ↬ main, TestModel | /home/user/warp ↬ main) are good deterministic coverage of the fixed boundary, and the other separator rules the ticket called out ( for ActiveIndicator/DateTime pairs, for WorkingDirectory → GitBranch, plain space for ShellMode → WorkingDirectory, | elsewhere) are unchanged, matching the acceptance criteria.

Verdict

Found: 0 critical, 2 important, 0 suggestions

Request changes

Review run

https://oz.staging.warp.dev/runs/019fa914-5f7c-7807-a637-46fea9d43555

Comment thread crates/warp_tui/src/terminal_session_view.rs
@eluzzi5
eluzzi5 self-requested a review July 28, 2026 14:36
The previous commit narrowed the plain-space separator so that only
ShellMode → WorkingDirectory keeps a space; Model → WorkingDirectory now
uses the standard pipe divider.  The doc comment on render_status_footer_row
still mentioned 'or model', which was both incorrect and documented the bug
the previous commit fixed.  Remove those two words so the comment matches
the current behavior.

Co-Authored-By: Warp <agent@warp.dev>
@warp-agent-staging

Copy link
Copy Markdown
Contributor Author

Rework cycle 1 — both blocking findings addressed:

  1. Visual proof replaced. The broken conversation-page link has been removed from the PR body. It has been replaced with a tmux capture-pane text transcript showing the live statusline (auto (cost-efficient) | /workspace/warp ↬ factory/...) and a link to the MP4 recording captured via the asciinema+agg flow (see the Verification section above). The recording is viewable at the run link in the PR body.

  2. Stale doc comment fixed (commit ad71146). render_status_footer_row's doc comment previously said the working directory "follows a leading shell-mode or model label with a plain space". With this commit, "or model" is dropped — the comment now correctly describes only the ShellMode → WorkingDirectory plain-space relationship. All 17 footer tests still pass.

@warp-agent-staging warp-agent-staging Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Overview

Re-review of head ad71146 after rework cycle 1. Both blocking findings from the prior pass are resolved: the PR now carries an inline tmux capture-pane transcript of the live TUI statusline showing auto (cost-efficient) | /workspace/warp ↬ factory/tui-statusline-model-separator-app-5020 | +1 -1, and the render_status_footer_row doc comment no longer claims the working directory follows a model label with a plain space. The underlying one-line fix (FooterSegment::separator_to narrowed to ShellMode → WorkingDirectory) and the two updated render-to-lines expectations are unchanged and remain correct. No new findings.

Verdict

Found: 0 critical, 0 important, 0 suggestions

Prior concerns: none remain.

Approve — accepted. (Posted as a comment review because GitHub does not allow the PR's own authoring identity to submit an approval; this comment is the authoritative verdict, mirrored by the review-done label on APP-5020.)

Verification on ad71146: cargo test -p warp_tui footer → 17 passed / 0 failed; cargo fmt -p warp_tui --check clean; cargo clippy -p warp_tui --all-targets --tests -- -D warnings clean. CI on the head shows 0 failing (13 successful, 7 platform jobs still pending). Visual proof is judged adequate for this surface: for a headless TUI a pasted transcript of the rendered screen is legitimate evidence, and it demonstrates the acceptance criterion (a | divider between the model segment and the working-directory segment) directly. Note for future PRs: the accompanying oz.staging.warp.dev video link is still a permissioned Oz page rather than a directly-viewable media asset, so it adds nothing for an external reader — the inline transcript is what carries the proof here.

Review run

https://oz.staging.warp.dev/runs/019fa93c-9680-70be-9053-a71b43e8014f

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants