2026-04-30 16:00:38 +00:00
# Contributors
docs: refresh contributor tally for v0.51.390 (248 contributors) (#4132)
* docs: refresh contributor tally for v0.51.390 (248 contributors)
Regenerated via scripts/regen_contributors.py after fixing three real
over-counting bugs in the generator (release-vehicle PR# leak, reporter
false-positives, prose-token leakage — see workspace commit). Net:
- 248 contributors / 1092 credits (corrected; the prior generator inflated
this with ~106 spurious release-vehicle co-author credits + reporter mentions)
- CONTRIBUTORS.md now recognizes 3+ PR contributors in ranked tables and lists
everyone with 1-2 PRs in a combined roll, so nobody already credited is dropped
- README top-10 snapshot + notable-contribution counts updated to match
(franksong 180, Michaelyklam 118, rodboev 83 [new], ai-ag2026 75, bergeouss 70)
Every name in the tally is authorship-verified (merged PR, CHANGELOG attribution,
or a Co-authored-by trailer); bug reporters / relayers / confirmers are no longer
miscredited as authors.
* docs: add generated-region markers so the contributor tally regenerates cleanly
Wraps the machine-generated tables in CONTRIBUTORS.md + README.md with
<!-- BEGIN/END GENERATED CONTRIBUTORS --> markers. scripts/regen_contributors.py
--apply now splices fresh tables between them on each run while leaving the
hand-written prose (How credit is tracked, Special thanks, README Notable
contributions) untouched. Verified idempotent: a second --apply is a no-op.
This is what the weekly refresh cron runs.
Tally re-synced to current master: 248 contributors / 1093 credits.
---------
Co-authored-by: nesquena-hermes <nesquena-hermes@users.noreply.github.com>
Co-authored-by: Nathan Esquenazi <nesquena@gmail.com>
2026-06-13 19:18:21 +00:00
Hermes WebUI is a community project. This file is the canonical credit roll.
2026-04-30 16:00:38 +00:00
docs: refresh contributor tally for v0.51.390 (248 contributors) (#4132)
* docs: refresh contributor tally for v0.51.390 (248 contributors)
Regenerated via scripts/regen_contributors.py after fixing three real
over-counting bugs in the generator (release-vehicle PR# leak, reporter
false-positives, prose-token leakage — see workspace commit). Net:
- 248 contributors / 1092 credits (corrected; the prior generator inflated
this with ~106 spurious release-vehicle co-author credits + reporter mentions)
- CONTRIBUTORS.md now recognizes 3+ PR contributors in ranked tables and lists
everyone with 1-2 PRs in a combined roll, so nobody already credited is dropped
- README top-10 snapshot + notable-contribution counts updated to match
(franksong 180, Michaelyklam 118, rodboev 83 [new], ai-ag2026 75, bergeouss 70)
Every name in the tally is authorship-verified (merged PR, CHANGELOG attribution,
or a Co-authored-by trailer); bug reporters / relayers / confirmers are no longer
miscredited as authors.
* docs: add generated-region markers so the contributor tally regenerates cleanly
Wraps the machine-generated tables in CONTRIBUTORS.md + README.md with
<!-- BEGIN/END GENERATED CONTRIBUTORS --> markers. scripts/regen_contributors.py
--apply now splices fresh tables between them on each run while leaving the
hand-written prose (How credit is tracked, Special thanks, README Notable
contributions) untouched. Verified idempotent: a second --apply is a no-op.
This is what the weekly refresh cron runs.
Tally re-synced to current master: 248 contributors / 1093 credits.
---------
Co-authored-by: nesquena-hermes <nesquena-hermes@users.noreply.github.com>
Co-authored-by: Nathan Esquenazi <nesquena@gmail.com>
2026-06-13 19:18:21 +00:00
A contributor's PR count is the number of distinct PRs they get credit for: PRs they authored that merged directly, PRs they authored that were closed-but-absorbed into a release commit (batch merges, salvage rewrites, cherry-picked-and-attributed work), and PRs where they were explicitly attributed in `CHANGELOG.md` . All count the same. Bug reports, confirmations, and review feedback are deeply appreciated but are not counted as authored PRs here.
2026-04-30 16:00:38 +00:00
docs: refresh contributor tally for v0.51.390 (248 contributors) (#4132)
* docs: refresh contributor tally for v0.51.390 (248 contributors)
Regenerated via scripts/regen_contributors.py after fixing three real
over-counting bugs in the generator (release-vehicle PR# leak, reporter
false-positives, prose-token leakage — see workspace commit). Net:
- 248 contributors / 1092 credits (corrected; the prior generator inflated
this with ~106 spurious release-vehicle co-author credits + reporter mentions)
- CONTRIBUTORS.md now recognizes 3+ PR contributors in ranked tables and lists
everyone with 1-2 PRs in a combined roll, so nobody already credited is dropped
- README top-10 snapshot + notable-contribution counts updated to match
(franksong 180, Michaelyklam 118, rodboev 83 [new], ai-ag2026 75, bergeouss 70)
Every name in the tally is authorship-verified (merged PR, CHANGELOG attribution,
or a Co-authored-by trailer); bug reporters / relayers / confirmers are no longer
miscredited as authors.
* docs: add generated-region markers so the contributor tally regenerates cleanly
Wraps the machine-generated tables in CONTRIBUTORS.md + README.md with
<!-- BEGIN/END GENERATED CONTRIBUTORS --> markers. scripts/regen_contributors.py
--apply now splices fresh tables between them on each run while leaving the
hand-written prose (How credit is tracked, Special thanks, README Notable
contributions) untouched. Verified idempotent: a second --apply is a no-op.
This is what the weekly refresh cron runs.
Tally re-synced to current master: 248 contributors / 1093 credits.
---------
Co-authored-by: nesquena-hermes <nesquena-hermes@users.noreply.github.com>
Co-authored-by: Nathan Esquenazi <nesquena@gmail.com>
2026-06-13 19:18:21 +00:00
Generated by `scripts/regen_contributors.py` in the maintainer workspace, which unions three sources — the GitHub merged-PR list, `CHANGELOG.md` attribution lines, and `Co-authored-by:` trailers on commits that landed on master (the canonical signal for a CLOSED PR whose commits were cherry-picked in and attributed). A credit is only counted when it resolves to the contributor's own PR number; release/batch "vehicle" PRs and bug-reporter mentions do not generate credit. The tables between the markers below are regenerated automatically; the prose around them is maintained by hand. If your name is missing or wrong, open a PR against `CONTRIBUTORS.md` — we cross-check against the changelog on each release.
docs(contributors): refresh contributor stats to v0.51.44
Update CONTRIBUTORS.md and the README contributors section to reflect
130 contributors and 568 PR credits as of v0.51.44 (was 66/142 at
v0.50.245). The numbers grew because:
- The previous refresh was 1 release-cycle ago (50+ tags + 8 batch
releases of contributor PRs ago).
- The new counting rule explicitly includes closed-but-absorbed PRs:
PRs whose original branch shows "closed" on GitHub but whose content
shipped via batch-release squash with a Co-authored-by trailer, or
via salvage rewrite with CHANGELOG attribution. This better reflects
what users actually contributed.
The compilation pipeline:
1. Pull every closed PR from gh api (state=closed, both merged and
unmerged on GitHub) — 1421 PRs.
2. Walk CHANGELOG.md release-by-release and extract:
- `PR #N by @user` (canonical bullet form)
- `(#N by @user`, `(PR #N by @user`, `(#N, @user;`
- `PRs #A, #B by @user` (plural)
- `@user — PR #N`, `@user — N PR (#A, #B)`
- `(credit: @user)` and `(credit: @userA and @userB)`
3. For every PR# mentioned in CHANGELOG, union the explicit @-attributed
users with the gh PR author (when external). Maintainer accounts
(@nesquena, @nesquena-hermes) are excluded.
4. For PRs merged on GitHub but not mentioned in CHANGELOG (very early
PRs, non-noteworthy direct merges), credit the gh author.
5. Three salvaged-design contributors not directly in CHANGELOG are
credited in the special-thanks roll: @indigokarasu (#213 →
v0.50.0 design language), @andrewy-wizard (#177 → initial Chinese
locale absorbed into v0.42.0), @zenc-cp (#133 → anti-hallucination
guard absorbed into streaming.py).
Pre-cleaning step strips HTML entities (` ` etc.) before PR# scan
to avoid false matches. PR# regex requires a whitespace/paren/bracket
preceder so identifiers like `--key=123` and `(##10`-style headings
don't pollute the count.
Per-user first/last release computed from:
- For merged-on-GH PRs: the smallest tag whose creator-date is >= the
PR's merged_at timestamp.
- For absorbed PRs: the release section in CHANGELOG that explicitly
attributes to the user (or the earliest release that mentions the
PR# if no explicit attribution exists for that user).
CONTRIBUTORS.md sections:
- Top contributors (5+ PRs) — 20 people, ranked
- Sustained contributors (3–4 PRs) — 11 people
- Two-PR contributors — 14 people, flat list
- Single-PR contributors — 85 people, flat list
- How credit is tracked — four paths described
- Special thanks — 11 highlight blurbs
README contributors section trimmed to top-10 table + notable-
contribution blurbs (29 distinct contributors mentioned with concrete
PR numbers). Same data, condensed for the README.
No code changes. Docs only.
2026-05-11 06:59:42 +00:00
docs: refresh contributor tally for v0.51.390 (248 contributors) (#4132)
* docs: refresh contributor tally for v0.51.390 (248 contributors)
Regenerated via scripts/regen_contributors.py after fixing three real
over-counting bugs in the generator (release-vehicle PR# leak, reporter
false-positives, prose-token leakage — see workspace commit). Net:
- 248 contributors / 1092 credits (corrected; the prior generator inflated
this with ~106 spurious release-vehicle co-author credits + reporter mentions)
- CONTRIBUTORS.md now recognizes 3+ PR contributors in ranked tables and lists
everyone with 1-2 PRs in a combined roll, so nobody already credited is dropped
- README top-10 snapshot + notable-contribution counts updated to match
(franksong 180, Michaelyklam 118, rodboev 83 [new], ai-ag2026 75, bergeouss 70)
Every name in the tally is authorship-verified (merged PR, CHANGELOG attribution,
or a Co-authored-by trailer); bug reporters / relayers / confirmers are no longer
miscredited as authors.
* docs: add generated-region markers so the contributor tally regenerates cleanly
Wraps the machine-generated tables in CONTRIBUTORS.md + README.md with
<!-- BEGIN/END GENERATED CONTRIBUTORS --> markers. scripts/regen_contributors.py
--apply now splices fresh tables between them on each run while leaving the
hand-written prose (How credit is tracked, Special thanks, README Notable
contributions) untouched. Verified idempotent: a second --apply is a no-op.
This is what the weekly refresh cron runs.
Tally re-synced to current master: 248 contributors / 1093 credits.
---------
Co-authored-by: nesquena-hermes <nesquena-hermes@users.noreply.github.com>
Co-authored-by: Nathan Esquenazi <nesquena@gmail.com>
2026-06-13 19:18:21 +00:00
<!-- BEGIN GENERATED CONTRIBUTORS -->
**248 people** have shipped code that landed in a release tag — including the long tail of folks whose work was salvaged into batch releases or absorbed via Co-authored-by trailers.
2026-04-30 16:00:38 +00:00
docs: refresh contributor tally for v0.51.390 (248 contributors) (#4132)
* docs: refresh contributor tally for v0.51.390 (248 contributors)
Regenerated via scripts/regen_contributors.py after fixing three real
over-counting bugs in the generator (release-vehicle PR# leak, reporter
false-positives, prose-token leakage — see workspace commit). Net:
- 248 contributors / 1092 credits (corrected; the prior generator inflated
this with ~106 spurious release-vehicle co-author credits + reporter mentions)
- CONTRIBUTORS.md now recognizes 3+ PR contributors in ranked tables and lists
everyone with 1-2 PRs in a combined roll, so nobody already credited is dropped
- README top-10 snapshot + notable-contribution counts updated to match
(franksong 180, Michaelyklam 118, rodboev 83 [new], ai-ag2026 75, bergeouss 70)
Every name in the tally is authorship-verified (merged PR, CHANGELOG attribution,
or a Co-authored-by trailer); bug reporters / relayers / confirmers are no longer
miscredited as authors.
* docs: add generated-region markers so the contributor tally regenerates cleanly
Wraps the machine-generated tables in CONTRIBUTORS.md + README.md with
<!-- BEGIN/END GENERATED CONTRIBUTORS --> markers. scripts/regen_contributors.py
--apply now splices fresh tables between them on each run while leaving the
hand-written prose (How credit is tracked, Special thanks, README Notable
contributions) untouched. Verified idempotent: a second --apply is a no-op.
This is what the weekly refresh cron runs.
Tally re-synced to current master: 248 contributors / 1093 credits.
---------
Co-authored-by: nesquena-hermes <nesquena-hermes@users.noreply.github.com>
Co-authored-by: Nathan Esquenazi <nesquena@gmail.com>
2026-06-13 19:18:21 +00:00
**Total contributors tracked:** 248
**Total PR credits:** 1093
**Last refreshed:** v0.51.391, 2026-06-13
The ranked tables below recognize contributors with **3 or more** landed PRs. Everyone with one or two PRs is listed in the [1– 2 PR contributors ](#12-pr-contributors ) roll — every one of them moved the project forward.
2026-04-30 16:00:38 +00:00
docs(contributors): refresh contributor stats to v0.51.44
Update CONTRIBUTORS.md and the README contributors section to reflect
130 contributors and 568 PR credits as of v0.51.44 (was 66/142 at
v0.50.245). The numbers grew because:
- The previous refresh was 1 release-cycle ago (50+ tags + 8 batch
releases of contributor PRs ago).
- The new counting rule explicitly includes closed-but-absorbed PRs:
PRs whose original branch shows "closed" on GitHub but whose content
shipped via batch-release squash with a Co-authored-by trailer, or
via salvage rewrite with CHANGELOG attribution. This better reflects
what users actually contributed.
The compilation pipeline:
1. Pull every closed PR from gh api (state=closed, both merged and
unmerged on GitHub) — 1421 PRs.
2. Walk CHANGELOG.md release-by-release and extract:
- `PR #N by @user` (canonical bullet form)
- `(#N by @user`, `(PR #N by @user`, `(#N, @user;`
- `PRs #A, #B by @user` (plural)
- `@user — PR #N`, `@user — N PR (#A, #B)`
- `(credit: @user)` and `(credit: @userA and @userB)`
3. For every PR# mentioned in CHANGELOG, union the explicit @-attributed
users with the gh PR author (when external). Maintainer accounts
(@nesquena, @nesquena-hermes) are excluded.
4. For PRs merged on GitHub but not mentioned in CHANGELOG (very early
PRs, non-noteworthy direct merges), credit the gh author.
5. Three salvaged-design contributors not directly in CHANGELOG are
credited in the special-thanks roll: @indigokarasu (#213 →
v0.50.0 design language), @andrewy-wizard (#177 → initial Chinese
locale absorbed into v0.42.0), @zenc-cp (#133 → anti-hallucination
guard absorbed into streaming.py).
Pre-cleaning step strips HTML entities (` ` etc.) before PR# scan
to avoid false matches. PR# regex requires a whitespace/paren/bracket
preceder so identifiers like `--key=123` and `(##10`-style headings
don't pollute the count.
Per-user first/last release computed from:
- For merged-on-GH PRs: the smallest tag whose creator-date is >= the
PR's merged_at timestamp.
- For absorbed PRs: the release section in CHANGELOG that explicitly
attributes to the user (or the earliest release that mentions the
PR# if no explicit attribution exists for that user).
CONTRIBUTORS.md sections:
- Top contributors (5+ PRs) — 20 people, ranked
- Sustained contributors (3–4 PRs) — 11 people
- Two-PR contributors — 14 people, flat list
- Single-PR contributors — 85 people, flat list
- How credit is tracked — four paths described
- Special thanks — 11 highlight blurbs
README contributors section trimmed to top-10 table + notable-
contribution blurbs (29 distinct contributors mentioned with concrete
PR numbers). Same data, condensed for the README.
No code changes. Docs only.
2026-05-11 06:59:42 +00:00
## Top contributors (5+ PRs landed)
2026-04-30 16:00:38 +00:00
| # | Contributor | PRs | First release | Latest release |
|---|---|---:|---|---|
docs: refresh contributor tally for v0.51.390 (248 contributors) (#4132)
* docs: refresh contributor tally for v0.51.390 (248 contributors)
Regenerated via scripts/regen_contributors.py after fixing three real
over-counting bugs in the generator (release-vehicle PR# leak, reporter
false-positives, prose-token leakage — see workspace commit). Net:
- 248 contributors / 1092 credits (corrected; the prior generator inflated
this with ~106 spurious release-vehicle co-author credits + reporter mentions)
- CONTRIBUTORS.md now recognizes 3+ PR contributors in ranked tables and lists
everyone with 1-2 PRs in a combined roll, so nobody already credited is dropped
- README top-10 snapshot + notable-contribution counts updated to match
(franksong 180, Michaelyklam 118, rodboev 83 [new], ai-ag2026 75, bergeouss 70)
Every name in the tally is authorship-verified (merged PR, CHANGELOG attribution,
or a Co-authored-by trailer); bug reporters / relayers / confirmers are no longer
miscredited as authors.
* docs: add generated-region markers so the contributor tally regenerates cleanly
Wraps the machine-generated tables in CONTRIBUTORS.md + README.md with
<!-- BEGIN/END GENERATED CONTRIBUTORS --> markers. scripts/regen_contributors.py
--apply now splices fresh tables between them on each run while leaving the
hand-written prose (How credit is tracked, Special thanks, README Notable
contributions) untouched. Verified idempotent: a second --apply is a no-op.
This is what the weekly refresh cron runs.
Tally re-synced to current master: 248 contributors / 1093 credits.
---------
Co-authored-by: nesquena-hermes <nesquena-hermes@users.noreply.github.com>
Co-authored-by: Nathan Esquenazi <nesquena@gmail.com>
2026-06-13 19:18:21 +00:00
| 1 | [@franksong2702 ](https://github.com/franksong2702 ) | 181 | `v0.49.3` | `v0.51.384` |
| 2 | [@Michaelyklam ](https://github.com/Michaelyklam ) | 118 | `v0.50.240` | `v0.51.198` |
| 3 | [@rodboev ](https://github.com/rodboev ) | 83 | `v0.51.223` | `v0.51.384` |
| 4 | [@ai-ag2026 ](https://github.com/ai-ag2026 ) | 75 | `v0.50.279` | `v0.51.367` |
| 5 | [@bergeouss ](https://github.com/bergeouss ) | 70 | `v0.48.0` | `v0.51.385` |
| 6 | [@AJV20 ](https://github.com/AJV20 ) | 34 | `v0.51.93` | `v0.51.227` |
| 7 | [@dso2ng ](https://github.com/dso2ng ) | 30 | `v0.50.227` | `v0.51.327` |
| 8 | [@starship-s ](https://github.com/starship-s ) | 19 | `v0.50.123` | `v0.51.153` |
| 9 | [@jasonjcwu ](https://github.com/jasonjcwu ) | 16 | `v0.50.227` | `v0.51.235` |
| 10 | [@dobby-d-elf ](https://github.com/dobby-d-elf ) | 15 | `v0.51.38` | `v0.51.161` |
| 11 | [@pamnard ](https://github.com/pamnard ) | 13 | `v0.51.186` | `v0.51.332` |
| 12 | [@Jordan-SkyLF ](https://github.com/Jordan-SkyLF ) | 12 | `v0.50.18` | `v0.51.66` |
| 13 | [@Sanjays2402 ](https://github.com/Sanjays2402 ) | 12 | `v0.50.292` | `v0.51.337` |
| 14 | [@aronprins ](https://github.com/aronprins ) | 10 | `v0.44.0` | `v0.51.45` |
| 15 | [@JKJameson ](https://github.com/JKJameson ) | 10 | `v0.50.198` | `v0.51.31` |
| 16 | [@ccqqlo ](https://github.com/ccqqlo ) | 9 | `v0.44.0` | `v0.50.270` |
| 17 | [@Hinotoi-agent ](https://github.com/Hinotoi-agent ) | 9 | `v0.50.10` | `v0.51.367` |
| 18 | [@24601 ](https://github.com/24601 ) | 8 | `v0.50.189` | `v0.51.5` |
| 19 | [@LumenYoung ](https://github.com/LumenYoung ) | 8 | `v0.51.47` | `v0.51.99` |
| 20 | [@mysoul12138 ](https://github.com/mysoul12138 ) | 8 | `v0.51.161` | `v0.51.303` |
| 21 | [@armorbreak001 ](https://github.com/armorbreak001 ) | 7 | `v0.50.47` | `v0.50.50` |
| 22 | [@b3nw ](https://github.com/b3nw ) | 7 | `v0.51.198` | `v0.51.384` |
| 23 | [@happy5318 ](https://github.com/happy5318 ) | 7 | `v0.50.238` | `v0.51.268` |
| 24 | [@NocGeek ](https://github.com/NocGeek ) | 7 | `v0.50.251` | `v0.50.252` |
| 25 | [@iRonin ](https://github.com/iRonin ) | 6 | `v0.41.0` | `v0.41.0` |
| 26 | [@AlexeyDsov ](https://github.com/AlexeyDsov ) | 5 | `v0.50.267` | `v0.51.197` |
| 27 | [@bsgdigital ](https://github.com/bsgdigital ) | 5 | `v0.50.159` | `v0.51.31` |
| 28 | [@Carry00 ](https://github.com/Carry00 ) | 5 | `v0.51.132` | `v0.51.303` |
| 29 | [@cloudyun888 ](https://github.com/cloudyun888 ) | 5 | `v0.50.47` | `v0.50.140` |
| 30 | [@fxd-jason ](https://github.com/fxd-jason ) | 5 | `v0.50.245` | `v0.50.250` |
| 31 | [@george-andraws ](https://github.com/george-andraws ) | 5 | `v0.51.139` | `v0.51.153` |
docs(contributors): refresh contributor stats to v0.51.44
Update CONTRIBUTORS.md and the README contributors section to reflect
130 contributors and 568 PR credits as of v0.51.44 (was 66/142 at
v0.50.245). The numbers grew because:
- The previous refresh was 1 release-cycle ago (50+ tags + 8 batch
releases of contributor PRs ago).
- The new counting rule explicitly includes closed-but-absorbed PRs:
PRs whose original branch shows "closed" on GitHub but whose content
shipped via batch-release squash with a Co-authored-by trailer, or
via salvage rewrite with CHANGELOG attribution. This better reflects
what users actually contributed.
The compilation pipeline:
1. Pull every closed PR from gh api (state=closed, both merged and
unmerged on GitHub) — 1421 PRs.
2. Walk CHANGELOG.md release-by-release and extract:
- `PR #N by @user` (canonical bullet form)
- `(#N by @user`, `(PR #N by @user`, `(#N, @user;`
- `PRs #A, #B by @user` (plural)
- `@user — PR #N`, `@user — N PR (#A, #B)`
- `(credit: @user)` and `(credit: @userA and @userB)`
3. For every PR# mentioned in CHANGELOG, union the explicit @-attributed
users with the gh PR author (when external). Maintainer accounts
(@nesquena, @nesquena-hermes) are excluded.
4. For PRs merged on GitHub but not mentioned in CHANGELOG (very early
PRs, non-noteworthy direct merges), credit the gh author.
5. Three salvaged-design contributors not directly in CHANGELOG are
credited in the special-thanks roll: @indigokarasu (#213 →
v0.50.0 design language), @andrewy-wizard (#177 → initial Chinese
locale absorbed into v0.42.0), @zenc-cp (#133 → anti-hallucination
guard absorbed into streaming.py).
Pre-cleaning step strips HTML entities (` ` etc.) before PR# scan
to avoid false matches. PR# regex requires a whitespace/paren/bracket
preceder so identifiers like `--key=123` and `(##10`-style headings
don't pollute the count.
Per-user first/last release computed from:
- For merged-on-GH PRs: the smallest tag whose creator-date is >= the
PR's merged_at timestamp.
- For absorbed PRs: the release section in CHANGELOG that explicitly
attributes to the user (or the earliest release that mentions the
PR# if no explicit attribution exists for that user).
CONTRIBUTORS.md sections:
- Top contributors (5+ PRs) — 20 people, ranked
- Sustained contributors (3–4 PRs) — 11 people
- Two-PR contributors — 14 people, flat list
- Single-PR contributors — 85 people, flat list
- How credit is tracked — four paths described
- Special thanks — 11 highlight blurbs
README contributors section trimmed to top-10 table + notable-
contribution blurbs (29 distinct contributors mentioned with concrete
PR numbers). Same data, condensed for the README.
No code changes. Docs only.
2026-05-11 06:59:42 +00:00
## Sustained contributors (3– 4 PRs landed)
| Contributor | PRs | First release | Latest release |
|---|---:|---|---|
| [@fecolinhares ](https://github.com/fecolinhares ) | 4 | `v0.50.238` | `v0.50.250` |
| [@frap129 ](https://github.com/frap129 ) | 4 | `v0.50.140` | `v0.50.233` |
2026-06-01 02:14:01 +00:00
| [@Isla-Liu ](https://github.com/Isla-Liu ) | 4 | `v0.51.100` | `v0.51.142` |
docs(contributors): refresh contributor stats to v0.51.44
Update CONTRIBUTORS.md and the README contributors section to reflect
130 contributors and 568 PR credits as of v0.51.44 (was 66/142 at
v0.50.245). The numbers grew because:
- The previous refresh was 1 release-cycle ago (50+ tags + 8 batch
releases of contributor PRs ago).
- The new counting rule explicitly includes closed-but-absorbed PRs:
PRs whose original branch shows "closed" on GitHub but whose content
shipped via batch-release squash with a Co-authored-by trailer, or
via salvage rewrite with CHANGELOG attribution. This better reflects
what users actually contributed.
The compilation pipeline:
1. Pull every closed PR from gh api (state=closed, both merged and
unmerged on GitHub) — 1421 PRs.
2. Walk CHANGELOG.md release-by-release and extract:
- `PR #N by @user` (canonical bullet form)
- `(#N by @user`, `(PR #N by @user`, `(#N, @user;`
- `PRs #A, #B by @user` (plural)
- `@user — PR #N`, `@user — N PR (#A, #B)`
- `(credit: @user)` and `(credit: @userA and @userB)`
3. For every PR# mentioned in CHANGELOG, union the explicit @-attributed
users with the gh PR author (when external). Maintainer accounts
(@nesquena, @nesquena-hermes) are excluded.
4. For PRs merged on GitHub but not mentioned in CHANGELOG (very early
PRs, non-noteworthy direct merges), credit the gh author.
5. Three salvaged-design contributors not directly in CHANGELOG are
credited in the special-thanks roll: @indigokarasu (#213 →
v0.50.0 design language), @andrewy-wizard (#177 → initial Chinese
locale absorbed into v0.42.0), @zenc-cp (#133 → anti-hallucination
guard absorbed into streaming.py).
Pre-cleaning step strips HTML entities (` ` etc.) before PR# scan
to avoid false matches. PR# regex requires a whitespace/paren/bracket
preceder so identifiers like `--key=123` and `(##10`-style headings
don't pollute the count.
Per-user first/last release computed from:
- For merged-on-GH PRs: the smallest tag whose creator-date is >= the
PR's merged_at timestamp.
- For absorbed PRs: the release section in CHANGELOG that explicitly
attributes to the user (or the earliest release that mentions the
PR# if no explicit attribution exists for that user).
CONTRIBUTORS.md sections:
- Top contributors (5+ PRs) — 20 people, ranked
- Sustained contributors (3–4 PRs) — 11 people
- Two-PR contributors — 14 people, flat list
- Single-PR contributors — 85 people, flat list
- How credit is tracked — four paths described
- Special thanks — 11 highlight blurbs
README contributors section trimmed to top-10 table + notable-
contribution blurbs (29 distinct contributors mentioned with concrete
PR numbers). Same data, condensed for the README.
No code changes. Docs only.
2026-05-11 06:59:42 +00:00
| [@KingBoyAndGirl ](https://github.com/KingBoyAndGirl ) | 4 | `v0.50.238` | `v0.50.240` |
2026-06-01 02:14:01 +00:00
| [@qxxaa ](https://github.com/qxxaa ) | 4 | `v0.50.210` | `v0.51.37` |
docs(contributors): refresh contributor stats to v0.51.44
Update CONTRIBUTORS.md and the README contributors section to reflect
130 contributors and 568 PR credits as of v0.51.44 (was 66/142 at
v0.50.245). The numbers grew because:
- The previous refresh was 1 release-cycle ago (50+ tags + 8 batch
releases of contributor PRs ago).
- The new counting rule explicitly includes closed-but-absorbed PRs:
PRs whose original branch shows "closed" on GitHub but whose content
shipped via batch-release squash with a Co-authored-by trailer, or
via salvage rewrite with CHANGELOG attribution. This better reflects
what users actually contributed.
The compilation pipeline:
1. Pull every closed PR from gh api (state=closed, both merged and
unmerged on GitHub) — 1421 PRs.
2. Walk CHANGELOG.md release-by-release and extract:
- `PR #N by @user` (canonical bullet form)
- `(#N by @user`, `(PR #N by @user`, `(#N, @user;`
- `PRs #A, #B by @user` (plural)
- `@user — PR #N`, `@user — N PR (#A, #B)`
- `(credit: @user)` and `(credit: @userA and @userB)`
3. For every PR# mentioned in CHANGELOG, union the explicit @-attributed
users with the gh PR author (when external). Maintainer accounts
(@nesquena, @nesquena-hermes) are excluded.
4. For PRs merged on GitHub but not mentioned in CHANGELOG (very early
PRs, non-noteworthy direct merges), credit the gh author.
5. Three salvaged-design contributors not directly in CHANGELOG are
credited in the special-thanks roll: @indigokarasu (#213 →
v0.50.0 design language), @andrewy-wizard (#177 → initial Chinese
locale absorbed into v0.42.0), @zenc-cp (#133 → anti-hallucination
guard absorbed into streaming.py).
Pre-cleaning step strips HTML entities (` ` etc.) before PR# scan
to avoid false matches. PR# regex requires a whitespace/paren/bracket
preceder so identifiers like `--key=123` and `(##10`-style headings
don't pollute the count.
Per-user first/last release computed from:
- For merged-on-GH PRs: the smallest tag whose creator-date is >= the
PR's merged_at timestamp.
- For absorbed PRs: the release section in CHANGELOG that explicitly
attributes to the user (or the earliest release that mentions the
PR# if no explicit attribution exists for that user).
CONTRIBUTORS.md sections:
- Top contributors (5+ PRs) — 20 people, ranked
- Sustained contributors (3–4 PRs) — 11 people
- Two-PR contributors — 14 people, flat list
- Single-PR contributors — 85 people, flat list
- How credit is tracked — four paths described
- Special thanks — 11 highlight blurbs
README contributors section trimmed to top-10 table + notable-
contribution blurbs (29 distinct contributors mentioned with concrete
PR numbers). Same data, condensed for the README.
No code changes. Docs only.
2026-05-11 06:59:42 +00:00
| [@renheqiang ](https://github.com/renheqiang ) | 4 | `v0.50.61` | `v0.50.95` |
| [@Thanatos-Z ](https://github.com/Thanatos-Z ) | 4 | `v0.50.257` | `v0.50.278` |
docs: refresh contributor tally for v0.51.390 (248 contributors) (#4132)
* docs: refresh contributor tally for v0.51.390 (248 contributors)
Regenerated via scripts/regen_contributors.py after fixing three real
over-counting bugs in the generator (release-vehicle PR# leak, reporter
false-positives, prose-token leakage — see workspace commit). Net:
- 248 contributors / 1092 credits (corrected; the prior generator inflated
this with ~106 spurious release-vehicle co-author credits + reporter mentions)
- CONTRIBUTORS.md now recognizes 3+ PR contributors in ranked tables and lists
everyone with 1-2 PRs in a combined roll, so nobody already credited is dropped
- README top-10 snapshot + notable-contribution counts updated to match
(franksong 180, Michaelyklam 118, rodboev 83 [new], ai-ag2026 75, bergeouss 70)
Every name in the tally is authorship-verified (merged PR, CHANGELOG attribution,
or a Co-authored-by trailer); bug reporters / relayers / confirmers are no longer
miscredited as authors.
* docs: add generated-region markers so the contributor tally regenerates cleanly
Wraps the machine-generated tables in CONTRIBUTORS.md + README.md with
<!-- BEGIN/END GENERATED CONTRIBUTORS --> markers. scripts/regen_contributors.py
--apply now splices fresh tables between them on each run while leaving the
hand-written prose (How credit is tracked, Special thanks, README Notable
contributions) untouched. Verified idempotent: a second --apply is a no-op.
This is what the weekly refresh cron runs.
Tally re-synced to current master: 248 contributors / 1093 credits.
---------
Co-authored-by: nesquena-hermes <nesquena-hermes@users.noreply.github.com>
Co-authored-by: Nathan Esquenazi <nesquena@gmail.com>
2026-06-13 19:18:21 +00:00
| [@xz-dev ](https://github.com/xz-dev ) | 4 | `v0.51.55` | `v0.51.196` |
| [@zapabob ](https://github.com/zapabob ) | 4 | `v0.51.186` | `v0.51.267` |
| [@andrewkangkr ](https://github.com/andrewkangkr ) | 3 | `v0.51.185` | `v0.51.222` |
2026-06-01 02:14:01 +00:00
| [@deboste ](https://github.com/deboste ) | 3 | `v0.17.1` | `v0.50.297` |
docs(contributors): refresh contributor stats to v0.51.44
Update CONTRIBUTORS.md and the README contributors section to reflect
130 contributors and 568 PR credits as of v0.51.44 (was 66/142 at
v0.50.245). The numbers grew because:
- The previous refresh was 1 release-cycle ago (50+ tags + 8 batch
releases of contributor PRs ago).
- The new counting rule explicitly includes closed-but-absorbed PRs:
PRs whose original branch shows "closed" on GitHub but whose content
shipped via batch-release squash with a Co-authored-by trailer, or
via salvage rewrite with CHANGELOG attribution. This better reflects
what users actually contributed.
The compilation pipeline:
1. Pull every closed PR from gh api (state=closed, both merged and
unmerged on GitHub) — 1421 PRs.
2. Walk CHANGELOG.md release-by-release and extract:
- `PR #N by @user` (canonical bullet form)
- `(#N by @user`, `(PR #N by @user`, `(#N, @user;`
- `PRs #A, #B by @user` (plural)
- `@user — PR #N`, `@user — N PR (#A, #B)`
- `(credit: @user)` and `(credit: @userA and @userB)`
3. For every PR# mentioned in CHANGELOG, union the explicit @-attributed
users with the gh PR author (when external). Maintainer accounts
(@nesquena, @nesquena-hermes) are excluded.
4. For PRs merged on GitHub but not mentioned in CHANGELOG (very early
PRs, non-noteworthy direct merges), credit the gh author.
5. Three salvaged-design contributors not directly in CHANGELOG are
credited in the special-thanks roll: @indigokarasu (#213 →
v0.50.0 design language), @andrewy-wizard (#177 → initial Chinese
locale absorbed into v0.42.0), @zenc-cp (#133 → anti-hallucination
guard absorbed into streaming.py).
Pre-cleaning step strips HTML entities (` ` etc.) before PR# scan
to avoid false matches. PR# regex requires a whitespace/paren/bracket
preceder so identifiers like `--key=123` and `(##10`-style headings
don't pollute the count.
Per-user first/last release computed from:
- For merged-on-GH PRs: the smallest tag whose creator-date is >= the
PR's merged_at timestamp.
- For absorbed PRs: the release section in CHANGELOG that explicitly
attributes to the user (or the earliest release that mentions the
PR# if no explicit attribution exists for that user).
CONTRIBUTORS.md sections:
- Top contributors (5+ PRs) — 20 people, ranked
- Sustained contributors (3–4 PRs) — 11 people
- Two-PR contributors — 14 people, flat list
- Single-PR contributors — 85 people, flat list
- How credit is tracked — four paths described
- Special thanks — 11 highlight blurbs
README contributors section trimmed to top-10 table + notable-
contribution blurbs (29 distinct contributors mentioned with concrete
PR numbers). Same data, condensed for the README.
No code changes. Docs only.
2026-05-11 06:59:42 +00:00
| [@dutchaiagency ](https://github.com/dutchaiagency ) | 3 | `v0.50.281` | `v0.50.286` |
2026-06-01 02:14:01 +00:00
| [@espokaos-ops ](https://github.com/espokaos-ops ) | 3 | `v0.51.92` | `v0.51.94` |
docs: refresh CONTRIBUTORS.md and README to v0.51.58
Last refresh was at v0.51.44 (130 contributors / 568 PR credits). Since then,
14 releases shipped (v0.51.45 through v0.51.58) with 78 attributed PRs from
20 distinct contributors, adding 7 first-time contributors:
- @lucasrc — auth-hardening trilogy (#2191/#2192/#2193) → sustained 3-PR bucket
- @LumenYoung — stale-stream guard + 3 streaming-correctness fixes → sustained 4-PR bucket
- @MrFant — 2 PRs (reasoning_content whitelist, message preservation)
- @xz-dev — 2 PRs (thinking-card state, session-scoped metering)
- @legeantbleu — French (fr) locale (#2142)
- @ayushere — ctl.sh bash 3.2 macOS compat (#2117)
- @plerohellec — single PR
Bucket promotions (existing contributors who moved up):
- @dobby-d-elf: 2 → 6 PRs (jumps from two-PR list into top contributors)
- @samuelgudi: 1 → 2
- @michael-dg: 1 → 2
- @vcavichini: 1 → 2
- @hualong1009: 1 → 2
Top contributor PR-count updates (top 7 changed materially):
| Contributor | Before | After | Delta | Latest release |
|-------------------|-------:|------:|------:|---------------|
| @franksong2702 | 92 | 117 | +25 | Unreleased |
| @Michaelyklam | 81 | 92 | +11 | v0.51.57 |
| @bergeouss | 61 | 62 | +1 | v0.51.46 |
| @ai-ag2026 | 49 | 55 | +6 | v0.51.47 |
| @dso2ng | 21 | 23 | +2 | v0.51.51 |
| @jasonjcwu | 13 | 16 | +3 | v0.51.55 |
| @Jordan-SkyLF | 6 | 12 | +6 | Unreleased |
Header refreshed: 130 → 137 contributors, 568 → 646 PR credits, refresh
tag bumped to v0.51.58. Notable contributions paragraphs in both files
updated with the new work (manual /compress async pair, worktree status +
guarded remove, fork-from-here, opencode-go resolver, the LumenYoung +
lucasrc + dobby-d-elf entries).
Source of truth: CHANGELOG.md attribution lines `**PR #N** by @user` between
the v0.51.44 header and the Unreleased section, plus baseline buckets in
the previous CONTRIBUTORS.md. Cross-bucket sanity check passes (no handle
appears in multiple buckets; 21 + 13 + 19 + 84 = 137 unique handles).
2026-05-14 02:18:57 +00:00
| [@lucasrc ](https://github.com/lucasrc ) | 3 | `v0.51.57` | `v0.51.57` |
2026-06-01 02:14:01 +00:00
| [@mccxj ](https://github.com/mccxj ) | 3 | `v0.51.75` | `v0.51.148` |
docs: refresh contributor tally for v0.51.390 (248 contributors) (#4132)
* docs: refresh contributor tally for v0.51.390 (248 contributors)
Regenerated via scripts/regen_contributors.py after fixing three real
over-counting bugs in the generator (release-vehicle PR# leak, reporter
false-positives, prose-token leakage — see workspace commit). Net:
- 248 contributors / 1092 credits (corrected; the prior generator inflated
this with ~106 spurious release-vehicle co-author credits + reporter mentions)
- CONTRIBUTORS.md now recognizes 3+ PR contributors in ranked tables and lists
everyone with 1-2 PRs in a combined roll, so nobody already credited is dropped
- README top-10 snapshot + notable-contribution counts updated to match
(franksong 180, Michaelyklam 118, rodboev 83 [new], ai-ag2026 75, bergeouss 70)
Every name in the tally is authorship-verified (merged PR, CHANGELOG attribution,
or a Co-authored-by trailer); bug reporters / relayers / confirmers are no longer
miscredited as authors.
* docs: add generated-region markers so the contributor tally regenerates cleanly
Wraps the machine-generated tables in CONTRIBUTORS.md + README.md with
<!-- BEGIN/END GENERATED CONTRIBUTORS --> markers. scripts/regen_contributors.py
--apply now splices fresh tables between them on each run while leaving the
hand-written prose (How credit is tracked, Special thanks, README Notable
contributions) untouched. Verified idempotent: a second --apply is a no-op.
This is what the weekly refresh cron runs.
Tally re-synced to current master: 248 contributors / 1093 credits.
---------
Co-authored-by: nesquena-hermes <nesquena-hermes@users.noreply.github.com>
Co-authored-by: Nathan Esquenazi <nesquena@gmail.com>
2026-06-13 19:18:21 +00:00
| [@Mubashirrrr ](https://github.com/Mubashirrrr ) | 3 | `v0.51.231` | `v0.51.233` |
docs(contributors): refresh contributor stats to v0.51.44
Update CONTRIBUTORS.md and the README contributors section to reflect
130 contributors and 568 PR credits as of v0.51.44 (was 66/142 at
v0.50.245). The numbers grew because:
- The previous refresh was 1 release-cycle ago (50+ tags + 8 batch
releases of contributor PRs ago).
- The new counting rule explicitly includes closed-but-absorbed PRs:
PRs whose original branch shows "closed" on GitHub but whose content
shipped via batch-release squash with a Co-authored-by trailer, or
via salvage rewrite with CHANGELOG attribution. This better reflects
what users actually contributed.
The compilation pipeline:
1. Pull every closed PR from gh api (state=closed, both merged and
unmerged on GitHub) — 1421 PRs.
2. Walk CHANGELOG.md release-by-release and extract:
- `PR #N by @user` (canonical bullet form)
- `(#N by @user`, `(PR #N by @user`, `(#N, @user;`
- `PRs #A, #B by @user` (plural)
- `@user — PR #N`, `@user — N PR (#A, #B)`
- `(credit: @user)` and `(credit: @userA and @userB)`
3. For every PR# mentioned in CHANGELOG, union the explicit @-attributed
users with the gh PR author (when external). Maintainer accounts
(@nesquena, @nesquena-hermes) are excluded.
4. For PRs merged on GitHub but not mentioned in CHANGELOG (very early
PRs, non-noteworthy direct merges), credit the gh author.
5. Three salvaged-design contributors not directly in CHANGELOG are
credited in the special-thanks roll: @indigokarasu (#213 →
v0.50.0 design language), @andrewy-wizard (#177 → initial Chinese
locale absorbed into v0.42.0), @zenc-cp (#133 → anti-hallucination
guard absorbed into streaming.py).
Pre-cleaning step strips HTML entities (` ` etc.) before PR# scan
to avoid false matches. PR# regex requires a whitespace/paren/bracket
preceder so identifiers like `--key=123` and `(##10`-style headings
don't pollute the count.
Per-user first/last release computed from:
- For merged-on-GH PRs: the smallest tag whose creator-date is >= the
PR's merged_at timestamp.
- For absorbed PRs: the release section in CHANGELOG that explicitly
attributes to the user (or the earliest release that mentions the
PR# if no explicit attribution exists for that user).
CONTRIBUTORS.md sections:
- Top contributors (5+ PRs) — 20 people, ranked
- Sustained contributors (3–4 PRs) — 11 people
- Two-PR contributors — 14 people, flat list
- Single-PR contributors — 85 people, flat list
- How credit is tracked — four paths described
- Special thanks — 11 highlight blurbs
README contributors section trimmed to top-10 table + notable-
contribution blurbs (29 distinct contributors mentioned with concrete
PR numbers). Same data, condensed for the README.
No code changes. Docs only.
2026-05-11 06:59:42 +00:00
| [@pavolbiely ](https://github.com/pavolbiely ) | 3 | `v0.50.159` | `v0.50.233` |
docs: refresh contributor tally for v0.51.390 (248 contributors) (#4132)
* docs: refresh contributor tally for v0.51.390 (248 contributors)
Regenerated via scripts/regen_contributors.py after fixing three real
over-counting bugs in the generator (release-vehicle PR# leak, reporter
false-positives, prose-token leakage — see workspace commit). Net:
- 248 contributors / 1092 credits (corrected; the prior generator inflated
this with ~106 spurious release-vehicle co-author credits + reporter mentions)
- CONTRIBUTORS.md now recognizes 3+ PR contributors in ranked tables and lists
everyone with 1-2 PRs in a combined roll, so nobody already credited is dropped
- README top-10 snapshot + notable-contribution counts updated to match
(franksong 180, Michaelyklam 118, rodboev 83 [new], ai-ag2026 75, bergeouss 70)
Every name in the tally is authorship-verified (merged PR, CHANGELOG attribution,
or a Co-authored-by trailer); bug reporters / relayers / confirmers are no longer
miscredited as authors.
* docs: add generated-region markers so the contributor tally regenerates cleanly
Wraps the machine-generated tables in CONTRIBUTORS.md + README.md with
<!-- BEGIN/END GENERATED CONTRIBUTORS --> markers. scripts/regen_contributors.py
--apply now splices fresh tables between them on each run while leaving the
hand-written prose (How credit is tracked, Special thanks, README Notable
contributions) untouched. Verified idempotent: a second --apply is a no-op.
This is what the weekly refresh cron runs.
Tally re-synced to current master: 248 contributors / 1093 credits.
---------
Co-authored-by: nesquena-hermes <nesquena-hermes@users.noreply.github.com>
Co-authored-by: Nathan Esquenazi <nesquena@gmail.com>
2026-06-13 19:18:21 +00:00
## 1– 2 PR contributors
docs(contributors): refresh contributor stats to v0.51.44
Update CONTRIBUTORS.md and the README contributors section to reflect
130 contributors and 568 PR credits as of v0.51.44 (was 66/142 at
v0.50.245). The numbers grew because:
- The previous refresh was 1 release-cycle ago (50+ tags + 8 batch
releases of contributor PRs ago).
- The new counting rule explicitly includes closed-but-absorbed PRs:
PRs whose original branch shows "closed" on GitHub but whose content
shipped via batch-release squash with a Co-authored-by trailer, or
via salvage rewrite with CHANGELOG attribution. This better reflects
what users actually contributed.
The compilation pipeline:
1. Pull every closed PR from gh api (state=closed, both merged and
unmerged on GitHub) — 1421 PRs.
2. Walk CHANGELOG.md release-by-release and extract:
- `PR #N by @user` (canonical bullet form)
- `(#N by @user`, `(PR #N by @user`, `(#N, @user;`
- `PRs #A, #B by @user` (plural)
- `@user — PR #N`, `@user — N PR (#A, #B)`
- `(credit: @user)` and `(credit: @userA and @userB)`
3. For every PR# mentioned in CHANGELOG, union the explicit @-attributed
users with the gh PR author (when external). Maintainer accounts
(@nesquena, @nesquena-hermes) are excluded.
4. For PRs merged on GitHub but not mentioned in CHANGELOG (very early
PRs, non-noteworthy direct merges), credit the gh author.
5. Three salvaged-design contributors not directly in CHANGELOG are
credited in the special-thanks roll: @indigokarasu (#213 →
v0.50.0 design language), @andrewy-wizard (#177 → initial Chinese
locale absorbed into v0.42.0), @zenc-cp (#133 → anti-hallucination
guard absorbed into streaming.py).
Pre-cleaning step strips HTML entities (` ` etc.) before PR# scan
to avoid false matches. PR# regex requires a whitespace/paren/bracket
preceder so identifiers like `--key=123` and `(##10`-style headings
don't pollute the count.
Per-user first/last release computed from:
- For merged-on-GH PRs: the smallest tag whose creator-date is >= the
PR's merged_at timestamp.
- For absorbed PRs: the release section in CHANGELOG that explicitly
attributes to the user (or the earliest release that mentions the
PR# if no explicit attribution exists for that user).
CONTRIBUTORS.md sections:
- Top contributors (5+ PRs) — 20 people, ranked
- Sustained contributors (3–4 PRs) — 11 people
- Two-PR contributors — 14 people, flat list
- Single-PR contributors — 85 people, flat list
- How credit is tracked — four paths described
- Special thanks — 11 highlight blurbs
README contributors section trimmed to top-10 table + notable-
contribution blurbs (29 distinct contributors mentioned with concrete
PR numbers). Same data, condensed for the README.
No code changes. Docs only.
2026-05-11 06:59:42 +00:00
docs: refresh contributor tally for v0.51.390 (248 contributors) (#4132)
* docs: refresh contributor tally for v0.51.390 (248 contributors)
Regenerated via scripts/regen_contributors.py after fixing three real
over-counting bugs in the generator (release-vehicle PR# leak, reporter
false-positives, prose-token leakage — see workspace commit). Net:
- 248 contributors / 1092 credits (corrected; the prior generator inflated
this with ~106 spurious release-vehicle co-author credits + reporter mentions)
- CONTRIBUTORS.md now recognizes 3+ PR contributors in ranked tables and lists
everyone with 1-2 PRs in a combined roll, so nobody already credited is dropped
- README top-10 snapshot + notable-contribution counts updated to match
(franksong 180, Michaelyklam 118, rodboev 83 [new], ai-ag2026 75, bergeouss 70)
Every name in the tally is authorship-verified (merged PR, CHANGELOG attribution,
or a Co-authored-by trailer); bug reporters / relayers / confirmers are no longer
miscredited as authors.
* docs: add generated-region markers so the contributor tally regenerates cleanly
Wraps the machine-generated tables in CONTRIBUTORS.md + README.md with
<!-- BEGIN/END GENERATED CONTRIBUTORS --> markers. scripts/regen_contributors.py
--apply now splices fresh tables between them on each run while leaving the
hand-written prose (How credit is tracked, Special thanks, README Notable
contributions) untouched. Verified idempotent: a second --apply is a no-op.
This is what the weekly refresh cron runs.
Tally re-synced to current master: 248 contributors / 1093 credits.
---------
Co-authored-by: nesquena-hermes <nesquena-hermes@users.noreply.github.com>
Co-authored-by: Nathan Esquenazi <nesquena@gmail.com>
2026-06-13 19:18:21 +00:00
200 more people each landed one or two PRs that shipped — a bug fix, a locale, a security hardening, a doc improvement, an infrastructure tweak. Every one moved the project forward.
docs(contributors): refresh contributor stats to v0.51.44
Update CONTRIBUTORS.md and the README contributors section to reflect
130 contributors and 568 PR credits as of v0.51.44 (was 66/142 at
v0.50.245). The numbers grew because:
- The previous refresh was 1 release-cycle ago (50+ tags + 8 batch
releases of contributor PRs ago).
- The new counting rule explicitly includes closed-but-absorbed PRs:
PRs whose original branch shows "closed" on GitHub but whose content
shipped via batch-release squash with a Co-authored-by trailer, or
via salvage rewrite with CHANGELOG attribution. This better reflects
what users actually contributed.
The compilation pipeline:
1. Pull every closed PR from gh api (state=closed, both merged and
unmerged on GitHub) — 1421 PRs.
2. Walk CHANGELOG.md release-by-release and extract:
- `PR #N by @user` (canonical bullet form)
- `(#N by @user`, `(PR #N by @user`, `(#N, @user;`
- `PRs #A, #B by @user` (plural)
- `@user — PR #N`, `@user — N PR (#A, #B)`
- `(credit: @user)` and `(credit: @userA and @userB)`
3. For every PR# mentioned in CHANGELOG, union the explicit @-attributed
users with the gh PR author (when external). Maintainer accounts
(@nesquena, @nesquena-hermes) are excluded.
4. For PRs merged on GitHub but not mentioned in CHANGELOG (very early
PRs, non-noteworthy direct merges), credit the gh author.
5. Three salvaged-design contributors not directly in CHANGELOG are
credited in the special-thanks roll: @indigokarasu (#213 →
v0.50.0 design language), @andrewy-wizard (#177 → initial Chinese
locale absorbed into v0.42.0), @zenc-cp (#133 → anti-hallucination
guard absorbed into streaming.py).
Pre-cleaning step strips HTML entities (` ` etc.) before PR# scan
to avoid false matches. PR# regex requires a whitespace/paren/bracket
preceder so identifiers like `--key=123` and `(##10`-style headings
don't pollute the count.
Per-user first/last release computed from:
- For merged-on-GH PRs: the smallest tag whose creator-date is >= the
PR's merged_at timestamp.
- For absorbed PRs: the release section in CHANGELOG that explicitly
attributes to the user (or the earliest release that mentions the
PR# if no explicit attribution exists for that user).
CONTRIBUTORS.md sections:
- Top contributors (5+ PRs) — 20 people, ranked
- Sustained contributors (3–4 PRs) — 11 people
- Two-PR contributors — 14 people, flat list
- Single-PR contributors — 85 people, flat list
- How credit is tracked — four paths described
- Special thanks — 11 highlight blurbs
README contributors section trimmed to top-10 table + notable-
contribution blurbs (29 distinct contributors mentioned with concrete
PR numbers). Same data, condensed for the README.
No code changes. Docs only.
2026-05-11 06:59:42 +00:00
docs: refresh contributor tally for v0.51.390 (248 contributors) (#4132)
* docs: refresh contributor tally for v0.51.390 (248 contributors)
Regenerated via scripts/regen_contributors.py after fixing three real
over-counting bugs in the generator (release-vehicle PR# leak, reporter
false-positives, prose-token leakage — see workspace commit). Net:
- 248 contributors / 1092 credits (corrected; the prior generator inflated
this with ~106 spurious release-vehicle co-author credits + reporter mentions)
- CONTRIBUTORS.md now recognizes 3+ PR contributors in ranked tables and lists
everyone with 1-2 PRs in a combined roll, so nobody already credited is dropped
- README top-10 snapshot + notable-contribution counts updated to match
(franksong 180, Michaelyklam 118, rodboev 83 [new], ai-ag2026 75, bergeouss 70)
Every name in the tally is authorship-verified (merged PR, CHANGELOG attribution,
or a Co-authored-by trailer); bug reporters / relayers / confirmers are no longer
miscredited as authors.
* docs: add generated-region markers so the contributor tally regenerates cleanly
Wraps the machine-generated tables in CONTRIBUTORS.md + README.md with
<!-- BEGIN/END GENERATED CONTRIBUTORS --> markers. scripts/regen_contributors.py
--apply now splices fresh tables between them on each run while leaving the
hand-written prose (How credit is tracked, Special thanks, README Notable
contributions) untouched. Verified idempotent: a second --apply is a no-op.
This is what the weekly refresh cron runs.
Tally re-synced to current master: 248 contributors / 1093 credits.
---------
Co-authored-by: nesquena-hermes <nesquena-hermes@users.noreply.github.com>
Co-authored-by: Nathan Esquenazi <nesquena@gmail.com>
2026-06-13 19:18:21 +00:00
[@29n ](https://github.com/29n ), [@86cloudyun-afk ](https://github.com/86cloudyun-afk ), [@AdoneyGalvan ](https://github.com/AdoneyGalvan ), [@aether-agent ](https://github.com/aether-agent ), [@aliceisjustplaying ](https://github.com/aliceisjustplaying ), [@allenliang2022 ](https://github.com/allenliang2022 ), [@alvistar ](https://github.com/alvistar ), [@amlyczz ](https://github.com/amlyczz ), [@andrewy-wizard ](https://github.com/andrewy-wizard ), [@antoniocarlos97ss ](https://github.com/antoniocarlos97ss ), [@Argonaut790 ](https://github.com/Argonaut790 ), [@arshkumarsingh ](https://github.com/arshkumarsingh ), [@ashbuildslife ](https://github.com/ashbuildslife ), [@Asunfly ](https://github.com/Asunfly ), [@ayushere ](https://github.com/ayushere ), [@bambalados ](https://github.com/bambalados ), [@bengdan ](https://github.com/bengdan ), [@betamod ](https://github.com/betamod ), [@bjb2 ](https://github.com/bjb2 ), [@Bobby9228 ](https://github.com/Bobby9228 ), [@bschmidy10 ](https://github.com/bschmidy10 ), [@camr ](https://github.com/camr ), [@carlytwozero ](https://github.com/carlytwozero ), [@Charanis ](https://github.com/Charanis ), [@ChaseFlorell ](https://github.com/ChaseFlorell ), [@Chukwuebuka-20 ](https://github.com/Chukwuebuka-20 ), [@chwps ](https://github.com/chwps ), [@claw-io ](https://github.com/claw-io ), [@cnogrin ](https://github.com/cnogrin ), [@colin-chang ](https://github.com/colin-chang ), [@cyberdyne187 ](https://github.com/cyberdyne187 ), [@DanielMaly ](https://github.com/DanielMaly ), [@darkopetrovic ](https://github.com/darkopetrovic ), [@davidsben ](https://github.com/davidsben ), [@DavidSchuchert ](https://github.com/DavidSchuchert ), [@ddiall ](https://github.com/ddiall ), [@DelightRun ](https://github.com/DelightRun ), [@dev-rehaann ](https://github.com/dev-rehaann ), [@dotBeeps ](https://github.com/dotBeeps ), [@DrMaks22 ](https://github.com/DrMaks22 ), [@eba8 ](https://github.com/eba8 ), [@eleboucher ](https://github.com/eleboucher ), [@emanon312 ](https://github.com/emanon312 ), [@eov128 ](https://github.com/eov128 ), [@Fail-Safe ](https://github.com/Fail-Safe ), [@fantasticsquirrel ](https://github.com/fantasticsquirrel ), [@FrancescoFarinola ](https://github.com/FrancescoFarinola ), [@gabogabucho ](https://github.com/gabogabucho ), [@gakugaku ](https://github.com/gakugaku ), [@galvani ](https://github.com/galvani ), [@gavinssr ](https://github.com/gavinssr ), [@GeoffBao ](https://github.com/GeoffBao ), [@georgebdavis ](https://github.com/georgebdavis ), [@GiggleSamurai ](https://github.com/GiggleSamurai ), [@gottipx ](https://github.com/gottipx ), [@gsurenull ](https://github.com/gsurenull ), [@Habib1001-m ](https://github.com/Habib1001-m ), [@hacker1e7 ](https://github.com/hacker1e7 ), [@hacker2005 ](https://github.com/hacker2005 ), [@halmisen ](https://github.com/halmisen ), [@haolf000 ](https://github.com/haolf000 ), [@heagandev ](https://github.com/heagandev ), [@hermes-gimmethebeans ](https://github.com/hermes-gimmethebeans ), [@hi-friday ](https://github.com/hi-friday ), [@hualong1009 ](https://github.com/hualong1009 ), [@huangzt ](https://github.com/huangzt ), [@indigokarasu ](https://github.com/indigokarasu ), [@insecurejezza ](https://github.com/insecurejezza ), [@intellectronica ](https://github.com/intellectronica ), [@JayC-L ](https://github.com/JayC-L ), [@jeffscottward ](https://github.com/jeffscottward ), [@Jellypowered ](https://github.com/Jellypowered ), [@jianongHe ](https://github.com/jianongHe ), [@jimdawdy-hub ](https://github.com/jimdawdy-hub ), [@JinYue-GitHub ](https://github.com/JinYue-GitHub ), [@jja881 ](https://github.com/jja881 ), [@joaompfp ](https://github.com/joaompfp ), [@jundev0001 ](https://github.com/jundev0001 ), [@junjunjunbong ](https://github.com/junjunjunbong ), [@Karlineal ](https://github.com/Karlineal ), [@KayZz69 ](https://github.com/KayZz69 ), [@kcclaw001 ](https://github.com/kcclaw001 ), [@kevin-ho ](https://github.com/kevin-ho ), [@koshikai ](https://github.com/koshikai ), [@kowenhaoai ](https://github.com/kowenhaoai ), [@kuishou68 ](https://github.com/kuishou68 ), [@lambyangzhao ](https://github.com/lambyangzhao ), [@lawrencel1ng ](https://github.com/lawrencel1ng ), [@leap233 ](https://github.com/leap233 ), [
<!-- END GENERATED CONTRIBUTORS -->
2026-04-30 16:00:38 +00:00
---
## How credit is tracked
docs(contributors): refresh contributor stats to v0.51.44
Update CONTRIBUTORS.md and the README contributors section to reflect
130 contributors and 568 PR credits as of v0.51.44 (was 66/142 at
v0.50.245). The numbers grew because:
- The previous refresh was 1 release-cycle ago (50+ tags + 8 batch
releases of contributor PRs ago).
- The new counting rule explicitly includes closed-but-absorbed PRs:
PRs whose original branch shows "closed" on GitHub but whose content
shipped via batch-release squash with a Co-authored-by trailer, or
via salvage rewrite with CHANGELOG attribution. This better reflects
what users actually contributed.
The compilation pipeline:
1. Pull every closed PR from gh api (state=closed, both merged and
unmerged on GitHub) — 1421 PRs.
2. Walk CHANGELOG.md release-by-release and extract:
- `PR #N by @user` (canonical bullet form)
- `(#N by @user`, `(PR #N by @user`, `(#N, @user;`
- `PRs #A, #B by @user` (plural)
- `@user — PR #N`, `@user — N PR (#A, #B)`
- `(credit: @user)` and `(credit: @userA and @userB)`
3. For every PR# mentioned in CHANGELOG, union the explicit @-attributed
users with the gh PR author (when external). Maintainer accounts
(@nesquena, @nesquena-hermes) are excluded.
4. For PRs merged on GitHub but not mentioned in CHANGELOG (very early
PRs, non-noteworthy direct merges), credit the gh author.
5. Three salvaged-design contributors not directly in CHANGELOG are
credited in the special-thanks roll: @indigokarasu (#213 →
v0.50.0 design language), @andrewy-wizard (#177 → initial Chinese
locale absorbed into v0.42.0), @zenc-cp (#133 → anti-hallucination
guard absorbed into streaming.py).
Pre-cleaning step strips HTML entities (` ` etc.) before PR# scan
to avoid false matches. PR# regex requires a whitespace/paren/bracket
preceder so identifiers like `--key=123` and `(##10`-style headings
don't pollute the count.
Per-user first/last release computed from:
- For merged-on-GH PRs: the smallest tag whose creator-date is >= the
PR's merged_at timestamp.
- For absorbed PRs: the release section in CHANGELOG that explicitly
attributes to the user (or the earliest release that mentions the
PR# if no explicit attribution exists for that user).
CONTRIBUTORS.md sections:
- Top contributors (5+ PRs) — 20 people, ranked
- Sustained contributors (3–4 PRs) — 11 people
- Two-PR contributors — 14 people, flat list
- Single-PR contributors — 85 people, flat list
- How credit is tracked — four paths described
- Special thanks — 11 highlight blurbs
README contributors section trimmed to top-10 table + notable-
contribution blurbs (29 distinct contributors mentioned with concrete
PR numbers). Same data, condensed for the README.
No code changes. Docs only.
2026-05-11 06:59:42 +00:00
Most PRs in this repo land via one of four paths:
2026-04-30 16:00:38 +00:00
docs(contributors): refresh contributor stats to v0.51.44
Update CONTRIBUTORS.md and the README contributors section to reflect
130 contributors and 568 PR credits as of v0.51.44 (was 66/142 at
v0.50.245). The numbers grew because:
- The previous refresh was 1 release-cycle ago (50+ tags + 8 batch
releases of contributor PRs ago).
- The new counting rule explicitly includes closed-but-absorbed PRs:
PRs whose original branch shows "closed" on GitHub but whose content
shipped via batch-release squash with a Co-authored-by trailer, or
via salvage rewrite with CHANGELOG attribution. This better reflects
what users actually contributed.
The compilation pipeline:
1. Pull every closed PR from gh api (state=closed, both merged and
unmerged on GitHub) — 1421 PRs.
2. Walk CHANGELOG.md release-by-release and extract:
- `PR #N by @user` (canonical bullet form)
- `(#N by @user`, `(PR #N by @user`, `(#N, @user;`
- `PRs #A, #B by @user` (plural)
- `@user — PR #N`, `@user — N PR (#A, #B)`
- `(credit: @user)` and `(credit: @userA and @userB)`
3. For every PR# mentioned in CHANGELOG, union the explicit @-attributed
users with the gh PR author (when external). Maintainer accounts
(@nesquena, @nesquena-hermes) are excluded.
4. For PRs merged on GitHub but not mentioned in CHANGELOG (very early
PRs, non-noteworthy direct merges), credit the gh author.
5. Three salvaged-design contributors not directly in CHANGELOG are
credited in the special-thanks roll: @indigokarasu (#213 →
v0.50.0 design language), @andrewy-wizard (#177 → initial Chinese
locale absorbed into v0.42.0), @zenc-cp (#133 → anti-hallucination
guard absorbed into streaming.py).
Pre-cleaning step strips HTML entities (` ` etc.) before PR# scan
to avoid false matches. PR# regex requires a whitespace/paren/bracket
preceder so identifiers like `--key=123` and `(##10`-style headings
don't pollute the count.
Per-user first/last release computed from:
- For merged-on-GH PRs: the smallest tag whose creator-date is >= the
PR's merged_at timestamp.
- For absorbed PRs: the release section in CHANGELOG that explicitly
attributes to the user (or the earliest release that mentions the
PR# if no explicit attribution exists for that user).
CONTRIBUTORS.md sections:
- Top contributors (5+ PRs) — 20 people, ranked
- Sustained contributors (3–4 PRs) — 11 people
- Two-PR contributors — 14 people, flat list
- Single-PR contributors — 85 people, flat list
- How credit is tracked — four paths described
- Special thanks — 11 highlight blurbs
README contributors section trimmed to top-10 table + notable-
contribution blurbs (29 distinct contributors mentioned with concrete
PR numbers). Same data, condensed for the README.
No code changes. Docs only.
2026-05-11 06:59:42 +00:00
1. **Direct merge** — your PR is reviewed and merged on its own. Author shows up directly in `git log` and on the PR's `merged_at` timestamp.
docs: refresh CONTRIBUTORS.md and README to v0.51.58
Last refresh was at v0.51.44 (130 contributors / 568 PR credits). Since then,
14 releases shipped (v0.51.45 through v0.51.58) with 78 attributed PRs from
20 distinct contributors, adding 7 first-time contributors:
- @lucasrc — auth-hardening trilogy (#2191/#2192/#2193) → sustained 3-PR bucket
- @LumenYoung — stale-stream guard + 3 streaming-correctness fixes → sustained 4-PR bucket
- @MrFant — 2 PRs (reasoning_content whitelist, message preservation)
- @xz-dev — 2 PRs (thinking-card state, session-scoped metering)
- @legeantbleu — French (fr) locale (#2142)
- @ayushere — ctl.sh bash 3.2 macOS compat (#2117)
- @plerohellec — single PR
Bucket promotions (existing contributors who moved up):
- @dobby-d-elf: 2 → 6 PRs (jumps from two-PR list into top contributors)
- @samuelgudi: 1 → 2
- @michael-dg: 1 → 2
- @vcavichini: 1 → 2
- @hualong1009: 1 → 2
Top contributor PR-count updates (top 7 changed materially):
| Contributor | Before | After | Delta | Latest release |
|-------------------|-------:|------:|------:|---------------|
| @franksong2702 | 92 | 117 | +25 | Unreleased |
| @Michaelyklam | 81 | 92 | +11 | v0.51.57 |
| @bergeouss | 61 | 62 | +1 | v0.51.46 |
| @ai-ag2026 | 49 | 55 | +6 | v0.51.47 |
| @dso2ng | 21 | 23 | +2 | v0.51.51 |
| @jasonjcwu | 13 | 16 | +3 | v0.51.55 |
| @Jordan-SkyLF | 6 | 12 | +6 | Unreleased |
Header refreshed: 130 → 137 contributors, 568 → 646 PR credits, refresh
tag bumped to v0.51.58. Notable contributions paragraphs in both files
updated with the new work (manual /compress async pair, worktree status +
guarded remove, fork-from-here, opencode-go resolver, the LumenYoung +
lucasrc + dobby-d-elf entries).
Source of truth: CHANGELOG.md attribution lines `**PR #N** by @user` between
the v0.51.44 header and the Unreleased section, plus baseline buckets in
the previous CONTRIBUTORS.md. Cross-bucket sanity check passes (no handle
appears in multiple buckets; 21 + 13 + 19 + 84 = 137 unique handles).
2026-05-14 02:18:57 +00:00
2. **Squash into a batch release** — your PR is merged together with several other contributor PRs into a single release commit (e.g. `release: v0.51.55 — 9-PR contributor batch` ). The original PR closes (not merges) on GitHub but the squashed release commit carries a `Co-authored-by: <you>` trailer plus an entry in `CHANGELOG.md` crediting you by username and PR number.
docs(contributors): refresh contributor stats to v0.51.44
Update CONTRIBUTORS.md and the README contributors section to reflect
130 contributors and 568 PR credits as of v0.51.44 (was 66/142 at
v0.50.245). The numbers grew because:
- The previous refresh was 1 release-cycle ago (50+ tags + 8 batch
releases of contributor PRs ago).
- The new counting rule explicitly includes closed-but-absorbed PRs:
PRs whose original branch shows "closed" on GitHub but whose content
shipped via batch-release squash with a Co-authored-by trailer, or
via salvage rewrite with CHANGELOG attribution. This better reflects
what users actually contributed.
The compilation pipeline:
1. Pull every closed PR from gh api (state=closed, both merged and
unmerged on GitHub) — 1421 PRs.
2. Walk CHANGELOG.md release-by-release and extract:
- `PR #N by @user` (canonical bullet form)
- `(#N by @user`, `(PR #N by @user`, `(#N, @user;`
- `PRs #A, #B by @user` (plural)
- `@user — PR #N`, `@user — N PR (#A, #B)`
- `(credit: @user)` and `(credit: @userA and @userB)`
3. For every PR# mentioned in CHANGELOG, union the explicit @-attributed
users with the gh PR author (when external). Maintainer accounts
(@nesquena, @nesquena-hermes) are excluded.
4. For PRs merged on GitHub but not mentioned in CHANGELOG (very early
PRs, non-noteworthy direct merges), credit the gh author.
5. Three salvaged-design contributors not directly in CHANGELOG are
credited in the special-thanks roll: @indigokarasu (#213 →
v0.50.0 design language), @andrewy-wizard (#177 → initial Chinese
locale absorbed into v0.42.0), @zenc-cp (#133 → anti-hallucination
guard absorbed into streaming.py).
Pre-cleaning step strips HTML entities (` ` etc.) before PR# scan
to avoid false matches. PR# regex requires a whitespace/paren/bracket
preceder so identifiers like `--key=123` and `(##10`-style headings
don't pollute the count.
Per-user first/last release computed from:
- For merged-on-GH PRs: the smallest tag whose creator-date is >= the
PR's merged_at timestamp.
- For absorbed PRs: the release section in CHANGELOG that explicitly
attributes to the user (or the earliest release that mentions the
PR# if no explicit attribution exists for that user).
CONTRIBUTORS.md sections:
- Top contributors (5+ PRs) — 20 people, ranked
- Sustained contributors (3–4 PRs) — 11 people
- Two-PR contributors — 14 people, flat list
- Single-PR contributors — 85 people, flat list
- How credit is tracked — four paths described
- Special thanks — 11 highlight blurbs
README contributors section trimmed to top-10 table + notable-
contribution blurbs (29 distinct contributors mentioned with concrete
PR numbers). Same data, condensed for the README.
No code changes. Docs only.
2026-05-11 06:59:42 +00:00
3. **Salvaged from a larger PR** — when a PR mixes one good change with several unrelated or risky ones, we split it: the good parts ship in a clean follow-up PR, you get credit in the CHANGELOG entry, and the original PR is closed with a salvage map showing what went where.
4. **Auto-rebase + auto-fix** — for merge-ready contributor PRs with mechanical blockers (CHANGELOG conflicts, lint, drifted tests), a maintainer rebases the contributor's branch, fixes the blockers, and force-pushes back. The `Co-authored-by` trailer preserves your authorship.
2026-04-30 16:00:38 +00:00
docs: refresh contributor tally for v0.51.390 (248 contributors) (#4132)
* docs: refresh contributor tally for v0.51.390 (248 contributors)
Regenerated via scripts/regen_contributors.py after fixing three real
over-counting bugs in the generator (release-vehicle PR# leak, reporter
false-positives, prose-token leakage — see workspace commit). Net:
- 248 contributors / 1092 credits (corrected; the prior generator inflated
this with ~106 spurious release-vehicle co-author credits + reporter mentions)
- CONTRIBUTORS.md now recognizes 3+ PR contributors in ranked tables and lists
everyone with 1-2 PRs in a combined roll, so nobody already credited is dropped
- README top-10 snapshot + notable-contribution counts updated to match
(franksong 180, Michaelyklam 118, rodboev 83 [new], ai-ag2026 75, bergeouss 70)
Every name in the tally is authorship-verified (merged PR, CHANGELOG attribution,
or a Co-authored-by trailer); bug reporters / relayers / confirmers are no longer
miscredited as authors.
* docs: add generated-region markers so the contributor tally regenerates cleanly
Wraps the machine-generated tables in CONTRIBUTORS.md + README.md with
<!-- BEGIN/END GENERATED CONTRIBUTORS --> markers. scripts/regen_contributors.py
--apply now splices fresh tables between them on each run while leaving the
hand-written prose (How credit is tracked, Special thanks, README Notable
contributions) untouched. Verified idempotent: a second --apply is a no-op.
This is what the weekly refresh cron runs.
Tally re-synced to current master: 248 contributors / 1093 credits.
---------
Co-authored-by: nesquena-hermes <nesquena-hermes@users.noreply.github.com>
Co-authored-by: Nathan Esquenazi <nesquena@gmail.com>
2026-06-13 19:18:21 +00:00
All four paths count as a contribution. GitHub's `merged_at` field only catches path 1; paths 2-4 show as "closed" on the contributor's PR even though the work is live in master. That's why this file consults the CHANGELOG attribution lines and `Co-authored-by` trailers, not just GitHub's merged-PR list. Credit is always tied to *your* PR number — the release/batch PRs the maintainer opens to ship a batch, and bug reports or review confirmations attributed in the changelog, do not generate a contributor credit.
2026-04-30 16:00:38 +00:00
## Special thanks
docs(contributors): refresh contributor stats to v0.51.44
Update CONTRIBUTORS.md and the README contributors section to reflect
130 contributors and 568 PR credits as of v0.51.44 (was 66/142 at
v0.50.245). The numbers grew because:
- The previous refresh was 1 release-cycle ago (50+ tags + 8 batch
releases of contributor PRs ago).
- The new counting rule explicitly includes closed-but-absorbed PRs:
PRs whose original branch shows "closed" on GitHub but whose content
shipped via batch-release squash with a Co-authored-by trailer, or
via salvage rewrite with CHANGELOG attribution. This better reflects
what users actually contributed.
The compilation pipeline:
1. Pull every closed PR from gh api (state=closed, both merged and
unmerged on GitHub) — 1421 PRs.
2. Walk CHANGELOG.md release-by-release and extract:
- `PR #N by @user` (canonical bullet form)
- `(#N by @user`, `(PR #N by @user`, `(#N, @user;`
- `PRs #A, #B by @user` (plural)
- `@user — PR #N`, `@user — N PR (#A, #B)`
- `(credit: @user)` and `(credit: @userA and @userB)`
3. For every PR# mentioned in CHANGELOG, union the explicit @-attributed
users with the gh PR author (when external). Maintainer accounts
(@nesquena, @nesquena-hermes) are excluded.
4. For PRs merged on GitHub but not mentioned in CHANGELOG (very early
PRs, non-noteworthy direct merges), credit the gh author.
5. Three salvaged-design contributors not directly in CHANGELOG are
credited in the special-thanks roll: @indigokarasu (#213 →
v0.50.0 design language), @andrewy-wizard (#177 → initial Chinese
locale absorbed into v0.42.0), @zenc-cp (#133 → anti-hallucination
guard absorbed into streaming.py).
Pre-cleaning step strips HTML entities (` ` etc.) before PR# scan
to avoid false matches. PR# regex requires a whitespace/paren/bracket
preceder so identifiers like `--key=123` and `(##10`-style headings
don't pollute the count.
Per-user first/last release computed from:
- For merged-on-GH PRs: the smallest tag whose creator-date is >= the
PR's merged_at timestamp.
- For absorbed PRs: the release section in CHANGELOG that explicitly
attributes to the user (or the earliest release that mentions the
PR# if no explicit attribution exists for that user).
CONTRIBUTORS.md sections:
- Top contributors (5+ PRs) — 20 people, ranked
- Sustained contributors (3–4 PRs) — 11 people
- Two-PR contributors — 14 people, flat list
- Single-PR contributors — 85 people, flat list
- How credit is tracked — four paths described
- Special thanks — 11 highlight blurbs
README contributors section trimmed to top-10 table + notable-
contribution blurbs (29 distinct contributors mentioned with concrete
PR numbers). Same data, condensed for the README.
No code changes. Docs only.
2026-05-11 06:59:42 +00:00
- **[@aronprins](https://github.com/aronprins)** — `v0.50.0` UI overhaul (PR #242 ). The CSS-only redesign that defined the design tokens, theme architecture, and three-panel layout that the rest of the app builds on. PR #242 didn't merge as-is, but it is the design language of the app.
docs: refresh contributor tally for v0.51.390 (248 contributors) (#4132)
* docs: refresh contributor tally for v0.51.390 (248 contributors)
Regenerated via scripts/regen_contributors.py after fixing three real
over-counting bugs in the generator (release-vehicle PR# leak, reporter
false-positives, prose-token leakage — see workspace commit). Net:
- 248 contributors / 1092 credits (corrected; the prior generator inflated
this with ~106 spurious release-vehicle co-author credits + reporter mentions)
- CONTRIBUTORS.md now recognizes 3+ PR contributors in ranked tables and lists
everyone with 1-2 PRs in a combined roll, so nobody already credited is dropped
- README top-10 snapshot + notable-contribution counts updated to match
(franksong 180, Michaelyklam 118, rodboev 83 [new], ai-ag2026 75, bergeouss 70)
Every name in the tally is authorship-verified (merged PR, CHANGELOG attribution,
or a Co-authored-by trailer); bug reporters / relayers / confirmers are no longer
miscredited as authors.
* docs: add generated-region markers so the contributor tally regenerates cleanly
Wraps the machine-generated tables in CONTRIBUTORS.md + README.md with
<!-- BEGIN/END GENERATED CONTRIBUTORS --> markers. scripts/regen_contributors.py
--apply now splices fresh tables between them on each run while leaving the
hand-written prose (How credit is tracked, Special thanks, README Notable
contributions) untouched. Verified idempotent: a second --apply is a no-op.
This is what the weekly refresh cron runs.
Tally re-synced to current master: 248 contributors / 1093 credits.
---------
Co-authored-by: nesquena-hermes <nesquena-hermes@users.noreply.github.com>
Co-authored-by: Nathan Esquenazi <nesquena@gmail.com>
2026-06-13 19:18:21 +00:00
- **[@franksong2702](https://github.com/franksong2702)** — most prolific external contributor across the project's history. 180 PRs spanning the session sidebar, mobile/responsive layout, workspace state machine, profile context, slash autocomplete, breadcrumb navigation, streaming-session exemption, cron output preservation, embedded terminal, the manual-compress async start/status endpoint pair, the worktree status surface (PR #2109 ) + guarded remove (PR #2156 ) for the lifecycle umbrella #2057 , session post-render dedup (PR #2166 ), the `/api/session` native-WebUI fast path (PR #2170 ), tail-window response trim (PR #2171 ), the second-wave stale-stream guard extension (PR #2158 ), CSP report collector (PR #2160 ), and the long tail of polish.
- **[@Michaelyklam](https://github.com/Michaelyklam)** — most prolific contributor of late-2025/early-2026. 118 PRs covering Docker hardening, profile-scoped skills, KaTeX delimiter parsing, Codex quota surfacing, Goal command, Kanban polish, auto-compression toast lifetime, the localization parity backfills, the v0.51.51 mobile Insights bucketing/layout pair (PRs #2120/#2121 ), the Hermes run adapter RFC (PR #2105 for #1925 ), the fork-from-here absolute-index fix (PR #2198 for #2184 ), and the opencode-go custom-provider overlap routing fix (PR #2204 for #1894 ).
- **[@rodboev](https://github.com/rodboev)** — 83 PRs and counting, with a strong focus on Windows / cross-platform correctness and test reliability: the `ctl.sh` Windows process-tree-kill fix, the local Windows full-suite signal work, slash-command autocomplete polish, and a broad sweep of frontend and infrastructure fixes.
- **[@ai-ag2026](https://github.com/ai-ag2026)** — autonomous-AI contributor (Hermes Agent-driven). 75 PRs focused on session recovery (state.db sidecar reconciliation, orphan `.bak` recovery, audit + safe-repair endpoints), workspace/run lifecycle health, the crash-safe turn-journal RFC, the append-only turn-journal helper (PR #2059 ), the matching lifecycle-events layer (PR #2062 ), the `Content-Security-Policy-Report-Only` header (PR #2084 ), and the per-cron toast notification toggle (PR #2100 ).
2026-06-01 02:14:01 +00:00
- **[@bergeouss](https://github.com/bergeouss)** — provider-management UI, OAuth status, two-container Docker docs, profile isolation hardening, Reveal-in-Finder, the OpenRouter free-tier live fetch, and most of Settings → Providers. 70 PRs.
docs: refresh contributor tally for v0.51.390 (248 contributors) (#4132)
* docs: refresh contributor tally for v0.51.390 (248 contributors)
Regenerated via scripts/regen_contributors.py after fixing three real
over-counting bugs in the generator (release-vehicle PR# leak, reporter
false-positives, prose-token leakage — see workspace commit). Net:
- 248 contributors / 1092 credits (corrected; the prior generator inflated
this with ~106 spurious release-vehicle co-author credits + reporter mentions)
- CONTRIBUTORS.md now recognizes 3+ PR contributors in ranked tables and lists
everyone with 1-2 PRs in a combined roll, so nobody already credited is dropped
- README top-10 snapshot + notable-contribution counts updated to match
(franksong 180, Michaelyklam 118, rodboev 83 [new], ai-ag2026 75, bergeouss 70)
Every name in the tally is authorship-verified (merged PR, CHANGELOG attribution,
or a Co-authored-by trailer); bug reporters / relayers / confirmers are no longer
miscredited as authors.
* docs: add generated-region markers so the contributor tally regenerates cleanly
Wraps the machine-generated tables in CONTRIBUTORS.md + README.md with
<!-- BEGIN/END GENERATED CONTRIBUTORS --> markers. scripts/regen_contributors.py
--apply now splices fresh tables between them on each run while leaving the
hand-written prose (How credit is tracked, Special thanks, README Notable
contributions) untouched. Verified idempotent: a second --apply is a no-op.
This is what the weekly refresh cron runs.
Tally re-synced to current master: 248 contributors / 1093 credits.
---------
Co-authored-by: nesquena-hermes <nesquena-hermes@users.noreply.github.com>
Co-authored-by: Nathan Esquenazi <nesquena@gmail.com>
2026-06-13 19:18:21 +00:00
- **[@Jordan-SkyLF](https://github.com/Jordan-SkyLF)** — Live streaming, session recovery, workspace fallback, and a burst of presentation polish: the manual "Refresh usage" button on the Provider quota card (PR #2150 ), cancelled-turn status classification (PR #2151 ), Firefox sidebar scroll stabilization (PR #2200 ), early provisional session titles (PR #2202 ), target-aware "What's new?" links (PR #2207 ), and MCP tools overflow fix in Settings (PR #2210 ). 12 PRs total.
2026-06-01 02:14:01 +00:00
- **[@LumenYoung](https://github.com/LumenYoung)** — contributor focused on the streaming hot path's correctness. 8 PRs including the original stale-stream writeback guard (PR #2136 — the bug class the next two releases extended), gateway-state alive-null classification (PR #2075 ), compression-banner anchor alignment (PR #2182 ), and context-progress ring auto-refresh on compression complete (PR #2188 ).
docs(contributors): refresh contributor stats to v0.51.44
Update CONTRIBUTORS.md and the README contributors section to reflect
130 contributors and 568 PR credits as of v0.51.44 (was 66/142 at
v0.50.245). The numbers grew because:
- The previous refresh was 1 release-cycle ago (50+ tags + 8 batch
releases of contributor PRs ago).
- The new counting rule explicitly includes closed-but-absorbed PRs:
PRs whose original branch shows "closed" on GitHub but whose content
shipped via batch-release squash with a Co-authored-by trailer, or
via salvage rewrite with CHANGELOG attribution. This better reflects
what users actually contributed.
The compilation pipeline:
1. Pull every closed PR from gh api (state=closed, both merged and
unmerged on GitHub) — 1421 PRs.
2. Walk CHANGELOG.md release-by-release and extract:
- `PR #N by @user` (canonical bullet form)
- `(#N by @user`, `(PR #N by @user`, `(#N, @user;`
- `PRs #A, #B by @user` (plural)
- `@user — PR #N`, `@user — N PR (#A, #B)`
- `(credit: @user)` and `(credit: @userA and @userB)`
3. For every PR# mentioned in CHANGELOG, union the explicit @-attributed
users with the gh PR author (when external). Maintainer accounts
(@nesquena, @nesquena-hermes) are excluded.
4. For PRs merged on GitHub but not mentioned in CHANGELOG (very early
PRs, non-noteworthy direct merges), credit the gh author.
5. Three salvaged-design contributors not directly in CHANGELOG are
credited in the special-thanks roll: @indigokarasu (#213 →
v0.50.0 design language), @andrewy-wizard (#177 → initial Chinese
locale absorbed into v0.42.0), @zenc-cp (#133 → anti-hallucination
guard absorbed into streaming.py).
Pre-cleaning step strips HTML entities (` ` etc.) before PR# scan
to avoid false matches. PR# regex requires a whitespace/paren/bracket
preceder so identifiers like `--key=123` and `(##10`-style headings
don't pollute the count.
Per-user first/last release computed from:
- For merged-on-GH PRs: the smallest tag whose creator-date is >= the
PR's merged_at timestamp.
- For absorbed PRs: the release section in CHANGELOG that explicitly
attributes to the user (or the earliest release that mentions the
PR# if no explicit attribution exists for that user).
CONTRIBUTORS.md sections:
- Top contributors (5+ PRs) — 20 people, ranked
- Sustained contributors (3–4 PRs) — 11 people
- Two-PR contributors — 14 people, flat list
- Single-PR contributors — 85 people, flat list
- How credit is tracked — four paths described
- Special thanks — 11 highlight blurbs
README contributors section trimmed to top-10 table + notable-
contribution blurbs (29 distinct contributors mentioned with concrete
PR numbers). Same data, condensed for the README.
No code changes. Docs only.
2026-05-11 06:59:42 +00:00
- **[@iRonin](https://github.com/iRonin)** — security hardening sprint (PRs #196 – #204): session memory leak fix, CSP + Permissions-Policy headers, slow-client connection timeout, optional HTTPS/TLS, upstream branch tracking, CLI session file-browser support. Six consecutive, focused, high-quality security PRs.
- **[@indigokarasu](https://github.com/indigokarasu)** — visual redesign proposal (PR #213 ). Icon rail sidebar, design token system, 7 themes. Didn't merge as-is but shaped the design language that landed in v0.50.0.
- **[@zenc-cp](https://github.com/zenc-cp)** — anti-hallucination guard for the ReAct loop (PR #133 ). Three-layer approach (ephemeral prompt, live token filtering, session-history cleanup) that the streaming pipeline still uses.
- **[@deboste](https://github.com/deboste)** — reverse-proxy auth, mobile responsive layout, model routing (PRs #3 , #4 , #5 ). Three of the very first community PRs. Early foundation work.
- **[@Hinotoi-agent](https://github.com/Hinotoi-agent)** — security fixes spanning profile `.env` isolation (PR #351 ), session-import workspace validation (PR #2048 ), and bandit B105 hardening. Subtle, high-leverage credential and path-traversal fixes.
docs: refresh CONTRIBUTORS.md and README to v0.51.58
Last refresh was at v0.51.44 (130 contributors / 568 PR credits). Since then,
14 releases shipped (v0.51.45 through v0.51.58) with 78 attributed PRs from
20 distinct contributors, adding 7 first-time contributors:
- @lucasrc — auth-hardening trilogy (#2191/#2192/#2193) → sustained 3-PR bucket
- @LumenYoung — stale-stream guard + 3 streaming-correctness fixes → sustained 4-PR bucket
- @MrFant — 2 PRs (reasoning_content whitelist, message preservation)
- @xz-dev — 2 PRs (thinking-card state, session-scoped metering)
- @legeantbleu — French (fr) locale (#2142)
- @ayushere — ctl.sh bash 3.2 macOS compat (#2117)
- @plerohellec — single PR
Bucket promotions (existing contributors who moved up):
- @dobby-d-elf: 2 → 6 PRs (jumps from two-PR list into top contributors)
- @samuelgudi: 1 → 2
- @michael-dg: 1 → 2
- @vcavichini: 1 → 2
- @hualong1009: 1 → 2
Top contributor PR-count updates (top 7 changed materially):
| Contributor | Before | After | Delta | Latest release |
|-------------------|-------:|------:|------:|---------------|
| @franksong2702 | 92 | 117 | +25 | Unreleased |
| @Michaelyklam | 81 | 92 | +11 | v0.51.57 |
| @bergeouss | 61 | 62 | +1 | v0.51.46 |
| @ai-ag2026 | 49 | 55 | +6 | v0.51.47 |
| @dso2ng | 21 | 23 | +2 | v0.51.51 |
| @jasonjcwu | 13 | 16 | +3 | v0.51.55 |
| @Jordan-SkyLF | 6 | 12 | +6 | Unreleased |
Header refreshed: 130 → 137 contributors, 568 → 646 PR credits, refresh
tag bumped to v0.51.58. Notable contributions paragraphs in both files
updated with the new work (manual /compress async pair, worktree status +
guarded remove, fork-from-here, opencode-go resolver, the LumenYoung +
lucasrc + dobby-d-elf entries).
Source of truth: CHANGELOG.md attribution lines `**PR #N** by @user` between
the v0.51.44 header and the Unreleased section, plus baseline buckets in
the previous CONTRIBUTORS.md. Cross-bucket sanity check passes (no handle
appears in multiple buckets; 21 + 13 + 19 + 84 = 137 unique handles).
2026-05-14 02:18:57 +00:00
- **[@lucasrc](https://github.com/lucasrc)** — auth-hardening trilogy in v0.51.57 (PRs #2191/#2192/#2193 ): thread-safe login rate limiter with PBKDF2 key separation, password-hash cache invalidation on settings change, and the full 64-char HMAC-SHA256 session signature with backwards-compatible migration bridge. Three coordinated security PRs that landed together.
- **[@jasonjcwu](https://github.com/jasonjcwu)** — composer and transcript polish, 16 PRs. Recent: silent compress-status during session switch (PR #2185 ), concurrent-send loss fix (PR #2186 ), in-transcript steer message badge (PR #2187 ), plus sidebar collapse via active-rail click (PR #2054 ).
- **[@dobby-d-elf](https://github.com/dobby-d-elf)** — frontend reliability and motion polish: workspace fallback on deleted directories (PR #2138 ), iPhone PWA bottom-scroll fix (PR #2143 ), the new "Activity: X tools" composer footer animation (PR #2203 ) and its follow-up tuning (PR #2212 ).
docs(contributors): refresh contributor stats to v0.51.44
Update CONTRIBUTORS.md and the README contributors section to reflect
130 contributors and 568 PR credits as of v0.51.44 (was 66/142 at
v0.50.245). The numbers grew because:
- The previous refresh was 1 release-cycle ago (50+ tags + 8 batch
releases of contributor PRs ago).
- The new counting rule explicitly includes closed-but-absorbed PRs:
PRs whose original branch shows "closed" on GitHub but whose content
shipped via batch-release squash with a Co-authored-by trailer, or
via salvage rewrite with CHANGELOG attribution. This better reflects
what users actually contributed.
The compilation pipeline:
1. Pull every closed PR from gh api (state=closed, both merged and
unmerged on GitHub) — 1421 PRs.
2. Walk CHANGELOG.md release-by-release and extract:
- `PR #N by @user` (canonical bullet form)
- `(#N by @user`, `(PR #N by @user`, `(#N, @user;`
- `PRs #A, #B by @user` (plural)
- `@user — PR #N`, `@user — N PR (#A, #B)`
- `(credit: @user)` and `(credit: @userA and @userB)`
3. For every PR# mentioned in CHANGELOG, union the explicit @-attributed
users with the gh PR author (when external). Maintainer accounts
(@nesquena, @nesquena-hermes) are excluded.
4. For PRs merged on GitHub but not mentioned in CHANGELOG (very early
PRs, non-noteworthy direct merges), credit the gh author.
5. Three salvaged-design contributors not directly in CHANGELOG are
credited in the special-thanks roll: @indigokarasu (#213 →
v0.50.0 design language), @andrewy-wizard (#177 → initial Chinese
locale absorbed into v0.42.0), @zenc-cp (#133 → anti-hallucination
guard absorbed into streaming.py).
Pre-cleaning step strips HTML entities (` ` etc.) before PR# scan
to avoid false matches. PR# regex requires a whitespace/paren/bracket
preceder so identifiers like `--key=123` and `(##10`-style headings
don't pollute the count.
Per-user first/last release computed from:
- For merged-on-GH PRs: the smallest tag whose creator-date is >= the
PR's merged_at timestamp.
- For absorbed PRs: the release section in CHANGELOG that explicitly
attributes to the user (or the earliest release that mentions the
PR# if no explicit attribution exists for that user).
CONTRIBUTORS.md sections:
- Top contributors (5+ PRs) — 20 people, ranked
- Sustained contributors (3–4 PRs) — 11 people
- Two-PR contributors — 14 people, flat list
- Single-PR contributors — 85 people, flat list
- How credit is tracked — four paths described
- Special thanks — 11 highlight blurbs
README contributors section trimmed to top-10 table + notable-
contribution blurbs (29 distinct contributors mentioned with concrete
PR numbers). Same data, condensed for the README.
No code changes. Docs only.
2026-05-11 06:59:42 +00:00
If you've contributed and aren't here, **open a PR** . We cross-check the CHANGELOG on every release, but if a credit fell through (a Co-authored-by trailer that didn't make it into the changelog entry, an attribution in a PR comment that should be in the release notes), this list is the right place to fix it.