Add command palette feature tip#4718
Conversation
Co-authored-by: Orca <help@stably.ai>
Co-authored-by: Orca <help@stably.ai>
…able Settings link - Replace stacked setTimeout typing with a single setInterval at 90ms/char for uniform cadence; sync the whole visual to one master timeline so the keypress visibly precedes the palette opening (cause -> effect). - Hold the populated end state for 3.2s so the user can actually read the matched worktrees + create option. - Show the two results together via cmd-j-tip-result-in, mirroring how the real palette renders incremental search. - Mixed agent states in the results: 1 done (green dot) + 1 running (Loader2 spinner with 'Running' chip) so the tip shows the palette's value at a glance. - Add CmdJPaletteTipDialog and extract shared FeatureTipActions so FeatureTipsModal stays under the max-lines rule. - Make the 'Settings' link in the description open Settings -> Shortcuts (uses the existing settingsNavigationTarget machinery), then close the tip and dismiss the modal so the tip doesn't re-appear on Settings close. Co-authored-by: Orca <help@stably.ai>
… pacing Refine the Cmd+J feature tip after design review: use a live shortcut chip in the title, keep the panel divider full-height, and show generic worktree fixtures that match a realistic `auth` search. Tighten the demo animation with fixed palette dimensions so the search bar does not jump while typing. Co-authored-by: Orca <help@stably.ai>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (2)
WalkthroughAdds a Cmd+J command-palette feature tip end-to-end: feature-tip types and registry, telemetry schemas and helpers, animated visual + CSS, dialog and shared actions, modal routing/handlers, workspace→worktree copy updates, and tests covering behavior and telemetry. ChangesCmd+J Palette Feature Tip
Suggested reviewers
🚥 Pre-merge checks | ✅ 2✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. 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. Comment |
…ow-ups Add CSS reduced-motion guards and JS animation gating to match the CLI tip pattern, fall back to default shortcut labels when unassigned, improve dialog a11y, wire palette tip telemetry, and add component tests. Co-authored-by: Orca <help@stably.ai>
Show worktrees on empty query before filtering, add an uppercase TIP badge, restore per-key shortcut chips with plus separators, and hold longer on the open palette beat. Align Cmd+J palette strings from workspace to worktree. Co-authored-by: Orca <help@stably.ai>
Narrow the FEATURE_TIPS fixture through a helper so tsgo accepts the tip prop passed to CmdJPaletteTipDialog. Co-authored-by: Orca <help@stably.ai>
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes — adds a passive education feature tip for the Cmd+J command palette with a JS-driven animation, platform-correct shortcut rendering, and telemetry. Also renames "Workspaces" → "Worktrees" throughout the jump palette.
- Add
cmd-j-palettefeature tip — new tip entry inFEATURE_TIPSwith'learn-cmd-j-palette'action, priority'new', positioned after the CLI tip in the ordering. Title uses a<shortcut>placeholder token for live binding injection. - Add
CmdJPaletteFeatureTipVisual— phase-machine animation (idle → pressed → open → typing → loop) with reduced-motion support, live shortcut-key chips with per-key stagger, and demo worktree filtering that mirrors the real palette behavior. - Add
CmdJPaletteTipDialog— custom horizontal layout dialog matching the CLI tip presentation, with live shortcut rendered as a<kbd>chip in the title, a clickable rebind link to Settings → Shortcuts, and a single "Got it" acknowledgement CTA. - Extract
FeatureTipActionsinto its own component fromFeatureTipsModal, adding agetPrimaryBusyLabelhelper keyed on the tip action. - Add telemetry —
cmd_j_palette_feature_tip_shownandcmd_j_palette_feature_tip_acknowledgedevents withsourcefield, wired into the startup gate and modal dismiss paths. - Rename Workspaces → Worktrees — updates copy throughout
WorktreeJumpPalette,quick-actions.ts,palette-results.test.ts, and related test expectations.
DeepSeek Pro (free via Pullfrog for OSS) | 𝕏
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/renderer/src/components/feature-tips/CmdJPaletteFeatureTipVisual.tsx`:
- Around line 7-8: Update the in-file comment in CmdJPaletteFeatureTipVisual
(around the top comment block) to replace "workspace" with "worktree" so it
reads "live worktree switcher" and otherwise maintain the existing note about
recent worktrees and typing behavior; locate the comment near the existing text
"// Why: the real palette lists recent worktrees on open; typing only narrows
the list. Mix done + running states so the tip reads like a live workspace
switcher." and change the final phrase to "live worktree switcher".
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 94877fd3-fdba-43c5-97c9-dbcfe7503886
📒 Files selected for processing (19)
src/main/startup/dev-education-suppression.test.tssrc/renderer/src/App.tsxsrc/renderer/src/assets/main.csssrc/renderer/src/components/WorktreeJumpPalette.tsxsrc/renderer/src/components/cmd-j/palette-results.test.tssrc/renderer/src/components/cmd-j/quick-actions.tssrc/renderer/src/components/feature-tips/CmdJPaletteFeatureTipVisual.test.tsxsrc/renderer/src/components/feature-tips/CmdJPaletteFeatureTipVisual.tsxsrc/renderer/src/components/feature-tips/CmdJPaletteTipDialog.test.tsxsrc/renderer/src/components/feature-tips/CmdJPaletteTipDialog.tsxsrc/renderer/src/components/feature-tips/FeatureTipActions.tsxsrc/renderer/src/components/feature-tips/FeatureTipsModal.tsxsrc/renderer/src/components/feature-tips/feature-tip-modal-state.test.tssrc/renderer/src/components/feature-tips/feature-tip-startup-gate.test.tssrc/renderer/src/components/feature-tips/feature-tip-telemetry.test.tssrc/renderer/src/components/feature-tips/feature-tip-telemetry.tssrc/shared/feature-tips.test.tssrc/shared/feature-tips.tssrc/shared/telemetry-events.ts
…-search list Add a closing phase with a frozen filtered frame so the palette fades out on the final search results instead of swapping to the empty-query worktree list. Keep the palette hidden during the keypress beat and restore the full pre-search dwell before typing on every cycle. Co-authored-by: Orca <help@stably.ai>
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes — one commit since the prior review: fixes a visual glitch in the command palette feature tip animation where the loop reset briefly flashed the unfiltered worktree list before the closing fade completed.
- Add
closingphase to animation cycle — freezes the final filtered state (query, worktrees, create-row) into aClosingFramesnapshot before resetting, so the palette fades out with its last content intact rather than flashing back to the pre-search list. - Hide palette during
pressedphase — usespointer-events-none invisible opacity-0instead of justopacity-0, preventing an empty search shell from briefly appearing between animation cycles.
DeepSeek Pro (free via Pullfrog for OSS) | 𝕏
Prevent Radix from auto-focusing the inline Settings → Shortcuts control and style it as plain underlined text so the tip does not look pre-selected. Co-authored-by: Orca <help@stably.ai>
Address CodeRabbit review feedback on the demo animation comment. Co-authored-by: Orca <help@stably.ai>

Summary
useShortcutKeys('worktree.palette')so the keycap cue stays accurate after a rebind (and showsCtrl+Shift+Jon Linux/Windows), with the description pointing to Settings for rebinding.Got itacknowledgement CTA, no secondary "Maybe Later". Priority sits just after the Orca CLI tip.Test plan
tsgo -p config/tsconfig.tc.web.json) and oxlint on changed filesGenerated after feature-tip candidate review.
Made with Orca 🐋
Summary by CodeRabbit