Skip to content

feat: mac computer use#1557

Merged
zerob13 merged 36 commits into
devfrom
codex/mac-computer-use
May 1, 2026
Merged

feat: mac computer use#1557
zerob13 merged 36 commits into
devfrom
codex/mac-computer-use

Conversation

@zerob13

@zerob13 zerob13 commented Apr 28, 2026

Copy link
Copy Markdown
Collaborator

No description provided.

zerob13 and others added 19 commits April 26, 2026 11:50
* fix(rtk): simplify health check

* fix(knowledge): use config ipc

* fix(models): persist db model status

* fix: harden MCP env and knowledge delete

* fix: clean knowledge presenter cleanup paths
…omponents (#1542)

- Updated transition classes in MessageActionButtons.vue for smoother animations.
- Refactored MessageBlockContent.vue to optimize artifact snapshot handling with computed properties.
- Improved transition effects in MessageBlockToolCall.vue for better user experience.
- Added a mention icon map in MessageContent.vue to streamline icon retrieval.
- Enhanced MessageItemUser.vue with a new line counting function for better text handling.
- Optimized MessageToolbar.vue for consistent transition effects on button interactions.
- Refactored BrowserPanel.vue to simplify state management for synced bounds.
- Improved ChatSidePanel.vue with better resizing and visibility handling.
- Updated ChatPage.vue to enhance chat search highlight scheduling.
- Cleaned up ChatTabView.vue by removing legacy collapsed new chat button functionality.
- Enhanced tests in ChatTabView.test.ts and WindowSideBar.test.ts for improved coverage and accuracy.
@coderabbitai

coderabbitai Bot commented Apr 28, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 258 files, which is 108 over the limit of 150.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: aca383cf-89ee-4a13-9e44-048fc5f3120a

📥 Commits

Reviewing files that changed from the base of the PR and between f516e16 and 52e9b00.

⛔ Files ignored due to path filters (10)
  • plugins/cua/vendor/cua-driver/source/App/CuaDriver/AppIcon.iconset/icon_128x128.png is excluded by !**/*.png
  • plugins/cua/vendor/cua-driver/source/App/CuaDriver/AppIcon.iconset/icon_128x128@2x.png is excluded by !**/*.png
  • plugins/cua/vendor/cua-driver/source/App/CuaDriver/AppIcon.iconset/icon_16x16.png is excluded by !**/*.png
  • plugins/cua/vendor/cua-driver/source/App/CuaDriver/AppIcon.iconset/icon_16x16@2x.png is excluded by !**/*.png
  • plugins/cua/vendor/cua-driver/source/App/CuaDriver/AppIcon.iconset/icon_256x256.png is excluded by !**/*.png
  • plugins/cua/vendor/cua-driver/source/App/CuaDriver/AppIcon.iconset/icon_256x256@2x.png is excluded by !**/*.png
  • plugins/cua/vendor/cua-driver/source/App/CuaDriver/AppIcon.iconset/icon_32x32.png is excluded by !**/*.png
  • plugins/cua/vendor/cua-driver/source/App/CuaDriver/AppIcon.iconset/icon_32x32@2x.png is excluded by !**/*.png
  • plugins/cua/vendor/cua-driver/source/App/CuaDriver/AppIcon.iconset/icon_512x512.png is excluded by !**/*.png
  • plugins/cua/vendor/cua-driver/source/App/CuaDriver/AppIcon.iconset/icon_512x512@2x.png is excluded by !**/*.png
📒 Files selected for processing (258)
  • .github/workflows/build.yml
  • .github/workflows/release.yml
  • .gitignore
  • docs/README.md
  • docs/guides/plugin-packaging.md
  • docs/specs/cua-runtime-plugin/non-macos-handoff.md
  • docs/specs/cua-runtime-plugin/plan.md
  • docs/specs/cua-runtime-plugin/spec.md
  • docs/specs/cua-runtime-plugin/tasks.md
  • docs/specs/mac-computer-use/README.md
  • docs/specs/mac-computer-use/packaging.md
  • docs/specs/mac-computer-use/permissions-ux.md
  • docs/specs/mac-computer-use/plan.md
  • docs/specs/mac-computer-use/references.md
  • docs/specs/mac-computer-use/spec.md
  • docs/specs/mac-computer-use/tasks.md
  • docs/specs/mac-computer-use/test-plan.md
  • electron-builder.yml
  • electron.vite.config.ts
  • package.json
  • plugins/cua/build/entitlements.plist
  • plugins/cua/mcp/cua-driver.json
  • plugins/cua/plugin.json
  • plugins/cua/policies/tool-policy.json
  • plugins/cua/settings/assets/index.css
  • plugins/cua/settings/assets/index.js
  • plugins/cua/settings/index.html
  • plugins/cua/skills/cua-driver/README.md
  • plugins/cua/skills/cua-driver/RECORDING.md
  • plugins/cua/skills/cua-driver/SKILL.md
  • plugins/cua/skills/cua-driver/TESTS.md
  • plugins/cua/skills/cua-driver/WEB_APPS.md
  • plugins/cua/types/settings-preload.d.ts
  • plugins/cua/vendor/cua-driver/source/.bumpversion.cfg
  • plugins/cua/vendor/cua-driver/source/.gitignore
  • plugins/cua/vendor/cua-driver/source/App/CuaDriver/AppIcon.icns
  • plugins/cua/vendor/cua-driver/source/App/CuaDriver/Info.plist
  • plugins/cua/vendor/cua-driver/source/Package.resolved
  • plugins/cua/vendor/cua-driver/source/Package.swift
  • plugins/cua/vendor/cua-driver/source/README.md
  • plugins/cua/vendor/cua-driver/source/Skills/cua-driver/README.md
  • plugins/cua/vendor/cua-driver/source/Skills/cua-driver/RECORDING.md
  • plugins/cua/vendor/cua-driver/source/Skills/cua-driver/SKILL.md
  • plugins/cua/vendor/cua-driver/source/Skills/cua-driver/TESTS.md
  • plugins/cua/vendor/cua-driver/source/Skills/cua-driver/WEB_APPS.md
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCLI/CallCommand.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCLI/ConfigCommand.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCLI/CuaDriverCommand.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCLI/DiagnoseCommand.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCLI/RecordingCommand.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCLI/RecordingRenderCommand.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCLI/ServeCommand.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCLI/VersionCheck.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/AppState/AppState.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Apps/AppEnumerator.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Apps/AppInfo.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Apps/AppLauncher.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Browser/AXPageReader.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Browser/BrowserJS.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Browser/CDPClient.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Browser/ElectronJS.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Browser/WebInspectorXPC.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Browser/WebKitJS.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Capture/DebugCrosshair.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Capture/ScreenInfo.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Capture/WindowCapture.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Config/ConfigStore.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Config/CuaDriverConfig.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/CuaDriverCore.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Cursor/AgentCursor.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Cursor/AgentCursorOverlayWindow.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Cursor/AgentCursorRenderer.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Cursor/AgentCursorView.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Cursor/Bezier.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Cursor/CursorMotionPath.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Focus/AXEnablementAssertion.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Focus/FocusGuard.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Focus/SyntheticAppFocusEnforcer.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Focus/SystemFocusStealPreventer.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Input/AXInput.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Input/CursorControl.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Input/CursorPoint.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Input/FocusWithoutRaise.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Input/KeyboardInput.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Input/MouseInput.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Input/SkyLightEventPost.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Permissions/Permissions.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Permissions/PermissionsGate.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Recording/ClickMarkerRenderer.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Recording/CursorSampler.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Recording/RecordingSession.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Recording/Render/FrameTransform.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Recording/Render/RecordingRenderer.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Recording/Render/TrajectoryLoader.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Recording/VideoRecorder.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Recording/Zoom/ActionSpan.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Recording/Zoom/CursorTelemetry.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Recording/Zoom/ZoomMath.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Recording/Zoom/ZoomRegion.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Telemetry/TelemetryClient.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Windows/SpaceMigrator.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Windows/WindowCoordinateSpace.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Windows/WindowEnumerator.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverCore/Windows/WindowInfo.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/AppStateRegistry.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/CuaDriverMCPServer.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/DaemonClient.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/DaemonProtocol.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/DaemonServer.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/ToolRegistry.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/CheckPermissionsTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/ClickTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/DoubleClickTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/DragTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/GetAccessibilityTreeTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/GetAgentCursorStateTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/GetConfigTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/GetCursorPositionTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/GetRecordingStateTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/GetScreenSizeTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/GetWindowStateTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/HotkeyTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/ImageResizeRegistry.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/LaunchAppTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/ListAppsTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/ListWindowsTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/MoveCursorTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/PageTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/PressKeyTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/ReplayTrajectoryTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/RightClickTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/ScreenshotTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/ScrollTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/SetAgentCursorEnabledTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/SetAgentCursorMotionTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/SetAgentCursorStyleTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/SetConfigTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/SetRecordingTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/SetValueTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/TypeTextCharsTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/TypeTextTool.swift
  • plugins/cua/vendor/cua-driver/source/Sources/CuaDriverServer/Tools/ZoomTool.swift
  • plugins/cua/vendor/cua-driver/source/Tests/FocusMonitorApp/FocusMonitorApp.swift
  • plugins/cua/vendor/cua-driver/source/Tests/FocusMonitorApp/build.sh
  • plugins/cua/vendor/cua-driver/source/Tests/ZoomMathTests/ZoomMathTests.swift
  • plugins/cua/vendor/cua-driver/source/Tests/integration/driver_client.py
  • plugins/cua/vendor/cua-driver/source/Tests/integration/fixtures/form_all_inputs.html
  • plugins/cua/vendor/cua-driver/source/Tests/integration/fixtures/interactive.html
  • plugins/cua/vendor/cua-driver/source/Tests/integration/test_background_focus.py
  • plugins/cua/vendor/cua-driver/source/Tests/integration/test_blender_background.py
  • plugins/cua/vendor/cua-driver/source/Tests/integration/test_browser_js.py
  • plugins/cua/vendor/cua-driver/source/Tests/integration/test_check_permissions_cli.py
  • plugins/cua/vendor/cua-driver/source/Tests/integration/test_chrome_minimized_nav.py
  • plugins/cua/vendor/cua-driver/source/Tests/integration/test_click_pixel_ax.py
  • plugins/cua/vendor/cua-driver/source/Tests/integration/test_double_click_delivery.py
  • plugins/cua/vendor/cua-driver/source/Tests/integration/test_drag_slider_delivery.py
  • plugins/cua/vendor/cua-driver/source/Tests/integration/test_hermes_form_fill.py
  • plugins/cua/vendor/cua-driver/source/Tests/integration/test_list_windows.py
  • plugins/cua/vendor/cua-driver/source/Tests/integration/test_overlay_z_order.py
  • plugins/cua/vendor/cua-driver/source/Tests/integration/test_pixel_click_delivery.py
  • plugins/cua/vendor/cua-driver/source/Tests/integration/test_webkit_js.py
  • plugins/cua/vendor/cua-driver/source/docs/tool-output-format.md
  • plugins/cua/vendor/cua-driver/source/scripts/CuaDriver.entitlements
  • plugins/cua/vendor/cua-driver/source/scripts/build-app.sh
  • plugins/cua/vendor/cua-driver/source/scripts/build/build-release-notarized.sh
  • plugins/cua/vendor/cua-driver/source/scripts/install-local.sh
  • plugins/cua/vendor/cua-driver/source/scripts/install.sh
  • plugins/cua/vendor/cua-driver/source/scripts/test.sh
  • plugins/cua/vendor/cua-driver/source/scripts/uninstall.sh
  • plugins/cua/vendor/cua-driver/upstream.json
  • resources/acp-registry/registry.json
  • resources/model-db/providers.json
  • scripts/afterPack.js
  • scripts/build-cua-plugin-runtime.mjs
  • scripts/package-plugin.mjs
  • scripts/sign-cua-helper.mjs
  • src/main/presenter/agentRuntimePresenter/index.ts
  • src/main/presenter/configPresenter/mcpConfHelper.ts
  • src/main/presenter/index.ts
  • src/main/presenter/mcpPresenter/toolManager.ts
  • src/main/presenter/pluginPresenter/index.ts
  • src/main/presenter/pluginPresenter/toolPolicyStore.ts
  • src/main/presenter/skillPresenter/index.ts
  • src/main/presenter/windowPresenter/index.ts
  • src/main/routes/index.ts
  • src/preload/plugin-settings-preload.d.ts
  • src/preload/plugin-settings-preload.ts
  • src/renderer/api/PluginClient.ts
  • src/renderer/api/index.ts
  • src/renderer/settings/App.vue
  • src/renderer/settings/components/PluginsSettings.vue
  • src/renderer/settings/main.ts
  • src/renderer/src/components/chat-input/McpIndicator.vue
  • src/renderer/src/components/chat-input/composables/useAgentMcpData.ts
  • src/renderer/src/components/chat/composables/useChatInputMentions.ts
  • src/renderer/src/components/mcp-config/AgentMcpSelector.vue
  • src/renderer/src/components/mcp-config/components/McpServerCard.vue
  • src/renderer/src/components/mcp-config/components/McpServers.vue
  • src/renderer/src/i18n/da-DK/chat.json
  • src/renderer/src/i18n/da-DK/routes.json
  • src/renderer/src/i18n/da-DK/settings.json
  • src/renderer/src/i18n/en-US/chat.json
  • src/renderer/src/i18n/en-US/routes.json
  • src/renderer/src/i18n/en-US/settings.json
  • src/renderer/src/i18n/fa-IR/chat.json
  • src/renderer/src/i18n/fa-IR/routes.json
  • src/renderer/src/i18n/fa-IR/settings.json
  • src/renderer/src/i18n/fr-FR/chat.json
  • src/renderer/src/i18n/fr-FR/routes.json
  • src/renderer/src/i18n/fr-FR/settings.json
  • src/renderer/src/i18n/he-IL/chat.json
  • src/renderer/src/i18n/he-IL/routes.json
  • src/renderer/src/i18n/he-IL/settings.json
  • src/renderer/src/i18n/ja-JP/chat.json
  • src/renderer/src/i18n/ja-JP/routes.json
  • src/renderer/src/i18n/ja-JP/settings.json
  • src/renderer/src/i18n/ko-KR/chat.json
  • src/renderer/src/i18n/ko-KR/routes.json
  • src/renderer/src/i18n/ko-KR/settings.json
  • src/renderer/src/i18n/pt-BR/chat.json
  • src/renderer/src/i18n/pt-BR/routes.json
  • src/renderer/src/i18n/pt-BR/settings.json
  • src/renderer/src/i18n/ru-RU/chat.json
  • src/renderer/src/i18n/ru-RU/routes.json
  • src/renderer/src/i18n/ru-RU/settings.json
  • src/renderer/src/i18n/zh-CN/chat.json
  • src/renderer/src/i18n/zh-CN/routes.json
  • src/renderer/src/i18n/zh-CN/settings.json
  • src/renderer/src/i18n/zh-HK/chat.json
  • src/renderer/src/i18n/zh-HK/routes.json
  • src/renderer/src/i18n/zh-HK/settings.json
  • src/renderer/src/i18n/zh-TW/chat.json
  • src/renderer/src/i18n/zh-TW/routes.json
  • src/renderer/src/i18n/zh-TW/settings.json
  • src/renderer/src/stores/mcp.ts
  • src/shared/contracts/routes.ts
  • src/shared/contracts/routes/plugins.routes.ts
  • src/shared/contracts/routes/system.routes.ts
  • src/shared/settingsNavigation.ts
  • src/shared/types/index.d.ts
  • src/shared/types/plugin.ts
  • src/shared/types/presenters/legacy.presenters.d.ts
  • src/shared/types/skill.ts
  • test/main/presenter/agentRuntimePresenter/agentRuntimePresenter.test.ts
  • test/main/presenter/configPresenter/mcpConfHelper.test.ts
  • test/main/presenter/index.test.ts
  • test/main/presenter/mcpPresenter/toolManager.test.ts
  • test/main/presenter/pluginPresenter.test.ts
  • test/main/presenter/skillPresenter/skillPresenter.test.ts
  • test/main/routes/contracts.test.ts
  • test/main/scripts/afterPack.test.ts
  • test/main/scripts/signCuaHelper.test.ts
  • test/main/shared/settingsNavigation.test.ts
  • test/mocks/electron.ts
  • test/renderer/components/McpIndicator.test.ts
  • test/renderer/components/McpServers.test.ts
  • test/renderer/stores/mcpStore.test.ts
  • test/setup.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/mac-computer-use

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@zerob13 zerob13 changed the title Codex/mac computer use feat: mac computer use Apr 28, 2026
@zerob13 zerob13 marked this pull request as ready for review May 1, 2026 03:47

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2a80c97f9f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +517 to +520
if (path.isAbsolute(command)) {
const helperAppPath = this.resolveHelperAppPath(command)
return {
runtimeId: runtime.id,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Continue runtime detection after absolute candidate failures

When --version fails for the first absolute detect candidate, this branch returns state: 'error' immediately instead of trying later candidates in runtime.detect. For CUA, that means a broken bundled helper path can block fallback to /Applications/CuaDriver.app/... even when that runtime is installed and usable, causing unnecessary plugin activation failures.

Useful? React with 👍 / 👎.

Comment on lines +44 to +48
if (!policy.enabled || policy.serverId !== serverId) {
continue
}
const decision = policy.tools[toolName]
if (decision === 'allow' || decision === 'ask' || decision === 'deny') {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Scope plugin tool policies to the owning plugin server

Policy resolution matches only by serverId and toolName, so any registered plugin policy can affect permission decisions for another server with the same id, regardless of ownership. A misconfigured plugin manifest (or future plugin) can therefore silently override allow/ask/deny behavior for unrelated MCP servers; this should be constrained using server ownership metadata before applying the policy.

Useful? React with 👍 / 👎.

@zerob13 zerob13 merged commit b0cc054 into dev May 1, 2026
7 checks passed
@zhangmo8 zhangmo8 deleted the codex/mac-computer-use branch May 12, 2026 07:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants