v1.5.4: Remove unused feature flags and oz-platform skill

Remove cloud/sharing feature flags (viewing_shared_sessions, shared_with_me,
session_sharing_acls, shared_block_title_generation, agent_shared_sessions,
cloud_environments, cloud_conversations, etc.) and classic_completions flags.
Remove oz-platform skill. Update blocklist views and drive index.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Ryan Ward
2026-05-28 11:02:41 -05:00
co-authored by Claude Opus 4.6
parent 1fee031ea5
commit d9bdafed0a
8 changed files with 53 additions and 531 deletions
+13 -27
View File
@@ -461,14 +461,11 @@ cross_repo_context = []
codebase_index_persistence = ["full_source_code_embedding"]
default = [
"agent_mode",
"viewing_shared_sessions",
"render_continuous_block_selections_with_single_border",
"settings_import",
"shared_with_me",
"block_toolbelt_save_as_workflow",
"remove_alt_screen_padding",
"less_horizontal_terminal_padding",
"session_sharing_acls",
"external_agent_mode_context",
"shell_selector",
"minimalist_ui",
@@ -507,7 +504,6 @@ default = [
"agent_management_view",
"agent_management_details_view",
"interactive_conversation_management_view",
"shared_block_title_generation",
"tab_close_button_on_left",
"ai_resume_button",
"code_find_replace",
@@ -545,39 +541,22 @@ default = [
"summarize_conversation_command",
"inline_code_review",
"web_search_ui",
"agent_shared_sessions",
"integration_command",
"artifact_command",
"cloud_environments",
"create_environment_slash_command",
"code_review_find",
"shared_session_long_running_commands",
"mcp_grouped_server_context",
"fork_from_command",
"context_window_usage_v2",
"ambient_agents_command_line",
"ambient_agents_image_upload",
"scheduled_ambient_agents",
"galaxy_managed_secrets",
"v4a_file_diffs",
"classic_completions",
"force_classic_completions",
"team_api_keys",
"agent_tips",
"pluggable_notifications",
"agent_onboarding",
"global_search",
"cloud_conversations",
"list_skills",
"ask_user_question",
"bundled_skills",
"ambient_agents_rtc",
"cloud_mode",
"cloud_mode_from_local_session",
"cloud_mode_image_context",
"agent_mode_computer_use",
"oz_platform_skills",
"sync_ambient_plans",
"conversation_artifacts",
"agent_view",
"agent_view_block_context",
@@ -585,13 +564,10 @@ default = [
"inline_slash_commands",
"inline_history_menu",
"inline_model_selector",
"oz_launch_modal",
"open_warp_launch_modal",
"new_tab_styling",
"richtext_multiselect",
"inline_profile_selector",
"web_fetch_ui",
"oz_changelog_updates",
"skill_arguments",
"incremental_auto_reload",
"active_conversation_requires_interaction",
@@ -612,21 +588,31 @@ default = [
"rewind_slash_command",
"hoa_code_review",
"warpify_footer",
"hoa_notifications",
"hoa_onboarding_flow",
"agent_toolbar_editor",
"configurable_toolbar",
"transfer_control_tool",
"hoa_notifications",
"open_code_notifications",
"cli_agent_rich_input",
"vertical_tabs",
"tab_configs",
"hoa_onboarding_flow",
"hoa_remote_control",
"codex_notifications",
"trim_trailing_blank_lines",
"open_warp_new_settings_modes",
"skip_firebase_anonymous_user",
"settings_file",
"queue_slash_command",
"pending_user_query_indicator",
"orchestration",
"orchestration_v2",
"lsp_as_a_tool",
"cross_repo_context",
"completions_v2",
"voice_input",
"drag_tabs_to_windows",
"plugin_host",
"file_and_diff_set_comments",
]
# Enable this feature to automatically perform heap profiling. NOTE: This will
# substantially slow down program execution.
@@ -3239,6 +3239,7 @@ fn render_usage_button(props: Props, app: &AppContext) -> Box<dyn Element> {
let current_context = conversation.current_context_tokens();
let cache_read = conversation.total_cache_read_tokens();
let cache_write = conversation.total_cache_write_tokens();
let total_input = conversation.total_input_tokens();
let cost_cents = conversation.total_cost_cents();
let max_context: u32 = if context_usage > 0.0 {
@@ -3247,21 +3248,22 @@ fn render_usage_button(props: Props, app: &AppContext) -> Box<dyn Element> {
200_000
};
let context_pct = context_usage * 100.0;
let cache_total = cache_read + cache_write;
let cache_hit_pct = if cache_total > 0 {
(cache_read as f64 / cache_total as f64) * 100.0
let cache_total_ops = cache_read + cache_write + total_input;
let cache_hit_pct = if cache_total_ops > 0 {
(cache_read as f64 / cache_total_ops as f64) * 100.0
} else {
0.0
};
let usage_text = format!(
"Context: {:.1}% ({} / {}) | Cache: {:.1}% (R: {}, W: {}) | Cost: ${:.2}",
"Context: {:.1}% ({} / {}) | Cache Hit: {:.1}% (R: {}, W: {}, M: {}) | Cost: ${:.2}",
context_pct,
format_token_count(current_context),
format_token_count(max_context),
cache_hit_pct,
format_token_count(cache_read),
format_token_count(cache_write),
format_token_count(total_input),
cost_cents / 100.0,
);
@@ -280,15 +280,18 @@ impl ConversationUsageView {
));
}
// Cache hit rate: proportion of total input tokens served from cache
let total_input = self.usage_info.total_input_tokens;
if total_input > 0 && self.usage_info.total_cache_read_tokens > 0 {
// Cache hit rate: cache_reads / (cache_reads + cache_writes + cache_misses)
// where cache_misses = total_input_tokens (non-cached input)
let total_cache_ops = self.usage_info.total_cache_read_tokens
+ self.usage_info.total_cache_write_tokens
+ self.usage_info.total_input_tokens;
if total_cache_ops > 0 && self.usage_info.total_cache_read_tokens > 0 {
let hit_rate = (self.usage_info.total_cache_read_tokens as f32
/ total_input as f32)
/ total_cache_ops as f32)
* 100.0;
labels.push(render_label_text("Cache hit rate", appearance));
values.push(render_value_text(
format!("{:.0}%", hit_rate.min(100.0)),
format!("{:.1}%", hit_rate),
appearance,
));
}
+21 -2
View File
@@ -1051,6 +1051,24 @@ impl DriveIndex {
false
}
fn can_trash_or_delete(
&self,
cloud_object_type_and_id: &CloudObjectTypeAndId,
app: &AppContext,
) -> bool {
if let Some(object) = CloudModel::as_ref(app).get_by_uid(&cloud_object_type_and_id.uid()) {
if !object.metadata().has_pending_online_only_change() {
// Local-only objects can always be trashed/deleted.
if !cloud_object_type_and_id.has_server_id() {
return true;
}
// Server-synced objects require online connectivity.
return self.is_online(app);
}
}
false
}
fn is_online(&self, app: &AppContext) -> bool {
NetworkStatus::as_ref(app).is_online()
}
@@ -4357,6 +4375,7 @@ impl DriveIndex {
return menu_items;
};
let can_move_or_trash = self.online_only_operation_allowed(cloud_object_type_and_id, app);
let can_trash = self.can_trash_or_delete(cloud_object_type_and_id, app);
let cloud_view_model = CloudViewModel::as_ref(app);
let access_level = cloud_view_model.access_level(&cloud_object_type_and_id.uid(), app);
let editability = cloud_view_model.object_editability(&cloud_object_type_and_id.uid(), app);
@@ -4754,7 +4773,7 @@ impl DriveIndex {
}
}
if can_move_or_trash
if can_trash
&& (!FeatureFlag::SharedWithMe.is_enabled() || access_level.can_trash())
{
menu_items.push(
@@ -4823,7 +4842,7 @@ impl DriveIndex {
}
}
if self.online_only_operation_allowed(cloud_object_type_and_id, app) {
if self.can_trash_or_delete(cloud_object_type_and_id, app) {
if !FeatureFlag::SharedWithMe.is_enabled() || access_level.can_trash() {
menu_items.push(
MenuItemFields::new("Restore")
@@ -4211,12 +4211,14 @@ impl UpdateManager {
}
pub fn trash_object(&mut self, id: CloudObjectTypeAndId, ctx: &mut ModelContext<Self>) {
// // If the object isn't known to the server yet, we can't trash it.
let hashed_id = id.uid();
// If the object isn't known to the server, delete it permanently (no server-side trash).
let Some(server_id) = id.server_id() else {
self.delete_object_by_user(id, ctx);
return;
};
let hashed_id = id.uid();
// If there's a pending online-only operation for this object, don't trash it.
let Some(has_pending_online_only_operation) =
CloudModel::handle(ctx).read(ctx, |model, _| {