Settings cleanup: remove Cloud Platform, Teams, Shared Blocks, Referrals from nav; disable autoupdate; stub Oz settings; rename Warpify to Galaxify

This commit is contained in:
Ryan Ward
2026-05-12 08:42:54 -05:00
parent 140da74f99
commit 2c651f2085
12 changed files with 62 additions and 182 deletions
@@ -208,17 +208,7 @@ impl AgentViewZeroStateBlock {
} }
} }
}); });
ctx.subscribe_to_model(&AISettings::handle(ctx), |me, _, event, ctx| { ctx.subscribe_to_model(&AISettings::handle(ctx), |_me, _, _event, _ctx| {
let should_rerender_for_oz_updates_visibility = !me.origin.is_cloud_agent()
&& matches!(
event,
AISettingsChangedEvent::ShouldShowOzUpdatesInZeroState { .. }
)
&& FeatureFlag::OzChangelogUpdates.is_enabled()
&& !ChangelogModel::as_ref(ctx).oz_updates.is_empty();
if should_rerender_for_oz_updates_visibility {
ctx.notify();
}
}); });
let mut state_handles = StateHandles::default(); let mut state_handles = StateHandles::default();
@@ -253,8 +243,7 @@ impl AgentViewZeroStateBlock {
should_show_init_callout, should_show_init_callout,
has_parent_terminal, has_parent_terminal,
state_handles, state_handles,
is_oz_updates_expanded: !origin.is_cloud_agent() is_oz_updates_expanded: false,
&& *AISettings::handle(ctx).as_ref(ctx).should_expand_oz_updates,
} }
} }
@@ -384,9 +373,9 @@ impl View for AgentViewZeroStateBlock {
let header_props = if self.origin.is_cloud_agent() { let header_props = if self.origin.is_cloud_agent() {
HeaderProps { HeaderProps {
title: "New Oz cloud agent conversation".into(), title: "New Galaxy agent conversation".into(),
description: AgentViewDescription::CloudModeWithDocsLink, description: AgentViewDescription::CloudModeWithDocsLink,
icon: Icon::OzCloud, icon: Icon::Warp,
} }
} else { } else {
let mut local_description = let mut local_description =
@@ -400,9 +389,9 @@ impl View for AgentViewZeroStateBlock {
} }
HeaderProps { HeaderProps {
title: "New Oz agent conversation".into(), title: "New Galaxy agent conversation".into(),
description: AgentViewDescription::PlainText(vec![local_description.into()]), description: AgentViewDescription::PlainText(vec![local_description.into()]),
icon: Icon::Oz, icon: Icon::Warp,
} }
}; };
@@ -410,21 +399,6 @@ impl View for AgentViewZeroStateBlock {
.with_main_axis_size(MainAxisSize::Min) .with_main_axis_size(MainAxisSize::Min)
.with_children(render_title_and_description(header_props, app)); .with_children(render_title_and_description(header_props, app));
if !self.origin.is_cloud_agent() {
if let Some(oz_updates_section) = render_oz_updates(
OzUpdatesProps {
is_expanded: self.is_oz_updates_expanded,
state_handles: &self.state_handles,
},
app,
) {
content.add_children([Container::new(oz_updates_section)
.with_margin_top(8.)
.with_margin_bottom(16.)
.finish()]);
}
}
let active_session = self.active_session(app); let active_session = self.active_session(app);
let body = render_body( let body = render_body(
ZeroStateBodyProps { ZeroStateBodyProps {
@@ -492,16 +466,7 @@ impl TypedActionView for AgentViewZeroStateBlock {
AgentViewZeroStateAction::ClickedInitCallout => { AgentViewZeroStateAction::ClickedInitCallout => {
ctx.emit(AgentViewZeroStateEvent::ClickedInitCallout); ctx.emit(AgentViewZeroStateEvent::ClickedInitCallout);
} }
AgentViewZeroStateAction::ToggleOzUpdates => { AgentViewZeroStateAction::ToggleOzUpdates => {}
let is_expanded = self.is_oz_updates_expanded;
self.is_oz_updates_expanded = !is_expanded;
AISettings::handle(ctx).update(ctx, |settings, ctx| {
report_if_error!(settings
.should_expand_oz_updates
.set_value(!is_expanded, ctx));
});
}
AgentViewZeroStateAction::OpenConversation { conversation_id } => { AgentViewZeroStateAction::OpenConversation { conversation_id } => {
ctx.emit(AgentViewZeroStateEvent::OpenConversation { ctx.emit(AgentViewZeroStateEvent::OpenConversation {
conversation_id: *conversation_id, conversation_id: *conversation_id,
@@ -965,9 +930,7 @@ fn should_render_oz_updates_section(
fn render_oz_updates(props: OzUpdatesProps<'_>, app: &AppContext) -> Option<Box<dyn Element>> { fn render_oz_updates(props: OzUpdatesProps<'_>, app: &AppContext) -> Option<Box<dyn Element>> {
let changelog_model = ChangelogModel::as_ref(app); let changelog_model = ChangelogModel::as_ref(app);
let should_show_oz_updates = *AISettings::as_ref(app) let should_show_oz_updates = false;
.should_show_oz_updates_in_zero_state
.value();
if !should_render_oz_updates_section( if !should_render_oz_updates_section(
FeatureFlag::OzChangelogUpdates.is_enabled(), FeatureFlag::OzChangelogUpdates.is_enabled(),
should_show_oz_updates, should_show_oz_updates,
+1 -1
View File
@@ -151,7 +151,7 @@ impl ComputerUsePermission {
let autonomy_setting = UserWorkspaces::as_ref(ctx) let autonomy_setting = UserWorkspaces::as_ref(ctx)
.ai_autonomy_settings() .ai_autonomy_settings()
.computer_use_setting; .computer_use_setting;
let user_preference = *AISettings::as_ref(ctx).cloud_agent_computer_use_enabled; let user_preference = false;
match autonomy_setting { match autonomy_setting {
Some(ComputerUsePermission::Never) => CloudAgentComputerUseState { Some(ComputerUsePermission::Never) => CloudAgentComputerUseState {
+1 -16
View File
@@ -139,22 +139,7 @@ impl AutoupdateState {
/// Check if there are any requests in the queue. Return the next one, but only if there isn't /// Check if there are any requests in the queue. Return the next one, but only if there isn't
/// already a request in-flight. /// already a request in-flight.
fn get_next_request(&mut self, ctx: &mut ModelContext<Self>) -> Option<RequestType> { fn get_next_request(&mut self, _ctx: &mut ModelContext<Self>) -> Option<RequestType> {
if !self.should_start_update_check() {
return None;
}
while let Some(request) = self.request_queue.pop_front() {
match request {
RequestType::ManualCheck => return Some(request),
RequestType::Poll | RequestType::DailyCheck => {
if AppExecutionMode::as_ref(ctx).can_autoupdate() {
return Some(request);
}
}
}
}
None None
} }
+1 -1
View File
@@ -2542,7 +2542,7 @@ impl PaneGroup {
if let Some(pane) = self.focused_pane_content(ctx) { if let Some(pane) = self.focused_pane_content(ctx) {
pane.focus(ctx); pane.focus(ctx);
} }
ctx.emit(Event::OpenSettings(SettingsSection::Teams)); ctx.emit(Event::OpenSettings(SettingsSection::Appearance));
ctx.notify(); ctx.notify();
send_telemetry_from_ctx!(TelemetryEvent::SharedSessionModalUpgradePressed, ctx); send_telemetry_from_ctx!(TelemetryEvent::SharedSessionModalUpgradePressed, ctx);
+6 -29
View File
@@ -42,8 +42,7 @@ use crate::settings::QuakeModeSettings;
use crate::settings::ThemeSettings; use crate::settings::ThemeSettings;
use crate::settings_view::flags; use crate::settings_view::flags;
use crate::settings_view::mcp_servers_page::MCPServersSettingsPage; use crate::settings_view::mcp_servers_page::MCPServersSettingsPage;
use crate::settings_view::OpenTeamsSettingsModalArgs; use crate::settings_view::{OpenTeamsSettingsModalArgs, SettingsSection};
use crate::settings_view::SettingsSection;
use crate::terminal::available_shells::AvailableShell; use crate::terminal::available_shells::AvailableShell;
use crate::terminal::general_settings::GeneralSettings; use crate::terminal::general_settings::GeneralSettings;
use crate::terminal::keys_settings::KeysSettings; use crate::terminal::keys_settings::KeysSettings;
@@ -1042,23 +1041,9 @@ fn create_environment_and_run(arg: &CreateEnvironmentArg, ctx: &mut AppContext)
ctx.windows().show_window_and_focus_app(window_id); ctx.windows().show_window_and_focus_app(window_id);
} }
fn open_team_settings_with_email_invite_in_new_window( fn open_team_settings_with_email_invite_in_new_window(
arg: &OpenTeamsSettingsModalArgs, _arg: &OpenTeamsSettingsModalArgs,
ctx: &mut AppContext, _ctx: &mut AppContext,
) { ) {
let root_handle = open_new_window_get_handles(None, ctx).1;
root_handle.update(ctx, |root_view, ctx| {
if let AuthOnboardingState::Terminal(workspace_view_handle) =
&root_view.auth_onboarding_state
{
let initial_load_complete = UpdateManager::as_ref(ctx).initial_load_complete();
let email_invite = arg.invite_email.clone();
workspace_view_handle.update(ctx, |_, ctx| {
let _ = ctx.spawn(initial_load_complete, move |workspace, _, ctx| {
workspace.show_team_settings_page_with_email_invite(email_invite.as_ref(), ctx)
});
});
}
});
} }
fn open_settings_page_in_new_window(section: &SettingsSection, ctx: &mut AppContext) { fn open_settings_page_in_new_window(section: &SettingsSection, ctx: &mut AppContext) {
@@ -2584,17 +2569,9 @@ impl RootView {
pub fn open_team_settings_with_email_invite_in_existing_window( pub fn open_team_settings_with_email_invite_in_existing_window(
&mut self, &mut self,
arg: &OpenTeamsSettingsModalArgs, _arg: &OpenTeamsSettingsModalArgs,
ctx: &mut ViewContext<Self>, _ctx: &mut ViewContext<Self>,
) -> bool { ) -> bool {
if let AuthOnboardingState::Terminal(handle) = &self.auth_onboarding_state {
handle.update(ctx, |workspace, ctx| {
workspace.show_team_settings_page_with_email_invite(arg.invite_email.as_ref(), ctx)
});
return true;
} else {
log::warn!("Auth not complete before trying to open settings pane");
}
false false
} }
@@ -2883,7 +2860,7 @@ impl RootView {
ctx.dispatch_typed_action_for_view( ctx.dispatch_typed_action_for_view(
window_id, window_id,
handle.id(), handle.id(),
&WorkspaceAction::ShowSettingsPage(SettingsSection::Teams), &WorkspaceAction::ShowSettingsPage(SettingsSection::Appearance),
); );
ctx.windows().show_window_and_focus_app(window_id); ctx.windows().show_window_and_focus_app(window_id);
} else { } else {
+1 -49
View File
@@ -1284,27 +1284,7 @@ define_settings_group!(AISettings, settings: [
private: true, private: true,
} }
// Used to determine whether the "What's new in Oz" section of the agent view
// zero state is expanded or collapsed by default.
should_expand_oz_updates: ShouldExpandOzUpdates {
type: bool,
default: false,
supported_platforms: SupportedPlatforms::ALL,
sync_to_cloud: SyncToCloud::Never,
private: true,
}
// Used to determine whether the "What's new in Oz" section of the agent view
// zero state is shown or hidden.
should_show_oz_updates_in_zero_state: ShouldShowOzUpdatesInZeroState {
type: bool,
default: true,
supported_platforms: SupportedPlatforms::ALL,
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
private: false,
toml_path: "agents.warp_agent.other.should_show_oz_updates_in_zero_state",
description: "Whether the \"What's new\" section is shown in the agent view.",
}
// Whether or not the user has enabled the ability to use Warp credits even when providing // Whether or not the user has enabled the ability to use Warp credits even when providing
// their own LLM provider API key. // their own LLM provider API key.
@@ -1459,32 +1439,6 @@ define_settings_group!(AISettings, settings: [
toml_path: "general.default_tab_config_path", toml_path: "general.default_tab_config_path",
} }
// Whether computer use is enabled for cloud agent conversations started from the Warp app.
// This setting is only used when the AI autonomy setting is AlwaysAsk or not set.
cloud_agent_computer_use_enabled: CloudAgentComputerUseEnabled {
type: bool,
default: galaxy_core::channel::ChannelState::channel().is_dogfood(),
supported_platforms: SupportedPlatforms::DESKTOP,
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
private: false,
toml_path: "agents.warp_agent.other.cloud_agent_computer_use_enabled",
description: "Whether computer use is enabled for cloud agent conversations.",
}
// Whether multi-agent orchestration is enabled. When enabled, the agent can
// spawn and coordinate parallel sub-agents via StartAgent / SendMessageToAgent
// tools. This setting is only effective when FeatureFlag::Orchestration is also
// enabled.
orchestration_enabled: OrchestrationEnabled {
type: bool,
default: true,
supported_platforms: SupportedPlatforms::DESKTOP,
sync_to_cloud: SyncToCloud::Globally(RespectUserSyncSetting::Yes),
private: false,
toml_path: "agents.warp_agent.other.orchestration_enabled",
description: "Whether multi-agent orchestration is enabled.",
feature_flag: FeatureFlag::Orchestration,
}
// Whether file-based MCP servers from third-party AI tools (e.g. Claude, Codex) should // Whether file-based MCP servers from third-party AI tools (e.g. Claude, Codex) should
// be automatically detected and spawned. Warp-native config files (.warp-core/.mcp.json) are // be automatically detected and spawned. Warp-native config files (.warp-core/.mcp.json) are
@@ -1751,9 +1705,7 @@ impl AISettings {
} }
pub fn is_orchestration_enabled(&self, app: &galaxyui::AppContext) -> bool { pub fn is_orchestration_enabled(&self, app: &galaxyui::AppContext) -> bool {
FeatureFlag::Orchestration.is_enabled() FeatureFlag::Orchestration.is_enabled() && self.is_any_ai_enabled(app)
&& self.is_any_ai_enabled(app)
&& *self.orchestration_enabled
} }
/// Determines whether a quota reset banner should be displayed to the user. /// Determines whether a quota reset banner should be displayed to the user.
+1 -1
View File
@@ -5824,7 +5824,7 @@ impl SettingsWidget for AgentAttributionWidget {
) )
.with_child(toggle_row) .with_child(toggle_row)
.with_child(render_ai_setting_description( .with_child(render_ai_setting_description(
"Oz can add attribution to commit messages and pull requests it creates", "Galaxy can add attribution to commit messages and pull requests it creates",
!state.is_disabled, !state.is_disabled,
app, app,
)) ))
+24 -1
View File
@@ -95,6 +95,7 @@ mod privacy;
mod privacy_page; mod privacy_page;
mod settings_file_footer; mod settings_file_footer;
pub(crate) mod settings_page; pub(crate) mod settings_page;
mod show_blocks_view;
mod tab_menu; mod tab_menu;
mod teams_page; mod teams_page;
mod telemetry; mod telemetry;
@@ -211,6 +212,17 @@ pub enum SettingsSection {
// ── Code umbrella subpages ── // ── Code umbrella subpages ──
CodeIndexing, CodeIndexing,
EditorAndCodeReview, EditorAndCodeReview,
// Dead variants — pages removed from nav but files still reference these
#[allow(dead_code)]
CloudEnvironments,
#[allow(dead_code)]
OzCloudAPIKeys,
#[allow(dead_code)]
Teams,
#[allow(dead_code)]
SharedBlocks,
#[allow(dead_code)]
Referrals,
} }
use crate::util::bindings::custom_tag_to_keystroke; use crate::util::bindings::custom_tag_to_keystroke;
@@ -229,6 +241,7 @@ impl Display for SettingsSection {
SettingsSection::Knowledge => write!(f, "Knowledge"), SettingsSection::Knowledge => write!(f, "Knowledge"),
SettingsSection::ThirdPartyCLIAgents => write!(f, "Third party CLI agents"), SettingsSection::ThirdPartyCLIAgents => write!(f, "Third party CLI agents"),
SettingsSection::Bedrock => write!(f, "AWS Bedrock"), SettingsSection::Bedrock => write!(f, "AWS Bedrock"),
SettingsSection::Warpify => write!(f, "Galaxify"),
SettingsSection::CodeIndexing => write!(f, "Indexing and projects"), SettingsSection::CodeIndexing => write!(f, "Indexing and projects"),
SettingsSection::EditorAndCodeReview => write!(f, "Editor and Code Review"), SettingsSection::EditorAndCodeReview => write!(f, "Editor and Code Review"),
_ => write!(f, "{self:?}"), _ => write!(f, "{self:?}"),
@@ -307,7 +320,7 @@ impl FromStr for SettingsSection {
"Features" => Ok(Self::Features), "Features" => Ok(Self::Features),
"Keyboard shortcuts" => Ok(Self::Keybindings), "Keyboard shortcuts" => Ok(Self::Keybindings),
"Privacy" => Ok(Self::Privacy), "Privacy" => Ok(Self::Privacy),
"Warpify" => Ok(Self::Warpify), "Warpify" | "Galaxify" => Ok(Self::Warpify),
"WarpDrive" | "Warp Drive" | "Galaxy Drive" => Ok(Self::WarpDrive), "WarpDrive" | "Warp Drive" | "Galaxy Drive" => Ok(Self::WarpDrive),
// This page was called "Oz" at one point, keep for backward compatibility. // This page was called "Oz" at one point, keep for backward compatibility.
"Oz" | "Warp Agent" | "Galaxy Agent" => Ok(Self::WarpAgent), "Oz" | "Warp Agent" | "Galaxy Agent" => Ok(Self::WarpAgent),
@@ -318,6 +331,11 @@ impl FromStr for SettingsSection {
"AWS Bedrock" | "Bedrock" => Ok(Self::Bedrock), "AWS Bedrock" | "Bedrock" => Ok(Self::Bedrock),
"Indexing and projects" | "CodeIndexing" => Ok(Self::CodeIndexing), "Indexing and projects" | "CodeIndexing" => Ok(Self::CodeIndexing),
"Editor and Code Review" | "EditorAndCodeReview" => Ok(Self::EditorAndCodeReview), "Editor and Code Review" | "EditorAndCodeReview" => Ok(Self::EditorAndCodeReview),
"CloudEnvironments" | "Environments" => Ok(Self::CloudEnvironments),
"OzCloudAPIKeys" => Ok(Self::OzCloudAPIKeys),
"Teams" => Ok(Self::Teams),
"SharedBlocks" | "Shared Blocks" => Ok(Self::SharedBlocks),
"Referrals" => Ok(Self::Referrals),
_ => Err(()), _ => Err(()),
} }
} }
@@ -938,6 +956,10 @@ macro_rules! update_page {
SettingsPageViewHandle::BillingAndUsage(handle) => $ctx.update_view(handle, $update), SettingsPageViewHandle::BillingAndUsage(handle) => $ctx.update_view(handle, $update),
SettingsPageViewHandle::MCPServers(handle) => $ctx.update_view(handle, $update), SettingsPageViewHandle::MCPServers(handle) => $ctx.update_view(handle, $update),
SettingsPageViewHandle::WarpDrive(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),
} }
}; };
} }
@@ -1826,6 +1848,7 @@ impl SettingsView {
SettingsPageViewHandle::MCPServers(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::Code(v) => v.as_ref(app).should_render(app),
SettingsPageViewHandle::WarpDrive(v) => v.as_ref(app).should_render(app), SettingsPageViewHandle::WarpDrive(v) => v.as_ref(app).should_render(app),
_ => true,
} }
} }
+10
View File
@@ -11,11 +11,13 @@ use super::{
appearance_page::AppearanceSettingsPageView, appearance_page::AppearanceSettingsPageView,
billing_and_usage_page::BillingAndUsagePageView, billing_and_usage_page::BillingAndUsagePageView,
code_page::CodeSettingsPageView, code_page::CodeSettingsPageView,
environments_page::EnvironmentsPageView,
features_page::FeaturesPageView, features_page::FeaturesPageView,
keybindings::KeybindingsView, keybindings::KeybindingsView,
main_page::MainSettingsPageView, main_page::MainSettingsPageView,
mcp_servers_page::MCPServersSettingsPageView, mcp_servers_page::MCPServersSettingsPageView,
privacy_page::PrivacyPageView, privacy_page::PrivacyPageView,
show_blocks_view::ShowBlocksView,
warp_drive_page::WarpDriveSettingsPageView, warp_drive_page::WarpDriveSettingsPageView,
warpify_page::WarpifyPageView, warpify_page::WarpifyPageView,
SettingsSection, SettingsSection,
@@ -111,6 +113,10 @@ pub enum SettingsPageViewHandle {
BillingAndUsage(ViewHandle<BillingAndUsagePageView>), BillingAndUsage(ViewHandle<BillingAndUsagePageView>),
MCPServers(ViewHandle<MCPServersSettingsPageView>), MCPServers(ViewHandle<MCPServersSettingsPageView>),
WarpDrive(ViewHandle<WarpDriveSettingsPageView>), WarpDrive(ViewHandle<WarpDriveSettingsPageView>),
CloudEnvironments(ViewHandle<EnvironmentsPageView>),
OzCloudAPIKeys(ViewHandle<super::platform_page::PlatformPageView>),
Teams(ViewHandle<super::teams_page::TeamsPageView>),
SharedBlocks(ViewHandle<ShowBlocksView>),
} }
impl SettingsPageViewHandle { impl SettingsPageViewHandle {
@@ -129,6 +135,10 @@ impl SettingsPageViewHandle {
BillingAndUsage(view_handle) => ChildView::new(view_handle).finish(), BillingAndUsage(view_handle) => ChildView::new(view_handle).finish(),
MCPServers(view_handle) => ChildView::new(view_handle).finish(), MCPServers(view_handle) => ChildView::new(view_handle).finish(),
WarpDrive(view_handle) => ChildView::new(view_handle).finish(), WarpDrive(view_handle) => ChildView::new(view_handle).finish(),
CloudEnvironments(view_handle) => ChildView::new(view_handle).finish(),
OzCloudAPIKeys(view_handle) => ChildView::new(view_handle).finish(),
Teams(view_handle) => ChildView::new(view_handle).finish(),
SharedBlocks(view_handle) => ChildView::new(view_handle).finish(),
} }
} }
} }
@@ -93,7 +93,6 @@ impl SlashCommandDataSource {
if matches!( if matches!(
event, event,
AISettingsChangedEvent::IsAnyAIEnabled { .. } AISettingsChangedEvent::IsAnyAIEnabled { .. }
| AISettingsChangedEvent::OrchestrationEnabled { .. }
) { ) {
me.recompute_active_commands(ctx); me.recompute_active_commands(ctx);
} }
+5 -13
View File
@@ -20,7 +20,7 @@ use crate::{drive::OpenWarpDriveObjectArgs, view_components::DismissibleToast};
use crate::{features::FeatureFlag, workspace::active_terminal_in_window}; use crate::{features::FeatureFlag, workspace::active_terminal_in_window};
use crate::ai::ambient_agents::github_auth_notifier::GitHubAuthNotifier; use crate::ai::ambient_agents::github_auth_notifier::GitHubAuthNotifier;
use crate::settings_view::{OpenTeamsSettingsModalArgs, SettingsSection}; use crate::settings_view::SettingsSection;
use crate::user_config::load_launch_configs; use crate::user_config::load_launch_configs;
use crate::{ use crate::{
quake_mode_window_id, quake_mode_window_is_open, safe_info, send_telemetry_from_app_ctx, quake_mode_window_id, quake_mode_window_is_open, safe_info, send_telemetry_from_app_ctx,
@@ -334,15 +334,7 @@ impl UriHost {
if let Some(settings_sub_page) = settings_sub_page { if let Some(settings_sub_page) = settings_sub_page {
match settings_sub_page.as_str() { match settings_sub_page.as_str() {
"teams" => { "teams" => {
let invite_email = query_string.get("invite").map(|s| s.to_string()); // Teams feature removed
let args = OpenTeamsSettingsModalArgs { invite_email };
dispatch_action_in_new_or_existing_window(
primary_window_id,
"root_view:open_team_settings_with_email_invite_in_existing_window",
"root_view:open_team_settings_with_email_invite_in_new_window",
&args,
ctx,
);
} }
"billing_and_usage" => { "billing_and_usage" => {
dispatch_action_in_new_or_existing_window( dispatch_action_in_new_or_existing_window(
@@ -368,7 +360,7 @@ impl UriHost {
primary_window_id, primary_window_id,
"root_view:open_settings_page_in_existing_window", "root_view:open_settings_page_in_existing_window",
"root_view:open_settings_page_in_new_window", "root_view:open_settings_page_in_new_window",
&SettingsSection::CloudEnvironments, &SettingsSection::Appearance,
ctx, ctx,
); );
} }
@@ -392,7 +384,7 @@ impl UriHost {
primary_window_id, primary_window_id,
"root_view:open_settings_page_in_existing_window", "root_view:open_settings_page_in_existing_window",
"root_view:open_settings_page_in_new_window", "root_view:open_settings_page_in_new_window",
&SettingsSection::OzCloudAPIKeys, &SettingsSection::Appearance,
ctx, ctx,
); );
} }
@@ -902,7 +894,7 @@ impl Action {
primary_window_id, primary_window_id,
"root_view:open_settings_page_in_existing_window", "root_view:open_settings_page_in_existing_window",
"root_view:open_settings_page_in_new_window", "root_view:open_settings_page_in_new_window",
&SettingsSection::CloudEnvironments, &SettingsSection::Appearance,
ctx, ctx,
); );
} }
+4 -25
View File
@@ -6072,19 +6072,7 @@ impl Workspace {
} }
} }
// 3. Cloud Oz (if flags enabled) // 3. Cloud Oz (removed — Bedrock-only, no cloud agent)
if is_any_ai_enabled
&& FeatureFlag::AgentView.is_enabled()
&& FeatureFlag::CloudMode.is_enabled()
{
let mut cloud_item = MenuItemFields::new("Cloud Oz")
.with_on_select_action(WorkspaceAction::AddAmbientAgentTab)
.with_icon(icons::Icon::LayoutAlt01);
if effective_default == DefaultSessionMode::CloudAgent {
cloud_item = cloud_item.with_key_shortcut_label(shortcut_label.clone());
}
menu_items.push(cloud_item.into_item());
}
// 3b. Local Docker Sandbox // 3b. Local Docker Sandbox
if FeatureFlag::LocalDockerSandbox.is_enabled() { if FeatureFlag::LocalDockerSandbox.is_enabled() {
@@ -15453,14 +15441,9 @@ impl Workspace {
/// settings with the intent of inviting a user. /// settings with the intent of inviting a user.
pub fn show_team_settings_page_with_email_invite( pub fn show_team_settings_page_with_email_invite(
&mut self, &mut self,
email_invite: Option<&String>, _email_invite: Option<&String>,
ctx: &mut ViewContext<Self>, _ctx: &mut ViewContext<Self>,
) { ) {
self.show_settings_with_section(Some(SettingsSection::Teams), ctx);
self.settings_pane.update(ctx, |view, ctx| {
view.open_teams_page_email_invite(email_invite, ctx);
});
} }
/// Opens the MCP servers settings page, optionally triggering auto-install of a gallery MCP. /// Opens the MCP servers settings page, optionally triggering auto-install of a gallery MCP.
@@ -19312,11 +19295,7 @@ impl Workspace {
.insert(flags::SHARED_BLOCK_TITLE_GENERATION_FLAG); .insert(flags::SHARED_BLOCK_TITLE_GENERATION_FLAG);
} }
if *ai_settings.should_show_oz_updates_in_zero_state.value() {
context
.set
.insert(flags::SHOW_OZ_UPDATES_IN_ZERO_STATE_FLAG);
}
if *ai_settings if *ai_settings
.should_render_use_agent_footer_for_user_commands .should_render_use_agent_footer_for_user_commands