github-search-cli 9.7.0 → 9.7.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 +29 -0
- package/README.md +7 -5
- package/bin/ghfind.js +5 -5
- package/dist/cli.js +255 -110
- package/package.json +3 -2
- package/release-notes/9.7.1.md +62 -0
- package/scripts/build.ts +1 -1
- package/scripts/postinstall.js +8 -8
- package/src/cli.ts +21 -13
- package/src/compare.ts +5 -5
- package/src/config.ts +3 -3
- package/src/deepdive.ts +0 -1
- package/src/doctor.ts +144 -8
- package/src/error-report.ts +14 -8
- package/src/export.ts +1 -1
- package/src/history.ts +5 -5
- package/src/init.ts +2 -2
- package/src/login.ts +4 -4
- package/src/markdown-render.ts +13 -13
- package/src/mcp-server.ts +4 -3
- package/src/open-url.ts +16 -5
- package/src/output.ts +1 -1
- package/src/package-browser.ts +1 -1
- package/src/releases.ts +1 -14
- package/src/search-state.ts +1 -4
- package/src/search.ts +3 -4
- package/src/share.ts +2 -2
- package/src/storage.ts +4 -4
- package/src/themes.ts +1 -0
- package/src/trending-parser.ts +3 -4
- package/src/trending.ts +7 -7
- package/src/tui.ts +38 -42
- package/src/update-check.ts +96 -34
- package/src/version.ts +3 -3
- package/src/watch.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,35 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). Publish
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
## [9.7.1] — 2026-09-20 (released)
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- **In-app update installed to the wrong location when running under Bun** —
|
|
14
|
+
`performUpdate()` ran `bun install -g github-search-cli`, which targets
|
|
15
|
+
Bun's own global dir (`~/.bun`), not the npm prefix the running copy and
|
|
16
|
+
its `ghfind` shim live in. The command exited 0 while the running install
|
|
17
|
+
never changed. The updater now detects which package manager owns the
|
|
18
|
+
running tree (`detectInstallLocation`: npm global vs `~/.bun` global) and
|
|
19
|
+
shells out to `npm install -g --prefix <prefix>` for npm-owned installs,
|
|
20
|
+
so the update lands exactly where the running install is.
|
|
21
|
+
- **Node fallback could not launch npm on Windows** — `child_process.spawn`
|
|
22
|
+
without a shell cannot execute `npm.cmd` (and recent Node rejects it with
|
|
23
|
+
`EINVAL`). The update spawn now goes through `node:child_process` on every
|
|
24
|
+
runtime with `shell: true` on win32 and properly quoted arguments, so the
|
|
25
|
+
Node fallback path actually works on Windows.
|
|
26
|
+
- **Compiled binaries / dev checkouts no longer fake an update** — when the
|
|
27
|
+
running install has no `node_modules` ancestor, self-update is refused
|
|
28
|
+
with a debug hint instead of npm-installing a copy the user isn't running.
|
|
29
|
+
- **Windows: URLs with query params were truncated at the first `&`** when opened via `cmd /c start` (every pre-filled crash-report/issue link lost its body and labels). Both openers now use `explorer.exe` on Windows, which receives the URL as a single argument.
|
|
30
|
+
- **`open-url.ts` crashed under Node** (`Bun.spawn` unconditional); now runtime-agnostic with a detached `child_process.spawn` fallback.
|
|
31
|
+
- **`--doctor` now detects stale/PATH-shadowing global installs** — multiple `ghfind` copies resolving to different versions are flagged with their prefixes and the exact uninstall command. This is the "updater said OK but nothing changed" trap.
|
|
32
|
+
- Lint gate was permanently broken: `package.json` pinned `biome@2.5.13` (package never existed on npm); now uses `@biomejs/biome` ^2.5.14 with a migrated `biome.json`.
|
|
33
|
+
- First clean lint baseline: 198 diagnostics triaged (auto-fixes + hand-fixes, incl. a dead `|| true` gate in `tui.ts` startup tips and an unsafe-autofix regression in `TrendingAdapter`); `tests/**` lint overrides for mocks/assertions; `tests/fixtures/**` excluded. CI now runs lint + typecheck on every push/PR (previously excluded as known-broken).
|
|
34
|
+
- `mcp-server.ts`: assignment-in-expression violations; `trending-parser.ts`: stateful `RegExp.exec` loop replaced with `matchAll` (lastIndex reuse hazard); `themes.ts`: documented ANSI control-char regex.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
9
38
|
## [9.7.0] — 2026-09-19 (released)
|
|
10
39
|
|
|
11
40
|
### Added
|
package/README.md
CHANGED
|
@@ -304,6 +304,13 @@ npm run build # build dist/
|
|
|
304
304
|
|
|
305
305
|
Recent releases (full history in [CHANGELOG.md](CHANGELOG.md)):
|
|
306
306
|
|
|
307
|
+
### v9.7.1
|
|
308
|
+
|
|
309
|
+
- **In-app update actually works now** — it used to `bun install -g` into `~/.bun` while your running copy lives in an npm prefix, reporting success while nothing changed; it now detects which package manager owns the running install and updates it in place
|
|
310
|
+
- **New `ghfind --doctor` check** — flags stale/PATH-shadowing global installs (multiple `ghfind` copies with different versions) and prints the exact uninstall command
|
|
311
|
+
- **Windows URL fix** — links with query params were truncated at the first `&` by `cmd /c start`; every pre-filled crash-report/issue link now opens complete
|
|
312
|
+
- Fixed `open-url` crashing under Node; CI now enforces lint + typecheck gates (first green Biome baseline)
|
|
313
|
+
|
|
307
314
|
### v9.7.0
|
|
308
315
|
|
|
309
316
|
- **CLI parity with the MCP tools** — `ghfind deep-dive <owner/repo>` (languages, contributors, README excerpt, `--json`), `ghfind --compare` with `--json|--csv|--markdown`, and a trending language filter (`ghfind trending rust`, `--trending <lang>`)
|
|
@@ -319,11 +326,6 @@ Recent releases (full history in [CHANGELOG.md](CHANGELOG.md)):
|
|
|
319
326
|
- **`NO_COLOR` support** — `ghfind --doctor` drops ANSI colors when `NO_COLOR` is set or stdout isn't a TTY
|
|
320
327
|
- Fixed the stale `scripts/brew.rb` formula (wrong repo, version, and asset names)
|
|
321
328
|
|
|
322
|
-
### v9.5.1
|
|
323
|
-
|
|
324
|
-
- Fixed landing-screen keys leaking into the main view — `/`, `Space`, `t`, `c`, `?`, `q` all double-fired; `b` on the landing screen now opens Bookmarks
|
|
325
|
-
- Fixed the update panel clipping the changelog — release notes are now scrollable (`↑↓`/`j`/`k`, `PgUp`/`PgDn`, `Home`/`End`) in a taller panel
|
|
326
|
-
|
|
327
329
|
---
|
|
328
330
|
|
|
329
331
|
## License
|
package/bin/ghfind.js
CHANGED
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
* Strategy 2: Fall back to the bundled dist/cli.js with Node.js (works for
|
|
10
10
|
* non-interactive modes).
|
|
11
11
|
*/
|
|
12
|
-
import { existsSync } from "fs";
|
|
13
|
-
import { spawnSync } from "child_process";
|
|
14
|
-
import { join, dirname } from "path";
|
|
15
|
-
import { fileURLToPath, pathToFileURL } from "url";
|
|
16
|
-
import { platform } from "os";
|
|
12
|
+
import { existsSync } from "node:fs";
|
|
13
|
+
import { spawnSync } from "node:child_process";
|
|
14
|
+
import { join, dirname } from "node:path";
|
|
15
|
+
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
16
|
+
import { platform } from "node:os";
|
|
17
17
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
18
18
|
const PKG_DIR = join(__dirname, "..");
|
|
19
19
|
|