Skip to content

Commit 48c2d5a

Browse files
committed
v1.10.0
1 parent 624c4fc commit 48c2d5a

File tree

4 files changed

+130
-29
lines changed

4 files changed

+130
-29
lines changed

CHANGELOG.md

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,21 @@ Release notes and changelogs are published on the **[project blog](https://fulll
44

55
Each release entry covers the motivation, new features, breaking changes (if any), and upgrade notes.
66

7-
| Version | Blog post |
8-
| ------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------- |
9-
| [v1.9.0](https://fulll.github.io/github-code-search/blog/release-v1-9-0) | Windows support — native x64, x64-modern, x64-baseline and ARM64 binaries with one-line PowerShell installer |
10-
| [v1.8.3](https://fulll.github.io/github-code-search/blog/release-v1-8-3) | Fix TUI layout: header/footer anchoring, viewport packing, narrow-terminal clipping, active-row contrast |
11-
| [v1.8.2](https://fulll.github.io/github-code-search/blog/release-v1-8-2) | Fix rate-limit errors aborting multi-page searches; auto-wait and retry with live progress |
12-
| [v1.8.1](https://fulll.github.io/github-code-search/blog/release-v1-8-1) | Fix silent hang after pagination bar — concurrency cap + progress bar for line-number resolution |
13-
| [v1.8.0](https://fulll.github.io/github-code-search/blog/release-v1-8-0) | Purple TUI theme, fetch progress bar, position indicator, line-anchored file links, Esc to close help |
14-
| [v1.7.0](https://fulll.github.io/github-code-search/blog/release-v1-7-0) | Shell completions (bash/zsh/fish) + extended syntax highlighting (PHP, C/C++, Swift, Terraform/HCL, Dockerfile) |
15-
| [v1.6.1](https://fulll.github.io/github-code-search/blog/release-v1-6-1) | Fix TUI only displaying first text fragment when a file has multiple matches |
16-
| [v1.6.0](https://fulll.github.io/github-code-search/blog/release-v1-6-0) | Power navigation: global fold/unfold, gg/G top/bottom, paged scroll, open-in-browser |
17-
| [v1.5.0](https://fulll.github.io/github-code-search/blog/release-v1-5-0) | Advanced filter targets, regex mode, word-jump, scroll fix |
18-
| [v1.4.0](https://fulll.github.io/github-code-search/blog/release-v1-4-0) | TUI visual overhaul, community files, demo animation |
19-
| [v1.3.0](https://fulll.github.io/github-code-search/blog/release-v1-3-0) | Team-prefix grouping, replay command, JSON output |
20-
| [v1.0.0](https://fulll.github.io/github-code-search/blog/release-v1-0-0) | Initial release |
7+
| Version | Blog post |
8+
| -------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
9+
| [v1.10.0](https://fulll.github.io/github-code-search/blog/release-v1-10-0) | Native regex syntax `/pattern/flags` — automatic term extraction, top-level alternation and `--regex-hint` |
10+
| [v1.9.0](https://fulll.github.io/github-code-search/blog/release-v1-9-0) | Windows support — native x64, x64-modern, x64-baseline and ARM64 binaries with one-line PowerShell installer |
11+
| [v1.8.3](https://fulll.github.io/github-code-search/blog/release-v1-8-3) | Fix TUI layout: header/footer anchoring, viewport packing, narrow-terminal clipping, active-row contrast |
12+
| [v1.8.2](https://fulll.github.io/github-code-search/blog/release-v1-8-2) | Fix rate-limit errors aborting multi-page searches; auto-wait and retry with live progress |
13+
| [v1.8.1](https://fulll.github.io/github-code-search/blog/release-v1-8-1) | Fix silent hang after pagination bar — concurrency cap + progress bar for line-number resolution |
14+
| [v1.8.0](https://fulll.github.io/github-code-search/blog/release-v1-8-0) | Purple TUI theme, fetch progress bar, position indicator, line-anchored file links, Esc to close help |
15+
| [v1.7.0](https://fulll.github.io/github-code-search/blog/release-v1-7-0) | Shell completions (bash/zsh/fish) + extended syntax highlighting (PHP, C/C++, Swift, Terraform/HCL, Dockerfile) |
16+
| [v1.6.1](https://fulll.github.io/github-code-search/blog/release-v1-6-1) | Fix TUI only displaying first text fragment when a file has multiple matches |
17+
| [v1.6.0](https://fulll.github.io/github-code-search/blog/release-v1-6-0) | Power navigation: global fold/unfold, gg/G top/bottom, paged scroll, open-in-browser |
18+
| [v1.5.0](https://fulll.github.io/github-code-search/blog/release-v1-5-0) | Advanced filter targets, regex mode, word-jump, scroll fix |
19+
| [v1.4.0](https://fulll.github.io/github-code-search/blog/release-v1-4-0) | TUI visual overhaul, community files, demo animation |
20+
| [v1.3.0](https://fulll.github.io/github-code-search/blog/release-v1-3-0) | Team-prefix grouping, replay command, JSON output |
21+
| [v1.0.0](https://fulll.github.io/github-code-search/blog/release-v1-0-0) | Initial release |
2122

2223
> For the full list of commits between releases, see the
2324
> [GitHub Releases page](https://github.com/fulll/github-code-search/releases).

docs/blog/index.md

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,21 @@ Full release notes and changelogs are always available on
99

1010
## v1 series
1111

12-
| Release | Highlights |
13-
| -------------------------- | ---------------------------------------------------------------------------------------------------------- |
14-
| [v1.9.0](./release-v1-9-0) | Windows support — native x64, x64-modern, x64-baseline and ARM64 binaries with one-line PowerShell install |
15-
| [v1.8.3](./release-v1-8-3) | Fix TUI layout: header/footer anchoring, viewport packing and narrow-terminal rendering |
16-
| [v1.8.2](./release-v1-8-2) | Fix rate-limit errors aborting multi-page searches — auto-wait and resume with live feedback |
17-
| [v1.8.1](./release-v1-8-1) | Fix silent hang after pagination bar — concurrency cap + progress bar for line-number resolution |
18-
| [v1.8.0](./release-v1-8-0) | Purple TUI theme, fetch progress bar, position indicator, line-anchored file links, Esc to close help |
19-
| [v1.7.0](./release-v1-7-0) | Shell completions (bash/zsh/fish), extended syntax highlighting (PHP, C/C++, Swift, Terraform, Dockerfile) |
20-
| [v1.6.1](./release-v1-6-1) | Fix TUI rendering only the first fragment for multi-match files |
21-
| [v1.6.0](./release-v1-6-0) | Power navigation: global fold/unfold (`Z`), Vim `gg`/`G` jumps, paged scroll, open-in-browser (`o`) |
22-
| [v1.5.0](./release-v1-5-0) | Advanced filter targets (content/path/repo), regex mode, word-jump shortcuts, scroll accuracy fix |
23-
| [v1.4.0](./release-v1-4-0) | TUI visual overhaul, violet branding, demo animation, SECURITY / Code of Conduct, README improvements |
24-
| [v1.3.0](./release-v1-3-0) | Richer upgrade output, update-available notice, colorized `--help`, deep doc links, What's New blog |
25-
| [v1.0.0](./release-v1-0-0) | Initial public release — interactive TUI, per-repo aggregation, markdown / JSON output |
12+
| Release | Highlights |
13+
| ---------------------------- | ---------------------------------------------------------------------------------------------------------- |
14+
| [v1.10.0](./release-v1-10-0) | Native regex syntax `/pattern/flags` — automatic term extraction, top-level alternation and `--regex-hint` |
15+
| [v1.9.0](./release-v1-9-0) | Windows support — native x64, x64-modern, x64-baseline and ARM64 binaries with one-line PowerShell install |
16+
| [v1.8.3](./release-v1-8-3) | Fix TUI layout: header/footer anchoring, viewport packing and narrow-terminal rendering |
17+
| [v1.8.2](./release-v1-8-2) | Fix rate-limit errors aborting multi-page searches — auto-wait and resume with live feedback |
18+
| [v1.8.1](./release-v1-8-1) | Fix silent hang after pagination bar — concurrency cap + progress bar for line-number resolution |
19+
| [v1.8.0](./release-v1-8-0) | Purple TUI theme, fetch progress bar, position indicator, line-anchored file links, Esc to close help |
20+
| [v1.7.0](./release-v1-7-0) | Shell completions (bash/zsh/fish), extended syntax highlighting (PHP, C/C++, Swift, Terraform, Dockerfile) |
21+
| [v1.6.1](./release-v1-6-1) | Fix TUI rendering only the first fragment for multi-match files |
22+
| [v1.6.0](./release-v1-6-0) | Power navigation: global fold/unfold (`Z`), Vim `gg`/`G` jumps, paged scroll, open-in-browser (`o`) |
23+
| [v1.5.0](./release-v1-5-0) | Advanced filter targets (content/path/repo), regex mode, word-jump shortcuts, scroll accuracy fix |
24+
| [v1.4.0](./release-v1-4-0) | TUI visual overhaul, violet branding, demo animation, SECURITY / Code of Conduct, README improvements |
25+
| [v1.3.0](./release-v1-3-0) | Richer upgrade output, update-available notice, colorized `--help`, deep doc links, What's New blog |
26+
| [v1.0.0](./release-v1-0-0) | Initial public release — interactive TUI, per-repo aggregation, markdown / JSON output |
2627

2728
---
2829

docs/blog/release-v1-10-0.md

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
---
2+
title: "What's new in v1.10.0"
3+
description: "Native regex support — search with /pattern/flags syntax, automatic API term extraction, top-level alternation and --regex-hint override."
4+
date: 2026-03-13
5+
---
6+
7+
# What's new in github-code-search v1.10.0
8+
9+
> Full release notes: <https://github.com/fulll/github-code-search/releases/tag/v1.10.0>
10+
11+
## Highlights
12+
13+
### Regex query syntax
14+
15+
`github-code-search` now supports **full regex queries** using the `/pattern/flags` notation
16+
— the same syntax accepted by the GitHub web search UI.
17+
18+
```bash
19+
# Any import of axios, regardless of quote style
20+
github-code-search "/from.*['\"\`]axios/" --org my-org
21+
22+
# Axios pinned to any semver-prefix in package.json
23+
github-code-search '/"axios": "[~^]?[0-9]"/ filename:package.json' --org my-org
24+
25+
# Legacy require() calls for a specific module
26+
github-code-search "/require\\(['\"](old-lib)['\"]\\)/" --org my-org
27+
28+
# TODO, FIXME or HACK comments in one query
29+
github-code-search "/TODO|FIXME|HACK/" --org my-org
30+
```
31+
32+
Because the GitHub Code Search API does not support regex natively, the CLI automatically
33+
extracts a representative literal term from the pattern to send to the API, then
34+
**filters the returned results locally** with the full regex. In the vast majority of cases
35+
this is entirely transparent.
36+
37+
### Automatic API term extraction
38+
39+
The extraction algorithm picks the **longest unambiguous literal sequence** from the regex:
40+
41+
- `/require\(['"]axios['"]\)/` → sends `require` to the API
42+
- `/"version": "\d+\.\d+/` → sends `"version": "` to the API
43+
- `/TODO|FIXME|HACK/` → sends `TODO OR FIXME OR HACK` (see below)
44+
45+
If no term of 3+ characters can be extracted, the CLI exits with a clear error and
46+
instructs you to use `--regex-hint`.
47+
48+
### Top-level alternation — no results missed
49+
50+
When the regex pattern contains a **top-level `|`** (not nested inside `(...)` or `[...]`),
51+
the CLI automatically builds an `A OR B OR C` GitHub query so that **every branch is covered**
52+
by the API fetch — not just the first one.
53+
54+
```bash
55+
# Sends: "TODO OR FIXME OR HACK" to the GitHub API
56+
github-code-search "/TODO|FIXME|HACK/" --org my-org
57+
```
58+
59+
### `--regex-hint` — manual API term override
60+
61+
For patterns where the auto-extracted term is too short or too broad, use `--regex-hint`
62+
to specify exactly what the API should search for, while the **full regex is still applied
63+
locally** to filter results:
64+
65+
```bash
66+
github-code-search '/"axios":\s*"[~^]?[0-9]/ filename:package.json' \
67+
--org my-org \
68+
--regex-hint '"axios"'
69+
```
70+
71+
`--regex-hint` is also recorded in the **replay command** included in the markdown output,
72+
so the exact same result set can be reproduced without re-triggering the warning.
73+
74+
### Accurate match highlighting
75+
76+
In regex mode the TUI highlights the **actual regex match positions** inside each code
77+
fragment — not the approximate positions returned by the GitHub API for the literal search
78+
term. Match locations in the output (`:line:col` suffixes and `#L` GitHub anchors) reflect
79+
the true match boundaries.
80+
81+
### Invalid regex is always a hard error
82+
83+
Malformed patterns (e.g. unclosed groups, bad escape sequences) are detected at startup
84+
and produce a clear fatal error before any API call is made:
85+
86+
```text
87+
⚠ Regex mode — Invalid regex /foo(/: Unterminated group
88+
```
89+
90+
---
91+
92+
## Upgrade
93+
94+
```bash
95+
github-code-search upgrade
96+
```
97+
98+
Or grab the latest binary directly from the
99+
[GitHub Releases page](https://github.com/fulll/github-code-search/releases/tag/v1.10.0).

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "github-code-search",
3-
"version": "1.9.0",
3+
"version": "1.10.0",
44
"description": "Interactive GitHub code search with per-repo aggregation",
55
"keywords": [
66
"bun",

0 commit comments

Comments
 (0)