Add /resume TUI slash command as an alias of /conversations (APP-5241) - #14823
Draft
warp-agent-staging[bot] wants to merge 1 commit into
Draft
Add /resume TUI slash command as an alias of /conversations (APP-5241)#14823warp-agent-staging[bot] wants to merge 1 commit into
warp-agent-staging[bot] wants to merge 1 commit into
Conversation
The agent CLI already resumes prior conversations via left-arrow on empty input and /conversations. /resume is a more intuitive entrypoint for the same picker. Registers a TuiOnly RESUME static command that dispatches to the existing conversation menu, following the /clear -> /agent alias precedent. No new picker or restore path. Co-Authored-By: Warp Agent <agent@warp.dev>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds a
/resumeslash command to the Warp Agent CLI / headless TUI that opens the existing conversation history picker — the same UI already reachable via left-arrow on empty input and via/conversations.The agent CLI already has a left-arrow convention for resuming prior conversations (the zero-state hint reads
← for conversations), but/resumeis a more discoverable, more intuitive entrypoint.Implemented as a thin alias, following the
/clear→/agentprecedent (a distinctSlashCommandKindsharing the existing handler arm):SlashCommandKind::Resumeand aRESUMEStaticCommand(TuiOnly,AI_ENABLED, no argument, description "Resume a previous conversation (alias for /conversations)"), registered in the command list so it is discoverable via the slash-command fuzzy filter.SlashCommandKind::Resumejoins the existingSlashCommandKind::Conversationsarm in the TUIexecute_tui_slash_command, so it opens the very sameconversation_menu. No new picker, no new filtering, no new restore path.Resumein its TUI-only bucket.Surface choice:
TuiOnly. The request is specifically about the agent CLI, the GUI already exposes/conversations(with acmd-y/ctrl-shift-Ybinding), and this matches the/clearalias precedent, which is likewise a TUI-only alias of aGuiAndTuicommand.Linked Issue
APP-5241 — TUI: add a
/resumeslash command as an alias of/conversationsOriginating Slack thread: https://warpdev.slack.com/archives/C0BDQDW8V5E/p1786109186548789
Testing
Automated tests added
resume_command_is_registered_only_for_tui_mode(app/.../static_commands/commands_tests.rs) —/resumeis registered on the TUI surface and absent from the GUI surface.resume_command_mirrors_conversations_registry_metadata(same file) — asserts the name,TuiOnlysurface, no GUI icon, the description, no argument, and that availability /auto_enter_ai_mode/ argument are identical toCONVERSATIONS, so the alias can't drift from the command it aliases.resume_slash_command_opens_the_same_conversation_picker_as_conversations(crates/warp_tui/src/terminal_session_view_tests.rs) — typing/resumeparses to a static slash command, and executing it opens the conversation menu (TuiInputSuggestionsMode::ConversationMenu), clears the input, and renders theConversationspicker.Checks run
./script/format— clean.cargo clippy -p warp -p warp_tui --all-targets --tests -- -D warnings— clean.cargo nextest run -p warp --lib slash_command— 127 passed.cargo nextest run --no-fail-fast -p warp_tui— 958 passed, 1 failed. The single failure issession::tests::accepts_startup_without_resume, which is pre-existing and environmental, not caused by this change: it assertsargs.api_key == None, but clap readsapi_keyfromWARP_API_KEY, which the sandbox sets. It passes underenv -u WARP_API_KEY(verified).Screenshots / Videos
Captured against a live, signed-in internal
localwarp-tuibuild, driven undertmuxand recorded./resumesurfaces the command with the description "Resume a previous conversation (alias for /conversations)". (still)Conversationsinline menu, populated with real history. (still)Deterministic
tmux capture-paneframes of the three states:How the proof was captured (honest disclosure). The sandbox's internal
localTUI could not start because staging IAP failed before user authentication (Staging IAP access unavailable before startup user authentication). To get the TUI past startup, the IAP fix from the separate, not-yet-merged PR #14796 (factory/app-5220-nonfatal-iap-local) was applied to the local working tree only. It was not committed or pushed: this branch's committed diff is exactly the six files listed above and contains no IAP changes (app/src/lib.rsandapp/src/lib_tests.rswere reverted before pushing). The/resumecode exercised is exactly this PR's code, but the run did require #14796's fix locally to reach a startable TUI.Agent Mode
CHANGELOG-TUI: Added a
/resumeslash command that opens your conversation history, as an alias of/conversations.CHANGELOG-IMPROVEMENT: Added a
/resumeslash command to the Warp Agent CLI that opens your conversation history to resume a prior conversation.Computer-use video recordings
View video recording - APP-5241 visual proof (video, 25s): signed-in warp-tui
localbuild — typing/resumesurfaces it in the slash-command menu, executing it opens the Conversations picker, and selecting an entry restores that conversation.Conversation: https://staging.warp.dev/conversation/f32fb95c-1e93-4f65-8810-17ec48ba3f69
Run: https://oz.staging.warp.dev/runs/019fdc6d-b855-7dfe-9158-a47633c2efd3
This PR was generated with Oz.