Add a scoped global command palette - #4334
Conversation
There was a problem hiding this comment.
π‘ Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1ced497584
βΉοΈ About Codex in GitHub
Codex has been enabled to automatically 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 π.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
π Dyadbot Code Review SummaryVerdict: π€ NOT SURE - Potential issues The wiring is sound: The issues below are all MEDIUM β mostly interaction-quality and consistency problems around the new global shortcut and the hand-rolled scoring/reveal helpers. None of them block merge. The diff is complete (not truncated). Issues Summary
π’ Low Priority Notes (8 items)
Generated by Dyadbot persona-based code review |
π€ Claude Code Review SummaryPR Confidence: 4/5All trusted review threads are resolved and local unit, type, build, and Electron E2E checks pass; the final CI run is still in progress. Unresolved ThreadsNo unresolved threads Resolved Threads
Product Principle SuggestionsNo suggestions π€ Generated by Claude Code |
There was a problem hiding this comment.
π‘ Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e76b5c0bff
βΉοΈ About Codex in GitHub
Codex has been enabled to automatically 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 π.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
π‘ Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9274dd8371
βΉοΈ About Codex in GitHub
Codex has been enabled to automatically 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 π.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
π Dyadbot Code Review SummaryVerdict: π€ NOT SURE - Potential issues Reviewed all 22 changed files; the diff is complete ( No merge blockers found. The issues below are behavioral/consistency gaps rather than breakage. Issues Summary
π’ Low Priority Notes (7 items)
One thing I could not verify from this checkout: Generated by Dyadbot persona-based code review |
There was a problem hiding this comment.
π‘ Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c2d4ecfcd9
βΉοΈ About Codex in GitHub
Codex has been enabled to automatically 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 π.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
π Dyadbot Code Review SummaryVerdict: π€ NOT SURE - Potential issues Reviewed PR #4334 ( The feature is well-scoped: no new IPC handlers, no main-process changes, no schema/migration surface, and no destructive commands are exposed β the palette only navigates and reveals existing controls. Renderer data fetching reuses existing TanStack Query hooks ( I verified several things that could have been blockers and they check out: The issues below are all MEDIUM β none block merge. Issues Summary
π’ Low Priority Notes (7 items)
Generated by Dyadbot persona-based code review |
There was a problem hiding this comment.
π‘ Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9573973b6c
βΉοΈ About Codex in GitHub
Codex has been enabled to automatically 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 π.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| onSelect={() => | ||
| closeAndRun(() => | ||
| selectChat({ chatId: chat.id, appId: chat.appId }), | ||
| ) |
There was a problem hiding this comment.
Discard chat results from the previously selected app
When switching from app A to app B after searching chats in A, useSearchChats retains A's results via keepPreviousData while B's request is pending. This item remains selectable and passes chat.appId to selectChat, so a quick selection unexpectedly navigates back to app A even though the palette is scoped to app B. Filter these results by selectedAppId or avoid retaining results across app-ID changes.
Useful? React with πΒ / π.
| onSelect={() => | ||
| closeAndRun(() => openConfigureTarget(item.targetId)) | ||
| } |
There was a problem hiding this comment.
Keep the app-command target mounted during env failures
When environment-variable loading takes longer than the one-second reveal window or fails, ConfigurePanel.tsx returns from its loading/error branch before AppCommandsSection is mounted. This command is nevertheless always selectable, so navigation ends with βCouldn't open that settingβ even though app-command configuration is independent of environment variables. Render the app-command section in that branch or only offer the command when its target can mount.
Useful? React with πΒ / π.
| if (setting.requiresPro && (!settings || !isDyadProEnabled(settings))) { | ||
| return false; | ||
| } | ||
| return ( |
There was a problem hiding this comment.
π‘ MEDIUM
Disconnected integrations disappear from settings search
getAvailableSettings drops any entry with requiresConnection when the integration has no token, and SettingsList now searches that filtered list too. Unlike the Pro-gated entries (which genuinely do not render - SubagentSettings returns null without Pro), the GitHub/Vercel/Supabase/Neon sections in src/pages/settings.tsx render unconditionally with their Connect UI. So searching 'GitHub' in the Settings page sidebar returns nothing precisely when the user is not connected and most needs to find that section, which is a regression in the pre-existing settings search rather than only a new palette behavior.
π‘ Suggestion: Filter only on requiresPro (where the destination truly does not render) and keep requiresConnection entries searchable, or use requiresConnection just to de-rank them instead of removing them.
| const openConfigureTarget = async (targetId: string) => { | ||
| if (!selectedAppId) return; | ||
| const chatId = | ||
| targetChatId !== null |
There was a problem hiding this comment.
π‘ MEDIUM
Palette can create a stray chat before the chat list loads
targetChatId comes from getSelectedChatId(chats, selectedChatId), and useChats returns [] while its query is in flight (for example right after switching the selected app, when the chats.list key for the new appId has no cached data). In that window a chat is open but targetChatId is null, so openConfigureTarget calls ipc.chat.createChat and navigates the user into a brand-new empty chat instead of reusing the one they were in, leaving an unwanted chat behind.
π‘ Suggestion: Take the loading flag from useChats and either wait for the list or fall back to selectedChatId while it is still loading, so a chat is only created when the loaded list confirms there is no selected chat.
π Dyadbot Code Review SummaryVerdict: π€ NOT SURE - Potential issues The command palette is well-factored: pure helpers ( Two MEDIUM issues are worth a look; neither blocks merge. Issues Summary
π’ Low Priority Notes (7 items)
Generated by Dyadbot persona-based code review |
π Playwright Test Resultsβ Some tests failed
Summary: 290 passed, 3 failed, 1 flaky, 12 skipped Failed Testsπ macOS
π Re-run Failing Tests (macOS)Copy and paste to re-run all failing spec files locally: npm run e2e \
e2e-tests/local_agent_advanced.spec.ts \
e2e-tests/local_agent_auto.spec.ts \
e2e-tests/local_agent_explore_code.spec.ts
|
Summary
Adds a VS Code-style global command palette that makes Dyad navigation and configuration searchable from one place.
Cmd/Ctrl+K, prefilled withchat:, and searches chat titles plus message content within the selected app.Cmd/Ctrl+Por the title-bar Commands button.