github-search-cli 9.9.0 → 9.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -6,6 +6,57 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). Publish
6
6
 
7
7
  ---
8
8
 
9
+ ## [9.10.0] — 2026-10-03 (released)
10
+
11
+ ### Added
12
+
13
+ - **The TUI is now fully clickable.** The mouse was already enabled — OpenTUI
14
+ emits SGR mouse tracking and hit-tests every event — but nothing consumed the
15
+ events, so they were silently discarded. Every list, card, tab and button now
16
+ responds:
17
+ - **Click** selects a row; the detail pane updates exactly as it does with
18
+ `↑`/`↓`, because clicks ride the same `selectionChanged` event the keyboard
19
+ already used.
20
+ - **Double-click** opens the repo in your browser, or runs the overlay's
21
+ action — the same code path as `Enter`, so the two can't drift apart.
22
+ - **Scroll wheel** moves the selection in a list and scrolls long panes
23
+ (README, help, org profile, update notes). This also fixes a pre-existing
24
+ bug: the wheel previously fell through to whichever renderable held focus,
25
+ so scrolling while the README viewer was open scrolled the wrong pane.
26
+ - **Click outside an overlay** dismisses it, the same as `Esc`.
27
+ - Landing cards, trending tabs, the update dialog's buttons, and every
28
+ overlay list (history, bookmarks, saved searches, topics, export, share,
29
+ command menu) are clickable. Hovering shows a pointer cursor and lifts the
30
+ row background.
31
+ - **A <kbd>☰ menu</kbd> button in the bottom-right corner** opens the command
32
+ menu. It floats above the layout and hides while an overlay is open.
33
+
34
+ ### Changed
35
+
36
+ - **`Esc` now opens the command menu; `Space` no longer does.** `Space` opened
37
+ the menu only while the query input was _not_ focused, which made one key mean
38
+ two different things depending on invisible state — and it meant `Space` could
39
+ not type a space in a query. More confusingly, it worked only _after_ you had
40
+ clicked a result row: clicking moved focus to the list as a side effect of
41
+ OpenTUI's auto-focus-on-press, and `Space` was gated on that focus being gone.
42
+ `Esc` is now the sole binding (it already closed overlays), and `Space` always
43
+ types. The bottom-right <kbd>☰ menu</kbd> button covers mouse users.
44
+ - Help, the README keybinding tables and `docs/HOW-TO.md` now document the mouse
45
+ bindings and the `Esc` menu binding.
46
+
47
+ ### Fixed
48
+
49
+ - **Non-interactive text no longer swallows clicks.** Every `TextRenderable`
50
+ defaults to OpenTUI's `selectable: true`, and a left-press on a selectable
51
+ renderable is consumed as a text-selection drag before the app's own handlers
52
+ run. The detail pane, comparison table, tab bar and other read-only text now
53
+ opt out, so clicks over them behave.
54
+ - **A hover highlight no longer painted the list magenta.** OpenTUI's colour
55
+ parser accepts only hex and CSS names; an `rgba(...)` hover tint silently
56
+ resolved to its magenta fallback. Now expressed as 8-digit hex.
57
+
58
+ ---
59
+
9
60
  ## [9.9.0] — 2026-10-01 (released)
10
61
 
11
62
  ### Added
package/README.md CHANGED
@@ -172,19 +172,19 @@ ghfind --completion fish | source
172
172
  <tr><td><b>Search</b></td><td>Free-text + qualifiers (<code>language:</code>, <code>stars:</code>, <code>topic:</code>), sort by stars/updated/forks</td></tr>
173
173
  <tr><td><b>Trending</b></td><td>Today, week, month, year — filter by language</td></tr>
174
174
  <tr><td><b>Packages</b></td><td>npm registry search (beta) — <code>ghfind pkg "query"</code></td></tr>
