Skip to content

Add idle TUI footer navigation hints#13748

Draft
warp-dev-github-integration[bot] wants to merge 1 commit into
masterfrom
tui-verify/CODE-1852-footer-idle-navigation-hints
Draft

Add idle TUI footer navigation hints#13748
warp-dev-github-integration[bot] wants to merge 1 commit into
masterfrom
tui-verify/CODE-1852-footer-idle-navigation-hints

Conversation

@warp-dev-github-integration

Copy link
Copy Markdown
Contributor

Description

Add idle-state footer navigation hints after the current conversation has at least one completed exchange. Key labels use the Figma #D0D1FE color through a semantic TUI builder style, while action labels use the muted text style.

Fixes CODE-1852

Linked Issue

https://linear.app/warpdotdev/issue/CODE-1852/tui-verify-footer-navigation-hints-missing-in-idle-state

  • The linked issue is labeled ready-to-spec or ready-to-implement.
  • TUI capture evidence is included below.

Testing

  • cargo nextest run -p warp_tui -E 'test(idle_footer_navigation_hint_renders_key_and_action_text)'

  • env -u WARP_API_KEY cargo nextest run -p warp_tui --no-fail-fast — 203 passed

  • cargo nextest run -p warpui_core --no-fail-fast — 310 passed, 7 skipped

  • cargo build --release -p warp_tui --bin warp-tui-dev

  • ./script/format

  • cargo clippy --workspace --exclude warp_completer --all-targets --tests -- -D warnings

  • cargo clippy -p warp_completer --all-targets --tests -- -D warnings

  • I manually tested the release warp-tui-dev binary under tmux.

TUI verification

Before, after one completed exchange, the left footer slot was empty:

∷ 4s • 9.1 credits
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│                                                                                                                                      │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
                                 auto (genius) /workspace/warp-code-1852 ↬ tui-verify/CODE-1852-footer-idle-navigation-hints • 9.1 credits

After, the completed-exchange idle footer contains the full navigation hint:

∷ 2s • 9.1 credits
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│                                                                                                                                                                                                                      │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
↑ to edit  Esc to stop  ← for conversations                                                          auto (genius) /workspace/warp-code-1852 ↬ tui-verify/CODE-1852-footer-idle-navigation-hints • 9.1 credits • +102 -7

A separate fresh zero-state capture contains no navigation hint. The ANSI capture reports 38;2;208;209;254m for each key span and muted 38;2;157;157;157m for each action span.

Agent Mode

  • Warp Agent Mode - This PR was created via Warp's AI Agent Mode

CHANGELOG-BUG-FIX: Added missing navigation hints to the TUI footer after completed conversations.

Conversation: https://staging.warp.dev/conversation/29de3017-5e54-4f8f-bf25-61cb765b567d
Run: https://oz.staging.warp.dev/runs/019f62f3-4834-76e5-ac87-d0188519a0c5

Co-Authored-By: Oz oz-agent@warp.dev

This PR was generated with Oz.

@cla-bot cla-bot Bot added the cla-signed label Jul 15, 2026
- Add render_idle_navigation_hint() as a method on TuiUiBuilder
  alongside the other semantic styling helpers, so the logic and
  its test live in tui_builder{,_tests}.rs rather than in
  terminal_session_view{,_tests}.rs
- Add key_hint_style() using the theme's bright.blue terminal color
  instead of a hardcoded RGB value, so it adapts to custom themes
- Show the hint (↑ to edit  Esc to stop  ← for conversations) in
  the footer when a completed exchange is available
- Test in tui_builder_tests.rs: renders correct text and correct
  per-span colors

Co-Authored-By: Oz <oz-agent@warp.dev>
@warp-dev-github-integration
warp-dev-github-integration Bot force-pushed the tui-verify/CODE-1852-footer-idle-navigation-hints branch from 4245f95 to c7b3109 Compare July 15, 2026 14:12
@warp-dev-github-integration

Copy link
Copy Markdown
Contributor Author

Addressed all three points of feedback:

  1. Test in separate file: Moved render_idle_navigation_hint from terminal_session_view.rs into TuiUiBuilder as a method in tui_builder.rs (alongside all other semantic styling helpers). The test (idle_navigation_hint_renders_key_and_action_text) now lives in tui_builder_tests.rs with a render_buffer helper.

  2. No hardcoded color: Replaced Color::Rgb(208, 209, 254) in key_hint_style with cell_color(ThemeFill::from(self.warp_theme.terminal_colors().bright.blue)) — adapts to the active terminal theme.

  3. Rebased: Force-pushed onto the latest master (which included the LRC terminal-use PR and inline-menu fix). PR is now MERGEABLE.

ErshovDmitry added a commit to ErshovDmitry/warp-i18n that referenced this pull request Jul 16, 2026
… resolve 3 conflicts

Merge origin/master into i18n (downstream sync; keeps i18n SHA stable
for stacked PR warpdotdev#13374). 3 content conflicts resolved per SOP merge-pattern
(upstream structural refactor wins; restore menu_label wraps at call sites):
- app/src/ai/blocklist/inline_action/orchestration_controls.rs (16 hunks): 15 wraps preserved
- crates/warp_tui/src/terminal_session_view.rs (1 hunk): 29 wraps preserved
- crates/warp_tui/src/zero_state.rs (1 hunk): 12 wraps preserved

Auto-merged i18n files retained wraps: terminal/view.rs(99), agent_management/view.rs(50),
lib.rs(22), tui_export(1), warp_tui/slash_commands(3), agent_block_sections(4).

Known follow-up (tracked): upstream extracted orchestration UI into new module
app/src/ai/orchestration/ (snapshots/validation/providers/config_state) with raw
English literals — ~16 wrap sites regressed. Restore as next wave.

New unwrapped literals for future wave: zero_state MCP section ("MCP", status labels),
terminal_session_view "ctrl-c again to exit", orchestration "Loading…"/"No harnesses available".

Gate: cargo check -p warp OK (5 upstream warnings in mcp/, not i18n scope);
cargo test -p i18n 12/12 passed.
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.

1 participant