* docs: weekly contributor tally refresh (20260619) Regenerated by scripts/regen_contributors.py --apply. Includes the source (e)/(f) ship-signal accuracy fix that recovers systematically-undercounted cherry-picked contributions (~77 contributors). 280 contributors / 1559 credits (was 263/1232). Markers spliced, prose untouched, --verify clean, 0 double-counts. * docs: align CONTRIBUTORS header prose with the 5-source credit algorithm Addresses greptile P2: the header still described the old three-source union (merged-PR list + CHANGELOG + Co-authored-by) but regen_contributors.py now adds two more — ship-comment scans and absorb-commit scans — for five total. Updates the prose to match what the script actually runs. --------- Co-authored-by: nesquena-hermes <nesquena-hermes@users.noreply.github.com> Co-authored-by: nesquena-hermes <agent@nesquena-hermes>
25 KiB
Contributors
Hermes WebUI is a community project. This file is the canonical credit roll.
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.
Generated by scripts/regen_contributors.py in the maintainer workspace, which unions five sources — the GitHub merged-PR list, CHANGELOG.md attribution lines, Co-authored-by: trailers on commits that landed on master, ship-comment scans (the Shipped in vX closing comments left by the release workflow on absorbed PRs), and absorb-commit scans (non-merge master commits that name (#N) in their subject for PRs shipped before a ship-comment was posted). 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.
280 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.
Total contributors tracked: 280
Total PR credits: 1559
Last refreshed: v0.51.511, 2026-06-19
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 roll — every one of them moved the project forward.
Top contributors (5+ PRs landed)
| # | Contributor | PRs | First release | Latest release |
|---|---|---|---|---|
| 1 | @franksong2702 | 244 | v0.49.3 |
v0.51.492 |
| 2 | @rodboev | 189 | v0.51.223 |
v0.51.511 |
| 3 | @Michaelyklam | 157 | v0.50.240 |
v0.51.198 |
| 4 | @ai-ag2026 | 115 | v0.50.279 |
v0.51.482 |
| 5 | @bergeouss | 77 | v0.48.0 |
v0.51.505 |
| 6 | @AJV20 | 57 | v0.51.93 |
v0.51.346 |
| 7 | @dso2ng | 41 | v0.50.227 |
v0.51.488 |
| 8 | @Sanjays2402 | 26 | v0.50.292 |
v0.51.484 |
| 9 | @starship-s | 23 | v0.50.123 |
v0.51.473 |
| 10 | @Hinotoi-agent | 21 | v0.50.10 |
v0.51.497 |
| 11 | @b3nw | 18 | v0.51.122 |
v0.51.450 |
| 12 | @jasonjcwu | 18 | v0.50.227 |
v0.51.235 |
| 13 | @dobby-d-elf | 16 | v0.51.38 |
v0.51.161 |
| 14 | @pamnard | 16 | v0.51.186 |
v0.51.332 |
| 15 | @Jordan-SkyLF | 13 | v0.50.18 |
v0.51.66 |
| 16 | @mysoul12138 | 11 | v0.51.159 |
v0.51.303 |
| 17 | @TomBanksAU | 11 | v0.51.251 |
v0.51.486 |
| 18 | @aronprins | 10 | v0.44.0 |
v0.51.45 |
| 19 | @JKJameson | 10 | v0.50.198 |
v0.51.31 |
| 20 | @ccqqlo | 9 | v0.44.0 |
v0.50.270 |
| 21 | @Koraji95-coder | 9 | v0.51.124 |
v0.51.151 |
| 22 | @LumenYoung | 9 | v0.51.47 |
v0.51.132 |
| 23 | @zapabob | 9 | v0.50.272 |
v0.51.452 |
| 24 | @24601 | 8 | v0.50.189 |
v0.51.5 |
| 25 | @george-andraws | 8 | v0.51.118 |
v0.51.162 |
| 26 | @mccxj | 8 | v0.51.74 |
v0.51.148 |
| 27 | @armorbreak001 | 7 | v0.50.47 |
v0.50.50 |
| 28 | @happy5318 | 7 | v0.50.238 |
v0.51.268 |
| 29 | @Isla-Liu | 7 | v0.51.100 |
v0.51.340 |
| 30 | @NocGeek | 7 | v0.50.251 |
v0.50.252 |
| 31 | @AlexeyDsov | 6 | v0.50.267 |
v0.51.197 |
| 32 | @Carry00 | 6 | v0.51.121 |
v0.51.303 |
| 33 | @iRonin | 6 | v0.41.0 |
v0.41.0 |
| 34 | @andrewkangkr | 5 | v0.51.184 |
v0.51.222 |
| 35 | @bsgdigital | 5 | v0.50.159 |
v0.51.31 |
| 36 | @cloudyun888 | 5 | v0.50.47 |
v0.50.140 |
| 37 | @fxd-jason | 5 | v0.50.245 |
v0.50.250 |
| 38 | @lucasrc | 5 | v0.51.57 |
v0.51.184 |
| 39 | @mvanhorn | 5 | v0.51.254 |
v0.51.411 |
| 40 | @v2psv | 5 | v0.51.123 |
v0.51.261 |
Sustained contributors (3–4 PRs landed)
| Contributor | PRs | First release | Latest release |
|---|---|---|---|
| @espokaos-ops | 4 | v0.51.89 |
v0.51.94 |
| @fecolinhares | 4 | v0.50.238 |
v0.50.250 |
| @frap129 | 4 | v0.50.140 |
v0.50.233 |
| @Habib1001-m | 4 | v0.51.384 |
v0.51.489 |
| @KingBoyAndGirl | 4 | v0.50.238 |
v0.50.240 |
| @koshikai | 4 | v0.51.24 |
v0.51.454 |
| @qxxaa | 4 | v0.50.210 |
v0.51.37 |
| @renheqiang | 4 | v0.50.61 |
v0.50.95 |
| @t3chn0pr13st | 4 | v0.51.242 |
v0.51.424 |
| @Thanatos-Z | 4 | v0.50.257 |
v0.50.278 |
| @xz-dev | 4 | v0.51.55 |
v0.51.196 |
| @allenliang2022 | 3 | v0.51.185 |
v0.51.455 |
| @chouzz | 3 | v0.51.119 |
v0.51.160 |
| @ddiall | 3 | v0.51.359 |
v0.51.404 |
| @deboste | 3 | v0.17.1 |
v0.50.297 |
| @dutchaiagency | 3 | v0.50.281 |
v0.50.286 |
| @gavinssr | 3 | v0.51.119 |
v0.51.153 |
| @hacker1e7 | 3 | v0.50.245 |
v0.51.96 |
| @Mubashirrrr | 3 | v0.51.231 |
v0.51.233 |
| @munim | 3 | v0.51.120 |
v0.51.123 |
| @pavolbiely | 3 | v0.50.159 |
v0.50.233 |
| @PINKIIILQWQ | 3 | v0.51.189 |
v0.51.469 |
| @pix0127 | 3 | v0.51.209 |
v0.51.231 |
| @santastabber | 3 | v0.51.482 |
v0.51.490 |
| @shruggr | 3 | v0.50.23 |
v0.50.47 |
| @someaka | 3 | v0.51.138 |
v0.51.295 |
| @starGazerK | 3 | v0.51.228 |
v0.51.241 |
| @tomas-forgac | 3 | v0.51.456 |
v0.51.456 |
1–2 PR contributors
212 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.
@29n, @86cloudyun-afk, @AdoneyGalvan, @aether-agent, @akrhin, @aliceisjustplaying, @alvistar, @amlyczz, @andrewy-wizard, @antoniocarlos97ss, @Argonaut790, @arshkumarsingh, @ashbuildslife, @ashuio, @Asunfly, @ayushere, @bambalados, @bengdan, @betamod, @bjb2, @Bobby9228, @bschmidy10, @camr, @carlytwozero, @Charanis, @ChaseFlorell, @Chukwuebuka-20, @chwps, @claw-io, @cnogrin, @colin-chang, @cyberdyne187, @DanielMaly, @darkopetrovic, @davidsben, @DavidSchuchert, @DelightRun, @dev-rehaann, @dotBeeps, @DrMaks22, @eba8, @edoumo, @eleboucher, @emanon312, @enihcam, @eov128, @expresso-code-org, @Fail-Safe, @fantasticsquirrel, @FrancescoFarinola, @gabogabucho, @gakugaku, @galvani, @GeoffBao, @georgebdavis, @GiggleSamurai, @gottipx, @gourangasatapathyvit, @gsurenull, @hacker2005, @halmisen, @haolf000, @heagandev, @hermes-gimmethebeans, @hi-friday, @hualong1009, @huangzt, @humayunak, @indigokarasu, @insecurejezza, @intellectronica, @jamesraddock, @JayC-L, @jeffscottward, @Jellypowered, @jianongHe, @jimdawdy-hub, @JinYue-GitHub, @jja881, @joaompfp, @Jonas-Degn, @jundev0001, @junjunjunbong, @kaishi00, @Karlineal, @KayZz69, @kcclaw001, @kevin-ho, @kowenhaoai, @kuishou68, @lambyangzhao, @lawrencel1ng, @leap233, @legeantbleu, @leszek3737, @LeungKaMing, @likawa3b, @linux-fertxo, @linuxid10t, @liuqiangweb-svg, @LLMinem, @lost9999, @luanxu-dev, @lucky-yonug, @lunarnexus, @lurebat, @Luxciax, @lx3133584, @Lynn-Lee, @Lyr-GW, @MacLeodMike, @malulian, @mangodxd, @mariosam95, @MatzAgent, @mbac, @michael-dg, @migueltavares, @MinhoJJang, @minidarkmimi, @mintymac, @mittyok, @mmartial, @MrFant, @mslovy, @nanookclaw, @ng-technology-llc, @nickgiulioni1, @NottheGuy007, @octo-patch, @OneFat3, @PatrickNoFilter, @PeterDaveHello, @plerohellec, @psanger, @puneetdixit200, @Pythonming2020, @reinocheong, @renatomott, @rhelmer, @rickchew, @rly09, @RobertoVillegas, @roryford, @ruxme, @ryan-remeo, @ryansombraio, @s010mn, @s905060, @Saik0s, @samuelgudi, @SaulgoodMan-C, @sbe27, @shaoxianbilly, @sheng-di, @simjak, @sixianli, @sjh9714, @skspade, @smurmann, @snuffxxx, @spektro33, @Stampede, @stocky789, @suinia, @sunilkumarvalmiki, @sunnysktsang, @swftwolfzyq, @syntheticgio, @Tamaz-sujashvili, @tangerine-fan, @TaraTheStar, @tcconnally, @tgaalman, @thadreber-web, @thanhtoantnt, @the-own-lab, @theh4v0c, @theseussss, @tiansiyuan, @timlawrenz, @tn801534, @toanalien, @tomaioo, @tomtong2015, @trucuit, @ts2111, @ugur-murat-alt, @vanshaj-pahwa, @vansour, @vcavichini, @vCillusion, @vikarag, @viraatdas, @Voicle99, @waldmanz, @wali-reheman, @watzon, @weidzhou, @weiwei83, @wind-chant, @wirtsi, @woaijiadanoo, @xingyue52077, @xolom, @XtremXpert, @xx77yy, @ycj, @yunyunyunyun-yun, @yzp12138, @zenc-cp, @zichen0116.
How credit is tracked
Most PRs in this repo land via one of four paths:
- Direct merge — your PR is reviewed and merged on its own. Author shows up directly in
git logand on the PR'smerged_attimestamp. - 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 aCo-authored-by: <you>trailer plus an entry inCHANGELOG.mdcrediting you by username and PR number. - 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.
- 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-bytrailer preserves your authorship.
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.
Special thanks
- @aronprins —
v0.50.0UI 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. - @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/sessionnative-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 — 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 — 83 PRs and counting, with a strong focus on Windows / cross-platform correctness and test reliability: the
ctl.shWindows 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 — autonomous-AI contributor (Hermes Agent-driven). 75 PRs focused on session recovery (state.db sidecar reconciliation, orphan
.bakrecovery, 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), theContent-Security-Policy-Report-Onlyheader (PR #2084), and the per-cron toast notification toggle (PR #2100). - @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.
- @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.
- @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).
- @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 — 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 — 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 — reverse-proxy auth, mobile responsive layout, model routing (PRs #3, #4, #5). Three of the very first community PRs. Early foundation work.
- @Hinotoi-agent — security fixes spanning profile
.envisolation (PR #351), session-import workspace validation (PR #2048), and bandit B105 hardening. Subtle, high-leverage credential and path-traversal fixes. - @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 — 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 — 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).
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.