diff --git a/app/src/terminal/view.rs b/app/src/terminal/view.rs index b9d491dee..6d0c519ca 100644 --- a/app/src/terminal/view.rs +++ b/app/src/terminal/view.rs @@ -26244,6 +26244,12 @@ impl View for TerminalView { context.set.insert("InsideRepository"); } + if self.can_show_conversation_details_ui_from_model(&model_lock, app) { + context + .set + .insert(init::CAN_SHOW_CONVERSATION_DETAILS_KEY); + } + let active_conversation = if FeatureFlag::AgentView.is_enabled() { self.agent_view_controller .as_ref(app) diff --git a/app/src/terminal/view/init.rs b/app/src/terminal/view/init.rs index bb1e612fb..e693f8cdc 100644 --- a/app/src/terminal/view/init.rs +++ b/app/src/terminal/view/init.rs @@ -60,6 +60,7 @@ pub const INPUT_BOX_VISIBLE_KEY: &str = "InputVisible"; pub const KEYBOARD_PROTOCOL_ENABLED_KEY: &str = "KeyboardProtocolEnabled"; pub const CLI_AGENT_SESSION_ACTIVE_KEY: &str = "CLIAgentSessionActive"; pub const ROOT_CLOUD_MODE_PANE_KEY: &str = "RootCloudModePane"; +pub const CAN_SHOW_CONVERSATION_DETAILS_KEY: &str = "CanShowConversationDetails"; /// Some keybindings will do different things in different contexts. We break /// these into their own function to ensure we pay special attention to @@ -1073,6 +1074,14 @@ pub fn init(app: &mut AppContext) { .with_enabled(|| FeatureFlag::Projects.is_enabled()) .with_context_predicate(id!("Workspace") & id!(flags::IS_ANY_AI_ENABLED))]); + app.register_editable_bindings([EditableBinding::new( + "terminal:toggle_conversation_details_panel", + "Toggle Conversation Details Panel", + TerminalAction::ToggleConversationDetailsPanel, + ) + .with_group(bindings::BindingGroup::WarpAi.as_str()) + .with_context_predicate(id!("Terminal") & id!(CAN_SHOW_CONVERSATION_DETAILS_KEY))]); + // Register bindings for starting a new cloud agent conversation. { app.register_fixed_bindings([FixedBinding::new_per_platform(