v1.4.0: Auto-compact streaming, Bedrock summarization support, subagent orchestration, and Galaxy rebrand continuation
Major features: - Auto-compact: triggers conversation summarization when context window >= 85%, compacts Bedrock message history to a summary pair, and tracks live context tokens - Bedrock summarization: plumbs `is_summarization` flag through translator/client/response pipeline, handles SummarizeConversation input type, and marks `summarized` in metadata - Session restore: rebuilds bedrock_message_history from persisted task messages via newly-public `convert_proto_message`, preventing empty history on reconnect - Subagent orchestration: adds SubagentQuestion/Answer/CompletionSummary event types, parent-child question routing with depth limits, retry counting, and drain methods - Summarization UI: inline SummarizationView in AI blocks with progress/finished states Refactors: - Rename WarpTheme → GalaxyTheme across ~100 files (rebrand continuation) - Rename warp_home_config_dir → galaxy_home_config_dir and related path functions - Predefined rules: replace "System Defined Rule #N" with descriptive names (e.g. "Correctness Over Speed", "Never Guess") and add lookup helpers - Usage view: replace cumulative input/output token display with live context tokens, cache hit rate calculation, and separate cache read/write stats - Telemetry: remove verbose doc comments, simplify trait definitions - Facts view: simplify delete permission check (always allow local deletion) - Remove warp_managed_paths_watcher.rs (dead code) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
eaa2ddc75e
commit
6f54e2cb30
@@ -5,7 +5,7 @@ use crate::{
|
||||
AppState, BranchSnapshot, LeafContents, LeafSnapshot, NotebookPaneSnapshot, PaneFlex,
|
||||
PaneNodeSnapshot, SplitDirection, TabSnapshot, TerminalPaneSnapshot, WindowSnapshot,
|
||||
},
|
||||
drive::OpenWarpDriveObjectSettings,
|
||||
drive::OpenGalaxyDriveObjectSettings,
|
||||
tab::SelectedTabColor,
|
||||
};
|
||||
|
||||
@@ -81,7 +81,7 @@ fn test_config_from_snapshot_flattens_single_pane() {
|
||||
custom_vertical_tabs_title: None,
|
||||
contents: LeafContents::Notebook(NotebookPaneSnapshot::CloudNotebook {
|
||||
notebook_id: None,
|
||||
settings: OpenWarpDriveObjectSettings::default(),
|
||||
settings: OpenGalaxyDriveObjectSettings::default(),
|
||||
}),
|
||||
}),
|
||||
),
|
||||
@@ -151,7 +151,7 @@ fn test_config_from_snapshot_filters_panes() {
|
||||
custom_vertical_tabs_title: None,
|
||||
contents: LeafContents::Notebook(NotebookPaneSnapshot::CloudNotebook {
|
||||
notebook_id: None,
|
||||
settings: OpenWarpDriveObjectSettings::default(),
|
||||
settings: OpenGalaxyDriveObjectSettings::default(),
|
||||
}),
|
||||
}),
|
||||
),
|
||||
@@ -215,7 +215,7 @@ fn test_config_from_snapshot_filters_tabs() {
|
||||
custom_vertical_tabs_title: None,
|
||||
contents: LeafContents::Notebook(NotebookPaneSnapshot::CloudNotebook {
|
||||
notebook_id: None,
|
||||
settings: OpenWarpDriveObjectSettings::default(),
|
||||
settings: OpenGalaxyDriveObjectSettings::default(),
|
||||
}),
|
||||
}),
|
||||
)],
|
||||
@@ -285,7 +285,7 @@ fn test_config_with_active_tab_index_and_filtered_tabs() {
|
||||
custom_vertical_tabs_title: None,
|
||||
contents: LeafContents::Notebook(NotebookPaneSnapshot::CloudNotebook {
|
||||
notebook_id: None,
|
||||
settings: OpenWarpDriveObjectSettings::default(),
|
||||
settings: OpenGalaxyDriveObjectSettings::default(),
|
||||
}),
|
||||
}),
|
||||
)],
|
||||
@@ -376,7 +376,7 @@ fn test_config_with_active_tab_being_filtered() {
|
||||
custom_vertical_tabs_title: None,
|
||||
contents: LeafContents::Notebook(NotebookPaneSnapshot::CloudNotebook {
|
||||
notebook_id: None,
|
||||
settings: OpenWarpDriveObjectSettings::default(),
|
||||
settings: OpenGalaxyDriveObjectSettings::default(),
|
||||
}),
|
||||
}),
|
||||
)],
|
||||
|
||||
@@ -8,13 +8,13 @@ use crate::send_telemetry_from_ctx;
|
||||
use crate::server::telemetry::TelemetryEvent;
|
||||
use crate::user_config::launch_configs_dir;
|
||||
#[cfg(feature = "local_fs")]
|
||||
use crate::user_config::{util::file_name_to_human_readable_name, WarpConfig};
|
||||
use crate::user_config::{util::file_name_to_human_readable_name, GalaxyConfig};
|
||||
use crate::util::bindings::keybinding_name_to_display_string;
|
||||
#[cfg(feature = "local_fs")]
|
||||
use crate::util::openable_file_type::FileTarget;
|
||||
use galaxy_core::paths::home_relative_path;
|
||||
use galaxy_core::ui::theme::Fill;
|
||||
use galaxyui::accessibility::{AccessibilityContent, WarpA11yRole};
|
||||
use galaxyui::accessibility::{AccessibilityContent, GalaxyA11yRole};
|
||||
use galaxyui::elements::{
|
||||
Align, Border, ChildAnchor, ChildView, Clipped, ConstrainedBox, Container, CornerRadius,
|
||||
Element, Empty, Flex, FormattedTextElement, MouseStateHandle, OffsetPositioning, ParentAnchor,
|
||||
@@ -153,7 +153,7 @@ pub enum LaunchConfigModalEvent {
|
||||
/// It's called when the new config was just saved. Note that when we save the configuration,
|
||||
/// it take a moment for the file system to register the change, and us to receive it (as there
|
||||
/// is a delay in our watcher). But because we actually have the LaunchConfig in our hands
|
||||
/// already, we may as well save it "manually" to the WarpConfig, while waiting for the update
|
||||
/// already, we may as well save it "manually" to the GalaxyConfig, while waiting for the update
|
||||
/// from the file system. This event passes a saved config to the handler to let us do that.
|
||||
SuccessfullySavedConfig(LaunchConfig),
|
||||
#[cfg(feature = "local_fs")]
|
||||
@@ -263,7 +263,7 @@ impl LaunchConfigSaveModal {
|
||||
let launch_config_name = file_name_to_human_readable_name(&file_name_candidate);
|
||||
if let Some(app_state) = &self.current_app_state {
|
||||
let launch_config = LaunchConfig::from_snapshot(launch_config_name, app_state);
|
||||
match WarpConfig::save_new_launch_config(file_name_candidate, launch_config.clone()) {
|
||||
match GalaxyConfig::save_new_launch_config(file_name_candidate, launch_config.clone()) {
|
||||
Ok(file_name) => {
|
||||
self.saved_successfully(file_name, ctx);
|
||||
ctx.emit(LaunchConfigModalEvent::SuccessfullySavedConfig(
|
||||
@@ -661,7 +661,7 @@ impl View for LaunchConfigSaveModal {
|
||||
"Type the name of the file to which you want to save your
|
||||
current configuration of windows, tabs, and panes. Use enter to save the
|
||||
launch configuration, esc to quit the save configuration modal.",
|
||||
WarpA11yRole::PopoverRole,
|
||||
GalaxyA11yRole::PopoverRole,
|
||||
))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user