Skip to content

Add TUI conversation management#13662

Open
harryalbert wants to merge 3 commits into
harry/code-1821-conversation-list-policyfrom
harry/code-1821-conversation-management
Open

Add TUI conversation management#13662
harryalbert wants to merge 3 commits into
harry/code-1821-conversation-list-policyfrom
harry/code-1821-conversation-management

Conversation

@harryalbert

@harryalbert harryalbert commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Description

Before this PR, the Warp TUI could resume a conversation only when launched with a server token. There was no way to discover or switch to another local or cloud conversation from the running TUI, and startup restoration could not be cancelled into the provisional new session.

This PR adds a searchable /conversations inline menu backed by the shared normalized conversation model and query policy. It lists eligible personal Oz conversations from local and cloud history, preserves selection across live updates, and revalidates command, conversation, target, and restore state before switching. Successful loads replace the sole TUI transcript through the existing GUI restoration path; failed or cancelled loads leave the current conversation intact. Cloud metadata failures fall back to searchable local history with an explicit warning, and Escape or Ctrl-C can cancel both list and startup restoration without allowing stale completion to replace the active session.

Review guide

Read

  • app/src/ai/agent_conversations_model/query.rs — shared GUI/TUI recency and fuzzy-ranking policy.
  • app/src/ai/agent_conversations_model.rs — partial cloud-metadata failure state exposed to the TUI.
  • crates/warp_tui/src/conversation_menu.rs — menu lifecycle, live refresh, query projection, and stable selection.
  • crates/warp_tui/src/terminal_session_view.rs — acceptance revalidation, loading/cancellation, and conversation replacement.

Skim

  • crates/warp_tui/src/inline_menu.rs and input/view.rs — conversation-specific adapter and accepted-action routing onto the infrastructure from PR 1.
  • crates/warp_tui/src/session.rs, app/src/tui_export.rs, and app/src/terminal/input/slash_commands/mod.rs — startup target and command/export wiring.

Can skip

The remaining files are dependency bookkeeping, copy/layout adjustments, or focused coverage for the behavior above.

Linked Issue

CODE-1821 — Conversation management

  • The linked issue is labeled ready-to-spec or ready-to-implement.
  • Where appropriate, screenshots or a short video of the implementation are included below (especially for user-visible or UI changes).

Testing

  • I have manually tested my changes locally with ./script/run

Screenshots / Videos

Loom: TUI conversation management

Agent Mode

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

CHANGELOG-IMPROVEMENT: Added a searchable /conversations menu to the Warp TUI.

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

@cla-bot cla-bot Bot added the cla-signed label Jul 13, 2026

harryalbert commented Jul 13, 2026

Copy link
Copy Markdown
Contributor Author

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@harryalbert harryalbert changed the base branch from master to graphite-base/13662 July 13, 2026 20:32
@harryalbert harryalbert force-pushed the harry/code-1821-conversation-management branch from 00962a9 to 7b298d5 Compare July 13, 2026 20:32
@harryalbert harryalbert changed the base branch from graphite-base/13662 to harry/code-1821-conversation-list-policy July 13, 2026 20:33
@harryalbert harryalbert force-pushed the harry/code-1821-conversation-list-policy branch from 80c8d46 to 2588808 Compare July 13, 2026 21:11
@harryalbert harryalbert force-pushed the harry/code-1821-conversation-management branch 3 times, most recently from 6bdad5a to 759c0e3 Compare July 13, 2026 21:23
@harryalbert harryalbert force-pushed the harry/code-1821-conversation-list-policy branch from d55907a to 0f9eecd Compare July 13, 2026 22:27
@harryalbert harryalbert force-pushed the harry/code-1821-conversation-management branch from 759c0e3 to 1e6713b Compare July 13, 2026 22:27
@harryalbert harryalbert changed the title add tech and product specs Add TUI conversation management Jul 13, 2026
@harryalbert harryalbert marked this pull request as ready for review July 13, 2026 22:30
@harryalbert harryalbert requested a review from moirahuang July 13, 2026 22:30
@oz-for-oss

oz-for-oss Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

@harryalbert

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

@oz-for-oss oz-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 adds TUI conversation management: a /conversations inline menu, shared conversation query/ranking logic, TUI restore target handling for local/server conversations, cancelable restore state, and supporting specs/tests.

Concerns

  • No blocking correctness issues were found in the annotated diff.
  • No security-specific findings were identified.
  • The supplied spec_context.md contains no approved or repository spec context; the checked-in CODE-1821 spec in this PR is consistent with the implementation at review depth.

Verdict

Found: 0 critical, 0 important, 0 suggestions

Approve

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

Powered by Oz

@moirahuang moirahuang mentioned this pull request Jul 14, 2026
13 tasks
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