175
- <tr><td><b>Bookmarks</b></td><td>Space → Bookmark / Bookmarks panel — save repos, tag them</td></tr>
176
- <tr><td><b>Deep-dive</b></td><td>Space → Deep-dive — languages, contributors, README, activity chart</td></tr>
177
- <tr><td><b>Compare</b></td><td>Space → Compare select / Compare view — side-by-side, select 2+ repos</td></tr>
178
- <tr><td><b>Explore</b></td><td>Space → Topics — browse popular GitHub topics</td></tr>
179
- <tr><td><b>History</b></td><td>Space → History — recall past searches</td></tr>
180
- <tr><td><b>Saved</b></td><td>Space → Saved searches — load or save queries</td></tr>
181
- <tr><td><b>Export</b></td><td>Space → Export — JSON, CSV, Markdown to file</td></tr>
182
- <tr><td><b>Share</b></td><td>Space → Share repo — copy repo link to clipboard</td></tr>
183
- <tr><td><b>Org profile</b></td><td>Space → Org profile — org summary: repos, stars, top languages (<code>ghfind org <name></code> in CLI)</td></tr>
175
+ <tr><td><b>Bookmarks</b></td><td>Menu → Bookmark / Bookmarks panel — save repos, tag them</td></tr>
176
+ <tr><td><b>Deep-dive</b></td><td>Menu → Deep-dive — languages, contributors, README, activity chart</td></tr>
177
+ <tr><td><b>Compare</b></td><td>Menu → Compare select / Compare view — side-by-side, select 2+ repos</td></tr>
178
+ <tr><td><b>Explore</b></td><td>Menu → Topics — browse popular GitHub topics</td></tr>
179
+ <tr><td><b>History</b></td><td>Menu → History — recall past searches</td></tr>
180
+ <tr><td><b>Saved</b></td><td>Menu → Saved searches — load or save queries</td></tr>
181
+ <tr><td><b>Export</b></td><td>Menu → Export — JSON, CSV, Markdown to file</td></tr>
182
+ <tr><td><b>Share</b></td><td>Menu → Share repo — copy repo link to clipboard</td></tr>
183
+ <tr><td><b>Org profile</b></td><td>Menu → Org profile — org summary: repos, stars, top languages (<code>ghfind org <name></code> in CLI)</td></tr>
184
184
  <tr><td><b>User profile</b></td><td>User summary like org profile — repos, stars, followers, top languages (<code>ghfind user <name></code>)</td></tr>
185
- <tr><td><b>Notifications</b></td><td>Space → Notifications — view & dismiss alerts</td></tr>
185
+ <tr><td><b>Notifications</b></td><td>Menu → Notifications — view & dismiss alerts</td></tr>
186
186
  <tr><td><b>Releases</b></td><td><code>--releases</code> — new-release feed for bookmarked repos</td></tr>
187
- <tr><td><b>Graph</b></td><td>Space → Activity graph — commit chart, fullscreen toggle</td></tr>
187
+ <tr><td><b>Graph</b></td><td>Menu → Activity graph — commit chart, fullscreen toggle</td></tr>
188
188
  <tr><td><b>Help</b></td><td><code>?</code> / <code>Ctrl+H</code> — keybindings reference</td></tr>
189
189
  <tr><td><b>Watch</b></td><td><code>--watch</code> — poll for new results</td></tr>
190
190
  <tr><td><b>MCP server</b></td><td><code>ghfind mcp</code> — GitHub search as tools for AI agents (Claude Code, Cursor, …)</td></tr>
@@ -214,16 +214,26 @@ ghfind --completion fish | source
214
214
  | `/` | Focus search input |
215
215
  | `Enter` | Execute search / open selected repo in browser |
216
216
  | `↑` / `↓` — `j` / `k` | Navigate results & menus |
217
- | `Space` | Open leader menu (contextual actions) |
217
+ | `Esc` | Open / close leader menu (contextual actions) |
218
218
  | `Tab` | Auto-complete search qualifier |
219
219
  | `?` or `Ctrl+H` | Help overlay |
220
220
  | `1`–`5` | Switch trending tabs (Today → All) |
221
221
  | `←` / `→` — `h` / `l` | Switch trending tabs (left/right) |
222
222
  | `PageUp` | Jump to top of results |
223
223
  | `PageDown` | Load next page of results |
224
- | `Esc` | Close current overlay |
225
224
  | `q` | Quit ghfind |
226
225
 
226
+ **Mouse** — every list is clickable, and the keyboard and mouse are interchangeable
227
+
228
+ | Input | Action |
229
+ | --------------------------------------- | ----------------------------------------- |
230
+ | Click | Select a row / card / trending tab |
231
+ | Double-click | Open the repo, or run the action |
232
+ | Scroll wheel | Move the selection, or scroll a long pane |
233
+ | Click outside an overlay | Dismiss it (same as `Esc`) |
234
+ | Click the query box | Focus the search input |
235
+ | Click <kbd>☰ menu</kbd> (bottom-right) | Open the leader menu |
236
+
227
237
  **Error recovery** — active only while the matching error is in the status bar
228
238
 
229
239
  | Key | Action |
@@ -233,7 +243,7 @@ ghfind --completion fish | source
233
243
  | `u` | Search without a token (401) |
234
244
  | `c` | Change token (rate limit) |
235
245
 
236
- **Leader menu** — press `Space`, navigate with `↑`/`↓`, press `Enter` to dispatch
246
+ **Leader menu** — press `Esc` (or click <kbd>☰ menu</kbd>), navigate with `↑`/`↓`, press `Enter` to dispatch
237
247
 
238
248
  Actions shown depend on current mode (search vs trending) and selection:
239
249
 
@@ -277,7 +287,7 @@ Actions shown depend on current mode (search vs trending) and selection:
277
287
 
278
288
  Trending tabs: `1`–`5` (Today → All) or `←`/`→` — `h`/`l`
279
289
 
