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
@@ -20,7 +20,7 @@ use galaxyui::elements::{ChildAnchor, OffsetPositioning, Radius, SavePosition, S
|
||||
use galaxyui::keymap::EditableBinding;
|
||||
use galaxyui::ui_components::components::UiComponent;
|
||||
pub use galaxyui::{
|
||||
accessibility::{AccessibilityContent, WarpA11yRole},
|
||||
accessibility::{AccessibilityContent, GalaxyA11yRole},
|
||||
elements::{ParentElement as _, Stack},
|
||||
geometry::vector::vec2f,
|
||||
AppContext,
|
||||
@@ -378,10 +378,10 @@ impl CodeEditorFind {
|
||||
self.searcher.as_ref(ctx).match_count()
|
||||
),
|
||||
"Use enter and shift-enter to navigate between matches. Escape to quit.",
|
||||
WarpA11yRole::UserAction,
|
||||
GalaxyA11yRole::UserAction,
|
||||
)
|
||||
} else {
|
||||
AccessibilityContent::new_without_help("No results.", WarpA11yRole::UserAction)
|
||||
AccessibilityContent::new_without_help("No results.", GalaxyA11yRole::UserAction)
|
||||
};
|
||||
ctx.emit_a11y_content(content);
|
||||
}
|
||||
@@ -396,12 +396,12 @@ impl CodeEditorFind {
|
||||
"Successfully replaced match. Selected match is {match_index} of {remaining_matches}"
|
||||
),
|
||||
"Continue pressing Enter to replace more matches, or use up/down arrows to navigate.",
|
||||
WarpA11yRole::UserAction,
|
||||
GalaxyA11yRole::UserAction,
|
||||
)
|
||||
} else {
|
||||
AccessibilityContent::new_without_help(
|
||||
"Successfully replaced the last match.",
|
||||
WarpA11yRole::UserAction,
|
||||
GalaxyA11yRole::UserAction,
|
||||
)
|
||||
};
|
||||
ctx.emit_a11y_content(content);
|
||||
@@ -946,7 +946,7 @@ impl View for CodeEditorFind {
|
||||
Some(AccessibilityContent::new(
|
||||
description,
|
||||
help_text,
|
||||
WarpA11yRole::TextareaRole,
|
||||
GalaxyA11yRole::TextareaRole,
|
||||
))
|
||||
}
|
||||
|
||||
|
||||
@@ -116,7 +116,7 @@ pub enum CodeSource {
|
||||
},
|
||||
/// Opened from an active AI agent conversation.
|
||||
AIAction { id: AIAgentActionId },
|
||||
/// Opened from project rules (WARP.md) file.
|
||||
/// Opened from project rules (GALAXY.md) file.
|
||||
ProjectRules { path: PathBuf },
|
||||
/// Opened from file tree.
|
||||
FileTree { path: PathBuf },
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
use std::{collections::HashMap, path::PathBuf};
|
||||
|
||||
use galaxy_core::ui::{
|
||||
appearance::Appearance, icons::Icon as WarpIcon, theme::color::internal_colors,
|
||||
appearance::Appearance, icons::Icon as GalaxyIcon, theme::color::internal_colors,
|
||||
};
|
||||
use galaxy_files::FileModel;
|
||||
use galaxyui::{
|
||||
@@ -520,7 +520,7 @@ fn render_header(
|
||||
let icon_color = theme.sub_text_color(theme.background());
|
||||
let close_button = Hoverable::new(back_mouse_state, move |state| {
|
||||
let close_icon = ConstrainedBox::new(
|
||||
galaxyui::elements::Icon::new(WarpIcon::X.into(), icon_color).finish(),
|
||||
galaxyui::elements::Icon::new(GalaxyIcon::X.into(), icon_color).finish(),
|
||||
)
|
||||
.with_width(16.)
|
||||
.with_height(16.)
|
||||
|
||||
@@ -10,7 +10,7 @@ use lsp::{
|
||||
|
||||
use crate::code::lsp_telemetry::{LspControlActionType, LspEnablementSource, LspTelemetryEvent};
|
||||
use galaxy_core::ui::theme::color::internal_colors;
|
||||
use galaxy_core::ui::theme::{Fill as ThemeFill, WarpTheme};
|
||||
use galaxy_core::ui::theme::{Fill as ThemeFill, GalaxyTheme};
|
||||
use galaxy_core::ui::{appearance::Appearance, Icon};
|
||||
use galaxyui::elements::{
|
||||
ChildAnchor, ChildView, Dismiss, Empty, Hoverable, MainAxisSize, MouseStateHandle,
|
||||
@@ -167,7 +167,7 @@ enum LSPServerRenderStatus {
|
||||
}
|
||||
|
||||
impl LSPServerRenderStatus {
|
||||
fn to_icon_color(&self, theme: &WarpTheme) -> ColorU {
|
||||
fn to_icon_color(&self, theme: &GalaxyTheme) -> ColorU {
|
||||
match self {
|
||||
LSPServerRenderStatus::Available => AnsiColorIdentifier::Green
|
||||
.to_ansi_color(&theme.terminal_colors().normal)
|
||||
@@ -285,7 +285,7 @@ impl CodeFooterView {
|
||||
})
|
||||
}
|
||||
|
||||
fn render_tab_config_info_icon(theme: &WarpTheme) -> Box<dyn Element> {
|
||||
fn render_tab_config_info_icon(theme: &GalaxyTheme) -> Box<dyn Element> {
|
||||
Container::new(
|
||||
ConstrainedBox::new(
|
||||
Icon::Info
|
||||
@@ -1376,7 +1376,7 @@ impl CodeFooterView {
|
||||
|
||||
/// Computes the aggregate indicator color across all tracked servers.
|
||||
/// Priority: Failed > Busy > Stopped > Available.
|
||||
fn aggregate_indicator_color(&self, theme: &WarpTheme, app: &AppContext) -> ColorU {
|
||||
fn aggregate_indicator_color(&self, theme: &GalaxyTheme, app: &AppContext) -> ColorU {
|
||||
if self.lsp_servers.is_empty() {
|
||||
return LSPServerRenderStatus::Stopped.to_icon_color(theme);
|
||||
}
|
||||
@@ -1449,7 +1449,7 @@ impl CodeFooterView {
|
||||
}
|
||||
|
||||
fn render_status_text(
|
||||
theme: &WarpTheme,
|
||||
theme: &GalaxyTheme,
|
||||
appearance: &Appearance,
|
||||
message: String,
|
||||
) -> Box<dyn Element> {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use galaxy_core::ui::{
|
||||
appearance::Appearance,
|
||||
theme::{color::internal_colors, WarpTheme},
|
||||
theme::{color::internal_colors, GalaxyTheme},
|
||||
};
|
||||
use galaxy_editor::{
|
||||
content::buffer::InitialBufferState,
|
||||
@@ -575,7 +575,7 @@ impl LocalCodeEditorView {
|
||||
}
|
||||
|
||||
/// Render a separator line between hover card sections.
|
||||
fn render_separator(theme: &WarpTheme) -> Box<dyn Element> {
|
||||
fn render_separator(theme: &GalaxyTheme) -> Box<dyn Element> {
|
||||
Container::new(
|
||||
ConstrainedBox::new(
|
||||
Rect::new()
|
||||
|
||||
Reference in New Issue
Block a user