From ec99146ccc3dd31cfb8b7c1ab5ca1187c0e21a6e Mon Sep 17 00:00:00 2001 From: Ryan Ward Date: Tue, 19 May 2026 13:29:38 -0500 Subject: [PATCH] v1.2.1: UX fixes for tool display, shell access, and session restore - Show "File changes" label on collapsed code diff views when no title - Reinforce shell command availability in agent system prompt - Persist working directory for agent/viewer panes on session save - Remove unused make_nsstring import Co-Authored-By: Claude Opus 4.6 (1M context) --- app/src/ai/bedrock/convert_request.rs | 1 + app/src/ai/blocklist/inline_action/code_diff_view.rs | 10 ++++++---- app/src/appearance.rs | 2 +- app/src/pane_group/pane/terminal_pane.rs | 4 ++-- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/app/src/ai/bedrock/convert_request.rs b/app/src/ai/bedrock/convert_request.rs index b7758ef3..c6910ed6 100644 --- a/app/src/ai/bedrock/convert_request.rs +++ b/app/src/ai/bedrock/convert_request.rs @@ -805,6 +805,7 @@ pub fn extract_system_prompt(request: &api::Request) -> Option { prompt.push_str("- `suggest_next_prompt`: After completing a task, suggest a follow-up action the user might want.\n\n"); prompt.push_str("## Guidelines\n"); + prompt.push_str("- You ALWAYS have access to run shell commands via `run_shell_command`. Never tell the user you cannot execute commands — use the tool directly.\n"); prompt.push_str( "- ALWAYS use tools to explore the codebase before answering questions about code.\n", ); diff --git a/app/src/ai/blocklist/inline_action/code_diff_view.rs b/app/src/ai/blocklist/inline_action/code_diff_view.rs index ee88e393..d34d507b 100644 --- a/app/src/ai/blocklist/inline_action/code_diff_view.rs +++ b/app/src/ai/blocklist/inline_action/code_diff_view.rs @@ -1536,9 +1536,10 @@ impl CodeDiffView { .with_main_axis_alignment(MainAxisAlignment::Start) .with_cross_axis_alignment(CrossAxisAlignment::Center); - if let Some(title) = &self.title { + { + let title_text = self.title.as_deref().unwrap_or("File changes"); let title = Text::new_inline( - title.to_string(), + title_text.to_string(), appearance.ui_font_family(), appearance.monospace_font_size(), ) @@ -1763,9 +1764,10 @@ impl CodeDiffView { } let mut col = Flex::column(); - if let Some(title) = &self.title { + { + let title_text = self.title.as_deref().unwrap_or("File changes"); let title = Text::new_inline( - title.to_string(), + title_text.to_string(), appearance.ui_font_family(), appearance.monospace_font_size() + 2., ) diff --git a/app/src/appearance.rs b/app/src/appearance.rs index 7f66c7a0..8c01758f 100644 --- a/app/src/appearance.rs +++ b/app/src/appearance.rs @@ -12,7 +12,7 @@ mod macos_app_icon { base::{id, nil}, }; pub use galaxy_core::channel::{Channel, ChannelState}; - pub use galaxyui::platform::mac::{make_nsstring, AutoreleasePoolGuard}; + pub use galaxyui::platform::mac::AutoreleasePoolGuard; pub use objc::{class, msg_send, sel, sel_impl}; pub use crate::settings::app_icon::{AppIcon, AppIconSettings, AppIconSettingsChangedEvent}; diff --git a/app/src/pane_group/pane/terminal_pane.rs b/app/src/pane_group/pane/terminal_pane.rs index 8368f138..cb0c48e8 100644 --- a/app/src/pane_group/pane/terminal_pane.rs +++ b/app/src/pane_group/pane/terminal_pane.rs @@ -426,7 +426,7 @@ impl PaneContent for TerminalPane { LeafContents::Terminal(TerminalPaneSnapshot { uuid: self.uuid.clone(), - cwd: None, + cwd: view.pwd_if_local(app), is_active, is_read_only: false, shell_launch_data: None, @@ -448,7 +448,7 @@ impl PaneContent for TerminalPane { } else { LeafContents::Terminal(TerminalPaneSnapshot { uuid: self.uuid.clone(), - cwd: None, + cwd: view.pwd_if_local(app), is_active, is_read_only: false, shell_launch_data: None,