chore: remove Warp Drive object sharing#182
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR removes the Warp Drive object sharing surface (UI actions, dialogs, onboarding, and the hosted ACL/guest backend plumbing) while keeping the local-first Drive model/UI and related offline workflows intact.
Changes:
- Removed Drive sharing UI/entrypoints (pane header sharing controls, conversation share actions, Drive index “Share” menu items, onboarding block) and associated keybindings/menu registrations.
- Removed the server-side permission/guest update plumbing (
UpdateManagerpermission ops + tests) that was only reachable via the sharing UI. - Re-homed shared permission/editability types to local-first locations (e.g.,
ContentEditabilitymoved undercloud_object::model::view, andSharingAccessLevelimported directly fromwarp_server_client).
Reviewed changes
Copilot reviewed 61 out of 61 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| app/src/workspace/view/conversation_list/view.rs | Removes conversation overflow “Share conversation” action and dialog plumbing. |
| app/src/workspace/view/conversation_list/item.rs | Drops sharing-dialog overlay positioning for conversation list rows. |
| app/src/workspace/view.rs | Removes workspace-level onboarding/share-dialog event graph and handlers. |
| app/src/workspace/action.rs | Removes workspace action variant for opening object sharing settings. |
| app/src/workflows/workflow_view.rs | Removes workflow-triggered share-dialog event path; updates type imports. |
| app/src/word_block_editor.rs | Deletes editor used exclusively by the sharing dialog. |
| app/src/util/bindings.rs | Removes SharePaneContents custom action wiring. |
| app/src/terminal/view/pane_impl.rs | Removes pane-header sharing controls integration for terminal panes. |
| app/src/terminal/view/block_onboarding/onboarding_drive_sharing_block.rs | Deletes Drive sharing onboarding block view. |
| app/src/terminal/view/block_onboarding/mod.rs | Removes module export for deleted onboarding block. |
| app/src/terminal/view.rs | Removes AI-block context menu share action + onboarding insertion hook. |
| app/src/settings_view/mod.rs | Updates header render context type signature (lifetime removal). |
| app/src/settings_view/environments_page.rs | Updates header render context type signature (lifetime removal). |
| app/src/server/telemetry.rs | Removes SharingDialogSource telemetry enum. |
| app/src/server/server_api/object.rs | Switches SharingAccessLevel import to warp_server_client. |
| app/src/server/network_log_view.rs | Updates header render context type signature (lifetime removal). |
| app/src/server/cloud_objects/update_manager.rs | Removes hosted ACL/guest/link-permissions operations and UpdatePermissions op variant. |
| app/src/server/cloud_objects/update_manager_tests.rs | Removes tests covering guest/permission update APIs that were deleted. |
| app/src/server/cloud_objects/fake_object_client.rs | Switches SharingAccessLevel import to warp_server_client. |
| app/src/persistence/cloud_object_tests.rs | Switches sharing-type imports to warp_server_client. |
| app/src/pane_group/pane/workflow_pane.rs | Removes forwarding of share-dialog pane-group events for workflows. |
| app/src/pane_group/pane/welcome_view.rs | Updates header render context type signature (lifetime removal). |
| app/src/pane_group/pane/view/mod.rs | Removes share keybinding registration and share action handling from panes. |
| app/src/pane_group/pane/view/header/sharing.rs | Deletes pane-header sharing controls implementation. |
| app/src/pane_group/pane/view/header/mod.rs | Removes sharing overlay/action wiring from the pane header. |
| app/src/pane_group/pane/view/header/mod_tests.rs | Updates header render context type signature (lifetime removal). |
| app/src/pane_group/pane/view/header/components.rs | Updates header render context type signature (lifetime removal). |
| app/src/pane_group/pane/view/header_content.rs | Removes sharing-controls closure from HeaderRenderContext; lifetime removed. |
| app/src/pane_group/pane/notebook_pane.rs | Removes forwarding of share-dialog pane-group events for notebooks. |
| app/src/pane_group/pane/mod.rs | Removes pane-view init call and shareable-object events from PaneConfiguration. |
| app/src/pane_group/pane/get_started_view.rs | Updates header render context type signature (lifetime removal). |
| app/src/pane_group/mod.rs | Removes pane-group event variant for opening Drive object share dialog. |
| app/src/notebooks/notebook/details_bar.rs | Moves ContentEditability import to cloud-object view model. |
| app/src/notebooks/notebook.rs | Removes notebook pane shareable-object setup and invitee-email share path. |
| app/src/notebooks/file/mod.rs | Updates header render context type signature (lifetime removal). |
| app/src/notebooks/active_notebook_data.rs | Moves ContentEditability + SharingAccessLevel imports to new locations. |
| app/src/lib.rs | Removes sharing dialog init and word_block_editor module inclusion. |
| app/src/env_vars/view/secrets.rs | Moves ContentEditability import to cloud-object view model. |
| app/src/env_vars/view/fixed_view_components.rs | Moves ContentEditability import and uses warp_server_client::SharingAccessLevel. |
| app/src/env_vars/view/env_var_collection.rs | Removes shareable-object setup; moves ContentEditability import. |
| app/src/env_vars/active_env_var_collection_data.rs | Moves ContentEditability + SharingAccessLevel imports to new locations. |
| app/src/drive/sharing/style.rs | Deletes sharing dialog styling helpers. |
| app/src/drive/sharing/mod.rs | Deletes Drive sharing module (types, ACL subject helpers, re-exports). |
| app/src/drive/sharing/dialog/mod.rs | Deletes sharing dialog implementation. |
| app/src/drive/sharing/dialog/inheritance.rs | Deletes inherited-ACL display support used by sharing dialog. |
| app/src/drive/settings.rs | Removes persisted setting for showing Drive sharing onboarding block. |
| app/src/drive/panel.rs | Removes Drive panel helper that opened sharing settings. |
| app/src/drive/mod.rs | Removes sharing module export. |
| app/src/drive/items/item.rs | Removes “share dialog open” visual state from Drive rows. |
| app/src/drive/index.rs | Removes Drive index share dialog, actions, and menu items; updates ContentEditability import. |
| app/src/code/wasm.rs | Updates header render context type signature (lifetime removal). |
| app/src/code/view.rs | Updates header render context type signature (lifetime removal). |
| app/src/code_review/code_review_view.rs | Updates header render context type signature (lifetime removal). |
| app/src/cloud_object/toast_message.rs | Removes toast messaging for permission update operation that no longer exists. |
| app/src/cloud_object/model/view.rs | Introduces ContentEditability in cloud-object view model; imports SharingAccessLevel directly. |
| app/src/browser/browser_view.rs | Updates header render context type signature (lifetime removal). |
| app/src/app_menus.rs | Removes “Share pane” Drive app-menu item. |
| app/src/ai/facts/view/mod.rs | Updates header render context type signature (lifetime removal). |
| app/src/ai/execution_profiles/editor/mod.rs | Updates header render context type signature (lifetime removal). |
| app/src/ai/blocklist/inline_action/code_diff_view.rs | Updates header render context type signature (lifetime removal). |
| app/src/ai/ai_document_view.rs | Removes header sharing controls usage and shareable-object wiring. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
213
to
216
| } | ||
|
|
||
| /// How the user opened the Warp Drive sharing dialog. | ||
| #[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq)] | ||
| pub enum SharingDialogSource { | ||
| /// The sharing button in the pane header. | ||
| PaneHeader, | ||
| /// The per-pane command palette entry (includes keybindings). | ||
| CommandPalette, | ||
| /// The Warp Drive index context menu. | ||
| DriveIndex, | ||
| /// The user intented into Warp with an email address to invite. | ||
| InviteeRequest, | ||
| /// The user jumped from an inherited ACL to its definition on a parent object. | ||
| InheritedPermission, | ||
| /// The onboarding block shown after users create new personal objects. | ||
| OnboardingBlock, | ||
| /// The conversation list overflow menu. | ||
| ConversationList, | ||
| /// The AI block context menu. | ||
| AIBlockContextMenu, | ||
| } | ||
|
|
||
| #[derive(Clone, Copy, Debug, Serialize, Deserialize)] | ||
| pub enum ToggleBlockFilterSource { |
Removes the hosted object-sharing subsystem: the ACL/collaboration UI and plumbing for sharing Warp Drive objects, AI conversations, and pane contents via cloud share-links and access-control lists. This is dead affordance in the CastCodes OSS build, which has no cloud backend to serve share links, resolve guests, or enforce access levels. Removed: - app/src/drive/sharing/ module (SharingDialog, ShareableObject, ContentEditability, SubjectExt/UserKindExt/TeamKindExt, and the re-exports of warp_server_client::drive::sharing types). - The pane sharing UI (pane/view/header/sharing.rs, ToggleSharingDialog / ShareableObjectChanged plumbing, share_pane_contents, PaneAction::ShareContents, CustomAction::SharePaneContents and its keymap binding + Drive app-menu item). - Conversation sharing in the conversation list and AI block context menu. - The Warp Drive share entry points: WorkspaceAction::OpenObjectSharingSettings, the OpenDriveObjectShareDialog event graph, DriveIndexAction::ToggleShareDialog, and the OnboardingDriveSharingBlock. Kept: - ContentEditability relocated to cloud_object::model::view (used by the local editability model in cloud_object/env_vars/notebooks/workflows); kept-code imports of SharingAccessLevel/Subject/etc. repointed directly at warp_server_client::drive::sharing. - SharingDialogSource enum definition (now unused workspace-wide). - The local Warp Drive model and update_manager (its now-unused ACL/guest backend methods left in place, matching prior minimization PRs). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ed0eb49 to
bd5b918
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Second step of the Warp Drive minimization (after the dead
CloudObjectsflag, #181). Removes object sharing — the hosted ACL/collaboration surface for sharing Drive objects, conversations, and panes via cloud share-links and access-control lists. It cannot function in the OSS/local build (no cloud), so it was dead affordance.Removed
app/src/drive/sharing/module (dialog, ACL/inheritance model, invitees, link sharing) and the pane sharing viewpane_group/pane/view/header/sharing.rs.drive_sharingonboarding block and its persisted setting.server/cloud_objects/update_manager.rs(11 permission/guest methods + theObjectOperation::UpdatePermissionsop) — orphaned once the sharing dialog, their only caller, was gone.word_block_editor.rs— used only by the sharing dialog.SharingDialogSource(retained telemetry enum, now unused).SharePaneContentsapp-menu item +pane:share_pane_contentskeybinding, and theShareContents/ToggleShareDialog/OpenConversationShareDialog/OpenObjectSharingSettingsaction variants, handlers, "Share" menu items, and theOpenDriveObjectShareDialogevent graph.Net: 61 files, −4,858 / +121.
Kept (local-first)
The local
CloudModel, theUpdateManagerorchestrator (local CRUD), and the entire Drive UI (index, panel, items, workflows, import, export, folders).SharingAccessLevelstays as the local object-model permission type (repointed to import fromwarp_server_clientdirectly instead of via the deleted re-export). Notebooks/workflows/env-vars/prompts/AI-context-chips are unaffected.Verification (host)
cargo check -p warp-app --all-targets --tests --features gui→ 0 warnings, 0 errors (CI uses clippy-D warnings; dead_code is enforced).cargo check -p integration→ clean (the feature config not covered by--features gui).cargo fmt --check→ clean.Follow-ups: the RTC update listener and the GraphQL sync transport.
🤖 Generated with Claude Code