feat(client): leader s/w navigation pickers + scored, grouped command palette#141
Merged
Conversation
… palette Under the C-a leader, `s` opens a picker over all sessions and `w` opens a hierarchical picker over all windows grouped by session: each session is a non-selectable header with its windows nested beneath. Selecting a window in the current session switches to it (`select-window`); selecting another session switches to it (`switch-session`). `a` stays a session-picker alias for muscle memory. The command palette now scores its fuzzy match (contiguous-run, word-boundary, and earliness bonuses) and ranks matches best-first, so typing `sp` floats `split-pane` to the top. With an empty query rows group under dim category section headers (Pane / Window / Session / View); headers fall away once a query narrows the list. Navigation and Enter skip header rows. Inline chord hints are preserved. Fix a usize underflow in the run bonus when a match lands at index 0. Docs: make tui.md and CONFIG.md accurate to the shipped code — correct the prefix (C-a, not ctrl+space), realign the keybinding and action catalogs with the dispatcher, fix the shipped widget kinds (session-name / time / windows, not session / clock), and drop the nonexistent `phux config reload` verb in favor of restart-to-apply. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
8df54f2 to
94e10b3
Compare
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.
What
Under the
C-aleader:sopens a picker over all sessions (session-picker); choosing one re-attaches this client in-process viaswitch-session. A trailing "+ New session" row creates one.wopens a hierarchical window picker grouped by session: each session is a non-selectable header with its windows nested beneath. Selecting a window in the current session switches to it (select-window); selecting another session switches to it (switch-session) — its windows then list under its own picker.astays asession-pickeralias for muscle memory. No binding is left silently dead.Command palette
spfloatssplit-paneto the top.Bug fix
usizeunderflow in the contiguous-run bonus when a match lands at index 0.Docs
Made
docs/consumers/tui.mdanddocs/CONFIG.mdaccurate to the shipped code:C-a(was the stalectrl+space) everywhere, including the defaults table and first-time-use walkthrough.ACTION_NAMES) and the shippeddefault.tomlbindings.session-name,time,windows) — the docs previously advertised nonexistentsession/clockkinds.phux config reloadverb (the shipped subcommands areinit/path/show); edits apply on client restart.default.toml).Tests
select_list: scored-match (sp->split-panefirst), empty-needle, non-subsequence, word-boundary, stable-tie ranking; header drop-out under filtering; navigation/Enter skipping headers.action_registry: category headers in order, every row indented under a header, every registry action carries an in-order category.input_dispatch: window picker groups windows under their session, foreign sessions render a switch-session row.keybind: shipped-default resolver test forC-a s/C-a w/C-a a.Local CI
just ciis green (fmt + lint + 1553 tests + deny + docs-check).🤖 Generated with Claude Code