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
@@ -1,6 +1,6 @@
|
||||
use galaxy_editor::editor::NavigationKey;
|
||||
use galaxyui::{
|
||||
accessibility::{AccessibilityContent, WarpA11yRole},
|
||||
accessibility::{AccessibilityContent, GalaxyA11yRole},
|
||||
elements::{
|
||||
Align, ChildAnchor, ConstrainedBox, Container, CornerRadius, CrossAxisAlignment,
|
||||
DispatchEventResult, Element, Empty, EventHandler, Fill, Flex, Hoverable, Icon,
|
||||
@@ -22,7 +22,7 @@ use pathfinder_color::ColorU;
|
||||
use settings::Setting as _;
|
||||
|
||||
use crate::resource_center::{mark_feature_used_and_write_to_user_defaults, Tip, TipAction};
|
||||
use crate::themes::theme::{RespectSystemTheme, ThemeKind, WarpTheme};
|
||||
use crate::themes::theme::{RespectSystemTheme, ThemeKind, GalaxyTheme};
|
||||
use crate::util::traffic_lights::traffic_light_data;
|
||||
use crate::workspace::PANEL_HEADER_HEIGHT;
|
||||
use crate::{
|
||||
@@ -34,7 +34,7 @@ use crate::{
|
||||
report_if_error,
|
||||
settings::{respect_system_theme, ThemeSettings},
|
||||
themes::theme::SelectedSystemThemes,
|
||||
user_config::{load_theme_configs, themes_dir, WarpConfig, WarpConfigUpdateEvent},
|
||||
user_config::{load_theme_configs, themes_dir, GalaxyConfig, GalaxyConfigUpdateEvent},
|
||||
util::traffic_lights::{TrafficLightData, TrafficLightSide},
|
||||
window_settings::WindowSettings,
|
||||
};
|
||||
@@ -44,7 +44,7 @@ use crate::{
|
||||
server::telemetry::TelemetryEvent, ui_components::window_focus_dimming::WindowFocusDimming,
|
||||
};
|
||||
use crate::{
|
||||
themes::theme::WarpThemeConfig,
|
||||
themes::theme::GalaxyThemeConfig,
|
||||
ui_components::buttons::{close_button, icon_button},
|
||||
ui_components::icons,
|
||||
};
|
||||
@@ -177,7 +177,7 @@ pub fn init(app: &mut AppContext) {
|
||||
|
||||
fn theme_chooser_items(
|
||||
referral_theme_status: &ReferralThemeStatus,
|
||||
theme_config: &WarpThemeConfig,
|
||||
theme_config: &GalaxyThemeConfig,
|
||||
) -> Vec<ThemeChooserItem> {
|
||||
let sent_referral_theme_active = referral_theme_status.sent_referral_theme_active();
|
||||
let received_referral_theme_active = referral_theme_status.received_referral_theme_active();
|
||||
@@ -224,9 +224,9 @@ impl ThemeChooser {
|
||||
me.update_themes(ctx);
|
||||
});
|
||||
|
||||
let warp_config_handle = WarpConfig::handle(ctx);
|
||||
let warp_config_handle = GalaxyConfig::handle(ctx);
|
||||
ctx.subscribe_to_model(&warp_config_handle, |me, _, event, ctx| {
|
||||
if let WarpConfigUpdateEvent::Themes = event {
|
||||
if let GalaxyConfigUpdateEvent::Themes = event {
|
||||
me.update_themes(ctx);
|
||||
ctx.notify();
|
||||
}
|
||||
@@ -247,7 +247,7 @@ impl ThemeChooser {
|
||||
|
||||
let themes = theme_chooser_items(
|
||||
referral_theme_status.as_ref(ctx),
|
||||
WarpConfig::as_ref(ctx).theme_config(),
|
||||
GalaxyConfig::as_ref(ctx).theme_config(),
|
||||
);
|
||||
|
||||
Self {
|
||||
@@ -311,7 +311,7 @@ impl ThemeChooser {
|
||||
ctx.spawn(
|
||||
async move { load_theme_configs(&themes_dir()) },
|
||||
move |theme_chooser, loaded_themes, ctx| {
|
||||
ctx.update_model(&WarpConfig::handle(ctx), move |warp_config, ctx| {
|
||||
ctx.update_model(&GalaxyConfig::handle(ctx), move |warp_config, ctx| {
|
||||
warp_config.update_theme_config(loaded_themes, ctx);
|
||||
});
|
||||
theme_chooser.update_themes(ctx);
|
||||
@@ -324,7 +324,7 @@ impl ThemeChooser {
|
||||
ctx.spawn(
|
||||
async move { load_theme_configs(&themes_dir()) },
|
||||
move |theme_chooser, loaded_themes, ctx| {
|
||||
ctx.update_model(&WarpConfig::handle(ctx), move |warp_config, ctx| {
|
||||
ctx.update_model(&GalaxyConfig::handle(ctx), move |warp_config, ctx| {
|
||||
warp_config.update_theme_config(loaded_themes, ctx);
|
||||
});
|
||||
theme_chooser.update_themes(ctx);
|
||||
@@ -518,7 +518,7 @@ impl ThemeChooser {
|
||||
fn update_themes(&mut self, ctx: &mut ViewContext<Self>) {
|
||||
*self.themes = theme_chooser_items(
|
||||
self.referral_theme_status.as_ref(ctx),
|
||||
WarpConfig::as_ref(ctx).theme_config(),
|
||||
GalaxyConfig::as_ref(ctx).theme_config(),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -848,7 +848,7 @@ impl View for ThemeChooser {
|
||||
Some(AccessibilityContent::new(
|
||||
"Theme chooser. Unfortunately, theme chooser window isn't compatible with screen readers yet.",
|
||||
"Press escape to close.",
|
||||
WarpA11yRole::WindowRole,
|
||||
GalaxyA11yRole::WindowRole,
|
||||
))
|
||||
}
|
||||
|
||||
@@ -878,12 +878,12 @@ impl View for ThemeChooser {
|
||||
#[derive(Clone)]
|
||||
struct ThemeChooserItem {
|
||||
pub kind: ThemeKind,
|
||||
warp_theme: WarpTheme,
|
||||
warp_theme: GalaxyTheme,
|
||||
mouse_state: MouseStateHandle,
|
||||
}
|
||||
|
||||
impl ThemeChooserItem {
|
||||
pub fn new(kind: ThemeKind, warp_theme: WarpTheme) -> Self {
|
||||
pub fn new(kind: ThemeKind, warp_theme: GalaxyTheme) -> Self {
|
||||
Self {
|
||||
kind,
|
||||
warp_theme,
|
||||
|
||||
Reference in New Issue
Block a user