github-search-cli 9.5.0 → 9.5.1
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 +32 -3
- package/README.md +12 -24
- package/dist/cli.js +8 -5
- package/package.json +1 -1
- package/release-notes/9.5.1.md +36 -0
- package/src/cli.ts +3 -4
- package/src/help.ts +4 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,7 +6,7 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). Publish
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
## [
|
|
9
|
+
## [9.5.1] — 2026-09-15
|
|
10
10
|
|
|
11
11
|
### Fixed
|
|
12
12
|
|
|
@@ -20,7 +20,6 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). Publish
|
|
|
20
20
|
screen. Also fixed while routing keys: `b` on the landing screen now opens
|
|
21
21
|
bookmarks (hint bar updated), and overlays opened from landing hide the
|
|
22
22
|
menu instead of drawing on top of it.
|
|
23
|
-
|
|
24
23
|
- **Update panel clipped the changelog** — the modal was hard-capped at 16
|
|
25
24
|
rows and put the release notes in a single unsized text block, so anything
|
|
26
25
|
past the first ~10 lines of the notes was invisible with no hint that more
|
|
@@ -30,10 +29,40 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). Publish
|
|
|
30
29
|
position resets each time the panel opens. The box is taller (24 rows), and
|
|
31
30
|
notes render at the panel's actual width so wrapped lines no longer clip
|
|
32
31
|
horizontally on narrow terminals.
|
|
32
|
+
- **`--help` listed `ghfind user <name>` twice** — the 9.5.0 usage block
|
|
33
|
+
carried a duplicated line, so the profile examples were printed twice. It
|
|
34
|
+
now appears once, and the `ghfind pkg` line is aligned with its neighbours.
|
|
35
|
+
|
|
36
|
+
### Internal
|
|
37
|
+
|
|
38
|
+
- **Test isolation** — seven suites derived their temp dirs from a
|
|
39
|
+
`Date.now()` stamp (`tmpdir()/<name>-<ms>`), a name two concurrent
|
|
40
|
+
`bun test` processes can collide on, which intermittently failed
|
|
41
|
+
bookmarks / config / doctor / history / login / saved-searches /
|
|
42
|
+
update-check tests. They now use `mkdtempSync`, which is unique and
|
|
43
|
+
collision-proof (the pattern `tests/releases.test.ts` already used), and
|
|
44
|
+
the login `readGhCliToken` / `persistToken` dirs are removed after use
|
|
45
|
+
instead of accumulating in the temp folder.
|
|
46
|
+
- **Docs sync** (README ↔ `src/help.ts` ↔ `--help`): README gained
|
|
47
|
+
`--releases` / `--compare` / `pkg` examples plus Packages and Releases
|
|
48
|
+
feature rows; the TUI help screen gained the `Org profile` command-menu
|
|
49
|
+
entry the leader menu already had. `tests/cli-help.test.ts` pins the
|
|
50
|
+
`--help` usage block (no duplicate rows, one description column).
|
|
51
|
+
- `package-lock.json` root version synced to 9.5.1 (`bun.lock` carries no
|
|
52
|
+
root version), and the release workflow's manual dispatch now runs the
|
|
53
|
+
gate only — the GitHub Release and npm publish jobs are tag-gated, so
|
|
54
|
+
dispatching from a branch can't create a release on a non-tag ref.
|
|
55
|
+
- `--doctor` tests remove their temp config dirs after each test instead of
|
|
56
|
+
leaving them behind.
|
|
57
|
+
- **CI was red on `windows-latest`** — `tests/landing.test.ts` source-greps
|
|
58
|
+
`src/tui.ts` for a snippet containing `\n`, but Windows checks the tree out
|
|
59
|
+
with CRLF, so the assertion could never match there while every other OS
|
|
60
|
+
passed. The source-grep helpers now normalise line endings before
|
|
61
|
+
asserting; `tests/overlay-registry.test.ts` does the same.
|
|
33
62
|
|
|
34
63
|
---
|
|
35
64
|
|
|
36
|
-
## [9.5.0] — 2026-09-15
|
|
65
|
+
## [9.5.0] — 2026-09-15 (released)
|
|
37
66
|
|
|
38
67
|
### Added
|
|
39
68
|
|
package/README.md
CHANGED
|
@@ -81,6 +81,9 @@ ghfind "query" --pipe open # open in browser
|
|
|
81
81
|
ghfind "query" --pipe clone # clone commands
|
|
82
82
|
ghfind --trending --json # trending as JSON
|
|
83
83
|
ghfind --watch "query" # poll every 300s
|
|
84
|
+
ghfind --releases # new releases for bookmarked repos
|
|
85
|
+
ghfind --compare a/b c/d # side-by-side comparison
|
|
86
|
+
ghfind pkg "query" --json # npm package search as JSON
|
|
84
87
|
```
|
|
85
88
|
|
|
86
89
|
### Completions
|
|
@@ -98,6 +101,7 @@ ghfind --completion fish | source
|
|
|
98
101
|
<table>
|
|
99
102
|
<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>
|
|
100
103
|
<tr><td><b>Trending</b></td><td>Today, week, month, year — filter by language</td></tr>
|
|
104
|
+
<tr><td><b>Packages</b></td><td>npm registry search (beta) — <code>ghfind pkg "query"</code></td></tr>
|
|
101
105
|
<tr><td><b>Bookmarks</b></td><td>Space → Bookmark / Bookmarks panel — save repos, tag them</td></tr>
|
|
102
106
|
<tr><td><b>Deep-dive</b></td><td>Space → Deep-dive — languages, contributors, README, activity chart</td></tr>
|
|
103
107
|
<tr><td><b>Compare</b></td><td>Space → Compare select / Compare view — side-by-side, select 2+ repos</td></tr>
|
|
@@ -109,6 +113,7 @@ ghfind --completion fish | source
|
|
|
109
113
|
<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>
|
|
110
114
|
<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>
|
|
111
115
|
<tr><td><b>Notifications</b></td><td>Space → Notifications — view & dismiss alerts</td></tr>
|
|
116
|
+
<tr><td><b>Releases</b></td><td><code>--releases</code> — new-release feed for bookmarked repos</td></tr>
|
|
112
117
|
<tr><td><b>Graph</b></td><td>Space → Activity graph — commit chart, fullscreen toggle</td></tr>
|
|
113
118
|
<tr><td><b>Help</b></td><td><code>?</code> / <code>Ctrl+H</code> — keybindings reference</td></tr>
|
|
114
119
|
<tr><td><b>Watch</b></td><td><code>--watch</code> — poll for new results</td></tr>
|
|
@@ -232,14 +237,14 @@ cd ghfind
|
|
|
232
237
|
# With Bun (recommended for TUI)
|
|
233
238
|
bun install
|
|
234
239
|
bun start # TUI
|
|
235
|
-
bun test #
|
|
240
|
+
bun test # 295 tests
|
|
236
241
|
bun run check # format check + tests — the green gate
|
|
237
242
|
bun run build # build dist/
|
|
238
243
|
|
|
239
244
|
# Or with npm
|
|
240
245
|
npm install
|
|
241
246
|
npm start # TUI (requires Node 20+)
|
|
242
|
-
npm test #
|
|
247
|
+
npm test # 295 tests
|
|
243
248
|
npm run build # build dist/
|
|
244
249
|
|
|
245
250
|
> Want to contribute? See [CONTRIBUTING.md](CONTRIBUTING.md) for commands,
|
|
@@ -252,13 +257,16 @@ npm run build # build dist/
|
|
|
252
257
|
|
|
253
258
|
Recent releases (full history in [CHANGELOG.md](CHANGELOG.md)):
|
|
254
259
|
|
|
260
|
+
### v9.5.1
|
|
261
|
+
|
|
262
|
+
- Fixed landing-screen keys leaking into the main view — `/`, `Space`, `t`, `c`, `?`, `q` all double-fired; `b` on the landing screen now opens Bookmarks
|
|
263
|
+
- Fixed the update panel clipping the changelog — release notes are now scrollable (`↑↓`/`j`/`k`, `PgUp`/`PgDn`, `Home`/`End`) in a taller panel
|
|
264
|
+
|
|
255
265
|
### v9.5.0
|
|
256
266
|
|
|
257
267
|
- New `ghfind user <name>` command — user profiles like `ghfind org`: repos, total stars/forks, followers, top languages, top repos
|
|
258
268
|
- Supports `--json`, `--csv`, `--markdown`, `--count`, `--limit`, `--token`; `@` prefix accepted
|
|
259
269
|
- Fixed `ghfind org` mangling multi-word names with dashes
|
|
260
|
-
- Fixed landing-screen keys leaking into the main view — `/`, `Space`, `t`, `c`, `?`, `q` all double-fired; `b` on the landing screen now opens Bookmarks
|
|
261
|
-
- Fixed the update panel clipping the changelog — release notes are now scrollable (`↑↓`/`j`/`k`, `PgUp`/`PgDn`, `Home`/`End`) in a taller panel
|
|
262
270
|
|
|
263
271
|
### v9.3.0
|
|
264
272
|
|
|
@@ -266,26 +274,6 @@ Recent releases (full history in [CHANGELOG.md](CHANGELOG.md)):
|
|
|
266
274
|
- README viewer renders full markdown (headings, code blocks, lists, tables, blockquotes, rules) instead of stripping formatting
|
|
267
275
|
- Widened compare table columns (min 35 chars), added Description + URL rows, and raised the topic cap to 5 per repo
|
|
268
276
|
|
|
269
|
-
### v9.2.1
|
|
270
|
-
|
|
271
|
-
- npm package search (beta) and a new landing screen
|
|
272
|
-
- Removed the bundled Bun binary — downloaded at install time instead; package size 39.5 MB → 100 KB
|
|
273
|
-
- Postinstall failures no longer break `npm install`; `bun` dropped from engines
|
|
274
|
-
- Fixed TUI layout on small terminals, trending visibility from the landing screen, and independent trending-tab fetches
|
|
275
|
-
|
|
276
|
-
### v9.1.1
|
|
277
|
-
|
|
278
|
-
- Bundle `vendor/` and `dist/` for offline install
|
|
279
|
-
- Postinstall exits non-zero on Bun download failure; bundled Bun 1.3.12 → 1.3.14
|
|
280
|
-
|
|
281
|
-
### v9.1.0
|
|
282
|
-
|
|
283
|
-
- Automatic update checking against the npm registry, with a Y/N/L modal
|
|
284
|
-
- Leader menu (Space) consolidating all contextual actions
|
|
285
|
-
- Topic explorer, notifications panel, saved searches, activity graph, README viewer
|
|
286
|
-
- Tab qualifier auto-complete, PageUp/PageDown, `Ctrl+X` clear history, `Ctrl+C` clear notifications
|
|
287
|
-
- TUI runs on Node.js 20+ via the downloaded Bun binary
|
|
288
|
-
|
|
289
277
|
---
|
|
290
278
|
|
|
291
279
|
## License
|
package/dist/cli.js
CHANGED
|
@@ -1376,7 +1376,7 @@ var cached = null;
|
|
|
1376
1376
|
function getVersion() {
|
|
1377
1377
|
if (cached) return cached;
|
|
1378
1378
|
if (true) {
|
|
1379
|
-
cached = "9.5.
|
|
1379
|
+
cached = "9.5.1";
|
|
1380
1380
|
return cached;
|
|
1381
1381
|
}
|
|
1382
1382
|
try {
|
|
@@ -2659,6 +2659,10 @@ function buildHelpSections() {
|
|
|
2659
2659
|
{ keys: "Packages", action: "Switch to npm packages" },
|
|
2660
2660
|
{ keys: "Export", action: "Export results to file" },
|
|
2661
2661
|
{ keys: "Share", action: "Share repo as text" },
|
|
2662
|
+
{
|
|
2663
|
+
keys: "Org profile",
|
|
2664
|
+
action: "Org summary: repos, stars, top languages"
|
|
2665
|
+
},
|
|
2662
2666
|
{ keys: "Topics", action: "Browse GitHub topics" },
|
|
2663
2667
|
{ keys: "Saved", action: "View saved searches" },
|
|
2664
2668
|
{ keys: "Notifs", action: "Check GitHub notifications" },
|
|
@@ -6114,12 +6118,11 @@ Usage:
|
|
|
6114
6118
|
ghfind <query> --pipe <target> Pipe to clone/open
|
|
6115
6119
|
ghfind --trending --json Trending repos as JSON
|
|
6116
6120
|
ghfind --releases Check bookmarks for new releases
|
|
6117
|
-
ghfind --compare <
|
|
6121
|
+
ghfind --compare <r1> <r2> Compare two+ repos side-by-side
|
|
6118
6122
|
ghfind org <name> --json Org profile: repos, stars, top languages
|
|
6119
6123
|
ghfind user <name> --json User profile: repos, stars, top languages
|
|
6120
|
-
ghfind
|
|
6121
|
-
ghfind pkg <query>
|
|
6122
|
-
ghfind pkg <query> Search npm packages, text list
|
|
6124
|
+
ghfind pkg <query> --json Search npm packages, output JSON
|
|
6125
|
+
ghfind pkg <query> Search npm packages, text list
|
|
6123
6126
|
ghfind --watch <query> Watch mode (poll every Ns)
|
|
6124
6127
|
ghfind init Run setup wizard
|
|
6125
6128
|
ghfind login Import the gh CLI token or paste one
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "github-search-cli",
|
|
3
|
-
"version": "9.5.
|
|
3
|
+
"version": "9.5.1",
|
|
4
4
|
"description": "Search GitHub from your terminal — repo search, trending repos, npm package search, bookmarks, deep-dive, compare, export. Keyboard-driven TUI + pipeable CLI.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "bun@1",
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# What's New in ghfind 9.5.1
|
|
2
|
+
|
|
3
|
+
Two TUI bugs in the landing menu and the update panel, plus test-isolation work.
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
**Landing-screen keys no longer leak into the main view**
|
|
8
|
+
|
|
9
|
+
- Pressing `/` on the landing menu focused the search input on top of it
|
|
10
|
+
- `Space`, `t`, `c`, `?`, and `q` all double-fired through the second key
|
|
11
|
+
listener — help opened and instantly closed, quit ran cleanup twice
|
|
12
|
+
- The landing handler now claims its keys with `stopPropagation()` via the
|
|
13
|
+
`landingKeysActive` / `landingConsumesKey` seam, and the global handler
|
|
14
|
+
ignores everything while the landing menu owns the screen
|
|
15
|
+
- Also fixed while routing keys: `b` on the landing screen opens bookmarks
|
|
16
|
+
(hint bar updated), and overlays opened from landing hide the menu instead
|
|
17
|
+
of drawing on top of it
|
|
18
|
+
|
|
19
|
+
**Update panel no longer clips the changelog**
|
|
20
|
+
|
|
21
|
+
- The modal was hard-capped at 16 rows with the release notes in a single
|
|
22
|
+
unsized text block, so anything past the first ~10 lines was invisible
|
|
23
|
+
- The notes area is now a scrollable region (same mechanics as the
|
|
24
|
+
README/org viewers): `↑↓`/`j`/`k` move a fifth of a page,
|
|
25
|
+
`PageUp`/`PageDown` and `Home`/`End` jump, and a scrollbar appears when
|
|
26
|
+
content overflows
|
|
27
|
+
- The panel is taller (24 rows), scroll position resets each time it opens,
|
|
28
|
+
and notes render at the panel's real width so wrapped lines don't clip
|
|
29
|
+
horizontally on narrow terminals
|
|
30
|
+
|
|
31
|
+
### Internal
|
|
32
|
+
|
|
33
|
+
- Seven test suites built temp dirs from a `Date.now()` stamp
|
|
34
|
+
(`tmpdir()/<name>-<ms>`), a name two concurrent `bun test` processes can
|
|
35
|
+
collide on. They now use `mkdtempSync`, and the login
|
|
36
|
+
`readGhCliToken` / `persistToken` dirs are cleaned up after use
|
package/src/cli.ts
CHANGED
|
@@ -261,12 +261,11 @@ Usage:
|
|
|
261
261
|
ghfind <query> --pipe <target> Pipe to clone/open
|
|
262
262
|
ghfind --trending --json Trending repos as JSON
|
|
263
263
|
ghfind --releases Check bookmarks for new releases
|
|
264
|
-
ghfind --compare <
|
|
264
|
+
ghfind --compare <r1> <r2> Compare two+ repos side-by-side
|
|
265
265
|
ghfind org <name> --json Org profile: repos, stars, top languages
|
|
266
266
|
ghfind user <name> --json User profile: repos, stars, top languages
|
|
267
|
-
ghfind
|
|
268
|
-
ghfind pkg <query>
|
|
269
|
-
ghfind pkg <query> Search npm packages, text list
|
|
267
|
+
ghfind pkg <query> --json Search npm packages, output JSON
|
|
268
|
+
ghfind pkg <query> Search npm packages, text list
|
|
270
269
|
ghfind --watch <query> Watch mode (poll every Ns)
|
|
271
270
|
ghfind init Run setup wizard
|
|
272
271
|
ghfind login Import the gh CLI token or paste one
|
package/src/help.ts
CHANGED
|
@@ -82,6 +82,10 @@ export function buildHelpSections(): HelpSection[] {
|
|
|
82
82
|
{ keys: "Packages", action: "Switch to npm packages" },
|
|
83
83
|
{ keys: "Export", action: "Export results to file" },
|
|
84
84
|
{ keys: "Share", action: "Share repo as text" },
|
|
85
|
+
{
|
|
86
|
+
keys: "Org profile",
|
|
87
|
+
action: "Org summary: repos, stars, top languages",
|
|
88
|
+
},
|
|
85
89
|
{ keys: "Topics", action: "Browse GitHub topics" },
|
|
86
90
|
{ keys: "Saved", action: "View saved searches" },
|
|
87
91
|
{ keys: "Notifs", action: "Check GitHub notifications" },
|