Problem
Right-click does almost nothing in the app today. Electron doesn't provide context menus by default — apps must wire them up themselves, and we currently don't. Concretely:
- No Cut/Copy/Paste menu in text inputs, including the chat composer
- No "Copy" on selected text in emails, chat messages, or notes
- No spell-check suggestions (Chromium's spellchecker is on, but suggestions only surface via a context menu)
- No "Copy Link Address" on links, no "Save Image" on images
- No context menu in the embedded browser pane
The only right-click menus that exist are custom in-app (Radix UI) menus on a few list rows — chat history entries, notes, knowledge items, workspace files — plus the tray icon menu. Those should keep working as-is.
Suggested approach
Use the electron-context-menu package — it provides editing, spellcheck, link, and image menus out of the box:
cd apps/x/apps/main && pnpm add electron-context-menu
- Initialize it in the main process (
apps/x/apps/main/src/main.ts); esbuild bundles the dependency automatically
- Make sure it also attaches to the browser pane's
WebContentsView, not just the main window
- Check it doesn't fight the existing custom Radix menus — the native menu naturally only shows for editable fields, selected text, links, and images, which shouldn't overlap with the list-row menus
Acceptance criteria
Dev setup is in CLAUDE.md / README — cd apps/x && pnpm install && npm run dev.
Problem
Right-click does almost nothing in the app today. Electron doesn't provide context menus by default — apps must wire them up themselves, and we currently don't. Concretely:
The only right-click menus that exist are custom in-app (Radix UI) menus on a few list rows — chat history entries, notes, knowledge items, workspace files — plus the tray icon menu. Those should keep working as-is.
Suggested approach
Use the
electron-context-menupackage — it provides editing, spellcheck, link, and image menus out of the box:cd apps/x/apps/main && pnpm add electron-context-menuapps/x/apps/main/src/main.ts); esbuild bundles the dependency automaticallyWebContentsView, not just the main windowAcceptance criteria
Dev setup is in
CLAUDE.md/README—cd apps/x && pnpm install && npm run dev.