280
- > Most actions are accessed via the **leader menu** (`Space`). This keeps the keymap minimal while providing a full command palette. The leader menu filters actions contextually — items that don't apply (e.g., Bookmark with no repo selected) are hidden.
290
+ > Most actions are accessed via the **leader menu** (`Esc`, or the <kbd>☰ menu</kbd> button in the bottom-right corner). This keeps the keymap minimal while providing a full command palette. The leader menu filters actions contextually — items that don't apply (e.g., Bookmark with no repo selected) are hidden.
281
291
 
282
292
  </details>
283
293
 
@@ -337,14 +347,14 @@ cd ghfind
337
347
  # With Bun (recommended for TUI)
338
348
  bun install
339
349
  bun start # TUI
340
- bun test # 624 tests
350
+ bun test # 657 tests
341
351
  bun run check # format check + tests — the green gate
342
352
  bun run build # build dist/
343
353
 
344
354
  # Or with npm
345
355
  npm install
346
356
  npm start # TUI (requires Node 20+)
347
- npm test # 624 tests
357
+ npm test # 657 tests
348
358
  npm run build # build dist/
349
359
 
350
360
  > Want to contribute? See [CONTRIBUTING.md](CONTRIBUTING.md) for commands,
@@ -378,6 +388,17 @@ for the architecture, measurements, and remaining work.
378
388
 
379
389
  Recent releases (full history in [CHANGELOG.md](CHANGELOG.md)):
380
390
 
391
+ ### v9.10.0
392
+
393
+ - **The TUI is now fully clickable** — the mouse was already enabled (OpenTUI emitted and hit-tested every event) but nothing consumed them, so they were silently discarded; click selects, double-click opens, the wheel scrolls, and clicking outside an overlay closes it
394
+ - **Clicks reuse the keyboard's own code paths** — a click calls `setSelectedIndex`, which emits the same `selectionChanged` event `↑`/`↓` does, so the detail pane, graph and packages view work identically with no parallel mouse branch to drift
395
+ - **Every surface responds** — results, landing mode cards, trending tabs, the update dialog's buttons, and all seven overlay lists (history, bookmarks, saved searches, topics, export, share, command menu), with hover highlighting and a pointer cursor
396
+ - **A <kbd>☰ menu</kbd> button in the bottom-right corner** opens the command menu; it floats above the layout and hides while an overlay is open
397
+ - **The scroll wheel no longer scrolls the wrong pane** — a pre-existing bug: scroll events that hit nothing fell through to the focused renderable, so scrolling in the README viewer moved the _result selection_ instead of the README
398
+ - **Clicks over read-only text now register** — every `TextRenderable` defaults to OpenTUI's text-selection mode, which consumed left-presses as a selection drag before ghfind's handlers ran, so the detail pane and comparison table ignored clicks entirely
399
+ - **`Space` now always types a space, and `Esc` opens the command menu** — `Space` opened the menu only while the query input was unfocused, and the only thing that unfocused it was clicking a result row, so `Space` worked only after a mouse click; `Esc` already closed every overlay, so it gains a meaning rather than losing one
400
+ - **A hover highlight no longer painted lists magenta** — OpenTUI's colour parser accepts only hex and CSS names, so an `rgba()` tint fell through to its magenta fallback
401
+
381
402
  ### v9.9.0
382
403
 
383
404
  - **Queries are understood before they are sent** — every surface (TUI, CLI, MCP, `--watch`) parses and checks a query first, so a typo or bad value fails with a specific message and a fix instead of an opaque GitHub 422 or a misleading "network error"; previously only the TUI ran validation at all
@@ -410,21 +431,6 @@ Recent releases (full history in [CHANGELOG.md](CHANGELOG.md)):
410
431
  - **State files are written atomically** — a crash mid-write used to leave truncated JSON that was silently replaced with defaults, losing bookmarks and history
411
432
  - Fixed notification IDs restarting after "dismiss all", `history --delete` removing every duplicate, an invalid `--sort` degrading silently, a failed "load more" clearing the TUI's results, `--markdown` not escaping `|`, and a not-quite-LRU memory cache
412
433
 
413
- ### v9.8.1
414
-
415
- - **`ghfind skill search <query>`** finds agent skills by keyword and prints why
416
- each one matched; `--remote` searches the public [skills.sh](https://skills.sh)
417
- ecosystem instead, and `GHFIND_SKILL_ROOTS` overrides the scanned directories
418
- - **MCP tool `ghfind_skill_search`** — agents search installed skills or the
419
- skills.sh registry as soon as they connect; read-only
420
- - **Read-only CLI views of local state** — `ghfind bookmarks`, `ghfind history`,
421
- `ghfind saved`, `ghfind topics`, plus `ghfind readme <owner/repo>` and
422
- `ghfind share <owner/repo>`, each with `--json` for agents
423
- - **Shell completions** (bash, zsh, fish) cover every new subcommand and flag
424
- - **README image rendering is incomplete** — see
425
- [Known limitations](#known-limitations); the v9.8.0 notes wrongly described it
426
- as working
427
-
428
434
  ## License
429
435
 
430
436
  MIT