| 1 | # Contributors |
| 2 | |
| 3 | Codewhale is built in the open with a growing community of contributors. Every |
| 4 | issue report and pull request is real project work — welcome at any experience |
| 5 | level. This is the full per-PR contributor record, grouped into release/time |
| 6 | bands with the newest band first so it stays scannable. Expand any band to see |
| 7 | everyone. |
| 8 | |
| 9 | For the live list, see the |
| 10 | [GitHub contributors page](https://github.com/Hmbown/CodeWhale/graphs/contributors), |
| 11 | [`AUTHOR_MAP`](https://github.com/Hmbown/CodeWhale/blob/main/.github/AUTHOR_MAP), |
| 12 | and [CHANGELOG.md](../CHANGELOG.md). |
| 13 | |
| 14 | ## Organizational thanks |
| 15 | |
| 16 | - **[DeepSeek](https://github.com/deepseek-ai)** — the models and support that got this project started. 感谢 DeepSeek 提供模型与支持。 |
| 17 | - **[DataWhale](https://github.com/datawhalechina)** 🐋 — for the support and for welcoming us into the Whale Brother family. 感谢 DataWhale 的支持。 |
| 18 | - **[OpenWarp](https://github.com/zerx-lab/warp)** — for prioritizing Codewhale support and collaborating on a better terminal-agent experience. |
| 19 | - **[Open Design](https://github.com/nexu-io/open-design)** — for support and collaboration around design-forward agent workflows. |
| 20 | |
| 21 | The maintainer rule: reports and PRs are real project work, even when the final |
| 22 | patch has to be narrowed, delayed, or harvested into a maintainer branch. |
| 23 | Harvested PRs keep visible credit in the commit/PR body, changelog or release |
| 24 | notes, and relevant issue/PR comments. |
| 25 | |
| 26 | --- |
| 27 | |
| 28 | ## Contributors by time |
| 29 | |
| 30 | <details open> |
| 31 | <summary><strong>v0.9.4 — calmer output, recovery, and release hardening</strong></summary> |
| 32 | |
| 33 | **Merged or adapted contributions** |
| 34 | |
| 35 | - **[Sh1Zuku / SparkofSpike](https://github.com/SparkofSpike)** — LaTeX |
| 36 | rendering in PR #4981, circled-digit and keycap width handling in PR #5001, |
| 37 | and actionable File-edit recovery in PR #5008; sub-agent checkpoint resume |
| 38 | in PR #5242, real shell wait elapsed time in PR #5240, and keeping |
| 39 | alternate-scroll off while mouse capture is active in PR #5234 |
| 40 | - **[XhesicaFrost](https://github.com/XhesicaFrost)** — long Windows user-PATH |
| 41 | preservation in PR #5006 |
| 42 | - **[Paulo Aboim Pinto / aboimpinto](https://github.com/aboimpinto)** — the |
| 43 | user-command dispatch acceptance contract in PR #4992 |
| 44 | - **[shenjackyuanjie](https://github.com/shenjackyuanjie)** — Windows |
| 45 | OpenHarmony linker re-quoting for spaced SDK paths in PR #5095 |
| 46 | - **[bistack](https://github.com/bistack)** — MCP Registry discovery with |
| 47 | Registry-first tool selection in PR #5238 |
| 48 | - **[vFONGv](https://github.com/vFONGv)** — the zh-CN Windows beginner guide |
| 49 | with screenshots in PR #5229 |
| 50 | |
| 51 | **Reports, reproductions, and verification** |
| 52 | |
| 53 | - **[DracheTek](https://github.com/DracheTek)** — the multilingual, CRLF-heavy |
| 54 | File-edit failure report in issue #5003 |
| 55 | - **[An Ziwu / MuRongMoQing](https://github.com/MuRongMoQing)** — the Windows |
| 56 | PATH-overwrite defect report in issue #4685 |
| 57 | |
| 58 | </details> |
| 59 | |
| 60 | <details> |
| 61 | <summary><strong>v0.9.3 — DeepSeek Responses, canonical tools, and runtime hardening</strong></summary> |
| 62 | |
| 63 | - **[greyfreedom](https://github.com/greyfreedom)** (Turisla) — the documented |
| 64 | and tested authorization-order contract from PR #4980 |
| 65 | - **[nightt5879](https://github.com/nightt5879)** (Nightt) — foreground shell |
| 66 | detachment before steering from PR #4979 |
| 67 | - **[Watcher24](https://github.com/Watcher24)** — the macOS File Provider |
| 68 | sandbox report and reproduction in #4085 |
| 69 | - **[Fred Leitz / fleitz](https://github.com/fleitz)** — required |
| 70 | source-candidate credit for the canonical `Bash` no-`cwd` workspace fix and |
| 71 | regression in PR #4673 (issue #4674) |
| 72 | |
| 73 | </details> |
| 74 | |
| 75 | <details> |
| 76 | <summary><strong>v0.9.2 — routing, workflow, localization, and inspectability</strong></summary> |
| 77 | |
| 78 | - **[greyfreedom](https://github.com/greyfreedom)** — exact repository-scoped |
| 79 | allow grants and the cross-platform path-semantics repairs from PR #4761 |
| 80 | - **[nightt5879](https://github.com/nightt5879)** — off-event-loop terminal |
| 81 | clipboard writes (PR #4896), complete locale exposure in settings (PR #4856), |
| 82 | CRLF-safe edits (PR #4942), and automatic-routing reasoning preservation |
| 83 | (PR #4961) |
| 84 | - **[XhesicaFrost](https://github.com/XhesicaFrost)** — the configurable |
| 85 | session-token header from PR #4610 and context-menu hover alignment in PR #4897 |
| 86 | - **[cyq1017](https://github.com/cyq1017)** — the hooks configuration/executor |
| 87 | split from PR #4087 |
| 88 | - **[snail-vs](https://github.com/snail-vs)** (snailoniu) — OpenCode Zen's |
| 89 | model-aware route, authentication, documentation, and test-isolation work |
| 90 | from closed PR #4467, whose contributor commits are preserved in the |
| 91 | candidate |
| 92 | - **[Sh1Zuku / SparkofSpike](https://github.com/SparkofSpike)** — the zh-Hans |
| 93 | translation quality review harvested from PR #4908, duplicate-session fix in |
| 94 | PR #4963, LaTeX implementation from PR #4973 landed through #4974, and the |
| 95 | context-menu reproduction in #4803 |
| 96 | - **[GTC2080](https://github.com/GTC2080)** (TaoMu) — the `dryrun` concept |
| 97 | behind `/preview-request`: preview the next outbound request from the real |
| 98 | request-building seam rather than a hand-rolled summary (PR #1099, |
| 99 | harvested) |
| 100 | - **[h3c-hexin](https://github.com/h3c-hexin)** — the non-UTF-8 `fetch_url` |
| 101 | report and implementation direction harvested from PR #4909 |
| 102 | - **[Fred Leitz / fleitz](https://github.com/fleitz)** — required |
| 103 | source-candidate credit for the canonical `Bash` no-`cwd` workspace fix and |
| 104 | regression in PR #4673 (issue #4674) |
| 105 | - **[LmeSzinc](https://github.com/LmeSzinc)** — the Windows CRLF `edit_file` |
| 106 | reproduction, root-cause analysis, and affected-code anchors in issue #4764 |
| 107 | - **[atmosuwiryo](https://github.com/atmosuwiryo)** — ACP numeric-id |
| 108 | compatibility (PR #4929) and the Indonesian documentation and website locale |
| 109 | (PRs #4962 and #4972) |
| 110 | - **[M-Maciej](https://github.com/M-Maciej)** — the expanded-by-default |
| 111 | reasoning setting and report (PR #4928, issue #4925) |
| 112 | - **[raphamorim](https://github.com/raphamorim)** — migration of the QA PTY |
| 113 | frame parser to `rio-vt` (PR #4931) |
| 114 | - **[LI-Jialu](https://github.com/LI-Jialu)** — truthful finalization of stale |
| 115 | restored shell cells (PR #4937) |
| 116 | - **[kobihikri](https://github.com/kobihikri)** — release-container SBOM and |
| 117 | explicit provenance mode (PR #4958) |
| 118 | - **[EvanProgramming](https://github.com/EvanProgramming)**, |
| 119 | **[adity982](https://github.com/adity982)**, and |
| 120 | **[vibecoding-skills](https://github.com/vibecoding-skills)** — equivalent |
| 121 | fix direction for effective-home resolution (#4760), MCP call-once behavior |
| 122 | (#4756), and streaming/non-streaming timeout separation (#4743) |
| 123 | - **[antarikshraya](https://github.com/antarikshraya)** — the LaTeX transcript |
| 124 | rendering report in #4957 |
| 125 | - **[eugenicum](https://github.com/eugenicum)** — the token-header request and |
| 126 | output-presentation measurements in #4520 and #4468 |
| 127 | - **[whp233](https://github.com/whp233)** — the StepFun/OpenCode subscription |
| 128 | route request in #4526 |
| 129 | - **[redjade75723](https://github.com/redjade75723)** — stale resumed-workspace |
| 130 | diagnosis input from #4100 |
| 131 | - **[hardy922](https://github.com/hardy922)** — the native DeepSeek tool-token |
| 132 | visibility report in #3880 |
| 133 | - **[JayBeest](https://github.com/JayBeest)** — contributor-onboarding product |
| 134 | direction in #4227 |
| 135 | - **[elijahchan2019](https://github.com/elijahchan2019)** — the optional |
| 136 | reasoning-highlight request in #4089 |
| 137 | - **[cy2311](https://github.com/cy2311)** — sessions rail, archive, and |
| 138 | auto-resume direction in #2934 |
| 139 | - **[wywsoor](https://github.com/wywsoor)** — export/restore correlation |
| 140 | direction in #2494 |
| 141 | |
| 142 | </details> |
| 143 | |
| 144 | <details open> |
| 145 | <summary><strong>v0.9.1 — provider and runtime hardening</strong></summary> |
| 146 | |
| 147 | - **[h3c-hexin](https://github.com/h3c-hexin)** — calendar-anchored hourly |
| 148 | automation recurrence across DST and lifecycle transitions (PR #4381), |
| 149 | explicit limits for unknown local models (PR #4656 / #4655), and |
| 150 | idle-timeout progress telemetry (PR #4657) |
| 151 | - **[gaord](https://github.com/gaord)** — Runtime API provider registry and |
| 152 | atomic provider-switch endpoints (PR #4658) |
| 153 | - **[SamhandsomeLee](https://github.com/SamhandsomeLee)** — the unified |
| 154 | `/skills` root catalog, audit/provenance model, validated mutations, manager |
| 155 | UI, and acceptance coverage (PR #4679), plus Enter-send lag diagnosis and |
| 156 | fix direction for #4605 (PR #4654; landed through the release-lane |
| 157 | async-dispatch split) |
| 158 | - **[Paulo Aboim Pinto / aboimpinto](https://github.com/aboimpinto)** — the |
| 159 | Layer 5.1 user-command registry boundary from PR #3278; the exact authored |
| 160 | evidence commit from PR #4046, preserved intact in the integration graph; |
| 161 | and the #2870 follow-up audit whose metadata and malformed-sibling gaps |
| 162 | shaped the final corrections. Paulo also provided the structured, redacted |
| 163 | Agent Details and `current_activity` design direction preserved from |
| 164 | #2694/#2889 and the real-PTY lifecycle acceptance direction from #2886 |
| 165 | - **[baendlorel](https://github.com/baendlorel)** — TelecomJS TokenHub provider |
| 166 | and key-scoped live-catalog direction, source-partitioned refresh behavior, |
| 167 | and both refresh-order regressions from PR #4370, harvested into the current |
| 168 | provider architecture with co-authorship preserved |
| 169 | - **[zhangweiii](https://github.com/zhangweiii)** and |
| 170 | **[Sterne Lee / sternelee](https://github.com/sternelee)** — the original |
| 171 | first-class OpenCode Go implementations in PRs #773 and #1050, harvested |
| 172 | into the current provider architecture with co-authorship preserved in the |
| 173 | landing commit |
| 174 | - **[Sean Tse / seanthefuturegorilla](https://github.com/seanthefuturegorilla)** |
| 175 | — the canonical OpenCode Go/Zen provider request and acceptance direction in |
| 176 | #1481 |
| 177 | - **[nightt5879](https://github.com/nightt5879)** — `/debt` compatibility |
| 178 | aliases with dispatch-consistent user-command shadowing across help and |
| 179 | slash discovery (PR #4680), plus the Solarized Light background preservation |
| 180 | fix for the underwater shell (PR #4471) |
| 181 | - **[AiurArtanis](https://github.com/AiurArtanis)** — the Solarized Light |
| 182 | v0.9.0 regression report and reproduction (#4457) |
| 183 | - **[shenjackyuanjie](https://github.com/shenjackyuanjie)** — the HarmonyOS |
| 184 | workflow-js bindgen, portable-pty gating, and SDK environment work |
| 185 | (PR #4470) |
| 186 | - **[shenyongqing](https://github.com/shenyongqing)** — the original HarmonyOS |
| 187 | workflow-js bindgen approach (PR #4384), carried into the landed |
| 188 | implementation with credit |
| 189 | - **[Luis Mateus Vargas / luismateusvargas](https://github.com/luismateusvargas)** |
| 190 | — the Windows hook-process leak reproduction, process-tree analysis, and EOF |
| 191 | fix direction (#4489) |
| 192 | - **[redjade75723](https://github.com/redjade75723)** — the persistent Windows |
| 193 | PTY failure report that exposed lossy high-bit exit-status handling (#4100) |
| 194 | - **[w1w218](https://github.com/w1w218)** — the Windows ARM64 release request |
| 195 | and cross-compilation report that led to native release, npm, updater, and |
| 196 | archive support (#4267) |
| 197 | - **[Sh1Zuku / SparkofSpike](https://github.com/SparkofSpike)** — the Windows |
| 198 | Ctrl+O reproduction that exposed pre-pager result truncation and conflicting |
| 199 | composer shortcut routing (#4482) |
| 200 | - **[Lu Shihan / Angel-Hair](https://github.com/Angel-Hair)** — session-owned |
| 201 | read-before-edit tracking and the explicit, backwards-compatible |
| 202 | `apply_patch` replacement contract (PRs #4475 and #4476) |
| 203 | - **[dmitri-0](https://github.com/dmitri-0)** — configurable cache-hit |
| 204 | visibility in the phase strip (PR #4474) |
| 205 | - **[Fred Leitz / fleitz](https://github.com/fleitz)** — canonical `Bash` |
| 206 | no-`cwd` workspace resolution and its regression test, keeping isolated |
| 207 | sub-agent commands inside their selected worktree (PR #4673; issue #4674) |
| 208 | - **[Sh1Zuku / SparkofSpike](https://github.com/SparkofSpike)** — exact |
| 209 | Vim-space regression reproduction and verification that the v0.9.1 input |
| 210 | path already contains the needed global binding (PR #4477) |
| 211 | |
| 212 | </details> |
| 213 | |
| 214 | <details open> |
| 215 | <summary><strong>v0.9.0 — underwater shell, runtime persistence & release evidence</strong></summary> |
| 216 | |
| 217 | The v0.9.0 lane grew from a maintenance sweep into the underwater shell, |
| 218 | message-first Operate, broader Fleet and Workflow behavior, runtime-thread |
| 219 | persistence, terminal selection, UTF-8 handling, internationalization, and |
| 220 | release evidence. The reports and pull requests below materially shaped it. |
| 221 | |
| 222 | - **[Amuthan / amuthantamil](https://github.com/amuthantamil)** — approval-time |
| 223 | transcript review report that led to live Page Up/Down, modified-arrow, |
| 224 | Home/End, and mouse-wheel navigation while the decision card stays active |
| 225 | (#4371) |
| 226 | - **[Angel-Hair](https://github.com/Angel-Hair)** — reports that restored the |
| 227 | opt-in `remember` tool to the first-turn catalog, made required user |
| 228 | confirmation a real goal blocker, and added a clear recovery notice for |
| 229 | cached approval denials (#4373, #4374, #4375) |
| 230 | - **[Bruce / bruce6135](https://github.com/bruce6135)** — Kimi Coding Plan |
| 231 | reproduction that exposed the false 1K emergency-compaction budget (#4368) |
| 232 | - **[Matt Van Horn / mvanhorn](https://github.com/mvanhorn)** — first-turn |
| 233 | `remember` regression coverage and the Kimi output-budget correction that |
| 234 | prevents false emergency compaction (#4377, #4378) |
| 235 | - **[郝某人BH / hmr-BH](https://github.com/hmr-BH)** — native Simplified |
| 236 | Chinese review that replaced literal legal/doctrinal metaphors with clear |
| 237 | collaboration terminology across setup and `/constitution` (#4369) |
| 238 | - **[WavesMan](https://github.com/WavesMan)** — large-tree `@` completion |
| 239 | reproduction that led to bounded background discovery and exact-path |
| 240 | resolution on send (#4365) |
| 241 | - **[SamhandsomeLee](https://github.com/SamhandsomeLee)** — input-budget-aware |
| 242 | compaction work harvested from PR #4293 with co-authorship preserved |
| 243 | - **[idling11](https://github.com/idling11)** — keyboard-driven keyword search |
| 244 | for the docs and FAQ surfaces (PR #4364) |
| 245 | - **[LeoLin990405](https://github.com/LeoLin990405)** — initial bounded |
| 246 | workspace-walk approach and root-cause analysis for large-tree `@` mention |
| 247 | discovery (PR #4367), harvested into the final fail-soft background |
| 248 | implementation for #4365 |
| 249 | - **[octo-patch](https://github.com/octo-patch)** — MiniMax Messages provider |
| 250 | support for MiniMax-M3 and MiniMax-M2.7 across OpenAI-compatible and Messages |
| 251 | routes, regional endpoints, catalog metadata, pricing, and request coverage |
| 252 | (PR #4354) |
| 253 | - **[Wenshan Deng / findshan](https://github.com/findshan)** — original offline |
| 254 | token/cache/cost scorecard and regression gate (#3388), extended with |
| 255 | provider-aware provenance in #4335 |
| 256 | - **[hongqitai](https://github.com/hongqitai)** — localization extraction and |
| 257 | English-locale enforcement that keep UI copy on the typed translation path |
| 258 | (#4225, #4194) |
| 259 | - **[nsfoxer](https://github.com/nsfoxer)** — bounded, fail-soft MCP capability |
| 260 | discovery with advertised/legacy `tools/list` handling and Unicode-safe |
| 261 | description formatting (#4308, harvested with co-authorship) |
| 262 | - **[maple / yekern](https://github.com/yekern)** — root-cause analysis and fix |
| 263 | direction for age-evicting terminal worker records from long-lived |
| 264 | sub-agent state ledgers (#4217) |
| 265 | - **[moduvoice](https://github.com/moduvoice)** — Korean (ko) UI locale with |
| 266 | full key parity and onboarding/setup wiring (PR #4347) |
| 267 | - **[qinlinwang](https://github.com/qinlinwang)** — Anthropic tool-schema |
| 268 | sanitization for top-level oneOf/anyOf/allOf failures (PR #4346) |
| 269 | - **[knqiufan](https://github.com/knqiufan)** — Anthropic cache-write token |
| 270 | pricing at published rates (PR #4348, #4318) |
| 271 | - **[Chavdar Ivanov / ci4ic4](https://github.com/ci4ic4)** — NetBSD QuickJS |
| 272 | bindgen support for codewhale-workflow-js (PR #4349) |
| 273 | - **[eugenicum](https://github.com/eugenicum)** — copy-paste rail-pollution |
| 274 | report with code-aware fix direction (#4208) |
| 275 | - **[JayBeest](https://github.com/JayBeest)** — parent |
| 276 | `--disallowed-tools` inheritance through sub-agents and Fleet workers, |
| 277 | harvested from PR #4096 with authorship preserved (#4042) |
| 278 | - **[wuisabel-gif](https://github.com/wuisabel-gif)** — move runtime-thread |
| 279 | coordination onto `parking_lot::Mutex` to remove async lock contention |
| 280 | (#4243, #4149) |
| 281 | - **[cyq1017](https://github.com/cyq1017)** — Windows Python stdio UTF-8 |
| 282 | handling and richer active-tool summaries (#4281/#4202, #3818) |
| 283 | |
| 284 | - **[Jeffrey Luna / Mr-Moon121](https://github.com/Mr-Moon121)** — anti-polling |
| 285 | constitution for sub-agent waiting (harvested into #4097 / PR #4229 from |
| 286 | PR #4098) |
| 287 | |
| 288 | - **[MXAntian](https://github.com/MXAntian)** — persist compaction summaries |
| 289 | into thread records so `/v1` engine reloads keep compacted context (#4091) |
| 290 | - **[nightt5879](https://github.com/nightt5879)** — keep native terminal |
| 291 | selection usable when mouse capture is disabled, and advance fuzzy edit |
| 292 | matches on UTF-8 character boundaries; preserve inline skill task text in |
| 293 | PR #4372 (#4088, #4045, #3915) |
| 294 | - **[gaord](https://github.com/gaord)** — add the community-maintained |
| 295 | CodeWhale for VS Code GUI frontend to the English and Chinese READMEs (#4035) |
| 296 | - **[Darrell Thomas](https://github.com/DarrellThomas)** — remove the unused |
| 297 | whale route taxonomy module and its dead tests (#4041) |
| 298 | - **[Taixin Guo](https://github.com/taixinguo)** — CJK fuzzy-edit panic report |
| 299 | and fix direction credited in the UTF-8 boundary patch (#3971, #4045) |
| 300 | - **[CCChisato](https://github.com/CCChisato)** — preserve task text when |
| 301 | sending dollar, unified-slash, and explicit skill invocations (#3915, |
| 302 | co-authored) |
| 303 | - **[Sun Zhenyuan / bistack](https://github.com/bistack)** — dynamic MCP server |
| 304 | infrastructure and approval-gated model-started MCP servers from chat |
| 305 | context (#3869, #3866, harvested with authorship preserved) |
| 306 | |
| 307 | </details> |
| 308 | |
| 309 | <details> |
| 310 | <summary><strong>v0.8.66 — release readiness, provider intake & UI hardening</strong></summary> |
| 311 | |
| 312 | The v0.8.66 release prepared the 0.8.66 package lane, hardened provider/model |
| 313 | routing and modal surfaces, advanced Hotbar/sub-agent UI reliability, and pulled |
| 314 | in several community provider and bridge contributions with release credit. |
| 315 | |
| 316 | - **[lerugray](https://github.com/lerugray)** — Sakana AI Fugu provider |
| 317 | support across config, CLI, TUI provider picker, docs, and model completions |
| 318 | (#3748, harvested) |
| 319 | - **[greyfreedom](https://github.com/greyfreedom)** — read-only `/config |
| 320 | ask-rules` view for resolved ask-rule paths, status, and configured |
| 321 | tool/command/path rules (#3569, merged) |
| 322 | - **[noaft](https://github.com/noaft)** — `/links` provider docs fallback |
| 323 | update, including the current CodeWhale docs URL and a Baidu Qianfan docs |
| 324 | link (#3621, harvested) |
| 325 | - **[noaft](https://github.com/noaft)** — OpenModel provider support across |
| 326 | config, CLI, TUI provider picker, docs, and registry checks (#3585, |
| 327 | harvested) |
| 328 | - **[pkeging](https://github.com/pkeging)** — original plugin manifest, |
| 329 | discovery, CLI, and MCP foundation (#3708, #3709, #3710, merged), plus WeCom |
| 330 | Bridge deployment and security documentation, including the approval-timeout |
| 331 | configuration surface (#3640, harvested) |
| 332 | - **[codepgq](https://github.com/codepgq)** — cross-client plugin-workflow |
| 333 | migration request that shaped the explicit compatibility and trust boundary |
| 334 | (#1172) |
| 335 | - **[Wenshan Deng / findshan](https://github.com/findshan)** — original offline |
| 336 | token/cache/cost scorecard and regression gate (#3388), extended with |
| 337 | provider-aware provenance in #4335 |
| 338 | - **[buko](https://github.com/buko)** — precise Ctrl+O external-editor freeze |
| 339 | reproduction that shaped the terminal input-pump fix (#3657) |
| 340 | - **[cyq1017](https://github.com/cyq1017)** — sub-agent progress-event |
| 341 | headroom report that shaped the fanout reliability hardening (#3783) |
| 342 | |
| 343 | </details> |
| 344 | |
| 345 | <details> |
| 346 | <summary><strong>v0.8.63 — sub-agent budgets, command extraction & reliability</strong></summary> |
| 347 | |
| 348 | |
| 349 | The v0.8.63 release hardened sub-agent fanout with token-budget governance and |
| 350 | queue-and-drain admission, split the TUI command surface into focused modules, |
| 351 | and landed reliability fixes for app-server teardown, JavaScript-execution |
| 352 | proxying, and DeepSeek thinking tool calls — alongside community contributions. |
| 353 | |
| 354 | - **[donglovejava](https://github.com/donglovejava)** — per-worker sub-agent |
| 355 | token-budget enforcement, so a `token_budget`/`max_tokens` on an individual |
| 356 | `agent` call bounds that worker mid-run with a clean `budget_exhausted` stop |
| 357 | (#3321, harvested) |
| 358 | - **[cyq1017](https://github.com/cyq1017)** — `js_execution` proxy-environment |
| 359 | handling (#3331), Hugging Face API-key env in the auth probe (#3329), and Codex |
| 360 | Responses request retry (#3344) — harvested into the train |
| 361 | - **[aboimpinto](https://github.com/aboimpinto)** — FEAT-005 command extraction: |
| 362 | core/session command groups split into focused modules via `RegisterCommand`, |
| 363 | `/swarm` migration, and Gherkin acceptance coverage (#3330, merged literally |
| 364 | with authorship preserved) |
| 365 | - **[wuisabel-gif](https://github.com/wuisabel-gif)** — tear down the delegated |
| 366 | serve/app-server child process when the dispatcher exits (#3259 / #3317) |
| 367 | - **[nightt5879](https://github.com/nightt5879)** — keep the onboarding marker in |
| 368 | the codewhale home view (#3302) and branch-hygiene check hardening (#3348) |
| 369 | - **[gaord](https://github.com/gaord)** — preserve thinking/tool blocks when |
| 370 | seeding a thread from a saved session, plus Hugging Face provider env (#3329) |
| 371 | - **[greyfreedom](https://github.com/greyfreedom)** — persist ask-permission rules |
| 372 | from approvals and stabilize the CI verifier/provider-registry checks |
| 373 | - Reports that shaped fixes: **[lordwedggie](https://github.com/lordwedggie)** |
| 374 | (#3331 proxy env), **[Final527](https://github.com/Final527)** (#3240 legacy |
| 375 | state migration), **[dxfq](https://github.com/dxfq)** (#3228 sidebar default) |
| 376 | |
| 377 | </details> |
| 378 | |
| 379 | <details> |
| 380 | <summary><strong>v0.8.62 — provider/model routing, TOML comment preservation & community closeout</strong></summary> |
| 381 | |
| 382 | |
| 383 | The v0.8.62 release retuned provider/model routing (GLM-5.2 as the default direct |
| 384 | Z.AI model, `type: "explore"` sub-agents defaulting to the cheaper same-family |
| 385 | sibling), added TOML comment preservation and the CodeWhale-only skill discovery |
| 386 | gate, and shipped the static Linux x64 musl binary — alongside a broad community |
| 387 | closeout and a retroactive credit reconciliation pass. |
| 388 | |
| 389 | - **[zlh124](https://github.com/zlh124)** — preserve user comments and formatting |
| 390 | when rewriting `config.toml`/`settings.toml`/`tui.toml` (with a malformed-file |
| 391 | fallback) and Linux build deps in the cargo install guides (#3270) |
| 392 | - **[idling11](https://github.com/idling11)** — Kimi `type:object` schema root for |
| 393 | all parameter shapes (#3281), `approval_mode` restore on Plan→Agent with a |
| 394 | wait-for-user guard (#3279), and workroom metadata draft types |
| 395 | - **[LeoLin990405](https://github.com/LeoLin990405)** — Poppler `pdftotext -v` |
| 396 | detection (#1667), session persistence before stall/cancel recovery (#2739), |
| 397 | and debounced thinking-stream re-renders (#1620) |
| 398 | - **[nightt5879](https://github.com/nightt5879)** — CodeWhale-only skill discovery |
| 399 | gate (`[skills].scan_codewhale_only`) ignoring cross-tool directories (#3296) and |
| 400 | app-server no-auth loopback docs |
| 401 | - **[reidliu41](https://github.com/reidliu41)** — slash commands exposed as hotbar |
| 402 | actions (#3269) |
| 403 | - **[wavezhang](https://github.com/wavezhang)** — static Linux x64 (musl) release |
| 404 | binaries |
| 405 | - **[wuisabel-gif](https://github.com/wuisabel-gif)** — per-tool snapshot gate |
| 406 | respecting `[snapshots].enabled` (#3292) and composer history written under |
| 407 | `.codewhale` |
| 408 | - **[gaord](https://github.com/gaord)** — `workspace_follow_symlinks` setting for |
| 409 | symlink-aware tool operations with hardened path handling |
| 410 | - **[greyfreedom](https://github.com/greyfreedom)** — ask-permission rules honored |
| 411 | at runtime (#3295) |
| 412 | - **[aboimpinto](https://github.com/aboimpinto)** — EPIC-001 command-boundary |
| 413 | replay and user-registry review feedback |
| 414 | - **[h3c-hexin](https://github.com/h3c-hexin)** — volatile workspace path moved |
| 415 | out of the static system prefix (prefix-cache hygiene) |
| 416 | - **[hongchen1993](https://github.com/hongchen1993)** — heuristic-only auto routing |
| 417 | when the flash router is unavailable |
| 418 | - **[lucaszhu-hue](https://github.com/lucaszhu-hue)** — Atlas Cloud provider setup |
| 419 | docs |
| 420 | - Retroactive reconciliation (shipped earlier, credited now): |
| 421 | **[manaskarra](https://github.com/manaskarra)** / **[xfy6238](https://github.com/xfy6238)** (#1157), |
| 422 | **[djairjr](https://github.com/djairjr)** (#1309 alongside reidliu41), |
| 423 | **[Geallier](https://github.com/Geallier)** (#1470), |
| 424 | **[quentin-lian](https://github.com/quentin-lian)** / **[k0tran](https://github.com/k0tran)** (#1531 / #1992), |
| 425 | **[F1LT3R](https://github.com/F1LT3R)** (#1656), |
| 426 | **[cmyyy](https://github.com/cmyyy)** (#1842), |
| 427 | **[Final527](https://github.com/Final527)** (#3058) |
| 428 | |
| 429 | </details> |
| 430 | |
| 431 | <details> |
| 432 | <summary><strong>v0.8.61 — runtime control plane & community closeout</strong></summary> |
| 433 | |
| 434 | |
| 435 | The v0.8.61 release was a community closeout: the runtime control plane, provider |
| 436 | patches, and TUI fixes landed alongside first-time and returning contributor work. |
| 437 | |
| 438 | - **[idling11](https://github.com/idling11)** — DeepInfra provider support with |
| 439 | OpenAI-compatible routing and model registry entries (#3235, closes #3231) |
| 440 | - **[greyfreedom](https://github.com/greyfreedom)** — atomic ask-only |
| 441 | permission-rule persistence so an execution-policy rule survives the write |
| 442 | that triggered the prompt (#3233) |
| 443 | - **[VincentCorleone](https://github.com/VincentCorleone)** — WeChat bridge |
| 444 | (`integrations/weixin-bridge`) leveraging Feishu + Tencent OpenClaw (#3206) |
| 445 | - **[nightt5879](https://github.com/nightt5879)** — whale-accent rename (#3197) |
| 446 | and `$skillname` aliases for `/skill` activation (#3241) |
| 447 | - **[mvanhorn](https://github.com/mvanhorn)** — non-DeepSeek model pricing |
| 448 | coverage (#3201) |
| 449 | - **[cyq1017](https://github.com/cyq1017)** — Telegram polling transport |
| 450 | (#3195) and VS Code read-only API documentation (#3013) |
| 451 | - **[RobertEmprechtinger](https://github.com/RobertEmprechtinger)** — mobile |
| 452 | event history (#3220) |
| 453 | - **[gaord](https://github.com/gaord)** — runtime-API session save (#3199) |
| 454 | - **[hongchen1993](https://github.com/hongchen1993)** — `DEEPSEEK_BASE_URL` / |
| 455 | `MODEL` honored in `exec` (#3221) |
| 456 | |
| 457 | </details> |
| 458 | |
| 459 | <details> |
| 460 | <summary><strong>Forward track — recent v0.9 work (newest)</strong></summary> |
| 461 | |
| 462 | |
| 463 | - **[xyuai](https://github.com/xyuai)** — canonical CodeWhale settings path, |
| 464 | provider persistence, provider picker, logout-scope, and MiMo auth cleanup |
| 465 | work (#2730, #2714, #2715, #2717, #2718) |
| 466 | - **[shenjackyuanjie](https://github.com/shenjackyuanjie)** — HarmonyOS / |
| 467 | OpenHarmony porting work and MatePad Edge validation trail (#2634) |
| 468 | - **[ousamabenyounes](https://github.com/ousamabenyounes)** — AZERTY/AltGr |
| 469 | composer shortcut fix for Windows keyboard layouts (#2863, #2867) |
| 470 | - **[reidliu41](https://github.com/reidliu41)** — hotbar action-registry |
| 471 | foundation and Ollama model-completion cleanup for the forward track (#2866, |
| 472 | #2742) |
| 473 | - **[ljm3790865](https://github.com/ljm3790865)** — multi-tab |
| 474 | core/persistence foundation and broader tab collaboration direction (#2864, |
| 475 | #2753) |
| 476 | - **[sximelon](https://github.com/sximelon)** — saved-session resume footer |
| 477 | hint work plus provider-trait metadata registry direction reviewed and |
| 478 | harvested for the forward track (#2758, #2760, #2479) |
| 479 | - **[aboimpinto](https://github.com/aboimpinto)** — sidebar command polish and |
| 480 | pausable custom-command lifecycle direction harvested into the forward track, |
| 481 | plus the directly merged command-support boundary cleanup and broader command |
| 482 | layer design direction (#2788, #2732, #2871, #2851, #2791) |
| 483 | - **[AdityaVG13](https://github.com/AdityaVG13)** — Workflow orchestration |
| 484 | and cost-tracking drafts that shaped the maintained workflow IR and |
| 485 | TraceStore foundation (#2482, #2486) |
| 486 | - **[lbcheng888](https://github.com/lbcheng888)**, |
| 487 | **[AiurArtanis](https://github.com/AiurArtanis)**, and |
| 488 | **[nasus9527](https://github.com/nasus9527)** — VS Code extension scaffold |
| 489 | direction, Agent View request, and IDE plugin request that shaped the |
| 490 | official Phase 0 extension (#1022, #1584, #2580) |
| 491 | - **[HUQIANTAO](https://github.com/HUQIANTAO)** — `web_run` cache-state |
| 492 | lock-splitting, turn-metadata prefix-cache stability, and project-context |
| 493 | cache work (#2502, #2517, #2636) |
| 494 | - **[idling11](https://github.com/idling11)** — PlanArtifact continuity, |
| 495 | dense tool-call transcript collapse, sidebar detail popovers, and |
| 496 | HarnessPosture provider/model policy direction (#2733, #2738, #2734, |
| 497 | #2741, #2692, #2694, #2693) |
| 498 | - **[h3c-hexin](https://github.com/h3c-hexin)** — sub-agent model inheritance, |
| 499 | configured `skills_dir` discovery, prompt-environment stability, and static |
| 500 | prompt composer direction (#2736, #2737, #2786) |
| 501 | - **[gaord](https://github.com/gaord)** — runtime thread workspace updates and |
| 502 | completed-thread saved-session API work (#2640, #2639) |
| 503 | - **[cyq1017](https://github.com/cyq1017)** — trusted workspace MCP config, |
| 504 | provider auth rollback, custom search endpoint, custom completion sound, |
| 505 | restore-listing, and pending-input delivery-mode label work (#2751, #2755, |
| 506 | #2510, #2512, #2513, #2532, #2054) |
| 507 | - **[yusufgurdogan](https://github.com/yusufgurdogan)** — Sofya search |
| 508 | provider implementation harvested as a non-default search backend (#2790) |
| 509 | - **[LeoAlex0](https://github.com/LeoAlex0)** — runtime prompt metadata cache |
| 510 | direction harvested into the maintained prompt/cache path (#2687); |
| 511 | `allow_shell` prefix-cache decoupling and `visibility="internal"` |
| 512 | explanation for mode-flip stability (#2949, #2951) |
| 513 | - **[hongchen1993](https://github.com/hongchen1993)** — Volcengine provider |
| 514 | in TUI dispatcher and dispatcher API-key preference (#2923, #2928) |
| 515 | - **[NASLXTO](https://github.com/NASLXTO)** and |
| 516 | **[wuxixing](https://github.com/wuxixing)** — large-workspace startup |
| 517 | reports that shaped the bounded project-context fallback (#697, #1827) |
| 518 | - **[shuxiangxuebiancheng](https://github.com/shuxiangxuebiancheng)**, |
| 519 | **[hongqitai](https://github.com/hongqitai)**, and |
| 520 | **[cyq1017](https://github.com/cyq1017)** — third-party |
| 521 | OpenAI-compatible path-suffix report and follow-up review trail (#1874, |
| 522 | #2508, #2506) |
| 523 | |
| 524 | |
| 525 | </details> |
| 526 | |
| 527 | <details> |
| 528 | <summary><strong>Recurring & historical contributors</strong></summary> |
| 529 | |
| 530 | |
| 531 | - **[merchloubna70-dot](https://github.com/merchloubna70-dot)** — 28 PRs spanning features, fixes, and VS Code extension scaffolding (#645–#681) |
| 532 | - **[WyxBUPT-22](https://github.com/WyxBUPT-22)** — Markdown rendering for tables, bold/italic, and horizontal rules (#579) |
| 533 | - **[loongmiaow-pixel](https://github.com/loongmiaow-pixel)** — Windows + China install documentation (#578) |
| 534 | - **[20bytes](https://github.com/20bytes)** — User memory docs and help polish (#569) |
| 535 | - **[staryxchen](https://github.com/staryxchen)** — glibc compatibility preflight (#556) |
| 536 | - **[Vishnu1837](https://github.com/Vishnu1837)** — glibc compatibility improvements and terminal restoration on SIGINT/SIGTERM (#565, #1586) |
| 537 | - **[shentoumengxin](https://github.com/shentoumengxin)** — Shell `cwd` boundary validation (#524) |
| 538 | - **[toi500](https://github.com/toi500)** — Windows paste fix report |
| 539 | - **[xsstomy](https://github.com/xsstomy)** — Terminal startup repaint report |
| 540 | - **[melody0709](https://github.com/melody0709)** — Slash-prefix Enter activation report |
| 541 | - **[lloydzhou](https://github.com/lloydzhou)** and **[jeoor](https://github.com/jeoor)** — Compaction cost reports; lloydzhou also contributed deterministic environment context (#813, #922) and KV prefix-cache stabilisation (#1080) |
| 542 | - **[Agent-Skill-007](https://github.com/Agent-Skill-007)** — README clarity pass (#685) |
| 543 | - **[woyxiang](https://github.com/woyxiang)** — Windows install documentation (#696) |
| 544 | - **[wangfeng](mailto:wangfengcsu@qq.com)** — Pricing/discount info update (#692) |
| 545 | - **[zichen0116](https://github.com/zichen0116)** — CODE_OF_CONDUCT.md (#686) |
| 546 | - **[dfwqdyl-ui](https://github.com/dfwqdyl-ui)** — model ID case-sensitivity compatibility report (#729) |
| 547 | - **[Oliver-ZPLiu](https://github.com/Oliver-ZPLiu)** — stale `working...` state bug report, Windows clipboard fallback, MCP Streamable HTTP session fixes, and Homebrew tap automation (#738, #850, #1643, #1631) |
| 548 | - **[reidliu41](https://github.com/reidliu41)** — resume hint, workspace trust persistence, Ollama provider support, thinking-block stream finalization, CI cache hardening, streaming wrap, and DeepSeek model completions (#863, #870, #921, #1078, #1603, #1628, #1601) |
| 549 | - **[xieshutao](https://github.com/xieshutao)** — plain Markdown skill fallback (#869) |
| 550 | - **[GK012](https://github.com/GK012)** — npm wrapper `--version` fallback (#885) |
| 551 | - **[y0sif](https://github.com/y0sif)** — parent turn-loop wakeup after direct child sub-agent completion (#901) |
| 552 | - **[mac119](https://github.com/mac119)** and **[leo119](https://github.com/leo119)** — `codewhale update` command documentation (#838, #917) |
| 553 | - **[dumbjack](https://github.com/dumbjack)** / **浩淼的mac** — command-safety null-byte hardening (#706, #918) |
| 554 | - **macworkers** — fork confirmation with the new session id (#600, #919) |
| 555 | - **zero** and **[zerx-lab](https://github.com/zerx-lab)** — notification condition config and richer OSC 9 notification body (#820, #920) |
| 556 | - **[chnjames](https://github.com/chnjames)** — cached @mention completions, config recovery polish, and Windows UTF-8 shell output (#849, #927, #982, #1018) |
| 557 | - **[angziii](https://github.com/angziii)** — config safety, async cleanup, Docker hardening, and command-safety fixes (#822, #824, #827, #831, #833, #835, #837) |
| 558 | - **[elowen53](https://github.com/elowen53)** — UTF-8 decoding and deterministic test coverage (#825, #840) |
| 559 | - **[wdw8276](https://github.com/wdw8276)** — `/rename` command for custom session titles (#836) |
| 560 | - **[banqii](https://github.com/banqii)** — `.cursor/skills` discovery path support (#817) |
| 561 | - **[junskyeed](https://github.com/junskyeed)** — dynamic `max_tokens` calculation for API requests (#826) |
| 562 | - **Hafeez Pizofreude** — SSRF protection in `fetch_url` and Star History chart |
| 563 | - **Unic (YuniqueUnic)** — Schema-driven config UI (TUI + web) |
| 564 | - **Jason** — SSRF security hardening |
| 565 | - **[axobase001](https://github.com/axobase001)** — snapshot orphan cleanup, npm install guards, session telemetry fixes, model-scope cache clear, symlinked skill support, npm mirror-escape-hatch guidance, proxy preservation for child tasks, mobile runtime control, Docker toolbox docs, large-output receipts, and activity detail context (#975, #1032, #1047, #1049, #1052, #1019, #1051, #1056, #1608, #1968, #2296, #2297, #2298) |
| 566 | - **[MengZ-super](https://github.com/MengZ-super)** — `/theme` command foundation and SSE gzip/brotli decompression (#1057, #1061) |
| 567 | - **[DI-HUO-MING-YI](https://github.com/DI-HUO-MING-YI)** — Plan-mode read-only sandbox safety fix (#1077) |
| 568 | - **[bevis-wong](https://github.com/bevis-wong)** — precise paste-Enter auto-submit reproducer (#1073) |
| 569 | - **[Duducoco](https://github.com/Duducoco)** and **[AlphaGogoo](https://github.com/AlphaGogoo)** — skills slash-menu and `/skills` coverage fix (#1068, #1083) |
| 570 | - **[ArronAI007](https://github.com/ArronAI007)** — window-resize artifact fix for macOS Terminal.app and ConHost (#993) |
| 571 | - **[THINKER-ONLY](https://github.com/THINKER-ONLY)** — OpenRouter and custom-endpoint model-ID preservation (#1066) |
| 572 | - **[Jefsky](https://github.com/Jefsky)** — DeepSeek endpoint correction report (#1079, #1084) |
| 573 | - **[wlon](https://github.com/wlon)** — NVIDIA NIM provider API-key preference diagnosis (#1081) |
| 574 | - **[Horace Liu](https://github.com/liuhq)** — Nix package support and install documentation (#1173) |
| 575 | - **[jieshu666](https://github.com/jieshu666)** — terminal repaint flicker reduction (#1563) |
| 576 | - **[gordonlu](https://github.com/gordonlu)** — Windows Enter / CSI-u input fix, status picker localization (7 MessageIds), approval dialog localization across 7 locales, and mode picker + composer Vim indicator localization across 7 locales (#1612, #2896, #2891, #2239) |
| 577 | - **[mdrkrg](https://github.com/mdrkrg)** — first-run onboarding crash fix when the API key is missing (#1598) |
| 578 | - **[Aitensa](https://github.com/Aitensa)** — CJK wrapping propagation for diff and pager output (#1622) |
| 579 | - **[qiyan233](https://github.com/qiyan233)** — legacy DeepSeek CN provider alias compatibility (#1645) |
| 580 | - **[zlh124](https://github.com/zlh124)** — WSL2/headless startup report, clipboard-init fix, CodeWhale tab-title polish, localized context-menu labels, and approval-dialog fixes (#1772, #1773, #2319, #2320, #2325) |
| 581 | - **[aboimpinto](https://github.com/aboimpinto)** — Windows alt-screen |
| 582 | logging, Home/End composer, runtime log follow-ups, sidebar command polish, |
| 583 | and pausable command lifecycle work (#1774, #1776, #1748, #1749, #1782, |
| 584 | #1783, #2788, #2732) |
| 585 | - **[LeoLin990405](https://github.com/LeoLin990405)** — provider model passthrough, reasoning replay, thinking-only turn, and Windows quoting fixes (#1740, #1743, #1742, #1744) |
| 586 | - **[nightt5879](https://github.com/nightt5879)** — Ctrl+C prompt restore, provider registry drift docs, tool-search defaults, footer git branch display, and startup prompt interactivity (#1764, #2274, #2344, #2347, #2373) |
| 587 | - **[donglovejava](https://github.com/donglovejava)** — paste @file consolidation, CJK panic fix, user feedback, RLM routing, edit_file retry, hidden-worktree discovery skip, IME composer routing, and eager shell companion tools (#2154-#2168, #2302, #2329, #2330, #2331) |
| 588 | - **[encyc](https://github.com/encyc)** — session token breakdown in footer and `/status` (#2152) |
| 589 | - **[saieswar237](https://github.com/saieswar237)** — review pipeline docs (#2178) |
| 590 | - **[sximelon](https://github.com/sximelon)** — paste Enter suppression, key handler extraction (#2174, #2042) |
| 591 | - **[nanookclaw](https://github.com/nanookclaw)** — search provider in doctor output (#2135) |
| 592 | - **[Sskift](https://github.com/Sskift)** — CLI default env override prevention and statusline footer clearing (#2119, #2248) |
| 593 | - **[xin1104](https://github.com/xin1104)** — Homebrew codewhale binary install (#2105) |
| 594 | - **[mrluanma](https://github.com/mrluanma)** — Metaso search provider (#2059) |
| 595 | - **[Lellansin](https://github.com/Lellansin)** — skip config merge at home dir (#2055) |
| 596 | - **[zhuangbiaowei](https://github.com/zhuangbiaowei)** — update release channels and legacy MCP SSE fixes (#2145, #2301) |
| 597 | - **[cy2311](https://github.com/cy2311)** — Windows `.bat` launcher for CodeWhale (#1861) |
| 598 | - **[LING71671](https://github.com/LING71671)** — effective cost currency context, custom provider docs, and core tool taxonomy prompt block (#1902, #2287, #2292) |
| 599 | - **[dzyuan](https://github.com/dzyuan)** — Volcengine provider support with DeepSeek V4 Pro/Flash models (#1993) |
| 600 | - **[mvanhorn](https://github.com/mvanhorn)** — live request-shape test factories and global `~/.agents/AGENTS.md` fallback (#2107, #2236) |
| 601 | - **[malsony](https://github.com/malsony)** — Matrix-inspired theme and theme picker improvements (#2129) |
| 602 | - **[gaord](https://github.com/gaord)** — external GUI runtime event bridge, session detail serialization, and skills API discovery alignment (#2133, #2265, #2285) |
| 603 | - **[yuanchenglu](https://github.com/yuanchenglu)** — Feishu per-chat model switching (#2149) |
| 604 | - **[HUQIANTAO](https://github.com/HUQIANTAO)** — Xiaomi balance/status work, stalled-turn recovery, approval intent summaries, mobile smoke/QR support, Claude theme, and broad docs/test/CI coverage (#2257, #2267, #2283, #2384, #2385, #2389, #2403, #2440-#2458, #2460) |
| 605 | - **[h3c-hexin](https://github.com/h3c-hexin)** — web-search URL decoding, prompt/instructions override hooks, sub-agent guidance, SSRF fake-IP trust configuration, and prompt-cache-friendly environment placement (#2245, #2311, #2313, #2314, #2354, #2355, #2356) |
| 606 | - **[tdccccc](https://github.com/tdccccc)** — approval prompt key-detail and shell-preview work harvested into the maintained approval path (#1991, #2269) |
| 607 | - **[AresNing](https://github.com/AresNing)** — first-run guide, message-submit hook transform design, and turn-end observer hook work harvested into the maintained hooks path (#2278, #2318, #2434, #2578) |
| 608 | - **[Implementist](https://github.com/Implementist)** — Volcengine Ark search provider and reliability hardening (#2426, #2429, #2439) |
| 609 | - **[lihuan215](https://github.com/lihuan215)** — Unix socket hook sink design harvested into the opt-in hook event path (#2333, #2430) |
| 610 | - **[AdityaVG13](https://github.com/AdityaVG13)** — Xiaomi MiMo provider support (#2246) |
| 611 | - **[New2Niu](https://github.com/New2Niu)** — macOS display notifications (#2260) |
| 612 | - **[AiurArtanis](https://github.com/AiurArtanis)** — Solarized Light theme and |
| 613 | canonical-background regression report (#2270, #4457) |
| 614 | - **[Lee-take](https://github.com/Lee-take)** — task migration and session environment isolation fixes (#2272) |
| 615 | - **[LeoAlex0](https://github.com/LeoAlex0)** — session persistence fixes for message counts and tool-output cache preservation (#2388, #2395) |
| 616 | - **[jimmyzhuu](https://github.com/jimmyzhuu)** — Baidu AI Search backend for `web_search` (#2371) |
| 617 | - **[rockyzhang](https://github.com/rockyzhang)** — RISC-V prebuilt binary support (#2383) |
| 618 | - **[mo-vic](https://github.com/mo-vic)** — `/purge` slash command for agent-driven context pruning (#2387) |
| 619 | - **[hufanexplore](https://github.com/hufanexplore)** — Java and Vue language-server defaults (#2367) |
| 620 | - **[hoclaptrinh33](https://github.com/hoclaptrinh33)** — Vietnamese localization support (#2358) |
| 621 | - **[AccMoment](https://github.com/AccMoment)** — proxy option for the update command (#2281) |
| 622 | - **[idling11](https://github.com/idling11)** — durable debt ledger and `/hunt` rename/trophy-card work (#2161, #2306) |
| 623 | - **[cyq1017](https://github.com/cyq1017)** — runtime event envelope, render-diff debug logging, and deterministic composer history flushing (#2252, #2332, #2375) |
| 624 | - **[hongqitai](https://github.com/hongqitai)** — state schema parent-entry support and clippy/fmt cleanup (#2308, #2432) |
| 625 | - **[BryonGo](https://github.com/BryonGo)** — effective-model compaction budgeting fix (#2437) |
| 626 | - **[xyuai](https://github.com/xyuai)** — provider persistence to config, /logout scope clarification, provider picker key replacement shortcut, MiMo auth state cleanup (#2714, #2715, #2717, #2718) |
| 627 | - **[RefuseOdd](https://github.com/RefuseOdd)** — configurable `path_suffix` for OpenAI-compatible endpoints (#2558) |
| 628 | |
| 629 | |
| 630 | </details> |
| 631 | |
| 632 | <details> |
| 633 | <summary><strong>v0.8.48 — reports, repros & verification (earliest listed)</strong></summary> |
| 634 | |
| 635 | Reports, repros, and verification that shaped v0.8.48 also deserve visible |
| 636 | credit: **[@buko](https://github.com/buko)**, **[@yyyCode](https://github.com/yyyCode)**, |
| 637 | **[@gaslebinh-glitch](https://github.com/gaslebinh-glitch)**, **[@Dr3259](https://github.com/Dr3259)**, |
| 638 | **[@lpeng1711694086-lang](https://github.com/lpeng1711694086-lang)**, **[@VerrPower](https://github.com/VerrPower)**, |
| 639 | **[@yan-zay](https://github.com/yan-zay)**, **[@jretz](https://github.com/jretz)**, |
| 640 | **[@Neo-millunnium](https://github.com/Neo-millunnium)**, **[@caeserchen](https://github.com/caeserchen)**, |
| 641 | **[@T-Phuong-Nguyen](https://github.com/T-Phuong-Nguyen)**, **[@zhyuzhyu](https://github.com/zhyuzhyu)**, |
| 642 | **[@0gl20shk0sbt36](https://github.com/0gl20shk0sbt36)**, **[@hatakes](https://github.com/hatakes)**, |
| 643 | **[@goodvecn-dev](https://github.com/goodvecn-dev)**, **[@bevis-wong](https://github.com/bevis-wong)**, |
| 644 | **[@PurplePulse](https://github.com/PurplePulse)**, and **[@nbiish](https://github.com/nbiish)**. |
| 645 | |
| 646 | --- |
| 647 | |
| 648 | </details> |
| 649 | |
| 650 | <details> |
| 651 | <summary><strong>Reconciled credits — earlier contributors restored to the record</strong></summary> |
| 652 | |
| 653 | A credit-reconciliation pass mapped every shipped commit author to a GitHub |
| 654 | handle and found these contributors whose merged work was not yet listed here or |
| 655 | in the changelog. Restoring them with thanks — every one shipped real code. |
| 656 | |
| 657 | - **[MoriTang](https://github.com/MoriTang)** — account balance status-bar item, with a request timeout, reused HTTP client, stale-balance-on-failure handling, and DeepSeek-gated display |
| 658 | - **[mars-base](https://github.com/mars-base)** — session title shown in the composer border and `gh` discovery across common install paths (#836) |
| 659 | - **[Giggitycountless](https://github.com/Giggitycountless)** — auto-add `.deepseek/` to `.gitignore`, gitignore-check robustness, and `/clear` resetting the Todos panel |
| 660 | - **[Inference1](https://github.com/Inference1)** — vLLM provider support, README pricing/structure clarity, and the Model Studio reasoning route guard: a fail-closed host check so Alibaba's `enable_thinking` never reaches a custom gateway, plus catching that Codewhale was sending a disable switch to the always-thinking `qwen3.8-max` (#737, #776, #5233) |
| 661 | - **[membphis](https://github.com/membphis)** — bordered Markdown table rendering and Shift+Enter newline in the composer (#801) |
| 662 | - **[JasonOA888](https://github.com/JasonOA888)** — `web_run` network-policy enforcement and refusing to snapshot `$HOME` (#798, #800) |
| 663 | - **[tuohai666](https://github.com/tuohai666)** — recursive skills-directory reading plus hook-dispatch and approval-branch test coverage (#811) |
| 664 | - **[xuezhaoyu](https://github.com/xuezhaoyu)** — DEC 2026 synchronized-update flicker fix for GPU terminals, guaranteeing `END_SYNC_UPDATE` even when a draw fails |
| 665 | - **[manaskarra](https://github.com/manaskarra)** — global `~/.deepseek/AGENTS.md` fallback loading (#1157) |
| 666 | - **[gerryqi](https://github.com/gerryqi)** — wrap fire-and-forget `spawn_blocking` calls with a panic dump (#810) |
| 667 | - **[ccomma](https://github.com/ccomma)** — skip snapshots for dangerous workspaces (#804) |
| 668 | - **[AGSaturn](https://github.com/AGSaturn)** — preserve requested model-ID casing in registry resolution (#733) |
| 669 | - **[wucm667](https://github.com/wucm667)** — accept provider-prefixed DeepSeek model IDs (#794) |
| 670 | - **[quentin-lian](https://github.com/quentin-lian)** — portable-pty 0.9 upgrade for LoongArch64 support (#1992) |
| 671 | - **[Beltran12138](https://github.com/Beltran12138)** — treat `deepseek-chat` / `deepseek-reasoner` aliases as reasoning models |
| 672 | - **[chuntseevolving](https://github.com/chuntseevolving)** — send `TurnStarted` before snapshot to prevent WSL2 timeout |
| 673 | - **[lawrencewzen](https://github.com/lawrencewzen)** — preserve UTF-8 while stripping ANSI |
| 674 | - **[hhhaiai](https://github.com/hhhaiai)** — keep workspace skills visible when the prompt budget truncates |
| 675 | - **[khalid-hungerstation](https://github.com/khalid-hungerstation)** — bundle the delegate skill alongside skill-creator |
| 676 | - **[Anyexyz](https://github.com/Anyexyz)** — GitHub Actions workflow to sync with the CNB repo |
| 677 | - **[nightfallsad](https://github.com/nightfallsad)** — clearer `/continue` hint copy |
| 678 | - **[zxyasfas](https://github.com/zxyasfas)** — align Rust MSRV references with the workspace (#739) |
| 679 | |
| 680 | _A follow-up audit of harvested commits (work reimplemented onto a maintainer |
| 681 | branch rather than merged) surfaced contributors whose machine-readable credit |
| 682 | was dropped. Restoring them here — every one shipped real code:_ |
| 683 | |
| 684 | - **[CrepuscularIRIS](https://github.com/CrepuscularIRIS)** — OpenHarmony→Linux npm binary mapping, O(1) job-panel refresh, file-mention UTF-8 boundary safety, Kitty keyboard protocol on Windows, and auto low-motion under Termius/SSH (#1479, #1483, #1494, #1495, #1499, #1475) |
| 685 | - **[MMMarcinho](https://github.com/MMMarcinho)** — `image_analyze` vision tool (#1467) |
| 686 | - **[MeAiRobot](https://github.com/MeAiRobot)** — toast-stack overlay z-order fix (#1485) |
| 687 | - **[NorethSea](https://github.com/NorethSea)** — `update` refreshing the sibling TUI binary (#1492) |
| 688 | - **[SamhandsomeLee](https://github.com/SamhandsomeLee)** — bundled |
| 689 | v4-best-practices skill (#1448) and input-budget-aware compaction trigger |
| 690 | (#4293) |
| 691 | - **[YaYII](https://github.com/YaYII)** — opt-in `/translate` command (#1462) |
| 692 | - **[sandofree](https://github.com/sandofree)** — Tavily and Bocha `web_search` backends (#1294) |
| 693 | - **[tiger-dog](https://github.com/tiger-dog)** — approval one-line banner and Markdown underscore handling (#1455) |
| 694 | - **[Jianfengwu2024](https://github.com/Jianfengwu2024)** — preserving MSVC toolchain vars in the child environment (#1487) |
| 695 | - **[wplll](https://github.com/wplll)** — prompt-cache warmup keys, tool-catalog handling, a dedup test, and pack ordering (#2390, #2391, #2392, #2393) |
| 696 | |
| 697 | Additional harvested PRs from the same audit, credited to contributors already |
| 698 | listed above: **[axobase001](https://github.com/axobase001)** (#2400, #2405, #2406, #2407, #2408, #2415), **[cyq1017](https://github.com/cyq1017)** (#2516, #2534, #2540), **[Oliver-ZPLiu](https://github.com/Oliver-ZPLiu)** (#1451, #1456), **[reidliu41](https://github.com/reidliu41)** (#1444, #1493), **[lucaszhu-hue](https://github.com/lucaszhu-hue)** (#1436, #2343), **[h3c-hexin](https://github.com/h3c-hexin)** (#1480), **[Duducoco](https://github.com/Duducoco)** (#1345), **[zhuangbiaowei](https://github.com/zhuangbiaowei)** (#1416), **[wdw8276](https://github.com/wdw8276)** (#1498), and **[buko](https://github.com/buko)** (#2377). |
| 699 | |
| 700 | _A further machine-credit pass restored these contributors, missing from both the |
| 701 | list above and the contribution graph (AUTHOR_MAP entries added; logins/IDs |
| 702 | verified against the GitHub user API) — every one shipped real code:_ |
| 703 | |
| 704 | - **[1Git2Clone](https://github.com/1Git2Clone)** — `Ctrl+P`/`Ctrl+N` slash-menu navigation |
| 705 | - **[rockeverm3m](https://github.com/rockeverm3m)** — community ACP adapter reference in the docs |
| 706 | - **[hxy91819](https://github.com/hxy91819)** — stable MCP tool ordering for prefix-cache stability (#1319) |
| 707 | - **[heloanc](https://github.com/heloanc)** — Home/End keys moving the cursor in the input box (#1246) |
| 708 | |
| 709 | </details> |
| 710 | |
| 711 | --- |
| 712 | |
| 713 | Missed someone? Open an issue or PR — credit is kept current, and names are happily added. See [CONTRIBUTING.md](../CONTRIBUTING.md) to get started. |
| 714 |