feat(search): canvas-wide multi-source search (Cmd+Shift+F)#3
Merged
Conversation
added 5 commits
April 20, 2026 15:40
Rewrite Global Search from "find in open editor files" to a unified lookup across workspace files, live terminal scrollback, and open panel titles/paths. Rebind to Cmd+Shift+F (was Cmd+Shift+H) so the gesture matches muscle memory from other editors; capture-phase dispatch keeps the shortcut working even when Monaco or xterm has focus. Results are scored with open panels and focused nodes ranked first, then terminals, then fsSearch file hits. Grouped sections render in-place, Enter opens the relevant file/panel and (for file hits) reuses an existing editor panel when one already targets that file.
…ision `globalSearch` was bound to Cmd+Shift+F in this branch to match the find-in-files standard, but `toggleFileExplorer` has held that binding historically. The shortcut matcher iterates SHORTCUT_ACTIONS in order and returned `toggleFileExplorer` first, so pressing Cmd+Shift+F only toggled the explorer and the search overlay never opened. Rebind `toggleFileExplorer` to Cmd+Shift+X. No persistence means existing users pick up the new default on next launch.
The previous layout wrapped a bordered input inside a bordered modal, which produced a visible "box in box" outline (see user report). Merge the input into the modal surface itself: one rounded-2xl pill with a leading magnifying-glass icon, transparent input, and a subtle backdrop blur. Matches the macOS Spotlight gesture the user was going for and drops noise at the same time.
…, inset dividers Visual pass after user feedback on the first cut: - Outer container: rounded-3xl, brighter border (white/20) and a heavier shadow so the overlay reads clearly against any background, matching the Apple Spotlight look the user referenced. - Input: taller row (h-14), bolder text weight (font-medium), bolder magnifying-glass icon. - Results: type-aware colored icon tiles on the left (file / terminal / per-panel-type), bolder primary line, secondary line kept muted. - Rows: 2px inset from the container edges with rounded highlight so the selection pill no longer bleeds to the walls. - Dividers: between sections only, inset with mx-5 instead of full width, so the result list doesn't feel segmented.
…ay down
Section headers ("TERMINAL OUTPUT" etc) became redundant once each row
had a type-colored icon tile — removed them along with the now-unused
sectionLabel map. Kept the inset divider between sections so the eye
still gets a beat between result groups.
Icon tiles: rounded-md → rounded-full for a softer, badge-like shape
that matches the overall pill aesthetic.
Overlay position: pt-20 → pt-40 so it opens lower on the screen
instead of hugging the top bar.
8 tasks
e0a4e8a to
c90c678
Compare
PaulHorn
added a commit
that referenced
this pull request
Apr 21, 2026
First minor release since the open-source drop. See CHANGELOG.md for the full narrative. Headline themes: - Unified Spotlight-style overlays (command palette, canvas search, panel switcher, saved layouts, MCP editor) with one visual language. - Startup resilience — shell fallback with on-PTY banner, git-monitor no longer crashes main on unregistered roots, crash-report dialog can't re-show itself on every launch. - Papercuts — scratch-editor buffer persistence, tab-bar icon cues, editor path breadcrumb, stale git branch list refresh, panel switcher masonry grid. 13 PRs between v0.2.18 and this tag (#3–#5, #7–#15). CI green on ubuntu / macos / windows for every merged PR. Co-authored-by: Paul Horn <paul.p.w.horn@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Cmd+Shift+F(movedtoggleFileExploreroff that slot toCmd+Shift+Xto avoid the collision that silently shadowed the search).fsSearchmain handler; terminal scrollback hits read the live xterm buffer for every terminal panel.rounded-3xl, brighterwhite/20outline, backdrop blur, offset from the top, bolder input text, bolder magnifying-glass icon, type-colored circular icon tiles on each row, inset selection highlight, section dividers inset withmx-5(not full width).Test plan
Cmd+Shift+Fopens the search overlay (was being eaten bytoggleFileExplorer; collision is fixed).Cmd+Shift+Xnow toggles the file explorer.Cmd+Finside an editor still invokes Monaco's find-in-file (shortcut is intercepted in capture phase only forCmd+Shift+F).🤖 Generated with Claude Code