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
@@ -5,7 +5,11 @@ use super::{
|
||||
},
|
||||
SettingsSection,
|
||||
};
|
||||
use crate::{appearance::Appearance, channel::ChannelState, workspace::WorkspaceAction};
|
||||
use crate::{
|
||||
appearance::Appearance, channel::ChannelState, settings::app_icon::AppIconSettings,
|
||||
workspace::WorkspaceAction,
|
||||
};
|
||||
use galaxyui::SingletonEntity;
|
||||
use galaxyui::{
|
||||
assets::asset_cache::AssetSource,
|
||||
elements::{
|
||||
@@ -62,7 +66,15 @@ impl SettingsWidget for AboutPageWidget {
|
||||
) -> Box<dyn Element> {
|
||||
let ui_builder = appearance.ui_builder();
|
||||
|
||||
let image_path = "bundled/svg/galaxy-logo.svg";
|
||||
let icon_file = AppIconSettings::get_base_icon_file_name(*AppIconSettings::as_ref(_app).app_icon);
|
||||
let image_path = match icon_file {
|
||||
"galaxy" => "bundled/png/galaxy.png",
|
||||
"galaxy_dotmatrix" => "bundled/png/galaxy_dotmatrix.png",
|
||||
"galaxy_explorer" => "bundled/png/galaxy_explorer.png",
|
||||
"galaxy_rainbow" => "bundled/png/galaxy_rainbow.png",
|
||||
"galaxy_wormhole" => "bundled/png/galaxy_wormhole.png",
|
||||
_ => "bundled/png/galaxy.png",
|
||||
};
|
||||
|
||||
let version =
|
||||
ChannelState::app_version().unwrap_or(concat!("v", env!("CARGO_PKG_VERSION")));
|
||||
|
||||
@@ -24,7 +24,7 @@ use crate::settings::{
|
||||
AIAutoDetectionEnabled, AICommandDenylist, AISettingsChangedEvent,
|
||||
AgentModeCodingPermissionsType, AgentModeCommandExecutionDenylist,
|
||||
AgentModeCommandExecutionPredicate, AgentModeQuerySuggestionsEnabled, BedrockAuthMethod,
|
||||
BedrockAutoLogin, BedrockCrossRegionInference, BedrockEnabled, BedrockFallbackToWarp,
|
||||
BedrockAutoLogin, BedrockCrossRegionInference, BedrockEnabled,
|
||||
CodeSettings, CodebaseContextEnabled, FileBasedMcpEnabled, GitOperationsAutogenEnabled,
|
||||
IncludeAgentCommandsInHistory, IntelligentAutosuggestionsEnabled, MemoryEnabled,
|
||||
NLDInTerminalEnabled, NaturalLanguageAutosuggestionsEnabled, RuleSuggestionsEnabled,
|
||||
@@ -5837,7 +5837,6 @@ mod tests;
|
||||
struct BedrockSettingsWidget {
|
||||
enabled_toggle: SwitchStateHandle,
|
||||
cross_region_toggle: SwitchStateHandle,
|
||||
fallback_toggle: SwitchStateHandle,
|
||||
auto_login_toggle: SwitchStateHandle,
|
||||
auth_method_dropdown: ViewHandle<Dropdown<AISettingsPageAction>>,
|
||||
profile_dropdown: ViewHandle<Dropdown<AISettingsPageAction>>,
|
||||
@@ -6092,7 +6091,6 @@ impl BedrockSettingsWidget {
|
||||
Self {
|
||||
enabled_toggle: SwitchStateHandle::default(),
|
||||
cross_region_toggle: SwitchStateHandle::default(),
|
||||
fallback_toggle: SwitchStateHandle::default(),
|
||||
auto_login_toggle: SwitchStateHandle::default(),
|
||||
auth_method_dropdown,
|
||||
profile_dropdown,
|
||||
@@ -6163,7 +6161,6 @@ impl SettingsWidget for BedrockSettingsWidget {
|
||||
let is_enabled = *ai_settings.bedrock_enabled.value();
|
||||
let auth_method = ai_settings.bedrock_auth_method.value().clone();
|
||||
let cross_region = *ai_settings.bedrock_cross_region_inference.value();
|
||||
let fallback = *ai_settings.bedrock_fallback_to_warp.value();
|
||||
let auto_login = *ai_settings.bedrock_auto_login.value();
|
||||
|
||||
let mut column = Flex::column().with_spacing(16.);
|
||||
@@ -6297,24 +6294,6 @@ impl SettingsWidget for BedrockSettingsWidget {
|
||||
.finish(),
|
||||
);
|
||||
|
||||
column.add_child(
|
||||
Flex::column()
|
||||
.with_child(render_ai_setting_toggle::<BedrockFallbackToWarp>(
|
||||
"Fallback to Warp server",
|
||||
AISettingsPageAction::ToggleBedrockFallbackToWarp,
|
||||
fallback,
|
||||
is_enabled,
|
||||
self.fallback_toggle.clone(),
|
||||
&RefCell::new(HashMap::new()),
|
||||
app,
|
||||
))
|
||||
.with_child(render_ai_setting_description(
|
||||
"When enabled, requests will route through the Warp server if Bedrock credentials are invalid.",
|
||||
is_enabled,
|
||||
app,
|
||||
))
|
||||
.finish(),
|
||||
);
|
||||
|
||||
column.add_child(render_separator(appearance));
|
||||
|
||||
|
||||
@@ -1546,23 +1546,11 @@ impl AppearanceSettingsPageView {
|
||||
|
||||
fn app_icon_dropdown_item_label(val: AppIcon) -> &'static str {
|
||||
match val {
|
||||
AppIcon::Aurora => "Aurora",
|
||||
AppIcon::Default => "Default",
|
||||
AppIcon::Classic1 => "Classic 1",
|
||||
AppIcon::Classic2 => "Classic 2",
|
||||
AppIcon::Classic3 => "Classic 3",
|
||||
AppIcon::Comets => "Comets",
|
||||
AppIcon::GlassSky => "Glass Sky",
|
||||
AppIcon::Glitch => "Glitch",
|
||||
AppIcon::Cow => "Cow",
|
||||
AppIcon::Glow => "Glow",
|
||||
AppIcon::Holographic => "Holographic",
|
||||
AppIcon::Mono => "Mono",
|
||||
AppIcon::Neon => "Neon",
|
||||
AppIcon::Original => "Original",
|
||||
AppIcon::Starburst => "Starburst",
|
||||
AppIcon::Sticker => "Sticker",
|
||||
AppIcon::WarpOne => "Warp 1",
|
||||
AppIcon::Galaxy => "Galaxy",
|
||||
AppIcon::DotMatrix => "Dot Matrix",
|
||||
AppIcon::Explorer => "Explorer",
|
||||
AppIcon::Rainbow => "Rainbow",
|
||||
AppIcon::Wormhole => "Wormhole",
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2967,9 +2955,9 @@ impl SettingsWidget for CustomAppIconWidget {
|
||||
|
||||
let app_icon_at_startup = AppearanceManager::as_ref(_app).app_icon_at_startup();
|
||||
let current_icon = *AppIconSettings::as_ref(_app).app_icon;
|
||||
if current_icon == AppIcon::Default
|
||||
if current_icon == AppIcon::Galaxy
|
||||
&& ChannelState::channel() != Channel::Local
|
||||
&& app_icon_at_startup != AppIcon::Default
|
||||
&& app_icon_at_startup != AppIcon::Galaxy
|
||||
{
|
||||
let theme = appearance.theme();
|
||||
return Flex::column()
|
||||
@@ -2978,7 +2966,7 @@ impl SettingsWidget for CustomAppIconWidget {
|
||||
appearance
|
||||
.ui_builder()
|
||||
.wrappable_text(
|
||||
"You may need to restart Warp for MacOS to apply the preferred icon style.",
|
||||
"You may need to restart Galaxy for MacOS to apply the preferred icon style.",
|
||||
true,
|
||||
)
|
||||
.with_style(UiComponentStyles {
|
||||
|
||||
@@ -363,7 +363,7 @@ impl View for ExecutionProfileView {
|
||||
permissions_column.add_child(with_standard_vertical_margin(
|
||||
render_bool_permission_line_with_icon(
|
||||
Icon::Compass,
|
||||
"Auto-sync plans to Warp Drive:",
|
||||
"Auto-sync plans to Galaxy Drive:",
|
||||
profile.autosync_plans_to_warp_drive,
|
||||
appearance,
|
||||
is_any_ai_enabled,
|
||||
|
||||
@@ -239,7 +239,7 @@ impl Display for SettingsSection {
|
||||
SettingsSection::Knowledge => write!(f, "Knowledge"),
|
||||
SettingsSection::ThirdPartyCLIAgents => write!(f, "Third party CLI agents"),
|
||||
SettingsSection::Bedrock => write!(f, "AWS Bedrock"),
|
||||
SettingsSection::Warpify => write!(f, "Galaxyize"),
|
||||
SettingsSection::Warpify => write!(f, "Wormhole"),
|
||||
SettingsSection::CodeIndexing => write!(f, "Indexing and projects"),
|
||||
SettingsSection::EditorAndCodeReview => write!(f, "Editor and Code Review"),
|
||||
_ => write!(f, "{self:?}"),
|
||||
@@ -318,7 +318,7 @@ impl FromStr for SettingsSection {
|
||||
"Features" => Ok(Self::Features),
|
||||
"Keyboard shortcuts" => Ok(Self::Keybindings),
|
||||
"Privacy" => Ok(Self::Privacy),
|
||||
"Warpify" | "Galaxyize" => Ok(Self::Warpify),
|
||||
"Warpify" | "Wormhole" => Ok(Self::Warpify),
|
||||
"WarpDrive" | "Warp Drive" | "Galaxy Drive" => Ok(Self::WarpDrive),
|
||||
// This page was called "Oz" at one point, keep for backward compatibility.
|
||||
"Oz" | "Warp Agent" | "Galaxy Agent" => Ok(Self::WarpAgent),
|
||||
|
||||
@@ -379,7 +379,7 @@ impl PlatformPageWidget {
|
||||
appearance: &Appearance,
|
||||
) -> Box<dyn Element> {
|
||||
let text = vec![
|
||||
FormattedTextFragment::plain_text("Create and manage API keys to allow other Oz cloud agents to access your Warp account.\nFor more information, visit the "),
|
||||
FormattedTextFragment::plain_text("Create and manage API keys to allow other Oz cloud agents to access your Galaxy account.\nFor more information, visit the "),
|
||||
FormattedTextFragment::hyperlink("Documentation.", API_KEY_DOCS_URL),
|
||||
];
|
||||
|
||||
@@ -670,7 +670,7 @@ impl PlatformPageWidget {
|
||||
.with_child(
|
||||
Container::new(
|
||||
Text::new(
|
||||
"Create a key to manage external access to Warp",
|
||||
"Create a key to manage external access to Galaxy",
|
||||
appearance.ui_font_family(),
|
||||
CONTENT_FONT_SIZE,
|
||||
)
|
||||
|
||||
@@ -73,10 +73,10 @@ const FONT_SIZE: f32 = 12.;
|
||||
|
||||
const SAFE_MODE_TITLE: &str = "Secret redaction";
|
||||
static SAFE_MODE_DESCRIPTION: LazyLock<&'static str> = LazyLock::new(|| {
|
||||
"When this setting is enabled, Warp will scan blocks, the contents of \
|
||||
Warp Drive objects, and Oz prompts for potential sensitive \
|
||||
information and prevent saving or sending this data to any \
|
||||
servers. You can customize this list via regexes."
|
||||
"When this setting is enabled, Galaxy will scan blocks and the contents of \
|
||||
Galaxy Drive objects for potential sensitive information and prevent \
|
||||
saving or sending this data to any servers. You can customize this \
|
||||
list via regexes."
|
||||
});
|
||||
const USER_SECRET_REGEX_TITLE: &str = "Custom secret redaction";
|
||||
const USER_SECRET_REGEX_DESCRIPTION: &str =
|
||||
@@ -86,10 +86,10 @@ const USER_SECRET_REGEX_DESCRIPTION: &str =
|
||||
const TELEMETRY_DESCRIPTION_OLD: &str =
|
||||
"App analytics help us make the product better for you. We only collect \
|
||||
app usage metadata, never console input or output.";
|
||||
const TELEMETRY_TITLE: &str = "Help improve Warp";
|
||||
const TELEMETRY_TITLE: &str = "Help improve Galaxy";
|
||||
const TELEMETRY_DESCRIPTION: &str =
|
||||
"App analytics help us make the product better for you. We may collect \
|
||||
certain console interactions to improve Warp's AI capabilities.";
|
||||
certain console interactions to improve Galaxy's AI capabilities.";
|
||||
const TELEMETRY_FREE_TIER_NOTE: &str =
|
||||
"On the free tier, analytics must be enabled to use AI features.";
|
||||
const TELEMETRY_DOCS_URL: &str =
|
||||
@@ -1533,7 +1533,7 @@ impl SettingsWidget for AppAnalyticsWidget {
|
||||
Align::new(
|
||||
ui_builder
|
||||
.link(
|
||||
"Read more about Warp's use of data".into(),
|
||||
"Read more about Galaxy's use of data".into(),
|
||||
Some(TELEMETRY_DOCS_URL.into()),
|
||||
None,
|
||||
self.docs_link_mouse_state.clone(),
|
||||
@@ -1659,9 +1659,8 @@ impl SettingsWidget for NetworkLogWidget {
|
||||
.with_child(
|
||||
ui_builder
|
||||
.paragraph(
|
||||
"We've built a native console that allows you to view all communications \
|
||||
from Warp to external servers to ensure you feel comfortable that your \
|
||||
work is always kept safe."
|
||||
"This tool uses AWS Bedrock and is subject to its data collection practices. \
|
||||
No data is stored locally by Galaxy."
|
||||
.to_owned(),
|
||||
)
|
||||
.with_style(UiComponentStyles {
|
||||
|
||||
@@ -1779,9 +1779,9 @@ impl TeamsWidget {
|
||||
has_admin_permissions: bool,
|
||||
) -> Box<dyn Element> {
|
||||
let prorated_message = if has_admin_permissions {
|
||||
"You'll be charged for a portion of the team member's usage of Warp."
|
||||
"You'll be charged for a portion of the team member's usage of Galaxy."
|
||||
} else {
|
||||
"Your admin will be charged for a portion of the team member's usage of Warp."
|
||||
"Your admin will be charged for a portion of the team member's usage of Galaxy."
|
||||
};
|
||||
|
||||
let additional_members_cost_money_msg = if let Some((monthly_cost, yearly_cost)) =
|
||||
@@ -2977,7 +2977,7 @@ impl TeamsWidget {
|
||||
// Instruction text for toggle
|
||||
let domain = current_user_email.split('@').nth(1).unwrap_or("");
|
||||
let team_discoverability_instructions =
|
||||
format!("Allow Warp users with an @{domain} email to find and join the team.");
|
||||
format!("Allow Galaxy users with an @{domain} email to find and join the team.");
|
||||
section.add_child(
|
||||
Container::new(self.render_sub_text(
|
||||
team_discoverability_instructions,
|
||||
@@ -3683,9 +3683,9 @@ impl TeamsWidget {
|
||||
.with_margin_left(-4.)
|
||||
.finish();
|
||||
let checkbox_row_text = if let Some(domain) = view.auth_state.user_email_domain() {
|
||||
format!("Allow Warp users with an @{domain} email to find and join the team.")
|
||||
format!("Allow Galaxy users with an @{domain} email to find and join the team.")
|
||||
} else {
|
||||
"Allow Warp users with the same email domain as you to find and join the team."
|
||||
"Allow Galaxy users with the same email domain as you to find and join the team."
|
||||
.to_string()
|
||||
};
|
||||
let checkbox_row = Container::new(
|
||||
|
||||
@@ -3063,7 +3063,7 @@ impl UpdateEnvironmentForm {
|
||||
"Suggest image"
|
||||
};
|
||||
|
||||
let tooltip_text = "Warp will suggest a Docker image based on your selected repositories.";
|
||||
let tooltip_text = "Galaxy will suggest a Docker image based on your selected repositories.";
|
||||
|
||||
let button = Hoverable::new(
|
||||
self.suggest_image_button_mouse_state.clone(),
|
||||
|
||||
@@ -139,7 +139,7 @@ impl SettingsWidget for WarpDriveHeaderWidget {
|
||||
|
||||
let message = Container::new(
|
||||
Text::new_inline(
|
||||
"To use Warp Drive, please create an account.".to_string(),
|
||||
"To use Galaxy Drive, please create an account.".to_string(),
|
||||
appearance.ui_font_family(),
|
||||
14.,
|
||||
)
|
||||
@@ -218,7 +218,7 @@ impl SettingsWidget for WarpDriveToggleWidget {
|
||||
.is_anonymous_or_logged_out();
|
||||
|
||||
render_body_item::<WarpDriveSettingsPageAction>(
|
||||
"Warp Drive".into(),
|
||||
"Galaxy Drive".into(),
|
||||
Some(AdditionalInfo {
|
||||
mouse_state: self.info_icon_mouse_state.clone(),
|
||||
on_click_action: Some(WarpDriveSettingsPageAction::OpenUrl(
|
||||
@@ -248,7 +248,7 @@ impl SettingsWidget for WarpDriveToggleWidget {
|
||||
}
|
||||
})
|
||||
.finish(),
|
||||
Some("Warp Drive is a workspace in your terminal where you can save Workflows, Notebooks, Prompts, and Environment Variables for personal use or to share with a team.".into()),
|
||||
Some("Galaxy Drive is a workspace in your terminal where you can save Workflows, Notebooks, Prompts, and Environment Variables for personal use or to share with a team.".into()),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -185,7 +185,7 @@ impl WarpifyPageView {
|
||||
{
|
||||
categories.push(
|
||||
Category::new("SSH", vec![Box::new(SSHWidget::default())])
|
||||
.with_subtitle("Galaxyize your interactive SSH sessions."),
|
||||
.with_subtitle("Wormhole your interactive SSH sessions."),
|
||||
);
|
||||
}
|
||||
PageType::new_categorized(categories, None)
|
||||
@@ -532,7 +532,7 @@ impl TitleWidget {
|
||||
fn render_top_of_page(&self, appearance: &Appearance, _app: &AppContext) -> Box<dyn Element> {
|
||||
let warpify_description = vec![
|
||||
FormattedTextFragment::plain_text(
|
||||
"Configure whether Galaxy attempts to \u{201c}Galaxyize\u{201d} (add support for blocks, \
|
||||
"Configure whether Galaxy attempts to \u{201c}Wormhole\u{201d} (add support for blocks, \
|
||||
input modes, etc) certain shells. ",
|
||||
),
|
||||
FormattedTextFragment::hyperlink(
|
||||
@@ -556,7 +556,7 @@ impl TitleWidget {
|
||||
.finish();
|
||||
|
||||
Flex::column()
|
||||
.with_child(render_page_title("Galaxyize", HEADER_FONT_SIZE, appearance))
|
||||
.with_child(render_page_title("Wormhole", HEADER_FONT_SIZE, appearance))
|
||||
.with_child(warpify_description)
|
||||
.finish()
|
||||
}
|
||||
@@ -682,7 +682,7 @@ impl SettingsWidget for SSHWidget {
|
||||
&WarpifySettings::as_ref(app).enable_ssh_warpification,
|
||||
move || {
|
||||
render_body_item::<WarpifyPageAction>(
|
||||
"Galaxyize SSH Sessions".into(),
|
||||
"Wormhole SSH Sessions".into(),
|
||||
None,
|
||||
LocalOnlyIconState::for_setting(
|
||||
EnableSshWarpification::storage_key(),
|
||||
|
||||
Reference in New Issue
Block a user