Files
CherryHQ-cherry-studio/packages/shared/externalApp
Phantom dfd00b4c51 feat: add open-in-external-editor support for agent workspace (#12725)
* feat: add external apps detection service

* refactor: Move ChatNavbarContent to index file in own directory

* refactor: Extract SessionWorkspaceMeta component from ChatNavbarContent

* refactor: Extract TopicContent component from ChatNavbarContent

* refactor: Extract AgentContent component from ChatNavbarContent

* refactor: Filter out uninstalled external apps from detection

Instead of returning all apps with an `installed` boolean flag, the
service now only returns apps that are successfully detected. The
`installed` field is removed from the type as it is now implied.

* feat: add open-in-editor button with Zed support and fix SVG attributes

- Add Zed editor to external apps config with ExternalAppId union type
- Filter uninstalled apps in detection results
- Add OpenExternalAppButton to agent chat navbar
- Add VSCode, Cursor, Zed SVG icons
- Fix non-React SVG attributes (fill-rule, clip-rule, mask-type, etc.)

* fix: guard against undefined accessible_paths in OpenExternalAppButton

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: encode workdir path in external app URL to handle spaces and special characters

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: use useId() for unique SVG ids in VSCodeIcon to prevent multi-instance conflicts

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* refactor: remove dead commented-out code and unused classNames prop in SessionWorkspaceMeta

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: encode each path segment individually to handle # ? & in directory names

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* refactor: Move ChatNavbar to components directory

* refactor: Extract toolbar components from ChatNavBar into separate file

* refactor: Extract NavbarIcon component to shared location

* refactor: Move NavbarIcon to shared components directory

* fix: Use currentColor for Zed icon fill to support theme colors

* refactor: Make NavbarIcon component private

* refactor: Use absolute import for NavbarIcon in Tools component

* refactor: Move Tools component into its own directory

* refactor: Consolidate OpenAISettingsGroup component into single file

* refactor: Move OpenAI settings group to ChatNavBar location

* refactor: Move GroqSettingsGroup to SettingsTab directory

* refactor: Move SettingsButton to ChatNavBar/Tools directory

* feat: add agent-specific settings tab and refactor settings components

* refactor: Move ChatNavbarContent to ChatNavBar directory

* refactor: Wrap ChatNavBar tools in HStack for consistent layout

* feat: move Tools component inside AgentContent and TopicContent

* feat: Move external app button outside scroll container

* fix: Improve chat navbar layout and spacing

* fix: handle Windows path separators in external editor URL

Use regex /[/\\]/ to split paths, supporting both Unix (/) and
Windows (\) path separators when opening workspace in external editors.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* refactor: Remove UpdateAppButton from ChatNavBar tools

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 15:45:19 +08:00
..