Skip to content

feat: redesign command palette IA and session navigation#522

Merged
Astro-Han merged 13 commits into
devfrom
codex/i501-command-palette-ia
May 10, 2026
Merged

feat: redesign command palette IA and session navigation#522
Astro-Han merged 13 commits into
devfrom
codex/i501-command-palette-ia

Conversation

@Astro-Han
Copy link
Copy Markdown
Owner

@Astro-Han Astro-Han commented May 10, 2026

Summary

  • Replaces the no-query Cmd+K default view with a fixed grouped command map.
  • Keeps typed Cmd+K search across commands, sessions, and files while preserving file-only behavior for /open and right-panel Open file.
  • Aligns previous/next session and unread navigation with PawWork sidebar order across pinned sessions, project grouping, collapsed groups, and cross-project time order.
  • Addresses review feedback by reusing the typed session-search cache across query changes and leaving session ordering to the shared List sort path.

Why

#501 is about reducing default command palette noise and making the palette behave like a stable command map. The same slice also fixes the current previous/next session mismatch: sidebar order is global and time-oriented, but navigation commands could still behave like they were scoped to the current project.

Related Issue

Closes #501.

Human Review Status

Pending. A human should make the final merge decision after reviewing the final diff and verification evidence.

Review Focus

  • Command palette source separation: no-query default map versus typed search universe.
  • File-only picker contracts for /open and right-panel Open file.
  • Session navigation order matching the sidebar, especially pinned sessions, project grouping, collapsed groups, and unread filtering.
  • Session-search caching now stays valid across query changes until workspaces or pinned session IDs change.
  • Local dialog-select-file.tsx split: this should stay a [Feature] Redesign command palette default view and content IA #501-local cleanup, not a broader layout or command registry rewrite.

Risk Notes

  • DialogSelectFile is shared by Cmd+K, slash /open, and right-panel Open file, so entry-source separation is the main regression risk.
  • Previous/next session now follows sidebar section order; pinned/grouped/collapsed cases are covered by unit and E2E tests, but reviewers should still check the ordering contract.
  • Desktop smoke reached Electron server ready, and CI desktop smoke is green. Direct local Electron clicking was avoided because another dev singleton window from a different worktree was already active; the changed visible UI paths were manually checked in the local E2E-backed renderer and covered by Playwright E2E.

How To Verify

Unit: ok, 1012 passed across packages/app/src
Command: bun --cwd packages/app test:unit src/components/command-palette/command-palette-search-items.test.ts src/components/command-palette/command-palette-default-items.test.ts

Typecheck: ok
Command: bun --cwd packages/app typecheck

Focused E2E: ok, 12 passed
Command: bun --cwd packages/app test:e2e app/palette.spec.ts files/file-open.spec.ts sidebar/sidebar-session-organization.spec.ts sidebar/sidebar-session-search.spec.ts app/palette-viewport.spec.ts
Note: the cross-project navigation E2E logged existing [e2e:pageerror] Object messages, but the test run passed.

Manual visible UI check: ok, 1 temporary local Playwright check passed, screenshots captured and inspected locally for Cmd+K default, typed Cmd+K search, palette Open file, slash /open, and right-panel Open file
Command: bun --cwd packages/app test:e2e tmp-i501-visual.spec.ts --workers=1
Note: tmp-i501-visual.spec.ts was deleted after the local manual check and is not part of this PR.

Electron smoke: ok, reached server ready and exited
Command: PAWWORK_CI_SMOKE=true PAWWORK_CI_SMOKE_HOME="$(mktemp -d /tmp/pawwork-i501-smoke.XXXXXX)" bun run dev:desktop

Diff hygiene: ok
Command: git diff --check

Independent code review: ok, no concrete P1/P2/P3 findings

Review comments: ok, Gemini session-cache and duplicate-sort threads fixed in cc17b6810 and resolved

Screenshots or Recordings

Manual visible UI screenshots were captured and inspected locally for the five changed paths: Cmd+K default, typed Cmd+K search, Cmd+K Open file handoff, slash /open, and right-panel Open file. They are not attached because they are transient test-workspace screenshots; the same paths are covered by focused E2E assertions above.

Checklist

  • Human review status is stated above as pending, approved, or not required
  • I linked the related issue, or stated why there is no issue
  • This PR has type, primary area, and priority labels, or I requested maintainer labeling
  • I described the review focus and any meaningful risks
  • I listed the relevant verification steps and the key result for each
  • I did not introduce unrelated refactors, dependencies, generated files, or file changes beyond the stated scope
  • I manually checked visible UI or copy changes when needed, with screenshots or recordings
  • I considered macOS and Windows impact for platform, packaging, updater, signing, paths, shell, or permissions changes
  • I called out docs, release notes, dependencies, permissions, credentials, deletion behavior, generated content, or local file changes when relevant
  • I reviewed the final diff for unrelated changes and suspicious dependency changes
  • I am targeting dev, and my PR title and commit messages use Conventional Commits in English

@Astro-Han Astro-Han added enhancement New feature or request P1 High priority app Application behavior and product flows ui Design system and user interface labels May 10, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 10, 2026

Warning

Rate limit exceeded

@Astro-Han has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 7 minutes and 47 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 5780ddcd-2fa0-4f2d-98fb-455c50e6c5c4

📥 Commits

Reviewing files that changed from the base of the PR and between def9339 and 7f615be.

📒 Files selected for processing (18)
  • packages/app/e2e/app/palette.spec.ts
  • packages/app/e2e/files/file-open.spec.ts
  • packages/app/e2e/sidebar/sidebar-session-organization.spec.ts
  • packages/app/src/components/command-palette/command-palette-default-items.test.ts
  • packages/app/src/components/command-palette/command-palette-default-items.ts
  • packages/app/src/components/command-palette/command-palette-dialog.tsx
  • packages/app/src/components/command-palette/command-palette-row.tsx
  • packages/app/src/components/command-palette/command-palette-search-items.test.ts
  • packages/app/src/components/command-palette/command-palette-search-items.ts
  • packages/app/src/components/command-palette/command-palette-types.ts
  • packages/app/src/components/dialog-select-file.tsx
  • packages/app/src/i18n/en.ts
  • packages/app/src/i18n/zh.ts
  • packages/app/src/pages/layout.tsx
  • packages/app/src/pages/layout/pawwork-session-nav.test.ts
  • packages/app/src/pages/layout/pawwork-session-nav.ts
  • packages/app/src/pages/session/use-session-commands.tsx
  • packages/ui/src/components/command-palette.css
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/i501-command-palette-ia

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.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a unified command palette system, refactoring the previous file selection dialog into a comprehensive interface for commands, files, and sessions. The changes include new UI components for the palette dialog and rows, logic for grouping default commands, and enhanced session navigation that supports cross-project movement and automatic expansion of collapsed project groups. Comprehensive E2E and unit tests have been added to verify the new functionality. Feedback for this PR focuses on optimizing the session search performance by refining the caching mechanism to avoid redundant network requests on every keystroke and removing duplicate sorting logic that is already managed by the UI components.

Comment thread packages/app/src/components/command-palette/command-palette-search-items.ts Outdated
@Astro-Han Astro-Han merged commit 7953110 into dev May 10, 2026
20 checks passed
@Astro-Han Astro-Han deleted the codex/i501-command-palette-ia branch May 10, 2026 17:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app Application behavior and product flows enhancement New feature or request P1 High priority ui Design system and user interface

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Redesign command palette default view and content IA

1 participant