Remove Warp cloud features and OpenTelemetry

Settings cleanup:
- Remove billing_and_usage, main_page, referrals_page, show_blocks_view,
  environments_page, handoff_environment_creation_modal,
  custom_inference_modal, remove_custom_endpoint_confirmation_dialog,
  transfer_ownership_confirmation_modal, delete_environment_confirmation_dialog
- Remove SettingsSection variants: Account, BillingAndUsage, Referrals,
  SharedBlocks, CloudEnvironments, OzCloudAPIKeys
- Remove SettingsPageViewHandle variants: Main, BillingAndUsage, Referrals,
  CloudEnvironments, OzCloudAPIKeys, SharedBlocks
- Add Platform variant for PlatformPageView
- Gut custom inference endpoint UI from ai_page.rs
- Gut transfer ownership modal from teams_page.rs
- Stub environment_management_pane as dead code
- Remove create_discount_badge usage
- Remove handle_experiment_change call

OpenTelemetry removal:
- Remove opentelemetry, opentelemetry-http, opentelemetry-otlp,
  opentelemetry_sdk, tracing-opentelemetry dependencies
- Replace tracing module with no-op stub
- Delete native.rs and cloud_agent_auth.rs

Bug fixes (prior work):
- Fix apply_diffs() to use markdown_unescaped(ctx)
- Fix notebook executor AIDocumentId handling
- Fix margin/corner-radius consistency in requested_command.rs
- Add document tool handlers to extract_tool_result_content()
- Fix deprecated from_byte_stream in MCP SSE transport
- Fix Cargo.toml profile package spec
- Upgrade rust-toolchain to 1.94.1
This commit is contained in:
Ryan Ward
2026-07-23 11:14:49 -05:00
parent ca2cf6f8d6
commit 856a6cd6f3
61 changed files with 953 additions and 22422 deletions
+4 -121
View File
@@ -5,10 +5,7 @@ use std::str::FromStr;
use about_page::AboutPageView;
use ai_page::{AISettingsPageAction, AISettingsPageEvent, AISettingsPageView, AISubpage};
use appearance_page::{AppearancePageAction, AppearanceSettingsPageView};
use billing_and_usage_dispatch::BillingAndUsageDispatchView;
use billing_and_usage_page::BillingAndUsagePageEvent;
use code_page::{CodeSettingsPageAction, CodeSettingsPageEvent, CodeSubpage};
use environments_page::EnvironmentsPageView;
use features_page::{FeaturesPageView, FeaturesSettingsPageEvent};
use galaxy_core::channel::ChannelState;
use galaxy_core::context_flag::ContextFlag;
@@ -32,19 +29,16 @@ use galaxyui::{
};
use itertools::Itertools as _;
use keybindings::KeybindingsView;
use main_page::{MainPageAction, MainSettingsPageEvent, MainSettingsPageView};
use mcp_servers_page::MCPServersSettingsPageView;
use nav::{SettingsNavItem, SettingsUmbrella};
use pathfinder_geometry::vector::Vector2F;
use privacy_page::{PrivacyPageView, PrivacyPageViewEvent};
use referrals_page::{ReferralsPageEvent, ReferralsPageView};
use scripting_page::ScriptingSettingsPageView;
use settings_file_footer::{render_footer, SettingsFooterKind, SettingsFooterMouseStates};
use settings_page::{
MatchData, SettingsPage, SettingsPageEvent, SettingsPageMeta, SettingsPageViewHandle,
HEADER_PADDING,
};
use show_blocks_view::{ShowBlocksEvent, ShowBlocksView};
use teams_page::{TeamsPageView, TeamsPageViewEvent};
use warpify_page::{WarpifyPageAction, WarpifyPageView};
@@ -77,22 +71,13 @@ mod admin_actions;
mod agent_assisted_environment_modal;
mod ai_page;
mod appearance_page;
mod billing_and_usage;
mod billing_and_usage_dispatch;
mod billing_and_usage_page;
mod billing_and_usage_page_v2;
mod code_page;
pub(crate) mod custom_inference_modal;
mod custom_router_view;
mod delete_environment_confirmation_dialog;
mod directory_color_add_picker;
pub(crate) mod environments_page;
mod execution_profile_view;
mod features;
mod features_page;
pub(crate) mod handoff_environment_creation_modal;
pub mod keybindings;
mod main_page;
pub mod mcp_servers;
pub mod mcp_servers_page;
mod nav;
@@ -101,17 +86,13 @@ mod platform;
mod platform_page;
mod privacy;
mod privacy_page;
mod referrals_page;
mod remove_custom_endpoint_confirmation_dialog;
mod scripting_page;
mod set_default_model_modal;
mod settings_file_footer;
pub(crate) mod settings_page;
mod show_blocks_view;
mod tab_menu;
mod teams_page;
mod telemetry;
mod transfer_ownership_confirmation_modal;
pub mod update_environment_form;
mod warp_drive_page;
mod warpify_page;
@@ -119,10 +100,8 @@ mod warpify_page;
#[cfg(not(target_family = "wasm"))]
pub(crate) use ai_page::cli_agent_settings_widget_id;
pub(crate) use ai_page::custom_model_routers_widget_id;
pub use billing_and_usage_page::create_discount_badge;
pub use code_page::CodeSettingsPageView;
pub use features_page::FeaturesPageAction;
pub use main_page::handle_experiment_change;
pub use privacy_page::PrivacyPageAction;
pub use settings_page::{
render_body_item_label, render_info_icon, render_input_list, render_separator, AdditionalInfo,
@@ -245,17 +224,13 @@ pub enum SettingsViewEvent {
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash)]
pub enum SettingsSection {
About,
Account,
MCPServers,
BillingAndUsage,
#[default]
Appearance,
Features,
Keybindings,
Privacy,
Referrals,
Scripting,
SharedBlocks,
Teams,
WarpDrive,
Warpify,
@@ -280,11 +255,6 @@ pub enum SettingsSection {
// ── Code umbrella subpages ──
CodeIndexing,
EditorAndCodeReview,
// Dead variants — pages removed from nav but files still reference these
#[allow(dead_code)]
CloudEnvironments,
#[allow(dead_code)]
OzCloudAPIKeys,
}
use std::fmt::{self, Display};
@@ -294,7 +264,6 @@ use crate::util::bindings::custom_tag_to_keystroke;
impl Display for SettingsSection {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
SettingsSection::BillingAndUsage => write!(f, "Billing and usage"),
SettingsSection::Keybindings => write!(f, "Keyboard shortcuts"),
SettingsSection::MCPServers => write!(f, "MCP Servers"),
SettingsSection::Scripting => write!(f, "Scripting"),
@@ -378,22 +347,17 @@ impl FromStr for SettingsSection {
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s {
"About" => Ok(Self::About),
"Account" => Ok(Self::Account),
"AI" => Ok(Self::AI),
"MCP Servers" => Ok(Self::MCPServers),
"Billing and usage" => Ok(Self::BillingAndUsage),
"Appearance" => Ok(Self::Appearance),
"Code" => Ok(Self::Code),
"Features" => Ok(Self::Features),
"Keyboard shortcuts" => Ok(Self::Keybindings),
"Privacy" => Ok(Self::Privacy),
"Referrals" => Ok(Self::Referrals),
"Scripting" => Ok(Self::Scripting),
"Shared blocks" => Ok(Self::SharedBlocks),
"Teams" => Ok(Self::Teams),
"Warpify" => Ok(Self::Warpify),
"WarpDrive" | "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),
"Profiles" | "AgentProfiles" => Ok(Self::AgentProfiles),
"MCP servers" | "AgentMCPServers" => Ok(Self::AgentMCPServers),
@@ -402,9 +366,6 @@ impl FromStr for SettingsSection {
"AWS Bedrock" | "Bedrock" => Ok(Self::Bedrock),
"Indexing and projects" | "CodeIndexing" => Ok(Self::CodeIndexing),
"Editor and Code Review" | "EditorAndCodeReview" => Ok(Self::EditorAndCodeReview),
"CloudEnvironments" | "Environments" => Ok(Self::CloudEnvironments),
"OzCloudAPIKeys" => Ok(Self::OzCloudAPIKeys),
"SharedBlocks" | "Shared Blocks" => Ok(Self::SharedBlocks),
_ => Err(()),
}
}
@@ -636,7 +597,6 @@ pub fn init_actions_from_parent_view<T: Action + Clone>(
context: &ContextPredicate,
builder: fn(SettingsAction) -> T,
) {
main_page::init_actions_from_parent_view(app, context, builder);
appearance_page::init_actions_from_parent_view(app, context, builder);
features_page::init_actions_from_parent_view(app, context, builder);
warpify_page::init_actions_from_parent_view(app, context, builder);
@@ -941,7 +901,6 @@ pub enum DebugSettingsAction {
pub enum SettingsAction {
SelectAndRefresh(SettingsSection),
ToggleUmbrella(usize),
MainPageToggle(MainPageAction),
AppearancePageToggle(AppearancePageAction),
FeaturesPageToggle(FeaturesPageAction),
PrivacyPageToggle(PrivacyPageAction),
@@ -1088,24 +1047,19 @@ fn next_stop_index(current: usize, len: usize, direction: CycleDirection) -> usi
macro_rules! update_page {
($handle:expr, $update:expr, $ctx:expr) => {
match $handle {
SettingsPageViewHandle::Main(handle) => $ctx.update_view(handle, $update),
SettingsPageViewHandle::Appearance(handle) => $ctx.update_view(handle, $update),
SettingsPageViewHandle::Features(handle) => $ctx.update_view(handle, $update),
SettingsPageViewHandle::Keybindings(handle) => $ctx.update_view(handle, $update),
SettingsPageViewHandle::Warpify(handle) => $ctx.update_view(handle, $update),
SettingsPageViewHandle::Privacy(handle) => $ctx.update_view(handle, $update),
SettingsPageViewHandle::Referrals(handle) => $ctx.update_view(handle, $update),
SettingsPageViewHandle::Scripting(handle) => $ctx.update_view(handle, $update),
SettingsPageViewHandle::AI(handle) => $ctx.update_view(handle, $update),
SettingsPageViewHandle::About(handle) => $ctx.update_view(handle, $update),
SettingsPageViewHandle::Code(handle) => $ctx.update_view(handle, $update),
SettingsPageViewHandle::BillingAndUsage(handle) => $ctx.update_view(handle, $update),
SettingsPageViewHandle::MCPServers(handle) => $ctx.update_view(handle, $update),
SettingsPageViewHandle::WarpDrive(handle) => $ctx.update_view(handle, $update),
SettingsPageViewHandle::CloudEnvironments(handle) => $ctx.update_view(handle, $update),
SettingsPageViewHandle::OzCloudAPIKeys(handle) => $ctx.update_view(handle, $update),
SettingsPageViewHandle::Teams(handle) => $ctx.update_view(handle, $update),
SettingsPageViewHandle::SharedBlocks(handle) => $ctx.update_view(handle, $update),
SettingsPageViewHandle::Platform(handle) => $ctx.update_view(handle, $update),
}
};
}
@@ -1147,11 +1101,6 @@ impl SettingsView {
let pane_configuration = ctx.add_model(|_ctx| PaneConfiguration::new("Settings"));
let global_resource_handles = GlobalResourceHandlesProvider::as_ref(ctx).get().clone();
// Main settings page with accounts info
let main_page_handle = ctx.add_typed_action_view(MainSettingsPageView::new);
ctx.subscribe_to_view(&main_page_handle, |me, _, event, ctx| {
me.handle_main_page_event(event, ctx);
});
// Appearance & themes page
let appearance_page_handle = ctx.add_typed_action_view(AppearanceSettingsPageView::new);
@@ -1178,13 +1127,6 @@ impl SettingsView {
me.handle_ai_page_event(event, ctx);
});
// Billing & Usage page (internally, this routes to the v1 or v2 version. Depending on FFs and current plan).
let billing_and_usage_handle = ctx.add_view(BillingAndUsageDispatchView::new);
ctx.subscribe_to_view(&billing_and_usage_handle, |me, _, event, ctx| {
me.handle_billing_and_usage_page_event(event, ctx);
});
let billing_and_usage_page = SettingsPage::new(billing_and_usage_handle);
// Keybindings page
let keybindings_handle = ctx.add_typed_action_view(KeybindingsView::new);
@@ -1259,9 +1201,7 @@ impl SettingsView {
});
let mut settings_pages = vec![
SettingsPage::new(main_page_handle),
SettingsPage::new(ai_page_handle),
billing_and_usage_page,
SettingsPage::new(code_page_handle),
SettingsPage::new(appearance_page_handle),
SettingsPage::new(features_page_handle),
@@ -1305,16 +1245,7 @@ impl SettingsView {
];
if FeatureFlag::WarpControlCli.is_enabled() {
let shared_blocks_index = nav_items
.iter()
.position(|item| {
matches!(item, SettingsNavItem::Page(SettingsSection::SharedBlocks))
})
.unwrap_or(nav_items.len());
nav_items.insert(
shared_blocks_index,
SettingsNavItem::Page(SettingsSection::Scripting),
);
nav_items.push(SettingsNavItem::Page(SettingsSection::Scripting));
}
// Resolve the initial page: map internal backing-page sections to their default subpage.
@@ -1322,7 +1253,7 @@ impl SettingsView {
Some(SettingsSection::AI) => SettingsSection::WarpAgent,
Some(SettingsSection::Code) => SettingsSection::CodeIndexing,
Some(SettingsSection::Scripting) if !FeatureFlag::WarpControlCli.is_enabled() => {
SettingsSection::Account
SettingsSection::About
}
Some(section) if section.is_subpage() => section,
other => other.unwrap_or_default(),
@@ -1686,40 +1617,6 @@ impl SettingsView {
.collect();
}
fn handle_main_page_event(
&mut self,
event: &MainSettingsPageEvent,
ctx: &mut ViewContext<Self>,
) {
match event {
MainSettingsPageEvent::CheckForUpdate => ctx.emit(SettingsViewEvent::CheckForUpdate),
MainSettingsPageEvent::SignupAnonymousUser => {
ctx.emit(SettingsViewEvent::SignupAnonymousUser)
}
_ => (),
}
}
fn handle_billing_and_usage_page_event(
&mut self,
event: &BillingAndUsagePageEvent,
ctx: &mut ViewContext<Self>,
) {
match event {
BillingAndUsagePageEvent::SignupAnonymousUser => {
ctx.emit(SettingsViewEvent::SignupAnonymousUser)
}
BillingAndUsagePageEvent::ShowToast { message, flavor } => {
ctx.emit(SettingsViewEvent::ShowToast {
message: message.clone(),
flavor: *flavor,
})
}
BillingAndUsagePageEvent::ShowModal => ctx.notify(),
BillingAndUsagePageEvent::HideModal => ctx.notify(),
}
}
fn handle_appearance_page_event(
&mut self,
event: &SettingsPageEvent,
@@ -2021,20 +1918,18 @@ impl SettingsView {
fn should_render_page(&self, settings_page: &SettingsPage, app: &AppContext) -> bool {
match &settings_page.view_handle {
SettingsPageViewHandle::Main(v) => v.as_ref(app).should_render(app),
SettingsPageViewHandle::Keybindings(v) => v.as_ref(app).should_render(app),
SettingsPageViewHandle::Features(v) => v.as_ref(app).should_render(app),
SettingsPageViewHandle::Appearance(v) => v.as_ref(app).should_render(app),
SettingsPageViewHandle::BillingAndUsage(v) => v.as_ref(app).should_render(app),
SettingsPageViewHandle::About(v) => v.as_ref(app).should_render(app),
SettingsPageViewHandle::Privacy(v) => v.as_ref(app).should_render(app),
SettingsPageViewHandle::Warpify(v) => v.as_ref(app).should_render(app),
SettingsPageViewHandle::Referrals(v) => v.as_ref(app).should_render(app),
SettingsPageViewHandle::Scripting(v) => v.as_ref(app).should_render(app),
SettingsPageViewHandle::AI(v) => v.as_ref(app).should_render(app),
SettingsPageViewHandle::MCPServers(v) => v.as_ref(app).should_render(app),
SettingsPageViewHandle::Code(v) => v.as_ref(app).should_render(app),
SettingsPageViewHandle::WarpDrive(v) => v.as_ref(app).should_render(app),
SettingsPageViewHandle::Platform(v) => v.as_ref(app).should_render(app),
_ => true,
}
}
@@ -2222,9 +2117,6 @@ impl SettingsView {
app: &AppContext,
) -> Option<Box<dyn Element>> {
match page_handle {
SettingsPageViewHandle::BillingAndUsage(view) => {
view.read(app, |view, _| view.get_modal_content(app))
}
SettingsPageViewHandle::Privacy(view) => {
view.read(app, |view, _| view.get_modal_content())
}
@@ -2560,15 +2452,6 @@ impl TypedActionView for SettingsView {
ctx.notify();
}
}
SettingsAction::MainPageToggle(main_page_action) => {
if let Some(main_page) = self.settings_page(SettingsSection::Account) {
if let SettingsPageViewHandle::Main(view) = &main_page.view_handle {
view.update(ctx, |view, ctx| {
view.handle_action(main_page_action, ctx);
})
}
}
}
SettingsAction::AppearancePageToggle(appearance_action) => {
if let Some(appearance_page) = self.settings_page(SettingsSection::Appearance) {
if let SettingsPageViewHandle::Appearance(view) = &appearance_page.view_handle {