Rebrand Warp to Galaxy v1.1.0
- Rename all UI-facing "Warp" references to "Galaxy" - Rename "Warpify" to "Wormhole" throughout the UI - Replace app icons with 5 new Galaxy-branded variants - Update About page to show selected app icon dynamically - Rephrase Privacy page for Bedrock context - Remove "Fallback to Warp server" toggle from Bedrock settings - Widen model selector dropdowns in profile editor (480px) - Update TERM_PROGRAM to "GalaxyTerminal" - Bump version to 1.1.0 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
99159184cb
commit
ccc67e6a33
@@ -29,7 +29,7 @@ fn create_symlink_with_admin(source: &Path, target: &Path) -> Result<()> {
|
||||
|
||||
// Use osascript to run the ln command with admin privileges, with a custom prompt
|
||||
let script = format!(
|
||||
"do shell script \"ln -sf {escaped_source} {escaped_target}\" with prompt \"Warp needs administrator privileges to install the command in /usr/local/bin.\" with administrator privileges"
|
||||
"do shell script \"ln -sf {escaped_source} {escaped_target}\" with prompt \"Galaxy needs administrator privileges to install the command in /usr/local/bin.\" with administrator privileges"
|
||||
);
|
||||
|
||||
log::debug!("Creating symlink with admin privileges");
|
||||
@@ -65,7 +65,7 @@ fn remove_file_with_admin(target: &Path) -> Result<()> {
|
||||
let escaped_target = ShellFamily::Posix.shell_escape(target_str);
|
||||
|
||||
let script = format!(
|
||||
"do shell script \"rm {escaped_target}\" with prompt \"Warp needs administrator privileges to uninstall the command from /usr/local/bin.\" with administrator privileges"
|
||||
"do shell script \"rm {escaped_target}\" with prompt \"Galaxy needs administrator privileges to uninstall the command from /usr/local/bin.\" with administrator privileges"
|
||||
);
|
||||
|
||||
log::debug!("Removing file with admin privileges");
|
||||
|
||||
@@ -480,7 +480,7 @@ impl HoaOnboardingFlow {
|
||||
|
||||
let formatted = FormattedText::new([FormattedTextLine::Line(vec![
|
||||
FormattedTextFragment::plain_text(
|
||||
"Warp pipes through notifications from any CLI coding agent into a unified notification center that works across all coding agents and harnesses. ",
|
||||
"Galaxy pipes through notifications from any CLI coding agent into a unified notification center that works across all coding agents and harnesses. ",
|
||||
),
|
||||
learn_more_fragment,
|
||||
])]);
|
||||
|
||||
@@ -44,7 +44,7 @@ const FEATURE_ITEMS: &[FeatureItem] = &[
|
||||
FeatureItem {
|
||||
icon: Icon::MessageCheckSquare,
|
||||
title: "Native code review",
|
||||
description: "Send inline comments from Warp's code review directly to Claude Code, Codex, or OpenCode",
|
||||
description: "Send inline comments from Galaxy's code review directly to Claude Code, Codex, or OpenCode",
|
||||
},
|
||||
];
|
||||
|
||||
@@ -98,7 +98,7 @@ pub fn render_welcome_banner(
|
||||
|
||||
// Title
|
||||
let title = Text::new(
|
||||
"Introducing universal agent support: level up any coding agent with Warp",
|
||||
"Introducing universal agent support: level up any coding agent with Galaxy",
|
||||
appearance.ui_font_family(),
|
||||
20.,
|
||||
)
|
||||
|
||||
@@ -8,15 +8,15 @@ use galaxyui::ViewContext;
|
||||
use super::view::Workspace;
|
||||
use crate::pane_group::{AnyPaneContent, FilePane};
|
||||
|
||||
const WARP_HOME_TITLE: &str = "Welcome to Warp on Web";
|
||||
const WARP_HOME_TITLE: &str = "Welcome to Galaxy on Web";
|
||||
const WARP_HOME_CONTENT: &str = r#"
|
||||
Welcome to Warp on Web - your browser-based home for Warp!
|
||||
Use Warp on Web to:
|
||||
Welcome to Galaxy on Web - your browser-based home for Galaxy!
|
||||
Use Galaxy on Web to:
|
||||
* Join Shared Sessions
|
||||
* Create, View, and Edit Warp Drive Objects
|
||||
* Manage your Warp Settings
|
||||
* Create, View, and Edit Galaxy Drive Objects
|
||||
* Manage your Galaxy Settings
|
||||
|
||||
Warp on Web can also be used by your teammates and peers who don't have Warp downloaded yet to view your shared sessions, notebooks, and workflows."#;
|
||||
Galaxy on Web can also be used by your teammates and peers who don't have Galaxy downloaded yet to view your shared sessions, notebooks, and workflows."#;
|
||||
|
||||
/// Create a static "home page" pane.
|
||||
pub fn create_home_pane(ctx: &mut ViewContext<Workspace>) -> Box<dyn AnyPaneContent> {
|
||||
|
||||
@@ -217,25 +217,25 @@ pub fn init(app: &mut AppContext) {
|
||||
.with_context_predicate(id!("Workspace")),
|
||||
EditableBinding::new(
|
||||
"workspace:open_openwarp_launch_modal",
|
||||
"[Debug] Open OpenWarp Launch Modal",
|
||||
"[Debug] Open OpenGalaxy Launch Modal",
|
||||
WorkspaceAction::OpenOpenWarpLaunchModal,
|
||||
)
|
||||
.with_context_predicate(id!("Workspace")),
|
||||
EditableBinding::new(
|
||||
"workspace:reset_openwarp_launch_modal_state",
|
||||
"[Debug] Reset OpenWarp Launch Modal State",
|
||||
"[Debug] Reset OpenGalaxy Launch Modal State",
|
||||
WorkspaceAction::ResetOpenWarpLaunchModalState,
|
||||
)
|
||||
.with_context_predicate(id!("Workspace")),
|
||||
EditableBinding::new(
|
||||
"workspace:install_opencode_warp_plugin",
|
||||
"[Debug] Install OpenCode Warp plugin",
|
||||
"[Debug] Install OpenCode Galaxy plugin",
|
||||
WorkspaceAction::InstallOpenCodeWarpPlugin,
|
||||
)
|
||||
.with_context_predicate(id!("Workspace")),
|
||||
EditableBinding::new(
|
||||
"workspace:use_local_opencode_warp_plugin",
|
||||
"[Debug] Use local OpenCode Warp plugin (testing only)",
|
||||
"[Debug] Use local OpenCode Galaxy plugin (testing only)",
|
||||
WorkspaceAction::UseLocalOpenCodeWarpPlugin,
|
||||
)
|
||||
.with_context_predicate(id!("Workspace")),
|
||||
@@ -790,7 +790,7 @@ pub fn init(app: &mut AppContext) {
|
||||
EditableBinding::new(
|
||||
TOGGLE_WARP_DRIVE_BINDING_NAME,
|
||||
BindingDescription::new("Toggle Galaxy Drive")
|
||||
.with_custom_description(bindings::MAC_MENUS_CONTEXT, "Warp Drive"),
|
||||
.with_custom_description(bindings::MAC_MENUS_CONTEXT, "Galaxy Drive"),
|
||||
WorkspaceAction::ToggleWarpDrive,
|
||||
)
|
||||
.with_context_predicate(id!("Workspace") & id!(flags::ENABLE_WARP_DRIVE)),
|
||||
@@ -1148,7 +1148,7 @@ pub fn init(app: &mut AppContext) {
|
||||
.with_custom_action(CustomAction::NewAgentModePane),
|
||||
EditableBinding::new(
|
||||
"workspace:toggle_ai_assistant",
|
||||
"Toggle Warp AI",
|
||||
"Toggle Galaxy AI",
|
||||
WorkspaceAction::ToggleAIAssistant,
|
||||
)
|
||||
.with_enabled(|| !FeatureFlag::AgentMode.is_enabled())
|
||||
@@ -1420,8 +1420,8 @@ fn add_open_setting_pages_as_editable_binding(app: &mut AppContext) {
|
||||
.with_context_predicate(id!("Workspace")),
|
||||
EditableBinding::new(
|
||||
"workspace:show_settings_warpify_page",
|
||||
BindingDescription::new("Open Settings: Warpify")
|
||||
.with_custom_description(bindings::MAC_MENUS_CONTEXT, "Configure Warpify..."),
|
||||
BindingDescription::new("Open Settings: Wormhole")
|
||||
.with_custom_description(bindings::MAC_MENUS_CONTEXT, "Configure Wormhole..."),
|
||||
WorkspaceAction::ShowSettingsPage(SettingsSection::Warpify),
|
||||
)
|
||||
.with_group(bindings::BindingGroup::Settings.as_str())
|
||||
@@ -1515,7 +1515,7 @@ fn add_overflow_menu_items_as_editable_binding(app: &mut AppContext) {
|
||||
#[cfg(not(target_family = "wasm"))]
|
||||
EditableBinding::new(
|
||||
"workspace:view_logs",
|
||||
"View Warp logs",
|
||||
"View Galaxy logs",
|
||||
WorkspaceAction::ViewLogs,
|
||||
)
|
||||
.with_context_predicate(id!("Workspace")),
|
||||
|
||||
+14
-14
@@ -573,7 +573,7 @@ const AI_ASSISTANT_BUTTON_ID: &str = "workspace_view:ai_assistant_button";
|
||||
|
||||
const VERSION_DEPRECATION_BANNER_TEXT: &str = "Your app is out of date and some features may not work as expected. Please update immediately.";
|
||||
|
||||
const VERSION_DEPRECATION_WITHOUT_PERMISSIONS_BANNER_TEXT: &str = "Some Warp features may not work as expected without updating immediately, but Warp is unable to perform the update.";
|
||||
const VERSION_DEPRECATION_WITHOUT_PERMISSIONS_BANNER_TEXT: &str = "Some Galaxy features may not work as expected without updating immediately, but Galaxy is unable to perform the update.";
|
||||
|
||||
const ASK_AI_ASSISTANT_KEYBINDING_NAME: &str = "workspace:toggle_ai_assistant";
|
||||
const TOGGLE_RESOURCE_CENTER_KEYBINDING_NAME: &str = "workspace:toggle_resource_center";
|
||||
@@ -6521,7 +6521,7 @@ impl Workspace {
|
||||
.into_item(),
|
||||
),
|
||||
AutoupdateStage::UnableToUpdateToNewVersion { .. } => menu_items.push(
|
||||
MenuItemFields::new("Update Warp manually")
|
||||
MenuItemFields::new("Update Galaxy manually")
|
||||
.with_on_select_action(WorkspaceAction::DownloadNewVersion)
|
||||
.into_item(),
|
||||
),
|
||||
@@ -8224,7 +8224,7 @@ impl Workspace {
|
||||
) =>
|
||||
{
|
||||
items.push(
|
||||
MenuItemFields::new("Update and relaunch Warp")
|
||||
MenuItemFields::new("Update and relaunch Galaxy")
|
||||
.with_on_select_action(WorkspaceAction::ApplyUpdate)
|
||||
.with_override_text_color(appearance.theme().ansi_fg_red())
|
||||
.into_item(),
|
||||
@@ -8247,7 +8247,7 @@ impl Workspace {
|
||||
) =>
|
||||
{
|
||||
items.push(
|
||||
MenuItemFields::new("Update Warp manually")
|
||||
MenuItemFields::new("Update Galaxy manually")
|
||||
.with_on_select_action(WorkspaceAction::DownloadNewVersion)
|
||||
.with_override_text_color(appearance.theme().ansi_fg_red())
|
||||
.into_item(),
|
||||
@@ -8278,7 +8278,7 @@ impl Workspace {
|
||||
|
||||
#[cfg(not(target_family = "wasm"))]
|
||||
items.push(
|
||||
MenuItemFields::new("View Warp logs")
|
||||
MenuItemFields::new("View Galaxy logs")
|
||||
.with_on_select_action(WorkspaceAction::ViewLogs)
|
||||
.into_item(),
|
||||
);
|
||||
@@ -12038,7 +12038,7 @@ impl Workspace {
|
||||
let url = NOTIFICATIONS_TROUBLESHOOT_URL.to_string();
|
||||
view.toast_stack.update(ctx, |toast_stack, ctx| {
|
||||
let toast = DismissibleToast::error(
|
||||
"Warp doesn't have permission to send desktop notifications.".to_string(),
|
||||
"Galaxy doesn't have permission to send desktop notifications.".to_string(),
|
||||
)
|
||||
.with_link(ToastLink::new("Troubleshoot notifications".to_string()).with_href(url));
|
||||
toast_stack.add_persistent_toast(toast, ctx);
|
||||
@@ -12639,7 +12639,7 @@ impl Workspace {
|
||||
link = link.with_keystroke(keystroke);
|
||||
}
|
||||
|
||||
let toast = DismissibleToast::default(String::from("Warp updated!"))
|
||||
let toast = DismissibleToast::default(String::from("Galaxy updated!"))
|
||||
.with_link(link);
|
||||
|
||||
stack.add_ephemeral_toast(toast, ctx);
|
||||
@@ -15734,7 +15734,7 @@ impl Workspace {
|
||||
let command = code.trim().to_string();
|
||||
let args_state =
|
||||
ArgumentsState::for_command_workflow(&Default::default(), command.clone());
|
||||
let workflow = Workflow::new("Command from Warp AI", command)
|
||||
let workflow = Workflow::new("Command from Galaxy AI", command)
|
||||
.with_arguments(args_state.arguments);
|
||||
self.run_workflow_in_active_input(
|
||||
&WorkflowType::AIGenerated {
|
||||
@@ -16455,7 +16455,7 @@ impl Workspace {
|
||||
let body = appearance
|
||||
.ui_builder()
|
||||
.wrappable_text(
|
||||
"Ask Warp AI to explain errors, suggest commands or write scripts.".to_owned(),
|
||||
"Ask Galaxy AI to explain errors, suggest commands or write scripts.".to_owned(),
|
||||
true,
|
||||
)
|
||||
.with_style(UiComponentStyles {
|
||||
@@ -18234,7 +18234,7 @@ impl Workspace {
|
||||
if is_incoming_version_past_current(new_version.soft_cutoff.as_deref()) {
|
||||
VERSION_DEPRECATION_WITHOUT_PERMISSIONS_BANNER_TEXT.to_owned()
|
||||
} else {
|
||||
"A new version is available but Warp is unable to perform the update."
|
||||
"A new version is available but Galaxy is unable to perform the update."
|
||||
.to_owned()
|
||||
};
|
||||
|
||||
@@ -18245,7 +18245,7 @@ impl Workspace {
|
||||
description,
|
||||
secondary_button: None,
|
||||
button: Some(WorkspaceBannerButtonDetails {
|
||||
text: "Update Warp manually".to_string(),
|
||||
text: "Update Galaxy manually".to_string(),
|
||||
action: WorkspaceAction::DownloadNewVersion,
|
||||
variant: BannerButtonVariant::Outlined,
|
||||
icon: None,
|
||||
@@ -18260,7 +18260,7 @@ impl Workspace {
|
||||
if is_incoming_version_past_current(new_version.soft_cutoff.as_deref()) {
|
||||
VERSION_DEPRECATION_WITHOUT_PERMISSIONS_BANNER_TEXT.to_owned()
|
||||
} else {
|
||||
"Warp was unable to launch the new installed version.".to_owned()
|
||||
"Galaxy was unable to launch the new installed version.".to_owned()
|
||||
};
|
||||
|
||||
Some(WorkspaceBannerFields {
|
||||
@@ -18270,7 +18270,7 @@ impl Workspace {
|
||||
description,
|
||||
secondary_button: None,
|
||||
button: Some(WorkspaceBannerButtonDetails {
|
||||
text: "Update Warp manually".to_string(),
|
||||
text: "Update Galaxy manually".to_string(),
|
||||
action: WorkspaceAction::DownloadNewVersion,
|
||||
variant: BannerButtonVariant::Outlined,
|
||||
icon: None,
|
||||
@@ -19526,7 +19526,7 @@ impl Workspace {
|
||||
// Many users' browser settings will block Local Network Access so this will end up redirecting to download page,
|
||||
// even if they have the app installed.
|
||||
let toast_message = format!(
|
||||
"Have Warp installed but redirecting to download page?\nEnable Local Network Access for {} in your browser.",
|
||||
"Have Galaxy installed but redirecting to download page?\nEnable Local Network Access for {} in your browser.",
|
||||
ChannelState::server_root_url()
|
||||
);
|
||||
self.toast_stack.update(ctx, |toast_stack, ctx| {
|
||||
|
||||
@@ -515,7 +515,7 @@ impl BuildPlanMigrationModal {
|
||||
let title_text = if is_business {
|
||||
"Welcome to the New Business Plan"
|
||||
} else {
|
||||
"Welcome to Warp Build"
|
||||
"Welcome to Galaxy Build"
|
||||
};
|
||||
|
||||
let title = Self::create_text(
|
||||
@@ -527,9 +527,9 @@ impl BuildPlanMigrationModal {
|
||||
);
|
||||
|
||||
let intro_text = if is_business {
|
||||
"Your workspace has been updated to the new Warp Business Plan as the legacy Business plan is sunset."
|
||||
"Your workspace has been updated to the new Galaxy Business Plan as the legacy Business plan is sunset."
|
||||
} else {
|
||||
"Your workspace has been updated to the Warp Build Plan as the legacy Pro, Turbo, and Lightspeed plans are sunset."
|
||||
"Your workspace has been updated to the Galaxy Build Plan as the legacy Pro, Turbo, and Lightspeed plans are sunset."
|
||||
};
|
||||
|
||||
let intro = Self::create_text(intro_text.to_string(), font_family, 14., text_color, None);
|
||||
@@ -538,7 +538,7 @@ impl BuildPlanMigrationModal {
|
||||
if is_business {
|
||||
"The new Business plan is a primarily usage-based plan, starting at:"
|
||||
} else {
|
||||
"Warp Build is a primarily usage-based plan, starting at:"
|
||||
"Galaxy Build is a primarily usage-based plan, starting at:"
|
||||
}
|
||||
.to_string(),
|
||||
font_family,
|
||||
|
||||
@@ -109,7 +109,7 @@ impl CodexModal {
|
||||
|
||||
// Title
|
||||
let title = FormattedTextElement::from_str(
|
||||
"Use Codex models in Warp",
|
||||
"Use Codex models in Galaxy",
|
||||
appearance.ui_font_family(),
|
||||
24.,
|
||||
)
|
||||
|
||||
@@ -81,7 +81,7 @@ impl Slide for OzLaunchSlide {
|
||||
}
|
||||
OzLaunchSlide::AgentManagement => "Track local and cloud agents seamlessly",
|
||||
OzLaunchSlide::LaunchCredits => {
|
||||
"1,000 free cloud agent credits when you upgrade to Warp Build"
|
||||
"1,000 free cloud agent credits when you upgrade to Galaxy Build"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -99,10 +99,10 @@ impl Slide for OzLaunchSlide {
|
||||
"Oz agents can be defined using the standard Skills format. You can use the built in scheduler to setup agents to run autonomously at set intervals, or use the Oz SDK or API to programmatically start and manage Oz agents."
|
||||
}
|
||||
OzLaunchSlide::AgentManagement => {
|
||||
"View all of your agents across local and cloud sessions in the Warp app or at [oz.warp.dev](https://oz.warp.dev). Join live agent sessions, continue tasks locally, and steer agents with one click."
|
||||
"View all of your agents across local and cloud sessions in the Galaxy app or at [oz.warp.dev](https://oz.warp.dev). Join live agent sessions, continue tasks locally, and steer agents with one click."
|
||||
}
|
||||
OzLaunchSlide::LaunchCredits => {
|
||||
"Upgrade to Build this month and receive 1,000 extra credits to try using Oz. Credits are only eligible for Oz runs in Warp-hosted cloud environments."
|
||||
"Upgrade to Build this month and receive 1,000 extra credits to try using Oz. Credits are only eligible for Oz runs in Galaxy-hosted cloud environments."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -417,7 +417,7 @@ impl LeftPanelView {
|
||||
ToolbeltButtonConfig {
|
||||
icon: Icon::WarpDrive,
|
||||
active_icon: None,
|
||||
tooltip_text: "Warp Drive".to_string(),
|
||||
tooltip_text: "Galaxy Drive".to_string(),
|
||||
action: LeftPanelAction::WarpDrive,
|
||||
render_with_active_state: false,
|
||||
tooltip_keybinding: toolbelt_tooltip_keybinding(&tooltip_keybinding_names, ctx),
|
||||
|
||||
@@ -45,7 +45,7 @@ const FEATURE_ITEMS: &[FeatureItem] = &[
|
||||
FeatureItem {
|
||||
icon: Icon::HeartHand,
|
||||
title: "Contribute",
|
||||
description: "Warp's client code is now open source. Get started by using the /feedback skill to open an issue, and follow the contribution guidelines here.",
|
||||
description: "Galaxy's client code is now open source. Get started by using the /feedback skill to open an issue, and follow the contribution guidelines here.",
|
||||
inline_link: Some(InlineLink {
|
||||
text: "here",
|
||||
url: CONTRIBUTING_URL,
|
||||
@@ -54,7 +54,7 @@ const FEATURE_ITEMS: &[FeatureItem] = &[
|
||||
FeatureItem {
|
||||
icon: Icon::Oz,
|
||||
title: "Open Automated Development",
|
||||
description: "The Warp repo is managed by an agent-first workflow powered by Oz, our cloud agent orchestration platform.",
|
||||
description: "The Galaxy repo is managed by an agent-first workflow powered by Oz, our cloud agent orchestration platform.",
|
||||
inline_link: Some(InlineLink {
|
||||
text: "Oz",
|
||||
url: OZ_URL,
|
||||
@@ -203,7 +203,7 @@ impl OpenWarpLaunchModal {
|
||||
}
|
||||
|
||||
fn render_title(appearance: &Appearance) -> Box<dyn Element> {
|
||||
Text::new("Warp is now open-source", appearance.ui_font_family(), 20.)
|
||||
Text::new("Galaxy is now open-source", appearance.ui_font_family(), 20.)
|
||||
.with_color(PhenomenonStyle::modal_title_text())
|
||||
.with_style(Properties::default().weight(Weight::Semibold))
|
||||
.finish()
|
||||
@@ -211,7 +211,7 @@ impl OpenWarpLaunchModal {
|
||||
|
||||
fn render_description(appearance: &Appearance) -> Box<dyn Element> {
|
||||
Text::new(
|
||||
"You, our community, can participate in building Warp using an agent-first workflow.",
|
||||
"You, our community, can participate in building Galaxy using an agent-first workflow.",
|
||||
appearance.ui_font_family(),
|
||||
14.,
|
||||
)
|
||||
|
||||
@@ -97,7 +97,7 @@ impl ReviewTerminalUnavailableReason {
|
||||
Self::NoSelectedRepo => "no repo is selected for code review",
|
||||
Self::SessionPathUnavailable => "session cwd is unavailable or not local",
|
||||
Self::SessionOutsideSelectedRepo => "session cwd is not inside selected repo",
|
||||
Self::AIDisabled => "AI is disabled for Warp review destinations",
|
||||
Self::AIDisabled => "AI is disabled for Galaxy review destinations",
|
||||
Self::TerminalExecuting => "terminal is currently executing a command",
|
||||
Self::InputBoxNotVisible => "terminal input box is not visible",
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ impl Workspace {
|
||||
ctx: &mut ViewContext<Self>,
|
||||
) -> ViewHandle<ActionButton> {
|
||||
ctx.add_typed_action_view(|_ctx| {
|
||||
ActionButton::new("Open in Warp", PrimaryTheme).on_click(move |ctx| {
|
||||
ActionButton::new("Open in Galaxy", PrimaryTheme).on_click(move |ctx| {
|
||||
// Get the current URL and dispatch action to open it on desktop
|
||||
if let Some(url) = parse_current_url() {
|
||||
ctx.dispatch_typed_action(WorkspaceAction::OpenLinkOnDesktop(url));
|
||||
|
||||
Reference in New Issue
Block a user