Repository navigation
Polish web context menu fallback and sidebar icon actions - #3025
Conversation
Ported from #2451. Co-authored-by: ss <[email protected]> Co-Authored-By: Claude Opus 4.8 <[email protected]>
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
🚀 Expo continuous deployment is ready!
|
ApprovabilityVerdict: Approved UI polish changes to context menus and sidebar styling - CSS adjustments, icon support, improved menu dismiss behavior, and shortened labels. All changes are visual/cosmetic with no impact on core business logic or security-sensitive areas. You can customize Macroscope's approvability policy. Learn more. |
- Show trash icon for delete actions in the sidebar menu - Match fallback icon sizing for destructive items
Dismissing prior approval to re-evaluate b65f255
- Change the archive confirm control from fully rounded to rounded-md - Keep the existing destructive hover and focus styling
Dismissing prior approval to re-evaluate e695574
…MIT ONLY, DO NOT SQUASH (#100) * fix: maintain reasoning selections for multiple providers (pingdotgg#2760) * [codex] Bump Effect to beta.73 and migrate compatibility APIs (pingdotgg#2840) Co-authored-by: codex <[email protected]> * Add Claude Opus 4.8 support (pingdotgg#2849) * Migrate TypeScript checks to Effect TSGo (pingdotgg#2851) * Extract collection performance refactors from mobile stack (pingdotgg#2854) Co-authored-by: codex <[email protected]> * Extract independent web cleanup from mobile stack (pingdotgg#2855) Co-authored-by: Julius Marminge <[email protected]> Co-authored-by: codex <[email protected]> * Ensure Electron runtime is installed in release workflow (pingdotgg#2861) * T3 Code Mobile [WIP] (pingdotgg#2013) Co-authored-by: codex <[email protected]> Co-authored-by: Julius Marminge <[email protected]> Co-authored-by: Yash Singh <[email protected]> * chore: add vendored reference repo subtree sync tooling (pingdotgg#2902) Co-authored-by: codex <[email protected]> * Use HttpApi for Environment APIs & standardize authn/authz (pingdotgg#2858) Co-authored-by: codex <[email protected]> * chore: add Alchemy reference repo subtree (pingdotgg#2918) Co-authored-by: codex <[email protected]> * fix(desktop): Include standard Linux AppImage icons for Niri/Noctalia (pingdotgg#2915) * Probe Cursor models via list_available_models (pingdotgg#2428) Co-authored-by: codex <[email protected]> Co-authored-by: Julius Marminge <[email protected]> * Migrate workspace to Vite+ and pnpm (pingdotgg#2899) Co-authored-by: Julius Marminge <[email protected]> Co-authored-by: Cursor Agent <[email protected]> * test(web): CI stability - prebundle react-dom client for browser tests (pingdotgg#2928) * fix(ssh): Surface redacted stdout for failed commands (pingdotgg#2920) * fix(desktop): Preserve SSH HTTP auth status (pingdotgg#2923) Co-authored-by: Julius Marminge <[email protected]> * fix: build web before desktop release packaging (pingdotgg#2934) Co-authored-by: Julius Marminge <[email protected]> * ci: let setup-vp install dependencies (pingdotgg#2936) Co-authored-by: Julius Marminge <[email protected]> * fix(release): surface desktop packaging subprocess output (pingdotgg#2937) Co-authored-by: Julius Marminge <[email protected]> * chore: setup eas ci (pingdotgg#2911) Co-authored-by: Julius Marminge <[email protected]> * fix(release): use workspace electron-builder for desktop packaging (pingdotgg#2938) Co-authored-by: Julius Marminge <[email protected]> * [codex] remove duplicated pnpm root config (pingdotgg#2939) Co-authored-by: Julius Marminge <[email protected]> * fix(release): install dependency closures in partial jobs (pingdotgg#2941) Co-authored-by: Julius Marminge <[email protected]> * [codex] split ci workflow jobs (pingdotgg#2940) Co-authored-by: Julius Marminge <[email protected]> * [codex] fix mobile native static analysis source discovery (pingdotgg#2942) Co-authored-by: Julius Marminge <[email protected]> * fix(release): preserve desktop artifact arch (pingdotgg#2943) Co-authored-by: Julius Marminge <[email protected]> * [codex] Fix desktop packaging patched dependencies (pingdotgg#2944) Co-authored-by: codex <[email protected]> * [codex] Filter staged desktop patched dependencies (pingdotgg#2945) Co-authored-by: codex <[email protected]> * fix(release): install hosted web workspace closure (pingdotgg#2949) * fix(cli): bundle patched diff parser dependency (pingdotgg#2957) Co-authored-by: Julius Marminge <[email protected]> * Prevent settings layout shifts with scrollbar gutters (pingdotgg#2960) * [codex] fix release finalize install (pingdotgg#2961) Co-authored-by: Julius Marminge <[email protected]> * fix(source-control): handle self-hosted GitLab, multi-account GitHub auth & azure devops web url (pingdotgg#2480) Co-authored-by: Julius Marminge <[email protected]> * [codex] Avoid shell for Node executable spawns (pingdotgg#2952) Co-authored-by: Julius Marminge <[email protected]> * [codex] Avoid shell for Windows environment probe (pingdotgg#2951) Co-authored-by: Julius Marminge <[email protected]> * fix(composer): support spaces in file mentions (pingdotgg#2625) * [codex] Avoid shell for system executables (pingdotgg#2950) Co-authored-by: Julius Marminge <[email protected]> * feat(relay): Add managed relay tunnels and APN service (pingdotgg#2837) Co-authored-by: codex <[email protected]> * Restructure documentation into topical folders (pingdotgg#2963) * move * dont fail if env-file is unspecified * fallback to None when RELAY_DOMAIN is unset * implicit install from vp * forward args directly * bump alchemy to fix absolute drizzle schema out * bump alchemy to fix drizzle schema out attempt 2 * Migrate tests to vite-plus test APIs (pingdotgg#2964) * remove `vp staged` * publish deploy status on relay deploy workflow * Use pnpm for server publish workflow (pingdotgg#2966) * Rename function for publishing arguments to vp pm (pingdotgg#2967) * Remove duplicate 'publish' argument in CLI script * Refactor recoverable Effect fallbacks to orElseSucceed (pingdotgg#2968) * document vp instead of mise * link * cleanup * tip * we support cursor, duhhh * include @latest * fix(cloud): use Electron fetch for proxying Clerk IPC requests (pingdotgg#2973) * fix: handle Claude Agent SDK 0.3.x system messages to stop runtime-warning flood (pingdotgg#2872) Co-authored-by: Julius Marminge <[email protected]> * "claude system message" instead of "runtime warning" when using 4.8 from claude code (pingdotgg#2972) * fix(desktop): stop looping macOS TCC permission prompts (pingdotgg#2745) Co-authored-by: Julius Marminge <[email protected]> Co-authored-by: Julius Marminge <[email protected]> * Annotate relay error spans with schema fields (pingdotgg#2976) * [codex] Enrich relay authorization diagnostics (pingdotgg#2977) Co-authored-by: codex <[email protected]> * [codex] Extract infrastructure, telemetry, and test tooling (pingdotgg#2994) Co-authored-by: codex <[email protected]> * feat(grok): add Grok CLI provider via ACP (pingdotgg#2809) Co-authored-by: Julius Marminge <[email protected]> * [codex] Fix main CI Effect test runtimes (pingdotgg#3008) Co-authored-by: codex <[email protected]> * Add Claude Fable 5 model (pingdotgg#3009) Co-authored-by: codex <[email protected]> * chore(release): prepare v0.0.26 * [codex] Rebrand T3 Cloud as T3 Connect (pingdotgg#3011) Co-authored-by: codex <[email protected]> * Fix Clerk browser test mock (pingdotgg#3013) Co-authored-by: codex <[email protected]> * chore(release): prepare v0.0.27 * Bundle DM Sans and JetBrains Mono fonts instead of Google Fonts (pingdotgg#3014) Co-authored-by: ss <[email protected]> Co-authored-by: Claude Opus 4.8 <[email protected]> * Mute icons in labeled controls and suppress popup focus rings (pingdotgg#3015) Co-authored-by: ss <[email protected]> Co-authored-by: Claude Opus 4.8 <[email protected]> * Polish dialog/alert surfaces and unauthenticated provider banner (pingdotgg#3016) Co-authored-by: ss <[email protected]> Co-authored-by: Claude Opus 4.8 <[email protected]> * fix(marketing) : marketing showing wrong icons on linux (pingdotgg#2696) Co-authored-by: Julius Marminge <[email protected]> * Misc markdown styling improvements (pingdotgg#3017) Co-authored-by: ss <[email protected]> Co-authored-by: Claude Opus 4.8 <[email protected]> Co-authored-by: codex <[email protected]> Co-authored-by: Cursor Agent <[email protected]> Co-authored-by: cursor[bot] <206951365+cursor[bot]@users.noreply.github.com> * Model picker UI Improvements, Virtualize Model List (pingdotgg#3021) Co-authored-by: ss <[email protected]> Co-authored-by: Claude Opus 4.8 <[email protected]> * Provider env vars table and reworked accent color picker (pingdotgg#3026) Co-authored-by: ss <[email protected]> Co-authored-by: Claude Opus 4.8 <[email protected]> * Polish branch picker trigger, scroll fade, and list layout (pingdotgg#3024) Co-authored-by: ss <[email protected]> Co-authored-by: Claude Opus 4.8 <[email protected]> Co-authored-by: Cursor Agent <[email protected]> * Polish web context menu fallback and sidebar icon actions (pingdotgg#3025) Co-authored-by: ss <[email protected]> Co-authored-by: Claude Opus 4.8 <[email protected]> * Composer polish: focus ring, send/stop buttons, command menu, context meter, answer panel (pingdotgg#3018) Co-authored-by: ss <[email protected]> Co-authored-by: Claude Opus 4.8 <[email protected]> Co-authored-by: codex <[email protected]> * Extract changed files card with compact aligned diff stats (pingdotgg#3023) Co-authored-by: ss <[email protected]> Co-authored-by: Claude Opus 4.8 <[email protected]> Co-authored-by: codex <[email protected]> * ci: fix vp test invocation (-r and --filter are mutually exclusive) --------- Co-authored-by: Adam Buchweitz <[email protected]> Co-authored-by: Julius Marminge <[email protected]> Co-authored-by: codex <[email protected]> Co-authored-by: Ibrahim Elkamali <[email protected]> Co-authored-by: Theo Browne <[email protected]> Co-authored-by: Julius Marminge <[email protected]> Co-authored-by: Yash Singh <[email protected]> Co-authored-by: Mike Olson <[email protected]> Co-authored-by: Julius Marminge <[email protected]> Co-authored-by: Cursor Agent <[email protected]> Co-authored-by: Julius Marminge <[email protected]> Co-authored-by: Guilherme Vieira <[email protected]> Co-authored-by: Abdul Azeez <[email protected]> Co-authored-by: Peter Hozák <[email protected]> Co-authored-by: Ishan <[email protected]> Co-authored-by: Milosz Jankiewicz <[email protected]> Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com> Co-authored-by: ss <[email protected]> Co-authored-by: Claude Opus 4.8 <[email protected]> Co-authored-by: Ruzbyte <[email protected]> Co-authored-by: cursor[bot] <206951365+cursor[bot]@users.noreply.github.com> Co-authored-by: aaditagrawal <[email protected]>
On Linux, Chromium fires contextmenu on right-button PRESS (Windows fires it on release), so the native menu pops up while the button is still physically held. The menu takes the pointer grab, and the tail end of the opening right-click — the button release — lands on whatever item sits under the cursor and activates it. The menu flashes and a random item runs, which also explains the known workaround (hold the right button and drag away before releasing). The earlier fix (pingdotgg#3025) hardened contextMenuFallback.ts, but the desktop app never uses that path — window.desktopBridge routes context menus to the native Electron menu, so the regression survived. Gate the desktopBridge.showContextMenu IPC on pointer release (Linux only): track button state in the preload and defer opening the menu until the press that triggered it is released, matching Windows semantics. Menus opened with no button held (keyboard, click-triggered) are unaffected, as are Windows and macOS. Fixes pingdotgg#3698 Co-Authored-By: Claude Fable 5 <[email protected]>
…3025) Co-authored-by: ss <[email protected]> Co-authored-by: Claude Opus 4.8 <[email protected]>
…3025) Co-authored-by: ss <[email protected]> Co-authored-by: Claude Opus 4.8 <[email protected]>
…3025) Co-authored-by: ss <[email protected]> Co-authored-by: Claude Opus 4.8 <[email protected]>
Ports the context-menu/sidebar part of #2451 by @sandersonstabo, rebased onto current main.
ContextMenuItemgains optionalheader/iconfields (also added to the IPC schema so they survive validation); desktop strips header items since native menus have no equivalentchat.newshortcutNot ported (per Theo's feedback on #2451): the
Shortcutkeycap-splitting component — existingKbdrendering is kept everywhere.Part of splitting #2451 into reviewable frontend-only pieces.
🤖 Generated with Claude Code
Note
Low Risk
UI-only changes to context menu rendering, sidebar styling, and optional IPC fields; desktop strips unsupported fields and existing native menus are unchanged aside from header filtering.
Overview
Polishes browser context menus and sidebar chrome without changing Electron’s native menu behavior beyond stripping web-only metadata.
ContextMenuItemgains optionalheaderandiconon the IPC contract/schema. DesktopnormalizeContextMenuItemsskipsheaderrows;iconis for the web fallback only.The web context menu fallback is reworked: fullscreen overlay dismissal is replaced with capture-phase
pointerdown/contextmenulisteners (with a one-frame delay so the menu doesn’t close immediately), plus scrollable popover styling, section headers, inline Lucide-style SVG icons, and destructive row styling. Sidebar project/thread menus use shorter labels,trashon delete/remove, and a sharedSIDEBAR_ICON_ACTION_BUTTON_CLASSfor archive, new thread, sort, and add-project controls (with minor positioning and timestamptabular-numstweaks).Command palette “new thread in project” rows can show the
chat.newshortcut via an optionalshortcutCommandonbuildProjectActionItems.Reviewed by Cursor Bugbot for commit e695574. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Polish web fallback context menu with icons, headers, and improved dismissal
showContextMenuFallbackto support section header items, per-item icons (pencil, copy, folder-tree, trash), scrollable content, and refined hover/destructive/disabled styling.pointerdown/contextmenulisteners using amenuStack-aware hit test to avoid false dismissals.ContextMenuItemIPC type inipc.tswith optionalheaderandiconfields; header items are filtered out of Electron's native menu normalization.CommandPalette.tsx(e.g. shorter context menu labels, trash icon on delete, sharedSIDEBAR_ICON_ACTION_BUTTON_CLASSconstant, tabular numeral timestamps).Macroscope summarized e695574.