-
Notifications
You must be signed in to change notification settings - Fork 1.2k
feat(web): add extensible command palette #1103
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
binbandit
wants to merge
51
commits into
pingdotgg:main
Choose a base branch
from
binbandit:t3code/extensible-command-palette
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
51 commits
Select commit
Hold shift + click to select a range
7bef645
feat(web): add extensible command palette
binbandit 17073d5
perf(web): avoid closed-state command palette work
binbandit 869181f
fix(web): align command palette search and shortcut
binbandit 897b9ed
command palette add thread timestamps and projects (#1)
huxcrux e7ffca4
feat(contracts): add filesystem.browse WS method and request schema
eggfriedrice24 cefe926
feat(contracts): add browseFilesystem to NativeApi interface
eggfriedrice24 ea52bb3
feat(server): add filesystem browse endpoint with directory listing
eggfriedrice24 c6a9033
feat(web): wire browseFilesystem to WS transport
eggfriedrice24 7bc39e6
feat(web): add project browser with filesystem browsing to command pa…
eggfriedrice24 1b13b76
fix(web): add windows path support and prevent stale debounce actions…
eggfriedrice24 f546911
Merge upstream/main into t3code/extensible-command-palette
binbandit 366dae5
Merge upstream/main into t3code/extensible-command-palette
binbandit a1b5299
feat: update command palette styles and state management
Noojuno bd703a0
Fix command palette path handling
Noojuno 75258e1
Add command palette project browsing
Noojuno 36a8834
Refactor command palette and fix browser tests
Noojuno 90efe4a
Fix command palette path browsing
Noojuno b1068fe
Merge branch 'main' into t3code/extensible-command-palette
juliusmarminge 22ffaf3
Improve command palette filesystem browsing
Noojuno 2bf6f66
Improve command palette filesystem browsing
Noojuno 5bb9824
Fix command palette browse-up guard
Noojuno 9af2ae9
Merge remote-tracking branch 'origin/main' into t3code/extensible-com…
Noojuno 5ff0686
fix: use directory path for browse-up check after merge regression
Noojuno 0d90e59
Merge origin/main into t3code/extensible-command-palette
Noojuno 907b4c3
test(web): add command palette regression coverage
Noojuno 39149e8
fix(web,server): harden command palette path handling
Noojuno 9d976b1
refactor(shared): centralize path helper logic
Noojuno 50d149b
fix(web): rank command palette thread matches
Noojuno 587e1f7
fix(web): preserve new-thread shortcut fallback
Noojuno 835e80a
fix(web): require slash before browse mode
Noojuno cdcf939
refactor(web): simplify command palette item model and extract logic
Noojuno d836174
refactor(web): inline add-project logic and extract thread sorting
Noojuno 4884b42
Merge remote-tracking branch 'origin/main' into t3code/extensible-com…
Noojuno 65ab9e3
refactor(command-palette): split out filesystem browsing
Noojuno 4bcb1b5
Merge remote-tracking branch 'origin/main' into split/command-palette…
Noojuno 57c5f7d
Merge remote-tracking branch 'origin/main' into t3code/extensible-com…
Noojuno 10d436e
test(web): use merged settings fixture in browser test
Noojuno d86c11a
Merge remote-tracking branch 'origin/main' into t3code/extensible-com…
Noojuno 0cb4b2b
feat(web): open latest thread from project search
Noojuno 87ee5aa
feat(web): support archived threads in command palette
Noojuno 8e22d9b
fix(web): filter archived threads from command palette search
Noojuno 761a81e
merge origin/main and resolve conflicts
Noojuno f49a6d0
fix: deduplicate toSortableTimestamp, rename formatRelativeTime, fix …
Noojuno 4909e9b
revert DrainableWorker drain change (pre-existing issue, not introduc…
Noojuno 938771b
refactor(web): consolidate relative time formatting into timestampFormat
Noojuno 2914502
refactor(web): simplify relative time — use main's formatRelativeTime…
Noojuno e636664
revert DrainableWorker to main's STM-based implementation
Noojuno 9d569bd
cleanup: remove unnecessary as const assertions
Noojuno 0e09795
refactor(web): consolidate thread sorting into threadSort.ts
Noojuno b889cb2
fix(web): derive isActionsOnly from deferredQuery to match displayed …
Noojuno 0fffcb9
refactor(web): rename "local thread" to "fresh thread" in command pal…
Noojuno File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
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
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,13 @@ | ||
| import { create } from "zustand"; | ||
|
|
||
| interface CommandPaletteStore { | ||
| open: boolean; | ||
| setOpen: (open: boolean) => void; | ||
| toggleOpen: () => void; | ||
| } | ||
|
|
||
| export const useCommandPaletteStore = create<CommandPaletteStore>((set) => ({ | ||
| open: false, | ||
| setOpen: (open) => set({ open }), | ||
| toggleOpen: () => set((state) => ({ open: !state.open })), | ||
| })); |
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
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think there's probably justification for triggering the command pallette even when the terminal is open. I doubt mod+k is gonna be a terminal keyboard shortcut, but I could see myself working in the terminal and wanting to navigate away and it being annoying to click out to focus the window
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah true, this wasn't something i've considered, as I have previously seen the two as two different states of interaction.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The main time I would run into it I think is if I'm working on two worktrees of the same thing (like T3 Code).
I will usually have my dev command running into the terminal on the worktree I was last testing, then I'll kill that command and want to navigate to the next worktree I need to check on and run the command there. Being able to Ctrl+K would be useful there (and also how I've been doing it in my command pallette branch)