Galaxy v1.0.0: Remove warp-channel-config, rebrand bins/icons/settings, remove teams from Drive
- Remove warp-channel-config dependency; all bin targets hardcode ChannelConfig inline - Rename bin targets: galaxy-oss, galaxy-local, galaxy-stable, galaxy-dev, galaxy-preview - Rename config dir from .galaxy-ai to .galaxy - Add Galaxy app icon (512x512 rounded PNG + SVG logo) - Replace settings gear icon with Stars (sparkle) icon - Remove lightbulb/resource center button from header toolbar - Add Galaxy logo SVG to Settings > About page - Rename Galaxify -> Galaxyize across all UI strings - Remove Create Team / Join Team sections from Galaxy Drive - Fix missing => in OpenRichInput match arms - Clean up unused imports and warnings - Update Cargo.toml bundle metadata with Samsung branding - Re-enable code review, project explorer, global search in settings
This commit is contained in:
@@ -290,7 +290,7 @@ static DEFAULT_TIPS: LazyLock<Vec<AgentTip>> = LazyLock::new(|| {
|
||||
kind: AgentTipKind::Context,
|
||||
},
|
||||
AgentTip {
|
||||
description: "Galaxify a remote SSH session to enable the agent inside that environment.".to_string(),
|
||||
description: "Galaxyize a remote SSH session to enable the agent inside that environment.".to_string(),
|
||||
link: Some("https://docs.warp.dev/terminal/warpify".to_string()),
|
||||
binding_name: None,
|
||||
action: None,
|
||||
|
||||
@@ -15,7 +15,6 @@ use crate::{
|
||||
AIRequestUsageModel,
|
||||
},
|
||||
appearance::Appearance,
|
||||
auth::{AuthManager, AuthStateProvider},
|
||||
completer::SessionContext,
|
||||
context_chips::{
|
||||
self,
|
||||
@@ -84,11 +83,10 @@ use tokio::fs;
|
||||
use voice_input::{StartListeningError, VoiceSessionResult};
|
||||
|
||||
use galaxy_core::{
|
||||
context_flag::ContextFlag,
|
||||
report_if_error,
|
||||
ui::{
|
||||
color::{blend::Blend, contrast::MinimumAllowedContrast, ContrastingColor},
|
||||
theme::{color::internal_colors, AnsiColorIdentifier, Fill},
|
||||
theme::{color::internal_colors, Fill},
|
||||
},
|
||||
};
|
||||
#[cfg(feature = "voice_input")]
|
||||
@@ -127,9 +125,6 @@ const DISABLE_NLD_TOOLTIP: &str = "Disable terminal command autodetection";
|
||||
const FAST_FORWARD_ON_TOOLTIP: &str = "Turn off auto-approve all agent actions";
|
||||
const FAST_FORWARD_OFF_TOOLTIP: &str = "Auto-approve all agent actions for this task";
|
||||
|
||||
const START_REMOTE_CONTROL_TOOLTIP: &str = "Start remote control";
|
||||
const START_REMOTE_CONTROL_LOGIN_REQUIRED_TOOLTIP: &str = "Log in to use /remote-control";
|
||||
|
||||
const CLOUD_MODE_V2_FOOTER_GAP: f32 = 4.;
|
||||
|
||||
/// Voice input state for the CLI agent footer. Unlike the editor-based voice
|
||||
@@ -189,8 +184,6 @@ pub struct AgentInputFooter {
|
||||
mic_button: ViewHandle<ActionButton>,
|
||||
nld_button: ViewHandle<ActionButton>,
|
||||
file_button: ViewHandle<ActionButton>,
|
||||
start_remote_control_button: ViewHandle<ActionButton>,
|
||||
stop_remote_control_button: ViewHandle<ActionButton>,
|
||||
context_window_button: ViewHandle<ActionButton>,
|
||||
model_selector: ViewHandle<ProfileModelSelector>,
|
||||
ftu_callout_close_button: ViewHandle<ActionButton>,
|
||||
@@ -547,29 +540,6 @@ impl AgentInputFooter {
|
||||
},
|
||||
);
|
||||
|
||||
let start_remote_control_button = ctx.add_typed_action_view(|_ctx| {
|
||||
ActionButton::new("/remote-control", AgentInputButtonTheme)
|
||||
.with_icon(Icon::Phone01)
|
||||
.with_tooltip(START_REMOTE_CONTROL_TOOLTIP)
|
||||
.with_size(cli_button_size)
|
||||
.with_tooltip_alignment(TooltipAlignment::Left)
|
||||
.on_click(|ctx| {
|
||||
ctx.dispatch_typed_action(AgentInputFooterAction::StartRemoteControl);
|
||||
})
|
||||
});
|
||||
|
||||
let stop_remote_control_button = ctx.add_typed_action_view(|_ctx| {
|
||||
ActionButton::new("Stop sharing", AgentInputButtonTheme)
|
||||
.with_icon(Icon::StopFilled)
|
||||
.with_icon_ansi_color(AnsiColorIdentifier::Red)
|
||||
.with_tooltip("Stop sharing")
|
||||
.with_size(cli_button_size)
|
||||
.with_tooltip_alignment(TooltipAlignment::Left)
|
||||
.on_click(|ctx| {
|
||||
ctx.dispatch_typed_action(AgentInputFooterAction::StopRemoteControl);
|
||||
})
|
||||
});
|
||||
|
||||
let context_window_button = ctx.add_typed_action_view(|_ctx| {
|
||||
ActionButton::new("", AgentInputButtonTheme)
|
||||
.with_icon(Icon::ConversationContext0)
|
||||
@@ -643,13 +613,6 @@ impl AgentInputFooter {
|
||||
}
|
||||
});
|
||||
|
||||
// Keep the remote-control chip in sync with login state so we can
|
||||
// disable it and swap the tooltip when the user is anonymous or
|
||||
// logged out.
|
||||
ctx.subscribe_to_model(&AuthManager::handle(ctx), |me, _, _, ctx| {
|
||||
me.sync_remote_control_button(ctx);
|
||||
});
|
||||
|
||||
let prompt_for_session_settings = prompt.clone();
|
||||
ctx.subscribe_to_model(
|
||||
&SessionSettings::handle(ctx),
|
||||
@@ -727,8 +690,6 @@ impl AgentInputFooter {
|
||||
file_explorer_button,
|
||||
rich_input_button,
|
||||
settings_button,
|
||||
start_remote_control_button,
|
||||
stop_remote_control_button,
|
||||
install_plugin_button,
|
||||
plugin_instructions_button,
|
||||
update_plugin_button,
|
||||
@@ -762,7 +723,6 @@ impl AgentInputFooter {
|
||||
v2_model_selector,
|
||||
};
|
||||
me.sync_fast_forward_button(ctx);
|
||||
me.sync_remote_control_button(ctx);
|
||||
me.update_context_window_button(ctx);
|
||||
me.update_display_chips(&prompt, ctx);
|
||||
me.update_ftu_callout_render_state(ctx);
|
||||
@@ -1294,21 +1254,6 @@ impl AgentInputFooter {
|
||||
#[cfg(not(feature = "voice_input"))]
|
||||
None
|
||||
}
|
||||
AgentToolbarItemKind::ShareSession => {
|
||||
let enabled = FeatureFlag::CreatingSharedSessions.is_enabled()
|
||||
&& FeatureFlag::HOARemoteControl.is_enabled()
|
||||
&& ContextFlag::CreateSharedSession.is_enabled();
|
||||
if !enabled {
|
||||
return None;
|
||||
}
|
||||
|
||||
let button = if shared_status.is_sharer() {
|
||||
&self.stop_remote_control_button
|
||||
} else {
|
||||
&self.start_remote_control_button
|
||||
};
|
||||
Some(ChildView::new(button).finish())
|
||||
}
|
||||
AgentToolbarItemKind::Settings => Some(ChildView::new(&self.settings_button).finish()),
|
||||
// Handled by the available_in() guard above; included for exhaustiveness.
|
||||
AgentToolbarItemKind::ModelSelector
|
||||
@@ -1787,24 +1732,6 @@ impl AgentInputFooter {
|
||||
});
|
||||
}
|
||||
|
||||
/// Disable the start-remote-control chip and swap its tooltip when the
|
||||
/// user is anonymous or logged out, since session sharing requires a
|
||||
/// real account.
|
||||
fn sync_remote_control_button(&self, ctx: &mut ViewContext<Self>) {
|
||||
let login_required = AuthStateProvider::as_ref(ctx)
|
||||
.get()
|
||||
.is_anonymous_or_logged_out();
|
||||
let tooltip = if login_required {
|
||||
START_REMOTE_CONTROL_LOGIN_REQUIRED_TOOLTIP
|
||||
} else {
|
||||
START_REMOTE_CONTROL_TOOLTIP
|
||||
};
|
||||
self.start_remote_control_button.update(ctx, |button, ctx| {
|
||||
button.set_disabled(login_required, ctx);
|
||||
button.set_tooltip(Some(tooltip), ctx);
|
||||
});
|
||||
}
|
||||
|
||||
fn update_context_window_button(&mut self, ctx: &mut ViewContext<Self>) {
|
||||
if let Some(conversation) =
|
||||
BlocklistAIHistoryModel::as_ref(ctx).active_conversation(self.terminal_view_id)
|
||||
@@ -1874,20 +1801,6 @@ impl AgentInputFooter {
|
||||
.is_some();
|
||||
has_conversation.then(|| ChildView::new(&self.context_window_button).finish())
|
||||
}
|
||||
AgentToolbarItemKind::ShareSession => {
|
||||
let enabled = FeatureFlag::CreatingSharedSessions.is_enabled()
|
||||
&& FeatureFlag::HOARemoteControl.is_enabled()
|
||||
&& ContextFlag::CreateSharedSession.is_enabled();
|
||||
if !enabled {
|
||||
return None;
|
||||
}
|
||||
let button = if shared_status.is_sharer() {
|
||||
&self.stop_remote_control_button
|
||||
} else {
|
||||
&self.start_remote_control_button
|
||||
};
|
||||
Some(ChildView::new(button).finish())
|
||||
}
|
||||
AgentToolbarItemKind::FastForwardToggle => FeatureFlag::FastForwardAutoexecuteButton
|
||||
.is_enabled()
|
||||
.then(|| ChildView::new(&self.fast_forward_button).finish()),
|
||||
@@ -2144,8 +2057,6 @@ pub enum AgentInputFooterAction {
|
||||
OpenPluginInstallInstructionsPane,
|
||||
OpenPluginUpdateInstructionsPane,
|
||||
DismissPluginChip,
|
||||
StartRemoteControl,
|
||||
StopRemoteControl,
|
||||
OpenCodingAgentSettings,
|
||||
ShowContextMenu {
|
||||
position: Vector2F,
|
||||
@@ -2330,12 +2241,6 @@ impl TypedActionView for AgentInputFooter {
|
||||
}
|
||||
ctx.notify();
|
||||
}
|
||||
AgentInputFooterAction::StartRemoteControl => {
|
||||
ctx.emit(AgentInputFooterEvent::StartRemoteControl);
|
||||
}
|
||||
AgentInputFooterAction::StopRemoteControl => {
|
||||
ctx.emit(AgentInputFooterEvent::StopRemoteControl);
|
||||
}
|
||||
AgentInputFooterAction::OpenCodingAgentSettings => {
|
||||
#[cfg(not(target_family = "wasm"))]
|
||||
ctx.dispatch_typed_action_deferred(WorkspaceAction::ScrollToSettingsWidget {
|
||||
@@ -2361,8 +2266,6 @@ pub enum AgentInputFooterEvent {
|
||||
InsertIntoCLIRichInput(String),
|
||||
ToggleCodeReviewPane(CLIAgent),
|
||||
ToggleFileExplorer(CLIAgent),
|
||||
StartRemoteControl,
|
||||
StopRemoteControl,
|
||||
OpenRichInput,
|
||||
HideRichInput,
|
||||
ToggledChipMenu {
|
||||
|
||||
@@ -61,7 +61,6 @@ pub enum AgentToolbarItemKind {
|
||||
// Renamed from ImageAttach; alias preserves existing user toolbar configs.
|
||||
#[serde(alias = "ImageAttach")]
|
||||
FileAttach,
|
||||
ShareSession,
|
||||
|
||||
// CLI agent only – opens settings to the Coding Agents section.
|
||||
Settings,
|
||||
@@ -73,7 +72,7 @@ pub enum AgentToolbarItemKind {
|
||||
impl AgentToolbarItemKind {
|
||||
pub fn available_in(&self) -> ToolbarAvailability {
|
||||
match self {
|
||||
Self::ContextChip(_) | Self::VoiceInput | Self::FileAttach | Self::ShareSession => {
|
||||
Self::ContextChip(_) | Self::VoiceInput | Self::FileAttach => {
|
||||
ToolbarAvailability::Both
|
||||
}
|
||||
Self::ModelSelector
|
||||
@@ -95,7 +94,7 @@ impl AgentToolbarItemKind {
|
||||
is_cloud_mode: bool,
|
||||
) -> bool {
|
||||
match self {
|
||||
Self::Settings | Self::ShareSession | Self::FileExplorer => !status.is_viewer(),
|
||||
Self::Settings | Self::FileExplorer => !status.is_viewer(),
|
||||
Self::FileAttach => !status.is_viewer() || is_cloud_mode,
|
||||
Self::FastForwardToggle => !status.is_viewer() || status.is_executor(),
|
||||
Self::ContextChip(_)
|
||||
@@ -117,7 +116,6 @@ impl AgentToolbarItemKind {
|
||||
Self::ContextWindowUsage => "Context Usage",
|
||||
Self::FileExplorer => "File Explorer",
|
||||
Self::RichInput => "Rich Input",
|
||||
Self::ShareSession => "/remote-control",
|
||||
Self::Settings => "Settings",
|
||||
Self::FastForwardToggle => "Fast Forward",
|
||||
}
|
||||
@@ -133,7 +131,6 @@ impl AgentToolbarItemKind {
|
||||
Self::ContextWindowUsage => Some(Icon::ConversationContext0),
|
||||
Self::FileExplorer => Some(Icon::FileCopy),
|
||||
Self::RichInput => Some(Icon::TextInput),
|
||||
Self::ShareSession => Some(Icon::Phone01),
|
||||
Self::Settings => Some(Icon::Settings),
|
||||
Self::FastForwardToggle => Some(Icon::FastForward),
|
||||
}
|
||||
@@ -172,11 +169,6 @@ impl AgentToolbarItemKind {
|
||||
Self::ContextWindowUsage,
|
||||
Self::ModelSelector,
|
||||
];
|
||||
if FeatureFlag::CreatingSharedSessions.is_enabled()
|
||||
&& FeatureFlag::HOARemoteControl.is_enabled()
|
||||
{
|
||||
items.push(Self::ShareSession);
|
||||
}
|
||||
items.push(Self::VoiceInput);
|
||||
items.push(Self::FileAttach);
|
||||
items
|
||||
@@ -198,11 +190,6 @@ impl AgentToolbarItemKind {
|
||||
if FeatureFlag::FastForwardAutoexecuteButton.is_enabled() {
|
||||
items.push(Self::FastForwardToggle);
|
||||
}
|
||||
if FeatureFlag::CreatingSharedSessions.is_enabled()
|
||||
&& FeatureFlag::HOARemoteControl.is_enabled()
|
||||
{
|
||||
items.push(Self::ShareSession);
|
||||
}
|
||||
items
|
||||
}
|
||||
|
||||
@@ -213,11 +200,6 @@ impl AgentToolbarItemKind {
|
||||
Self::VoiceInput,
|
||||
Self::ContextChip(ContextChipKind::GitDiffStats),
|
||||
];
|
||||
if FeatureFlag::CreatingSharedSessions.is_enabled()
|
||||
&& FeatureFlag::HOARemoteControl.is_enabled()
|
||||
{
|
||||
items.push(Self::ShareSession);
|
||||
}
|
||||
items.push(Self::FileExplorer);
|
||||
if FeatureFlag::CLIAgentRichInput.is_enabled() {
|
||||
items.push(Self::RichInput);
|
||||
@@ -247,11 +229,6 @@ impl AgentToolbarItemKind {
|
||||
Self::VoiceInput,
|
||||
Self::Settings,
|
||||
]);
|
||||
if FeatureFlag::CreatingSharedSessions.is_enabled()
|
||||
&& FeatureFlag::HOARemoteControl.is_enabled()
|
||||
{
|
||||
items.push(Self::ShareSession);
|
||||
}
|
||||
items
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user