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:
@@ -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,
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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.
|
||||||
|
|||||||
@@ -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,
|
||||||
))
|
))
|
||||||
|
|||||||
@@ -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,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
@@ -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,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user