Skip to content

feat: add command palette#1216

Closed
Noojuno wants to merge 15 commits intopingdotgg:mainfrom
Noojuno:feat/command-palette
Closed

feat: add command palette#1216
Noojuno wants to merge 15 commits intopingdotgg:mainfrom
Noojuno:feat/command-palette

Conversation

@Noojuno
Copy link
Contributor

@Noojuno Noojuno commented Mar 19, 2026

What Changed

NOTE: This PR contains the changes from #1103, with some style/UX changes and general refactoring.

  • Add a layout-scoped command palette opened with mod+k.
  • Support searching commands, projects, and threads.
  • Support starting new threads, opening settings, jumping to threads, and adding projects from the palette.
  • Add a sidebar trigger with the shortcut label.
  • Add the filesystem.browse WebSocket request and wire it through the web NativeApi.
  • Extract shared helpers for thread actions, project creation from a path, and cross-platform path handling.

Why

  • Navigation and creation actions are currently spread across the sidebar and route-specific UI.
  • A command palette makes those actions faster to reach and keeps them in one place.
  • Project path search and filesystem browsing make the palette useful for both existing and new projects.
  • Shared helpers keep this behavior centralized instead of duplicating logic across the UI.
  • The closed-state optimization avoids unnecessary work when the palette is not visible.

UI Changes

  • New command palette dialog with searchable grouped results.
  • mod+k opens the palette.
  • Typing filters commands, projects, and threads.
  • Path-like queries browse the filesystem to add or select a project.
  • New sidebar trigger opens the palette.

Search

Screen.Recording.2026-03-20.at.3.21.09.PM.mov

Creating a thread

Screen.Recording.2026-03-20.at.3.21.27.PM.mov
Screen.Recording.2026-03-20.at.3.25.15.PM.mov

Adding a project

Screen.Recording.2026-03-20.at.3.26.28.PM.mov

Screenshots

image image image

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Add command palette with filesystem browsing, project search, and thread navigation

  • Adds a CommandPalette component (bound to mod+k) that lets users search commands, projects, and threads; open submenus; browse filesystem paths; and start new threads or navigate to existing ones.
  • Introduces useCommandPaletteStore (Zustand) to track palette open/close state and wires the commandPalette.toggle keybinding through the global shortcut system in ChatRouteGlobalShortcuts.
  • Adds a filesystem.browse WebSocket method on the server that returns directory-only suggestions for a partial path, supporting home expansion, cwd-relative resolution, and platform path validation.
  • Adds addProjectFromPath orchestration util in projectAdd.ts that resolves paths, finds existing projects, and creates new ones with thread navigation.
  • Introduces formatRelativeTime in relativeTime.ts for long/short human-readable relative timestamps, now used in thread rows and command palette results.
  • Behavioral Change: while the palette is open, ChatView and ChatRouteGlobalShortcuts suppress all other global keyboard shortcuts.

Macroscope summarized ed2a32c.

@coderabbitai
Copy link

coderabbitai bot commented Mar 19, 2026

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 8ed6d31f-0230-47b0-a6cb-0bc22d6f846e

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
📝 Coding Plan
  • Generate coding plan for human review comments

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.

@github-actions github-actions bot added size:XXL 1,000+ changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. labels Mar 19, 2026
@Noojuno Noojuno force-pushed the feat/command-palette branch from 3ab124a to 1557a0e Compare March 19, 2026 22:21
@Noojuno Noojuno force-pushed the feat/command-palette branch 2 times, most recently from 78872da to 36a0867 Compare March 20, 2026 00:25
@Noojuno Noojuno force-pushed the feat/command-palette branch 2 times, most recently from 834355e to 5c6f235 Compare March 20, 2026 01:35
@Noojuno Noojuno force-pushed the feat/command-palette branch from 5c6f235 to cc32018 Compare March 20, 2026 01:43
@Noojuno Noojuno marked this pull request as ready for review March 20, 2026 02:33
@UtkarshUsername
Copy link
Contributor

While adding a project, there's an "Add" badge on the right. Other commands don't have such a badge, so it's inconsistent. Consider removing it.

@Noojuno
Copy link
Contributor Author

Noojuno commented Mar 20, 2026

While adding a project, there's an "Add" badge on the right. Other commands don't have such a badge, so it's inconsistent. Consider removing it.

This is an intentional decision to allow for mouse support when adding a project (it is a button not a badge)

@UtkarshUsername
Copy link
Contributor

Oh ok

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL 1,000+ changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants