| 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.10.0 — redesigned workbench, session recovery, and runtime surfaces</strong></summary> |
| 32 | |
| 33 | **Merged or adapted contributions** |
| 34 | |
| 35 | - **[AdityaVG13](https://github.com/AdityaVG13)** — composer wrapping, pasted/editor draft history, painted-column transcript copying, tab/caret placement, explicit terminal foregrounds, and headless user-input tool availability ([#6363](https://github.com/Hmbown/Codewhale/pull/6363), [#6365](https://github.com/Hmbown/Codewhale/pull/6365)); both PRs merged with their original ancestry. |
| 36 | - **[aboimpinto](https://github.com/aboimpinto)** — moved the TUI session-export slice onto shared command contracts (FEAT-025): a session-export contract facet with one shared sanitizer, `/export` routed through the facet, pinned with baseline-captured goldens and gates ([#6096](https://github.com/Hmbown/Codewhale/pull/6096)). |
| 37 | |
| 38 | **Reports and reproductions** |
| 39 | |
| 40 | - **[BX166](https://github.com/BX166)** — contributed the AICraft provider template and its documentation ([#6171](https://github.com/Hmbown/Codewhale/pull/6171)). The PR was closed unmerged, but it is what surfaced the decision to stop special-casing named OpenAI-compatible hosts and make them ordinary providers ([#6289](https://github.com/Hmbown/Codewhale/issues/6289)); its base URL and key env carry into that work. |
| 41 | - **[7jrxt42BxFZo4iAnN4CX](https://github.com/7jrxt42BxFZo4iAnN4CX)** — reported the session-retention defects behind archive-past-the-cap and empty-session cap occupancy ([#6136](https://github.com/Hmbown/Codewhale/issues/6136), [#6137](https://github.com/Hmbown/Codewhale/issues/6137)), the resume-failure design behind durable transcript errors ([#6138](https://github.com/Hmbown/Codewhale/issues/6138)), and the gaps behind the opt-in approval timeout ([#6101](https://github.com/Hmbown/Codewhale/issues/6101)), `codewhale exec --hooks` ([#6099](https://github.com/Hmbown/Codewhale/issues/6099)), Markdown drag-copy ([#6156](https://github.com/Hmbown/Codewhale/issues/6156)), and the browsable, current-aware session picker ([#6014](https://github.com/Hmbown/Codewhale/issues/6014)); the goal token-budget hard stop ([#6013](https://github.com/Hmbown/Codewhale/issues/6013)) and the fleet no-progress guard shared with child workers ([#6015](https://github.com/Hmbown/Codewhale/issues/6015)) landed as first slices of two larger proposals, and the runtime-store session refusal ([#6207](https://github.com/Hmbown/Codewhale/issues/6207)) stays open after the first fix was reverted on a race. |
| 42 | - **[Lstarsky0](https://github.com/Lstarsky0)** — reported TUI tests reading machine state instead of hermetic fixtures; the `lock_test_env` remedy from that report shaped two more hermetic fixes for shared UI fixtures and the compaction budget test ([#5359](https://github.com/Hmbown/Codewhale/issues/5359)). |
| 43 | - **[Lujc0523](https://github.com/Lujc0523)** — reported `/hooks edit` splitting keystrokes between the editor and the composer, fixed by pausing the TUI input pump inside the editor handoff ([#6165](https://github.com/Hmbown/Codewhale/issues/6165)). |
| 44 | - **[Statter](https://github.com/Statter)** — reported the Gemini `/models` failure that now surfaces the provider's reason instead of an empty error ([#6173](https://github.com/Hmbown/Codewhale/issues/6173)). |
| 45 | - **[sequico](https://github.com/sequico)** — reported the ACP `session/new` ids that `session/load` could not resolve, fixed by minting resolvable session ids ([#6174](https://github.com/Hmbown/Codewhale/issues/6174)). |
| 46 | - **[bevis-wong](https://github.com/bevis-wong)** — reported the mid-run engine freeze behind the bounded turn-end foreground-child join, and the resume path that re-ran identical tool-call repair on every load instead of persisting it ([#6184](https://github.com/Hmbown/Codewhale/issues/6184), [#6185](https://github.com/Hmbown/Codewhale/issues/6185)). |
| 47 | |
| 48 | </details> |
| 49 | |
| 50 | <details open> |
| 51 | <summary><strong>v0.9.13 — paste integrity, dispatch safety, and the Computer Use bundle</strong></summary> |
| 52 | |
| 53 | **Merged or adapted contributions** |
| 54 | |
| 55 | - **[nightt5879](https://github.com/nightt5879)** — added bounded Gemini signature recovery guidance and streaming/non-streaming gateway transport regressions ([#6081](https://github.com/Hmbown/Codewhale/pull/6081)). |
| 56 | - **[c020627](https://github.com/c020627)** — repaired translated contributor-guide and Windows screenshot links ([#6080](https://github.com/Hmbown/Codewhale/pull/6080)). |
| 57 | - **[h3c-hexin](https://github.com/h3c-hexin)** — contributed full-fidelity session archives ([#6056](https://github.com/Hmbown/Codewhale/pull/6056)), GLM-5.3 reasoning controls and the model-facing documentation/tool-gating audit ([#6051](https://github.com/Hmbown/Codewhale/pull/6051), [#6052](https://github.com/Hmbown/Codewhale/pull/6052)). |
| 58 | - **[asto18089](https://github.com/asto18089)** — co-authored full-fidelity session archives ([#6056](https://github.com/Hmbown/Codewhale/pull/6056)), GLM-5.3 reasoning controls and tool-gating/documentation fixes ([#6051](https://github.com/Hmbown/Codewhale/pull/6051), [#6052](https://github.com/Hmbown/Codewhale/pull/6052)). |
| 59 | - **[Hmbown](https://github.com/Hmbown)** — updated JavaScript dependencies across the website, telemetry package and VS Code extension ([#6057](https://github.com/Hmbown/Codewhale/pull/6057)). |
| 60 | - **[gaord](https://github.com/gaord)** — contributed the file-scoped restore endpoint and trust-gated whole-tree rollback ([#6111](https://github.com/Hmbown/Codewhale/pull/6111)), Fleet schema inspection, role precedence and worker deliverable receipts, and linked the community VS Code frontend ([#5944](https://github.com/Hmbown/Codewhale/pull/5944), [#5945](https://github.com/Hmbown/Codewhale/pull/5945), [#5946](https://github.com/Hmbown/Codewhale/pull/5946), [#5992](https://github.com/Hmbown/Codewhale/pull/5992)). |
| 61 | - **[goransh-walia](https://github.com/goransh-walia)** — contributed the propose-only commit-planning rework ([#5870](https://github.com/Hmbown/Codewhale/pull/5870)). |
| 62 | - **[7jrxt42BxFZo4iAnN4CX](https://github.com/7jrxt42BxFZo4iAnN4CX)** — documented turn budgets and goal configuration, and reported gaps in command discovery, Fleet navigation, human waits, state hooks, history and provider routing ([#5996](https://github.com/Hmbown/Codewhale/pull/5996), [#5952](https://github.com/Hmbown/Codewhale/issues/5952), [#5954](https://github.com/Hmbown/Codewhale/issues/5954), [#6003](https://github.com/Hmbown/Codewhale/issues/6003), [#6004](https://github.com/Hmbown/Codewhale/issues/6004), [#6006](https://github.com/Hmbown/Codewhale/issues/6006), [#6007](https://github.com/Hmbown/Codewhale/issues/6007)). |
| 63 | - **[SparkofSpike](https://github.com/SparkofSpike)** — contributed two-stage consent for opting out of model-bound credential redaction and session titles derived from real user prompts instead of runtime handoffs ([#5982](https://github.com/Hmbown/Codewhale/pull/5982), [#6012](https://github.com/Hmbown/Codewhale/pull/6012)). |
| 64 | - **[aboimpinto](https://github.com/aboimpinto)** — moved session lifecycle and session-control commands onto shared command contracts ([#5902](https://github.com/Hmbown/Codewhale/pull/5902), [#5951](https://github.com/Hmbown/Codewhale/pull/5951)). |
| 65 | - **[EvanProgramming](https://github.com/EvanProgramming)** — reported Windows input and CRLF-write defects, and contributed CRLF preservation and an injectable Windows input runner ([#5908](https://github.com/Hmbown/Codewhale/issues/5908), [#5909](https://github.com/Hmbown/Codewhale/issues/5909), [#5910](https://github.com/Hmbown/Codewhale/pull/5910), [#5911](https://github.com/Hmbown/Codewhale/pull/5911), [#5912](https://github.com/Hmbown/Codewhale/pull/5912)). |
| 66 | - **[wuisabel-gif](https://github.com/wuisabel-gif)** — exposed workspace file suggestions through the Runtime API ([#6120](https://github.com/Hmbown/Codewhale/pull/6120)) and added custom-theme discovery, preview and selection in the theme picker ([#5907](https://github.com/Hmbown/Codewhale/pull/5907)). |
| 67 | - **[zhuowp](https://github.com/zhuowp)** — matched model-visible shell guidance to the interpreter selected for execution ([#5900](https://github.com/Hmbown/Codewhale/pull/5900)). |
| 68 | - **[googio](https://github.com/googio)** — added the opt-in Serply web-search provider ([#6100](https://github.com/Hmbown/Codewhale/pull/6100)). |
| 69 | |
| 70 | **Reports and reproductions** |
| 71 | |
| 72 | - **[Hmbown](https://github.com/Hmbown)** — identified missing recovery guidance when a compatible gateway rejects Gemini tool-call replay without thought signatures ([#6048](https://github.com/Hmbown/Codewhale/issues/6048)). |
| 73 | - **[7jrxt42BxFZo4iAnN4CX](https://github.com/7jrxt42BxFZo4iAnN4CX)** — proposed global usage and tool diagnostics and independent goal verification ([#6011](https://github.com/Hmbown/Codewhale/issues/6011), [#6013](https://github.com/Hmbown/Codewhale/issues/6013)); these broader requests remain open. |
| 74 | - **[nsfoxer](https://github.com/nsfoxer)** — reported the multiline-paste regression and incomplete provider model lists ([#5981](https://github.com/Hmbown/Codewhale/issues/5981), [#6009](https://github.com/Hmbown/Codewhale/issues/6009)). |
| 75 | - **[Nefelibata1024](https://github.com/Nefelibata1024)** — confirmed the multiline-paste regression's impact ([#5981](https://github.com/Hmbown/Codewhale/issues/5981)). |
| 76 | - **[Gabriel-Degret](https://github.com/Gabriel-Degret)** — reported the loss of the allow_insecure_http provider setting and that saved agent profiles were silently ignored when spawning sub-agents ([#5991](https://github.com/Hmbown/Codewhale/issues/5991), [#6117](https://github.com/Hmbown/Codewhale/issues/6117)). |
| 77 | - **[LmeSzinc](https://github.com/LmeSzinc)** — requested Runtime API access to the TUI fuzzy file search ([#6095](https://github.com/Hmbown/Codewhale/issues/6095)). |
| 78 | - **[dmt4](https://github.com/dmt4)** — requested Linux copy-on-select and middle-click paste ([#6116](https://github.com/Hmbown/Codewhale/issues/6116)). |
| 79 | - **[Lujc0523](https://github.com/Lujc0523)** — reported the ACP initialize schema violation affecting strict IDE clients ([#5969](https://github.com/Hmbown/Codewhale/issues/5969)). |
| 80 | - **[mo-vic](https://github.com/mo-vic)** — proposed storing evicted context on disk so it can be retrieved later ([#6008](https://github.com/Hmbown/Codewhale/issues/6008)). |
| 81 | - **[giancarlocp](https://github.com/giancarlocp)** — requested a plugin authoring guide and OpenCode plugin conversion ([#5827](https://github.com/Hmbown/Codewhale/discussions/5827)). |
| 82 | - **[hxfhd](https://github.com/hxfhd)** — supplied a Windows reproduction of a turn stopping before its stated next tool action ([#6010](https://github.com/Hmbown/Codewhale/discussions/6010)). |
| 83 | |
| 84 | </details> |
| 85 | |
| 86 | <details open> |
| 87 | <summary><strong>v0.9.12 — native search, live token truth, and runtime surfaces</strong></summary> |
| 88 | |
| 89 | **Merged or adapted contributions** |
| 90 | |
| 91 | - **[hexin / h3c-hexin](https://github.com/h3c-hexin)** — provider-native web |
| 92 | search across four routes: the DeepSeek adapter (#5683), Z.AI and BigModel |
| 93 | (#5685), and Xiaomi MiMo (#5687), each fail-closed for undocumented models, |
| 94 | plus the constraint enforcement that runs before any fallback (#5682); also |
| 95 | authoritative edit-last-turn boundaries (#5621), Kimi Code k3-256k support |
| 96 | (#5622), post-compaction input-token reporting (#5623), and preserving the |
| 97 | scheduled model selection in automations (#5650) |
| 98 | - **[Isabel Wu / wuisabel-gif](https://github.com/wuisabel-gif)** — live |
| 99 | session token totals (#5624), persisted context-pressure warnings (#5629), |
| 100 | discoverable Fleet roster editing (#5604), the capability-gated cursor |
| 101 | accent (#5599), and `/copy` for the latest completed response (#5692) |
| 102 | - **[Paulo Aboim Pinto / aboimpinto](https://github.com/aboimpinto)** — |
| 103 | preserved Windows verbatim-path operands through POSIX word splitting |
| 104 | (#5610), moved the plugins group onto the command shapes (#5657), built |
| 105 | FEAT-022 skills command shapes with retained-host validation (#5825), and |
| 106 | re-landed FEAT-020 plugin command shapes on main (#5865) |
| 107 | - **[Alex Musichen / musichen](https://github.com/musichen)** — fixed the |
| 108 | configured-view DeepSeek model picker so it shows a stable DeepSeek heading |
| 109 | and keeps every official catalog model for the active provider visible |
| 110 | (#5689) |
| 111 | - **[gaord](https://github.com/gaord)** — added the `GET /v1/fleet/profiles` |
| 112 | runtime API endpoint, reusing the FleetManager validation path (#5688) |
| 113 | - **[Sh1Zuku / SparkofSpike](https://github.com/SparkofSpike)** — corrected |
| 114 | English documentation inaccuracies and contributed the first zh_hans |
| 115 | translations for the Tier-2 docs (#5613) |
| 116 | - **[M-Maciej](https://github.com/M-Maciej)** — goal continuation cadence fix |
| 117 | (#5591) and the per-session control socket (#5533, #5831) |
| 118 | - **[Serephus / serephus](https://github.com/serephus)** — nixpkgs update |
| 119 | (#5669) |
| 120 | - **[秋月凉梦 / qiuYliangM](https://github.com/qiuYliangM)** — co-authored the |
| 121 | authoritative edit-last-turn boundaries (#5621), Kimi Code k3-256k support |
| 122 | (#5622), and post-compaction input-token reporting (#5623) |
| 123 | - **[whp233](https://github.com/whp233)** — `wire = responses|anthropic` for |
| 124 | openai-compatible custom routes and opencode-zen muse-spark (#5716, landed |
| 125 | as #5719) |
| 126 | - **[Gabriel Degret / Gabriel-Degret](https://github.com/Gabriel-Degret)** — |
| 127 | found the reasoning-only retry gap and built the first fix; landed as the |
| 128 | `[reasoning_only]` retry ceiling with a request-scoped nudge (#5867) |
| 129 | - **[huangxianzhan](https://github.com/huangxianzhan)** — the |
| 130 | `x-opencode-session` header for OpenCode Go and Zen gateways (#5868) |
| 131 | - **[zhuowp](https://github.com/zhuowp)** — task origin preserved in job |
| 132 | snapshots (#5869) |
| 133 | - **[AdityaG / AdityaVG13](https://github.com/AdityaVG13)** — a ten-commit |
| 134 | performance pass across the TUI and config: zero-copy LaTeX streaming, |
| 135 | single-pass token accounting, memoized provider resolution, once-per-process |
| 136 | models.dev catalog parsing (interactive boot -70%), adaptive shell-completion |
| 137 | poll cadence, and diagnostic worker caps |
| 138 | - **[Nightt / nightt5879](https://github.com/nightt5879)** — isolated remote |
| 139 | recovery lease generations (#5790) |
| 140 | - **[yiheng-kkk](https://github.com/yiheng-kkk)** — replaced stale todo |
| 141 | transcript snapshots so a rewritten todo list renders its current tasks |
| 142 | (#5871, #5873) |
| 143 | - **[Lfanxing](https://github.com/Lfanxing)** — Moonshot routes degrade |
| 144 | incompatible tool definitions per request instead of failing the turn |
| 145 | - **[WissssleyL / Lstarsky0](https://github.com/Lstarsky0)** — moved |
| 146 | `docs/subagents` and `docs/mcp` onto the dictionary spine (#5337), with the |
| 147 | metaTitle probe that keeps them there |
| 148 | |
| 149 | **Reports and reproductions** |
| 150 | |
| 151 | - **[slowly247](https://github.com/slowly247)** — reported the Ollama input |
| 152 | budget collapsing to 1,024 tokens on 32K local models (#5820) |
| 153 | - **[ronohara](https://github.com/ronohara)** — reported the engine stopping |
| 154 | after recoverable network errors and reproduced the discarded approval (#5769) |
| 155 | - **[Lujc0523](https://github.com/Lujc0523)** — asked for ACP session mode and |
| 156 | model configuration (#5863) |
| 157 | - **[senka9h](https://github.com/senka9h)** — reported the missing ACP |
| 158 | `session/list` and `session/load` methods (#5864) |
| 159 | </details> |
| 160 | |
| 161 | <details> |
| 162 | <summary><strong>v0.9.11 — portable command surfaces and turn-loop structure</strong></summary> |
| 163 | |
| 164 | **Merged or adapted contributions** |
| 165 | |
| 166 | - **[Sun Zhenyuan / bistack](https://github.com/bistack)** — extracted tool-call |
| 167 | planning, execution, and result processing from the turn loop while preserving |
| 168 | the existing sandbox-policy, hook, budget, and batch-execution behavior |
| 169 | (#5523) |
| 170 | - **[Isabel Wu / wuisabel-gif](https://github.com/wuisabel-gif)** — added |
| 171 | bounded, workspace-relative multi-file diagnostics to the existing model- |
| 172 | visible `lsp` tool, reusing the shared transport pool without expanding the |
| 173 | 75-tool catalog (#5524) |
| 174 | - **[Paulo Aboim Pinto / aboimpinto](https://github.com/aboimpinto)** — added |
| 175 | portable presentation, media-attachment, and operation-digest facets to the |
| 176 | command contract, then moved all seven utility command handlers onto the |
| 177 | contract-backed dispatch path (#5525) |
| 178 | |
| 179 | **Reviewed overlap** |
| 180 | |
| 181 | - **[Lstarsky0](https://github.com/Lstarsky0)** — reviewed #5524 and identified |
| 182 | the closed-channel, severity-filtering, and truncation-receipt gaps covered by |
| 183 | the maintainer hardening pass. |
| 184 | - Isabel Wu's PR #5530 independently routed the legacy plural completion |
| 185 | command through the public CLI generator. Equivalent behavior, including the |
| 186 | published `codew` alias registration, had already landed in the integration |
| 187 | lane, so the PR is recorded here as reviewed project work rather than counted |
| 188 | as a second merged contribution. |
| 189 | |
| 190 | **Reports and reproductions** |
| 191 | |
| 192 | - **[RepentStar](https://github.com/RepentStar)** — reported the stale shell- |
| 193 | completion generator and missing `codew` registration that led to the |
| 194 | completion fixes and upgrade guidance in #5526. |
| 195 | |
| 196 | </details> |
| 197 | |
| 198 | <details> |
| 199 | <summary><strong>v0.9.10 — retention, identity, and durable approvals</strong></summary> |
| 200 | |
| 201 | **Merged or adapted contributions** |
| 202 | |
| 203 | - **[Sh1Zuku / SparkofSpike](https://github.com/SparkofSpike)** — restored |
| 204 | `/title` as an independent, persistent terminal-window title in PR #5509, |
| 205 | and contributed the Tier 1 Chinese and Indonesian documentation move to |
| 206 | `docs/zh_hans/` and `docs/id/` with one-release redirect stubs (#5507, |
| 207 | epic #5482) |
| 208 | - **[Sun Zhenyuan / bistack](https://github.com/bistack)** — extracted the |
| 209 | turn-loop stream processor in PR #5514 while preserving retry, |
| 210 | cancellation, usage, TTFT, steering, and partial-response behavior |
| 211 | - **[OctoBored](https://github.com/OctoBored)** — supplied the working |
| 212 | no-token Star History mirror used by the localized README set after the |
| 213 | canonical chart endpoint began returning a restricted placeholder (#5510) |
| 214 | - **[cacdcaecawae](https://github.com/cacdcaecawae)** — added provider-neutral |
| 215 | typed MCP image forwarding in PR #5515; the adapted version also emits a |
| 216 | visible omission receipt for malformed image fields |
| 217 | - **[cyq1017](https://github.com/cyq1017)** — approval outcomes are persisted |
| 218 | before execution can proceed: receipts commit to a session-owned log first, |
| 219 | unpersistable evidence blocks the tool, stale decisions are rejected, and |
| 220 | resume reconstructs closed and interrupted approvals (#5491, closes #5360) |
| 221 | - **[aboimpinto](https://github.com/aboimpinto)** — the TUI-owned |
| 222 | dependency-injection and migration infrastructure behind safe slash-command |
| 223 | extraction: seven capability facets, a dual-path dispatch seam, and |
| 224 | source-aware CI enforcement so a command slice cannot claim migration while |
| 225 | it still accepts concrete `App` (#5506, EPIC-005/FEAT-015 under the #5316 |
| 226 | umbrella they filed) |
| 227 | - **[wuisabel-gif](https://github.com/wuisabel-gif)** — the TUI header now |
| 228 | names the active repository or linked worktree before the branch and dirty |
| 229 | marker, derived from Git's common directory and capped by shell density |
| 230 | tier (#5511, the repo/worktree slice of #5437) |
| 231 | - **[Lstarsky0](https://github.com/Lstarsky0)** — `docs/hooks` and |
| 232 | `docs/troubleshooting` move onto the dictionary spine, retiring their inline |
| 233 | bilingual literals in favor of locale dictionaries with token-aware code |
| 234 | spans (#5504, closes #5337 they filed) |
| 235 | |
| 236 | **Reports, reproductions, and verification** |
| 237 | |
| 238 | - **[DingYong4223](https://github.com/DingYong4223)** — reported the |
| 239 | narrow-terminal completion truncation closed by the bounded hover reveal |
| 240 | (#998) |
| 241 | - **[AiurArtanis](https://github.com/AiurArtanis)** and |
| 242 | **[formp3](https://github.com/formp3)** — identified the completion surfaces |
| 243 | affected by narrow-terminal truncation (#998) |
| 244 | - **[sky-sun-moon](https://github.com/sky-sun-moon)** — reported the missing |
| 245 | full per-turn input, reasoning, tool, and assistant pages that shaped Turn |
| 246 | Inspector navigation (#1682) |
| 247 | - **[cy2311](https://github.com/cy2311)** — reported the Windows launch path |
| 248 | now covered by the Windows Terminal-aware batch launcher (#1854) |
| 249 | - **[demian-welt](https://github.com/demian-welt)** — provided the reproducible |
| 250 | pre-header SSE transport failure behind the bounded HTTP/1.1 retry (#4683) |
| 251 | - **[BrathonBai](https://github.com/BrathonBai)** — reported the Tabby/CJK IME |
| 252 | candidate-window jump that led to the cursor hide-diff-position-show |
| 253 | transaction (#5023) |
| 254 | - **[M-Maciej](https://github.com/M-Maciej)** — provided the organization- |
| 255 | coordinator use case and 5-30 minute cadence requirement behind cancellable |
| 256 | cross-turn goal delays (#5508) |
| 257 | - **[thejayjetson](https://github.com/thejayjetson)** — the header |
| 258 | status-indicator report that pinned the regression to a specific setting, |
| 259 | having already ruled out every value, both themes, `fancy_animations`, the |
| 260 | terminal auto-off rules, and a clean `codewhale doctor` (#5512) |
| 261 | - **[hxfhd](https://github.com/hxfhd)** — reported the deterministic |
| 262 | cross-session contamination class behind this release's session-ownership |
| 263 | boundary, plus route budgeting evidence (#5518) |
| 264 | - **[sfdzhmr](https://github.com/sfdzhmr)** — reported the route budgeting |
| 265 | root causes that exact route-limit propagation now closes (#5516) |
| 266 | |
| 267 | </details> |
| 268 | |
| 269 | <details> |
| 270 | <summary><strong>v0.9.9 — truth and resilience</strong></summary> |
| 271 | |
| 272 | **Merged or adapted contributions** |
| 273 | |
| 274 | - **[h3c-hexin](https://github.com/h3c-hexin)** — a concrete route/offering |
| 275 | output limit now outranks the conservative 8,192-token compatibility guess |
| 276 | for an uncatalogued model; routes that publish no limit stay fail-closed |
| 277 | (#5461, closes #5460); every web tool surface uses the noisy-result soft |
| 278 | limit (#5474); lowercase saved selectors resolve against the owning |
| 279 | Z.ai/DeepSeek catalog row (#5475); configured-skill prompt paths remain |
| 280 | stable across ephemeral roots and operating systems (#5492, #5473) |
| 281 | - **[Gabriel-Degret](https://github.com/Gabriel-Degret)** — configurable |
| 282 | auto-router classifier timeout (#5494; first contribution) |
| 283 | |
| 284 | **Reports, reproductions, and verification** |
| 285 | |
| 286 | - **[asto18089](https://github.com/asto18089)** — diagnosed the Z.ai `glm-5.2` |
| 287 | casing collision and wrote the first provider-scoped fix downstream |
| 288 | (Pinvou/CodeWhale#14, carried upstream in #5475) |
| 289 | |
| 290 | - **[hardy922](https://github.com/hardy922)** — the context-window honesty |
| 291 | report that became the every-surface labeling pass (#5239) |
| 292 | - **[redstar](https://github.com/redstar)** — bwrap container essentials and |
| 293 | configurable extra roots (#5410) |
| 294 | - **[all-lopezg](https://github.com/all-lopezg)** — SSE UTF-8 garbling on |
| 295 | DeepSeek Flash with screenshots, fixed fail-closed in every dialect (#5374) |
| 296 | - **[alitvak69](https://github.com/alitvak69)** — the unverified-live-pricing |
| 297 | report behind the bundled fallback rates and DeepSeek V4 tiers (#5241) |
| 298 | - **[wuisabel-gif](https://github.com/wuisabel-gif)** — bounded reproduction |
| 299 | attempts for the macOS filtered-suite hang note on #5056 |
| 300 | |
| 301 | </details> |
| 302 | |
| 303 | <details> |
| 304 | <summary><strong>v0.9.8 — marketplace, Google, Ollama Cloud</strong></summary> |
| 305 | |
| 306 | **Merged or adapted contributions** |
| 307 | |
| 308 | - **[EvanProgramming](https://github.com/EvanProgramming)** — webhook hook |
| 309 | sink no longer panics when its HTTP client fails to build (#5381); session-index |
| 310 | JSONL writes are serialized so concurrent stores cannot drop an append |
| 311 | (#5382) |
| 312 | - **[Lstarsky0](https://github.com/Lstarsky0)** — session peek hides internal |
| 313 | runtime events (#5376); thinking-ladder tests re-pinned (#5378); |
| 314 | provider-count follow-ups (#5383/#5384); macOS agy fixture |
| 315 | canonicalization (#5392); website zh-Hans 宪章 terminology (#5397); |
| 316 | regenerated website facts harvested and corrected so Google and Ollama |
| 317 | Cloud are listed and Antigravity is not advertised as a route (#5398) |
| 318 | - **[mvanhorn](https://github.com/mvanhorn)** — read-only, repository-fact |
| 319 | driven settings preview on the website models page (#5411, fixes #5370) |
| 320 | - **[buiducnhat](https://github.com/buiducnhat)** — canonical `ultra` |
| 321 | reasoning effort mapped to every provider's maximum tier (#5409); session |
| 322 | titles truncated by character count instead of byte offset so CJK and |
| 323 | emoji names cut at the intended width (#5415) |
| 324 | - **[SparkofSpike](https://github.com/SparkofSpike)** — `/title` and the |
| 325 | saved session name in the terminal tab/window title, plus the fix for the |
| 326 | deadlock when the title changed during an active turn; landed as a |
| 327 | discoverable alias of `/rename` on the one persisted session name (#5419) |
| 328 | - **[redstar](https://github.com/redstar)** — Eden AI registered as a named |
| 329 | OpenAI-compatible provider with `EDENAI_API_KEY`, `eden-ai`/`eden_ai` |
| 330 | aliases, and the global and EU endpoints (#5422) |
| 331 | - **[wuisabel-gif](https://github.com/wuisabel-gif)** — background verifier |
| 332 | test isolated from the rustup `rustc` shim and `$HOME`, one narrow |
| 333 | reliability slice of #5056 (#5423) |
| 334 | |
| 335 | </details> |
| 336 | |
| 337 | <details> |
| 338 | <summary><strong>v0.9.7 — the catalog stays ordinary</strong></summary> |
| 339 | |
| 340 | **Merged or adapted contributions** |
| 341 | |
| 342 | - **[XhesicaFrost](https://github.com/XhesicaFrost)** — copy from the message |
| 343 | context menu now takes canonical content, keeping authored Unicode, |
| 344 | Markdown, and hard line breaks in the clipboard while role glyphs, |
| 345 | continuation rails, and visual wrapping stay out of it (PR #5319) |
| 346 | - **[h3c-hexin](https://github.com/h3c-hexin)** — split durable-session |
| 347 | snapshot reads from crash recovery so an embedding host inspecting a |
| 348 | session while a tool is still running no longer gets a spurious crash |
| 349 | repair (PR #5320) |
| 350 | - **[XiaoHuo888-hue](https://github.com/XiaoHuo888-hue)** — OrcaRouter as a |
| 351 | first-class named provider with `ORCAROUTER_API_KEY`, auto-routing, |
| 352 | CLI `--provider` selection, and TUI picker entries (PR #5321) |
| 353 | |
| 354 | **Reports and verification** |
| 355 | |
| 356 | - **[USTHzhanglu](https://github.com/USTHzhanglu)** — reported the Auto-Review |
| 357 | shell/write regression with a Windows reproduction and audit-log evidence |
| 358 | (issue #5323) |
| 359 | - **[Lstarsky0](https://github.com/Lstarsky0)** — traced the Auto-Review |
| 360 | regression to the exact permission-posture change and documented the safe |
| 361 | recovery choices (issue #5323) |
| 362 | |
| 363 | </details> |
| 364 | |
| 365 | <details> |
| 366 | <summary><strong>v0.9.6 — fewer bumpers, truthful endings</strong></summary> |
| 367 | |
| 368 | **Merged or adapted contributions** |
| 369 | |
| 370 | - **[Xavier Pestel / xavierpestel-ai](https://github.com/xavierpestel-ai)** — |
| 371 | Mistral AI (la Plateforme) as a first-class provider route, including the |
| 372 | adjustable-reasoning wire contract and its multi-turn thinking replay |
| 373 | (PR #5295) |
| 374 | - **[Ben Younes / ousamabenyounes](https://github.com/ousamabenyounes)** — |
| 375 | inherited nested-agent depth cap, keeping child agents from widening the |
| 376 | budget provided by their parent (PR #5317) |
| 377 | - **[Rafael Cavalheri / rafaelcavalheri](https://github.com/rafaelcavalheri)** — |
| 378 | multi-round ACP file, search, Git, patch, and explicitly enabled shell tool |
| 379 | execution with cancellation and fail-closed shell safety (PR #5225) |
| 380 | |
| 381 | </details> |
| 382 | |
| 383 | <details> |
| 384 | <summary><strong>v0.9.5 — one runtime, managed controls, and uninterrupted turns</strong></summary> |
| 385 | |
| 386 | **Merged or adapted contributions** |
| 387 | |
| 388 | - **[Sh1Zuku / SparkofSpike](https://github.com/SparkofSpike)** — stale cached |
| 389 | session-title recovery so `New Session` yields to the first real prompt |
| 390 | - **[Paulo Aboim Pinto / aboimpinto](https://github.com/aboimpinto)** — the |
| 391 | shared alias-aware command discovery contract across the palette, slash |
| 392 | completion, dispatch, and acceptance harness |
| 393 | - **[Sun Zhenyuan / bistack](https://github.com/bistack)** — background |
| 394 | incremental MCP Registry refreshes that return the local snapshot immediately |
| 395 | - **[SKY ZHAO / skyzhao1223](https://github.com/skyzhao1223)** — prompt-based |
| 396 | `model = "auto"` tier selection in PR #5257 |
| 397 | |
| 398 | </details> |
| 399 | |
| 400 | <details> |
| 401 | <summary><strong>v0.9.4 — calmer output, recovery, and release hardening</strong></summary> |
| 402 | |
| 403 | **Merged or adapted contributions** |
| 404 | |
| 405 | - **[Sh1Zuku / SparkofSpike](https://github.com/SparkofSpike)** — LaTeX |
| 406 | rendering in PR #4981, circled-digit and keycap width handling in PR #5001, |
| 407 | and actionable File-edit recovery in PR #5008; sub-agent checkpoint resume |
| 408 | in PR #5242, real shell wait elapsed time in PR #5240, and keeping |
| 409 | alternate-scroll off while mouse capture is active in PR #5234 |
| 410 | - **[XhesicaFrost](https://github.com/XhesicaFrost)** — long Windows user-PATH |
| 411 | preservation in PR #5006 |
| 412 | - **[Paulo Aboim Pinto / aboimpinto](https://github.com/aboimpinto)** — the |
| 413 | user-command dispatch acceptance contract in PR #4992 |
| 414 | - **[shenjackyuanjie](https://github.com/shenjackyuanjie)** — Windows |
| 415 | OpenHarmony linker re-quoting for spaced SDK paths in PR #5095 |
| 416 | - **[bistack](https://github.com/bistack)** — MCP Registry discovery with |
| 417 | Registry-first tool selection in PR #5238 |
| 418 | - **[vFONGv](https://github.com/vFONGv)** — the zh-CN Windows beginner guide |
| 419 | with screenshots in PR #5229 |
| 420 | - **[mky](https://github.com/mky)** — FreeBSD build fix (`rquickjs` `bindgen` on FreeBSD, PR #5254) |
| 421 | - **[cacdcaecawae](https://github.com/cacdcaecawae)** — embedder-owned sub-agent state roots (PR #5252) |
| 422 | |
| 423 | **Reports, reproductions, and verification** |
| 424 | |
| 425 | - **[DracheTek](https://github.com/DracheTek)** — the multilingual, CRLF-heavy |
| 426 | File-edit failure report in issue #5003 |
| 427 | - **[An Ziwu / MuRongMoQing](https://github.com/MuRongMoQing)** — the Windows |
| 428 | PATH-overwrite defect report in issue #4685 |
| 429 | |
| 430 | </details> |
| 431 | |
| 432 | <details> |
| 433 | <summary><strong>v0.9.3 — DeepSeek Responses, canonical tools, and runtime hardening</strong></summary> |
| 434 | |
| 435 | - **[greyfreedom](https://github.com/greyfreedom)** (Turisla) — the documented |
| 436 | and tested authorization-order contract from PR #4980 |
| 437 | - **[nightt5879](https://github.com/nightt5879)** (Nightt) — foreground shell |
| 438 | detachment before steering from PR #4979 |
| 439 | - **[Watcher24](https://github.com/Watcher24)** — the macOS File Provider |
| 440 | sandbox report and reproduction in #4085 |
| 441 | - **[Fred Leitz / fleitz](https://github.com/fleitz)** — required |
| 442 | source-candidate credit for the canonical `Bash` no-`cwd` workspace fix and |
| 443 | regression in PR #4673 (issue #4674) |
| 444 | |
| 445 | </details> |
| 446 | |
| 447 | <details> |
| 448 | <summary><strong>v0.9.2 — routing, workflow, localization, and inspectability</strong></summary> |
| 449 | |
| 450 | - **[greyfreedom](https://github.com/greyfreedom)** — exact repository-scoped |
| 451 | allow grants and the cross-platform path-semantics repairs from PR #4761 |
| 452 | - **[nightt5879](https://github.com/nightt5879)** — off-event-loop terminal |
| 453 | clipboard writes (PR #4896), complete locale exposure in settings (PR #4856), |
| 454 | CRLF-safe edits (PR #4942), and automatic-routing reasoning preservation |
| 455 | (PR #4961) |
| 456 | - **[XhesicaFrost](https://github.com/XhesicaFrost)** — the configurable |
| 457 | session-token header from PR #4610 and context-menu hover alignment in PR #4897 |
| 458 | - **[cyq1017](https://github.com/cyq1017)** — the hooks configuration/executor |
| 459 | split from PR #4087 |
| 460 | - **[snail-vs](https://github.com/snail-vs)** (snailoniu) — OpenCode Zen's |
| 461 | model-aware route, authentication, documentation, and test-isolation work |
| 462 | from closed PR #4467, whose contributor commits are preserved in the |
| 463 | candidate |
| 464 | - **[Sh1Zuku / SparkofSpike](https://github.com/SparkofSpike)** — the zh-Hans |
| 465 | translation quality review harvested from PR #4908, duplicate-session fix in |
| 466 | PR #4963, LaTeX implementation from PR #4973 landed through #4974, and the |
| 467 | context-menu reproduction in #4803 |
| 468 | - **[GTC2080](https://github.com/GTC2080)** (TaoMu) — the `dryrun` concept |
| 469 | behind `/preview-request`: preview the next outbound request from the real |
| 470 | request-building seam rather than a hand-rolled summary (PR #1099, |
| 471 | harvested) |
| 472 | - **[h3c-hexin](https://github.com/h3c-hexin)** — the non-UTF-8 `fetch_url` |
| 473 | report and implementation direction harvested from PR #4909 |
| 474 | - **[Fred Leitz / fleitz](https://github.com/fleitz)** — required |
| 475 | source-candidate credit for the canonical `Bash` no-`cwd` workspace fix and |
| 476 | regression in PR #4673 (issue #4674) |
| 477 | - **[LmeSzinc](https://github.com/LmeSzinc)** — the Windows CRLF `edit_file` |
| 478 | reproduction, root-cause analysis, and affected-code anchors in issue #4764 |
| 479 | - **[atmosuwiryo](https://github.com/atmosuwiryo)** — ACP numeric-id |
| 480 | compatibility (PR #4929) and the Indonesian documentation and website locale |
| 481 | (PRs #4962 and #4972) |
| 482 | - **[M-Maciej](https://github.com/M-Maciej)** — the expanded-by-default |
| 483 | reasoning setting and report (PR #4928, issue #4925) |
| 484 | - **[raphamorim](https://github.com/raphamorim)** — migration of the QA PTY |
| 485 | frame parser to `rio-vt` (PR #4931) |
| 486 | - **[LI-Jialu](https://github.com/LI-Jialu)** — truthful finalization of stale |
| 487 | restored shell cells (PR #4937) |
| 488 | - **[kobihikri](https://github.com/kobihikri)** — release-container SBOM and |
| 489 | explicit provenance mode (PR #4958) |
| 490 | - **[EvanProgramming](https://github.com/EvanProgramming)**, |
| 491 | **[adity982](https://github.com/adity982)**, and |
| 492 | **[vibecoding-skills](https://github.com/vibecoding-skills)** — equivalent |
| 493 | fix direction for effective-home resolution (#4760), MCP call-once behavior |
| 494 | (#4756), and streaming/non-streaming timeout separation (#4743) |
| 495 | - **[antarikshraya](https://github.com/antarikshraya)** — the LaTeX transcript |
| 496 | rendering report in #4957 |
| 497 | - **[eugenicum](https://github.com/eugenicum)** — the token-header request and |
| 498 | output-presentation measurements in #4520 and #4468 |
| 499 | - **[whp233](https://github.com/whp233)** — the StepFun/OpenCode subscription |
| 500 | route request in #4526 |
| 501 | - **[redjade75723](https://github.com/redjade75723)** — stale resumed-workspace |
| 502 | diagnosis input from #4100 |
| 503 | - **[hardy922](https://github.com/hardy922)** — the native DeepSeek tool-token |
| 504 | visibility report in #3880 |
| 505 | - **[JayBeest](https://github.com/JayBeest)** — contributor-onboarding product |
| 506 | direction in #4227 |
| 507 | - **[elijahchan2019](https://github.com/elijahchan2019)** — the optional |
| 508 | reasoning-highlight request in #4089 |
| 509 | - **[cy2311](https://github.com/cy2311)** — sessions rail, archive, and |
| 510 | auto-resume direction in #2934 |
| 511 | - **[wywsoor](https://github.com/wywsoor)** — export/restore correlation |
| 512 | direction in #2494 |
| 513 | |
| 514 | </details> |
| 515 | |
| 516 | <details open> |
| 517 | <summary><strong>v0.9.1 — provider and runtime hardening</strong></summary> |
| 518 | |
| 519 | - **[h3c-hexin](https://github.com/h3c-hexin)** — calendar-anchored hourly |
| 520 | automation recurrence across DST and lifecycle transitions (PR #4381), |
| 521 | explicit limits for unknown local models (PR #4656 / #4655), and |
| 522 | idle-timeout progress telemetry (PR #4657) |
| 523 | - **[gaord](https://github.com/gaord)** — Runtime API provider registry and |
| 524 | atomic provider-switch endpoints (PR #4658) |
| 525 | - **[SamhandsomeLee](https://github.com/SamhandsomeLee)** — the unified |
| 526 | `/skills` root catalog, audit/provenance model, validated mutations, manager |
| 527 | UI, and acceptance coverage (PR #4679), plus Enter-send lag diagnosis and |
| 528 | fix direction for #4605 (PR #4654; landed through the release-lane |
| 529 | async-dispatch split) |
| 530 | - **[Paulo Aboim Pinto / aboimpinto](https://github.com/aboimpinto)** — the |
| 531 | Layer 5.1 user-command registry boundary from PR #3278; the exact authored |
| 532 | evidence commit from PR #4046, preserved intact in the integration graph; |
| 533 | and the #2870 follow-up audit whose metadata and malformed-sibling gaps |
| 534 | shaped the final corrections. Paulo also provided the structured, redacted |
| 535 | Agent Details and `current_activity` design direction preserved from |
| 536 | #2694/#2889 and the real-PTY lifecycle acceptance direction from #2886 |
| 537 | - **[baendlorel](https://github.com/baendlorel)** — TelecomJS TokenHub provider |
| 538 | and key-scoped live-catalog direction, source-partitioned refresh behavior, |
| 539 | and both refresh-order regressions from PR #4370, harvested into the current |
| 540 | provider architecture with co-authorship preserved |
| 541 | - **[zhangweiii](https://github.com/zhangweiii)** and |
| 542 | **[Sterne Lee / sternelee](https://github.com/sternelee)** — the original |
| 543 | first-class OpenCode Go implementations in PRs #773 and #1050, harvested |
| 544 | into the current provider architecture with co-authorship preserved in the |
| 545 | landing commit |
| 546 | - **[Sean Tse / seanthefuturegorilla](https://github.com/seanthefuturegorilla)** |
| 547 | — the canonical OpenCode Go/Zen provider request and acceptance direction in |
| 548 | #1481 |
| 549 | - **[nightt5879](https://github.com/nightt5879)** — `/debt` compatibility |
| 550 | aliases with dispatch-consistent user-command shadowing across help and |
| 551 | slash discovery (PR #4680), plus the Solarized Light background preservation |
| 552 | fix for the underwater shell (PR #4471) |
| 553 | - **[AiurArtanis](https://github.com/AiurArtanis)** — the Solarized Light |
| 554 | v0.9.0 regression report and reproduction (#4457) |
| 555 | - **[shenjackyuanjie](https://github.com/shenjackyuanjie)** — the HarmonyOS |
| 556 | workflow-js bindgen, portable-pty gating, and SDK environment work |
| 557 | (PR #4470) |
| 558 | - **[shenyongqing](https://github.com/shenyongqing)** — the original HarmonyOS |
| 559 | workflow-js bindgen approach (PR #4384), carried into the landed |
| 560 | implementation with credit |
| 561 | - **[Luis Mateus Vargas / luismateusvargas](https://github.com/luismateusvargas)** |
| 562 | — the Windows hook-process leak reproduction, process-tree analysis, and EOF |
| 563 | fix direction (#4489) |
| 564 | - **[redjade75723](https://github.com/redjade75723)** — the persistent Windows |
| 565 | PTY failure report that exposed lossy high-bit exit-status handling (#4100) |
| 566 | - **[w1w218](https://github.com/w1w218)** — the Windows ARM64 release request |
| 567 | and cross-compilation report that led to native release, npm, updater, and |
| 568 | archive support (#4267) |
| 569 | - **[Sh1Zuku / SparkofSpike](https://github.com/SparkofSpike)** — the Windows |
| 570 | Ctrl+O reproduction that exposed pre-pager result truncation and conflicting |
| 571 | composer shortcut routing (#4482) |
| 572 | - **[Lu Shihan / Angel-Hair](https://github.com/Angel-Hair)** — session-owned |
| 573 | read-before-edit tracking and the explicit, backwards-compatible |
| 574 | `apply_patch` replacement contract (PRs #4475 and #4476) |
| 575 | - **[dmitri-0](https://github.com/dmitri-0)** — configurable cache-hit |
| 576 | visibility in the phase strip (PR #4474) |
| 577 | - **[Fred Leitz / fleitz](https://github.com/fleitz)** — canonical `Bash` |
| 578 | no-`cwd` workspace resolution and its regression test, keeping isolated |
| 579 | sub-agent commands inside their selected worktree (PR #4673; issue #4674) |
| 580 | - **[Sh1Zuku / SparkofSpike](https://github.com/SparkofSpike)** — exact |
| 581 | Vim-space regression reproduction and verification that the v0.9.1 input |
| 582 | path already contains the needed global binding (PR #4477) |
| 583 | |
| 584 | </details> |
| 585 | |
| 586 | <details open> |
| 587 | <summary><strong>v0.9.0 — underwater shell, runtime persistence & release evidence</strong></summary> |
| 588 | |
| 589 | The v0.9.0 lane grew from a maintenance sweep into the underwater shell, |
| 590 | message-first Operate, broader Fleet and Workflow behavior, runtime-thread |
| 591 | persistence, terminal selection, UTF-8 handling, internationalization, and |
| 592 | release evidence. The reports and pull requests below materially shaped it. |
| 593 | |
| 594 | - **[Amuthan / amuthantamil](https://github.com/amuthantamil)** — approval-time |
| 595 | transcript review report that led to live Page Up/Down, modified-arrow, |
| 596 | Home/End, and mouse-wheel navigation while the decision card stays active |
| 597 | (#4371) |
| 598 | - **[Angel-Hair](https://github.com/Angel-Hair)** — reports that restored the |
| 599 | opt-in `remember` tool to the first-turn catalog, made required user |
| 600 | confirmation a real goal blocker, and added a clear recovery notice for |
| 601 | cached approval denials (#4373, #4374, #4375) |
| 602 | - **[Bruce / bruce6135](https://github.com/bruce6135)** — Kimi Coding Plan |
| 603 | reproduction that exposed the false 1K emergency-compaction budget (#4368) |
| 604 | - **[Matt Van Horn / mvanhorn](https://github.com/mvanhorn)** — first-turn |
| 605 | `remember` regression coverage and the Kimi output-budget correction that |
| 606 | prevents false emergency compaction (#4377, #4378) |
| 607 | - **[郝某人BH / hmr-BH](https://github.com/hmr-BH)** — native Simplified |
| 608 | Chinese review that replaced literal legal/doctrinal metaphors with clear |
| 609 | collaboration terminology across setup and `/constitution` (#4369) |
| 610 | - **[WavesMan](https://github.com/WavesMan)** — large-tree `@` completion |
| 611 | reproduction that led to bounded background discovery and exact-path |
| 612 | resolution on send (#4365) |
| 613 | - **[SamhandsomeLee](https://github.com/SamhandsomeLee)** — input-budget-aware |
| 614 | compaction work harvested from PR #4293 with co-authorship preserved |
| 615 | - **[idling11](https://github.com/idling11)** — keyboard-driven keyword search |
| 616 | for the docs and FAQ surfaces (PR #4364) |
| 617 | - **[LeoLin990405](https://github.com/LeoLin990405)** — initial bounded |
| 618 | workspace-walk approach and root-cause analysis for large-tree `@` mention |
| 619 | discovery (PR #4367), harvested into the final fail-soft background |
| 620 | implementation for #4365 |
| 621 | - **[octo-patch](https://github.com/octo-patch)** — MiniMax Messages provider |
| 622 | support for MiniMax-M3 and MiniMax-M2.7 across OpenAI-compatible and Messages |
| 623 | routes, regional endpoints, catalog metadata, pricing, and request coverage |
| 624 | (PR #4354) |
| 625 | - **[Wenshan Deng / findshan](https://github.com/findshan)** — original offline |
| 626 | token/cache/cost scorecard and regression gate (#3388), extended with |
| 627 | provider-aware provenance in #4335 |
| 628 | - **[hongqitai](https://github.com/hongqitai)** — localization extraction and |
| 629 | English-locale enforcement that keep UI copy on the typed translation path |
| 630 | (#4225, #4194) |
| 631 | - **[nsfoxer](https://github.com/nsfoxer)** — bounded, fail-soft MCP capability |
| 632 | discovery with advertised/legacy `tools/list` handling and Unicode-safe |
| 633 | description formatting (#4308, harvested with co-authorship) |
| 634 | - **[maple / yekern](https://github.com/yekern)** — root-cause analysis and fix |
| 635 | direction for age-evicting terminal worker records from long-lived |
| 636 | sub-agent state ledgers (#4217) |
| 637 | - **[moduvoice](https://github.com/moduvoice)** — Korean (ko) UI locale with |
| 638 | full key parity and onboarding/setup wiring (PR #4347) |
| 639 | - **[qinlinwang](https://github.com/qinlinwang)** — Anthropic tool-schema |
| 640 | sanitization for top-level oneOf/anyOf/allOf failures (PR #4346) |
| 641 | - **[knqiufan](https://github.com/knqiufan)** — Anthropic cache-write token |
| 642 | pricing at published rates (PR #4348, #4318) |
| 643 | - **[Chavdar Ivanov / ci4ic4](https://github.com/ci4ic4)** — NetBSD QuickJS |
| 644 | bindgen support for codewhale-workflow-js (PR #4349) |
| 645 | - **[eugenicum](https://github.com/eugenicum)** — copy-paste rail-pollution |
| 646 | report with code-aware fix direction (#4208) |
| 647 | - **[JayBeest](https://github.com/JayBeest)** — parent |
| 648 | `--disallowed-tools` inheritance through sub-agents and Fleet workers, |
| 649 | harvested from PR #4096 with authorship preserved (#4042) |
| 650 | - **[wuisabel-gif](https://github.com/wuisabel-gif)** — move runtime-thread |
| 651 | coordination onto `parking_lot::Mutex` to remove async lock contention |
| 652 | (#4243, #4149) |
| 653 | - **[cyq1017](https://github.com/cyq1017)** — Windows Python stdio UTF-8 |
| 654 | handling and richer active-tool summaries (#4281/#4202, #3818) |
| 655 | |
| 656 | - **[Jeffrey Luna / Mr-Moon121](https://github.com/Mr-Moon121)** — anti-polling |
| 657 | constitution for sub-agent waiting (harvested into #4097 / PR #4229 from |
| 658 | PR #4098) |
| 659 | |
| 660 | - **[MXAntian](https://github.com/MXAntian)** — persist compaction summaries |
| 661 | into thread records so `/v1` engine reloads keep compacted context (#4091) |
| 662 | - **[nightt5879](https://github.com/nightt5879)** — keep native terminal |
| 663 | selection usable when mouse capture is disabled, and advance fuzzy edit |
| 664 | matches on UTF-8 character boundaries; preserve inline skill task text in |
| 665 | PR #4372 (#4088, #4045, #3915) |
| 666 | - **[gaord](https://github.com/gaord)** — add the community-maintained |
| 667 | Codewhale for VS Code GUI frontend to the English and Chinese READMEs (#4035) |
| 668 | - **[Darrell Thomas](https://github.com/DarrellThomas)** — remove the unused |
| 669 | whale route taxonomy module and its dead tests (#4041) |
| 670 | - **[Taixin Guo](https://github.com/taixinguo)** — CJK fuzzy-edit panic report |
| 671 | and fix direction credited in the UTF-8 boundary patch (#3971, #4045) |
| 672 | - **[CCChisato](https://github.com/CCChisato)** — preserve task text when |
| 673 | sending dollar, unified-slash, and explicit skill invocations (#3915, |
| 674 | co-authored) |
| 675 | - **[Sun Zhenyuan / bistack](https://github.com/bistack)** — dynamic MCP server |
| 676 | infrastructure and approval-gated model-started MCP servers from chat |
| 677 | context (#3869, #3866, harvested with authorship preserved) |
| 678 | |
| 679 | </details> |
| 680 | |
| 681 | <details> |
| 682 | <summary><strong>v0.8.66 — release readiness, provider intake & UI hardening</strong></summary> |
| 683 | |
| 684 | The v0.8.66 release prepared the 0.8.66 package lane, hardened provider/model |
| 685 | routing and modal surfaces, advanced Hotbar/sub-agent UI reliability, and pulled |
| 686 | in several community provider and bridge contributions with release credit. |
| 687 | |
| 688 | - **[lerugray](https://github.com/lerugray)** — Sakana AI Fugu provider |
| 689 | support across config, CLI, TUI provider picker, docs, and model completions |
| 690 | (#3748, harvested) |
| 691 | - **[greyfreedom](https://github.com/greyfreedom)** — read-only `/config |
| 692 | ask-rules` view for resolved ask-rule paths, status, and configured |
| 693 | tool/command/path rules (#3569, merged) |
| 694 | - **[noaft](https://github.com/noaft)** — `/links` provider docs fallback |
| 695 | update, including the current Codewhale docs URL and a Baidu Qianfan docs |
| 696 | link (#3621, harvested) |
| 697 | - **[noaft](https://github.com/noaft)** — OpenModel provider support across |
| 698 | config, CLI, TUI provider picker, docs, and registry checks (#3585, |
| 699 | harvested) |
| 700 | - **[pkeging](https://github.com/pkeging)** — original plugin manifest, |
| 701 | discovery, CLI, and MCP foundation (#3708, #3709, #3710, merged), plus WeCom |
| 702 | Bridge deployment and security documentation, including the approval-timeout |
| 703 | configuration surface (#3640, harvested) |
| 704 | - **[codepgq](https://github.com/codepgq)** — cross-client plugin-workflow |
| 705 | migration request that shaped the explicit compatibility and trust boundary |
| 706 | (#1172) |
| 707 | - **[Wenshan Deng / findshan](https://github.com/findshan)** — original offline |
| 708 | token/cache/cost scorecard and regression gate (#3388), extended with |
| 709 | provider-aware provenance in #4335 |
| 710 | - **[buko](https://github.com/buko)** — precise Ctrl+O external-editor freeze |
| 711 | reproduction that shaped the terminal input-pump fix (#3657) |
| 712 | - **[cyq1017](https://github.com/cyq1017)** — sub-agent progress-event |
| 713 | headroom report that shaped the fanout reliability hardening (#3783) |
| 714 | |
| 715 | </details> |
| 716 | |
| 717 | <details> |
| 718 | <summary><strong>v0.8.63 — sub-agent budgets, command extraction & reliability</strong></summary> |
| 719 | |
| 720 | |
| 721 | The v0.8.63 release hardened sub-agent fanout with token-budget governance and |
| 722 | queue-and-drain admission, split the TUI command surface into focused modules, |
| 723 | and landed reliability fixes for app-server teardown, JavaScript-execution |
| 724 | proxying, and DeepSeek thinking tool calls — alongside community contributions. |
| 725 | |
| 726 | - **[donglovejava](https://github.com/donglovejava)** — per-worker sub-agent |
| 727 | token-budget enforcement, so a `token_budget`/`max_tokens` on an individual |
| 728 | `agent` call bounds that worker mid-run with a clean `budget_exhausted` stop |
| 729 | (#3321, harvested) |
| 730 | - **[cyq1017](https://github.com/cyq1017)** — `js_execution` proxy-environment |
| 731 | handling (#3331), Hugging Face API-key env in the auth probe (#3329), and Codex |
| 732 | Responses request retry (#3344) — harvested into the train |
| 733 | - **[aboimpinto](https://github.com/aboimpinto)** — FEAT-005 command extraction: |
| 734 | core/session command groups split into focused modules via `RegisterCommand`, |
| 735 | `/swarm` migration, and Gherkin acceptance coverage (#3330, merged literally |
| 736 | with authorship preserved) |
| 737 | - **[wuisabel-gif](https://github.com/wuisabel-gif)** — tear down the delegated |
| 738 | serve/app-server child process when the dispatcher exits (#3259 / #3317) |
| 739 | - **[nightt5879](https://github.com/nightt5879)** — keep the onboarding marker in |
| 740 | the codewhale home view (#3302) and branch-hygiene check hardening (#3348) |
| 741 | - **[gaord](https://github.com/gaord)** — preserve thinking/tool blocks when |
| 742 | seeding a thread from a saved session, plus Hugging Face provider env (#3329) |
| 743 | - **[greyfreedom](https://github.com/greyfreedom)** — persist ask-permission rules |
| 744 | from approvals and stabilize the CI verifier/provider-registry checks |
| 745 | - Reports that shaped fixes: **[lordwedggie](https://github.com/lordwedggie)** |
| 746 | (#3331 proxy env), **[Final527](https://github.com/Final527)** (#3240 legacy |
| 747 | state migration), **[dxfq](https://github.com/dxfq)** (#3228 sidebar default) |
| 748 | |
| 749 | </details> |
| 750 | |
| 751 | <details> |
| 752 | <summary><strong>v0.8.62 — provider/model routing, TOML comment preservation & community closeout</strong></summary> |
| 753 | |
| 754 | |
| 755 | The v0.8.62 release retuned provider/model routing (GLM-5.2 as the default direct |
| 756 | Z.AI model, `type: "explore"` sub-agents defaulting to the cheaper same-family |
| 757 | sibling), added TOML comment preservation and the Codewhale-only skill discovery |
| 758 | gate, and shipped the static Linux x64 musl binary — alongside a broad community |
| 759 | closeout and a retroactive credit reconciliation pass. |
| 760 | |
| 761 | - **[zlh124](https://github.com/zlh124)** — preserve user comments and formatting |
| 762 | when rewriting `config.toml`/`settings.toml`/`tui.toml` (with a malformed-file |
| 763 | fallback) and Linux build deps in the cargo install guides (#3270) |
| 764 | - **[idling11](https://github.com/idling11)** — Kimi `type:object` schema root for |
| 765 | all parameter shapes (#3281), `approval_mode` restore on Plan→Agent with a |
| 766 | wait-for-user guard (#3279), and workroom metadata draft types |
| 767 | - **[LeoLin990405](https://github.com/LeoLin990405)** — Poppler `pdftotext -v` |
| 768 | detection (#1667), session persistence before stall/cancel recovery (#2739), |
| 769 | and debounced thinking-stream re-renders (#1620) |
| 770 | - **[nightt5879](https://github.com/nightt5879)** — Codewhale-only skill discovery |
| 771 | gate (`[skills].scan_codewhale_only`) ignoring cross-tool directories (#3296) and |
| 772 | app-server no-auth loopback docs |
| 773 | - **[reidliu41](https://github.com/reidliu41)** — slash commands exposed as hotbar |
| 774 | actions (#3269) |
| 775 | - **[wavezhang](https://github.com/wavezhang)** — static Linux x64 (musl) release |
| 776 | binaries |
| 777 | - **[wuisabel-gif](https://github.com/wuisabel-gif)** — per-tool snapshot gate |
| 778 | respecting `[snapshots].enabled` (#3292) and composer history written under |
| 779 | `.codewhale` |
| 780 | - **[gaord](https://github.com/gaord)** — `workspace_follow_symlinks` setting for |
| 781 | symlink-aware tool operations with hardened path handling |
| 782 | - **[greyfreedom](https://github.com/greyfreedom)** — ask-permission rules honored |
| 783 | at runtime (#3295) |
| 784 | - **[aboimpinto](https://github.com/aboimpinto)** — EPIC-001 command-boundary |
| 785 | replay and user-registry review feedback |
| 786 | - **[h3c-hexin](https://github.com/h3c-hexin)** — volatile workspace path moved |
| 787 | out of the static system prefix (prefix-cache hygiene) |
| 788 | - **[hongchen1993](https://github.com/hongchen1993)** — heuristic-only auto routing |
| 789 | when the flash router is unavailable |
| 790 | - **[lucaszhu-hue](https://github.com/lucaszhu-hue)** — Atlas Cloud provider setup |
| 791 | docs |
| 792 | - Retroactive reconciliation (shipped earlier, credited now): |
| 793 | **[manaskarra](https://github.com/manaskarra)** / **[xfy6238](https://github.com/xfy6238)** (#1157), |
| 794 | **[djairjr](https://github.com/djairjr)** (#1309 alongside reidliu41), |
| 795 | **[Geallier](https://github.com/Geallier)** (#1470), |
| 796 | **[quentin-lian](https://github.com/quentin-lian)** / **[k0tran](https://github.com/k0tran)** (#1531 / #1992), |
| 797 | **[F1LT3R](https://github.com/F1LT3R)** (#1656), |
| 798 | **[cmyyy](https://github.com/cmyyy)** (#1842), |
| 799 | **[Final527](https://github.com/Final527)** (#3058) |
| 800 | |
| 801 | </details> |
| 802 | |
| 803 | <details> |
| 804 | <summary><strong>v0.8.61 — runtime control plane & community closeout</strong></summary> |
| 805 | |
| 806 | |
| 807 | The v0.8.61 release was a community closeout: the runtime control plane, provider |
| 808 | patches, and TUI fixes landed alongside first-time and returning contributor work. |
| 809 | |
| 810 | - **[idling11](https://github.com/idling11)** — DeepInfra provider support with |
| 811 | OpenAI-compatible routing and model registry entries (#3235, closes #3231) |
| 812 | - **[greyfreedom](https://github.com/greyfreedom)** — atomic ask-only |
| 813 | permission-rule persistence so an execution-policy rule survives the write |
| 814 | that triggered the prompt (#3233) |
| 815 | - **[VincentCorleone](https://github.com/VincentCorleone)** — WeChat bridge |
| 816 | (`integrations/weixin-bridge`) leveraging Feishu + Tencent OpenClaw (#3206) |
| 817 | - **[nightt5879](https://github.com/nightt5879)** — whale-accent rename (#3197) |
| 818 | and `$skillname` aliases for `/skill` activation (#3241) |
| 819 | - **[mvanhorn](https://github.com/mvanhorn)** — non-DeepSeek model pricing |
| 820 | coverage (#3201) |
| 821 | - **[cyq1017](https://github.com/cyq1017)** — Telegram polling transport |
| 822 | (#3195) and VS Code read-only API documentation (#3013) |
| 823 | - **[RobertEmprechtinger](https://github.com/RobertEmprechtinger)** — mobile |
| 824 | event history (#3220) |
| 825 | - **[gaord](https://github.com/gaord)** — runtime-API session save (#3199) |
| 826 | - **[hongchen1993](https://github.com/hongchen1993)** — `DEEPSEEK_BASE_URL` / |
| 827 | `MODEL` honored in `exec` (#3221) |
| 828 | |
| 829 | </details> |
| 830 | |
| 831 | <details> |
| 832 | <summary><strong>Forward track — recent v0.9 work (newest)</strong></summary> |
| 833 | |
| 834 | |
| 835 | - **[xyuai](https://github.com/xyuai)** — canonical Codewhale settings path, |
| 836 | provider persistence, provider picker, logout-scope, and MiMo auth cleanup |
| 837 | work (#2730, #2714, #2715, #2717, #2718) |
| 838 | - **[shenjackyuanjie](https://github.com/shenjackyuanjie)** — HarmonyOS / |
| 839 | OpenHarmony porting work and MatePad Edge validation trail (#2634) |
| 840 | - **[ousamabenyounes](https://github.com/ousamabenyounes)** — AZERTY/AltGr |
| 841 | composer shortcut fix for Windows keyboard layouts (#2863, #2867) |
| 842 | - **[reidliu41](https://github.com/reidliu41)** — hotbar action-registry |
| 843 | foundation and Ollama model-completion cleanup for the forward track (#2866, |
| 844 | #2742) |
| 845 | - **[ljm3790865](https://github.com/ljm3790865)** — multi-tab |
| 846 | core/persistence foundation and broader tab collaboration direction (#2864, |
| 847 | #2753) |
| 848 | - **[sximelon](https://github.com/sximelon)** — saved-session resume footer |
| 849 | hint work plus provider-trait metadata registry direction reviewed and |
| 850 | harvested for the forward track (#2758, #2760, #2479) |
| 851 | - **[aboimpinto](https://github.com/aboimpinto)** — sidebar command polish and |
| 852 | pausable custom-command lifecycle direction harvested into the forward track, |
| 853 | plus the directly merged command-support boundary cleanup and broader command |
| 854 | layer design direction (#2788, #2732, #2871, #2851, #2791) |
| 855 | - **[AdityaVG13](https://github.com/AdityaVG13)** — Workflow orchestration |
| 856 | and cost-tracking drafts that shaped the maintained workflow IR and |
| 857 | TraceStore foundation (#2482, #2486) |
| 858 | - **[lbcheng888](https://github.com/lbcheng888)**, |
| 859 | **[AiurArtanis](https://github.com/AiurArtanis)**, and |
| 860 | **[nasus9527](https://github.com/nasus9527)** — VS Code extension scaffold |
| 861 | direction, Agent View request, and IDE plugin request that shaped the |
| 862 | official Phase 0 extension (#1022, #1584, #2580) |
| 863 | - **[HUQIANTAO](https://github.com/HUQIANTAO)** — `web_run` cache-state |
| 864 | lock-splitting, turn-metadata prefix-cache stability, and project-context |
| 865 | cache work (#2502, #2517, #2636) |
| 866 | - **[idling11](https://github.com/idling11)** — PlanArtifact continuity, |
| 867 | dense tool-call transcript collapse, sidebar detail popovers, and |
| 868 | HarnessPosture provider/model policy direction (#2733, #2738, #2734, |
| 869 | #2741, #2692, #2694, #2693) |
| 870 | - **[h3c-hexin](https://github.com/h3c-hexin)** — sub-agent model inheritance, |
| 871 | configured `skills_dir` discovery, prompt-environment stability, and static |
| 872 | prompt composer direction (#2736, #2737, #2786) |
| 873 | - **[gaord](https://github.com/gaord)** — runtime thread workspace updates and |
| 874 | completed-thread saved-session API work (#2640, #2639) |
| 875 | - **[cyq1017](https://github.com/cyq1017)** — trusted workspace MCP config, |
| 876 | provider auth rollback, custom search endpoint, custom completion sound, |
| 877 | restore-listing, and pending-input delivery-mode label work (#2751, #2755, |
| 878 | #2510, #2512, #2513, #2532, #2054) |
| 879 | - **[yusufgurdogan](https://github.com/yusufgurdogan)** — Sofya search |
| 880 | provider implementation harvested as a non-default search backend (#2790) |
| 881 | - **[LeoAlex0](https://github.com/LeoAlex0)** — runtime prompt metadata cache |
| 882 | direction harvested into the maintained prompt/cache path (#2687); |
| 883 | `allow_shell` prefix-cache decoupling and `visibility="internal"` |
| 884 | explanation for mode-flip stability (#2949, #2951) |
| 885 | - **[hongchen1993](https://github.com/hongchen1993)** — Volcengine provider |
| 886 | in TUI dispatcher and dispatcher API-key preference (#2923, #2928) |
| 887 | - **[NASLXTO](https://github.com/NASLXTO)** and |
| 888 | **[wuxixing](https://github.com/wuxixing)** — large-workspace startup |
| 889 | reports that shaped the bounded project-context fallback (#697, #1827) |
| 890 | - **[shuxiangxuebiancheng](https://github.com/shuxiangxuebiancheng)**, |
| 891 | **[hongqitai](https://github.com/hongqitai)**, and |
| 892 | **[cyq1017](https://github.com/cyq1017)** — third-party |
| 893 | OpenAI-compatible path-suffix report and follow-up review trail (#1874, |
| 894 | #2508, #2506) |
| 895 | |
| 896 | |
| 897 | </details> |
| 898 | |
| 899 | <details> |
| 900 | <summary><strong>Recurring & historical contributors</strong></summary> |
| 901 | |
| 902 | |
| 903 | - **[merchloubna70-dot](https://github.com/merchloubna70-dot)** — 28 PRs spanning features, fixes, and VS Code extension scaffolding (#645–#681) |
| 904 | - **[WyxBUPT-22](https://github.com/WyxBUPT-22)** — Markdown rendering for tables, bold/italic, and horizontal rules (#579) |
| 905 | - **[loongmiaow-pixel](https://github.com/loongmiaow-pixel)** — Windows + China install documentation (#578) |
| 906 | - **[20bytes](https://github.com/20bytes)** — User memory docs and help polish (#569) |
| 907 | - **[staryxchen](https://github.com/staryxchen)** — glibc compatibility preflight (#556) |
| 908 | - **[Vishnu1837](https://github.com/Vishnu1837)** — glibc compatibility improvements and terminal restoration on SIGINT/SIGTERM (#565, #1586) |
| 909 | - **[shentoumengxin](https://github.com/shentoumengxin)** — Shell `cwd` boundary validation (#524) |
| 910 | - **[toi500](https://github.com/toi500)** — Windows paste fix report |
| 911 | - **[xsstomy](https://github.com/xsstomy)** — Terminal startup repaint report |
| 912 | - **[melody0709](https://github.com/melody0709)** — Slash-prefix Enter activation report |
| 913 | - **[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) |
| 914 | - **[Agent-Skill-007](https://github.com/Agent-Skill-007)** — README clarity pass (#685) |
| 915 | - **[woyxiang](https://github.com/woyxiang)** — Windows install documentation (#696) |
| 916 | - **[wangfeng](mailto:wangfengcsu@qq.com)** — Pricing/discount info update (#692) |
| 917 | - **[zichen0116](https://github.com/zichen0116)** — CODE_OF_CONDUCT.md (#686) |
| 918 | - **[dfwqdyl-ui](https://github.com/dfwqdyl-ui)** — model ID case-sensitivity compatibility report (#729) |
| 919 | - **[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) |
| 920 | - **[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) |
| 921 | - **[xieshutao](https://github.com/xieshutao)** — plain Markdown skill fallback (#869) |
| 922 | - **[GK012](https://github.com/GK012)** — npm wrapper `--version` fallback (#885) |
| 923 | - **[y0sif](https://github.com/y0sif)** — parent turn-loop wakeup after direct child sub-agent completion (#901) |
| 924 | - **[mac119](https://github.com/mac119)** and **[leo119](https://github.com/leo119)** — `codewhale update` command documentation (#838, #917) |
| 925 | - **[dumbjack](https://github.com/dumbjack)** / **浩淼的mac** — command-safety null-byte hardening (#706, #918) |
| 926 | - **macworkers** — fork confirmation with the new session id (#600, #919) |
| 927 | - **zero** and **[zerx-lab](https://github.com/zerx-lab)** — notification condition config and richer OSC 9 notification body (#820, #920) |
| 928 | - **[chnjames](https://github.com/chnjames)** — cached @mention completions, config recovery polish, and Windows UTF-8 shell output (#849, #927, #982, #1018) |
| 929 | - **[angziii](https://github.com/angziii)** — config safety, async cleanup, Docker hardening, and command-safety fixes (#822, #824, #827, #831, #833, #835, #837) |
| 930 | - **[elowen53](https://github.com/elowen53)** — UTF-8 decoding and deterministic test coverage (#825, #840) |
| 931 | - **[wdw8276](https://github.com/wdw8276)** — `/rename` command for custom session titles (#836) |
| 932 | - **[banqii](https://github.com/banqii)** — `.cursor/skills` discovery path support (#817) |
| 933 | - **[junskyeed](https://github.com/junskyeed)** — dynamic `max_tokens` calculation for API requests (#826) |
| 934 | - **Hafeez Pizofreude** — SSRF protection in `fetch_url` and Star History chart |
| 935 | - **Unic (YuniqueUnic)** — Schema-driven config UI (TUI + web) |
| 936 | - **Jason** — SSRF security hardening |
| 937 | - **[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) |
| 938 | - **[MengZ-super](https://github.com/MengZ-super)** — `/theme` command foundation and SSE gzip/brotli decompression (#1057, #1061) |
| 939 | - **[DI-HUO-MING-YI](https://github.com/DI-HUO-MING-YI)** — Plan-mode read-only sandbox safety fix (#1077) |
| 940 | - **[bevis-wong](https://github.com/bevis-wong)** — precise paste-Enter auto-submit reproducer (#1073) |
| 941 | - **[Duducoco](https://github.com/Duducoco)** and **[AlphaGogoo](https://github.com/AlphaGogoo)** — skills slash-menu and `/skills` coverage fix (#1068, #1083) |
| 942 | - **[ArronAI007](https://github.com/ArronAI007)** — window-resize artifact fix for macOS Terminal.app and ConHost (#993) |
| 943 | - **[THINKER-ONLY](https://github.com/THINKER-ONLY)** — OpenRouter and custom-endpoint model-ID preservation (#1066) |
| 944 | - **[Jefsky](https://github.com/Jefsky)** — DeepSeek endpoint correction report (#1079, #1084) |
| 945 | - **[wlon](https://github.com/wlon)** — NVIDIA NIM provider API-key preference diagnosis (#1081) |
| 946 | - **[Horace Liu](https://github.com/liuhq)** — Nix package support and install documentation (#1173) |
| 947 | - **[jieshu666](https://github.com/jieshu666)** — terminal repaint flicker reduction (#1563) |
| 948 | - **[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) |
| 949 | - **[mdrkrg](https://github.com/mdrkrg)** — first-run onboarding crash fix when the API key is missing (#1598) |
| 950 | - **[Aitensa](https://github.com/Aitensa)** — CJK wrapping propagation for diff and pager output (#1622) |
| 951 | - **[qiyan233](https://github.com/qiyan233)** — legacy DeepSeek CN provider alias compatibility (#1645) |
| 952 | - **[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) |
| 953 | - **[aboimpinto](https://github.com/aboimpinto)** — Windows alt-screen |
| 954 | logging, Home/End composer, runtime log follow-ups, sidebar command polish, |
| 955 | and pausable command lifecycle work (#1774, #1776, #1748, #1749, #1782, |
| 956 | #1783, #2788, #2732) |
| 957 | - **[LeoLin990405](https://github.com/LeoLin990405)** — provider model passthrough, reasoning replay, thinking-only turn, and Windows quoting fixes (#1740, #1743, #1742, #1744) |
| 958 | - **[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) |
| 959 | - **[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) |
| 960 | - **[encyc](https://github.com/encyc)** — session token breakdown in footer and `/status` (#2152) |
| 961 | - **[saieswar237](https://github.com/saieswar237)** — review pipeline docs (#2178) |
| 962 | - **[sximelon](https://github.com/sximelon)** — paste Enter suppression, key handler extraction (#2174, #2042) |
| 963 | - **[nanookclaw](https://github.com/nanookclaw)** — search provider in doctor output (#2135) |
| 964 | - **[Sskift](https://github.com/Sskift)** — CLI default env override prevention and statusline footer clearing (#2119, #2248) |
| 965 | - **[xin1104](https://github.com/xin1104)** — Homebrew codewhale binary install (#2105) |
| 966 | - **[mrluanma](https://github.com/mrluanma)** — Metaso search provider (#2059) |
| 967 | - **[Lellansin](https://github.com/Lellansin)** — skip config merge at home dir (#2055) |
| 968 | - **[zhuangbiaowei](https://github.com/zhuangbiaowei)** — update release channels and legacy MCP SSE fixes (#2145, #2301) |
| 969 | - **[cy2311](https://github.com/cy2311)** — Windows `.bat` launcher for Codewhale (#1861) |
| 970 | - **[LING71671](https://github.com/LING71671)** — effective cost currency context, custom provider docs, and core tool taxonomy prompt block (#1902, #2287, #2292) |
| 971 | - **[dzyuan](https://github.com/dzyuan)** — Volcengine provider support with DeepSeek V4 Pro/Flash models (#1993) |
| 972 | - **[mvanhorn](https://github.com/mvanhorn)** — live request-shape test factories and global `~/.agents/AGENTS.md` fallback (#2107, #2236) |
| 973 | - **[malsony](https://github.com/malsony)** — Matrix-inspired theme and theme picker improvements (#2129) |
| 974 | - **[gaord](https://github.com/gaord)** — external GUI runtime event bridge, session detail serialization, and skills API discovery alignment (#2133, #2265, #2285) |
| 975 | - **[yuanchenglu](https://github.com/yuanchenglu)** — Feishu per-chat model switching (#2149) |
| 976 | - **[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) |
| 977 | - **[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) |
| 978 | - **[tdccccc](https://github.com/tdccccc)** — approval prompt key-detail and shell-preview work harvested into the maintained approval path (#1991, #2269) |
| 979 | - **[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) |
| 980 | - **[Implementist](https://github.com/Implementist)** — Volcengine Ark search provider and reliability hardening (#2426, #2429, #2439) |
| 981 | - **[lihuan215](https://github.com/lihuan215)** — Unix socket hook sink design harvested into the opt-in hook event path (#2333, #2430) |
| 982 | - **[AdityaVG13](https://github.com/AdityaVG13)** — Xiaomi MiMo provider support (#2246) |
| 983 | - **[New2Niu](https://github.com/New2Niu)** — macOS display notifications (#2260) |
| 984 | - **[AiurArtanis](https://github.com/AiurArtanis)** — Solarized Light theme and |
| 985 | canonical-background regression report (#2270, #4457) |
| 986 | - **[Lee-take](https://github.com/Lee-take)** — task migration and session environment isolation fixes (#2272) |
| 987 | - **[LeoAlex0](https://github.com/LeoAlex0)** — session persistence fixes for message counts and tool-output cache preservation (#2388, #2395) |
| 988 | - **[jimmyzhuu](https://github.com/jimmyzhuu)** — Baidu AI Search backend for `web_search` (#2371) |
| 989 | - **[rockyzhang](https://github.com/rockyzhang)** — RISC-V prebuilt binary support (#2383) |
| 990 | - **[mo-vic](https://github.com/mo-vic)** — `/purge` slash command for agent-driven context pruning (#2387) |
| 991 | - **[hufanexplore](https://github.com/hufanexplore)** — Java and Vue language-server defaults (#2367) |
| 992 | - **[hoclaptrinh33](https://github.com/hoclaptrinh33)** — Vietnamese localization support (#2358) |
| 993 | - **[AccMoment](https://github.com/AccMoment)** — proxy option for the update command (#2281) |
| 994 | - **[idling11](https://github.com/idling11)** — durable debt ledger and `/hunt` rename/trophy-card work (#2161, #2306) |
| 995 | - **[cyq1017](https://github.com/cyq1017)** — runtime event envelope, render-diff debug logging, and deterministic composer history flushing (#2252, #2332, #2375) |
| 996 | - **[hongqitai](https://github.com/hongqitai)** — state schema parent-entry support and clippy/fmt cleanup (#2308, #2432) |
| 997 | - **[BryonGo](https://github.com/BryonGo)** — effective-model compaction budgeting fix (#2437) |
| 998 | - **[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) |
| 999 | - **[RefuseOdd](https://github.com/RefuseOdd)** — configurable `path_suffix` for OpenAI-compatible endpoints (#2558) |
| 1000 | |
| 1001 | |
| 1002 | </details> |
| 1003 | |
| 1004 | <details> |
| 1005 | <summary><strong>v0.8.48 — reports, repros & verification (earliest listed)</strong></summary> |
| 1006 | |
| 1007 | Reports, repros, and verification that shaped v0.8.48 also deserve visible |
| 1008 | credit: **[@buko](https://github.com/buko)**, **[@yyyCode](https://github.com/yyyCode)**, |
| 1009 | **[@gaslebinh-glitch](https://github.com/gaslebinh-glitch)**, **[@Dr3259](https://github.com/Dr3259)**, |
| 1010 | **[@lpeng1711694086-lang](https://github.com/lpeng1711694086-lang)**, **[@VerrPower](https://github.com/VerrPower)**, |
| 1011 | **[@yan-zay](https://github.com/yan-zay)**, **[@jretz](https://github.com/jretz)**, |
| 1012 | **[@Neo-millunnium](https://github.com/Neo-millunnium)**, **[@caeserchen](https://github.com/caeserchen)**, |
| 1013 | **[@T-Phuong-Nguyen](https://github.com/T-Phuong-Nguyen)**, **[@zhyuzhyu](https://github.com/zhyuzhyu)**, |
| 1014 | **[@0gl20shk0sbt36](https://github.com/0gl20shk0sbt36)**, **[@hatakes](https://github.com/hatakes)**, |
| 1015 | **[@goodvecn-dev](https://github.com/goodvecn-dev)**, **[@bevis-wong](https://github.com/bevis-wong)**, |
| 1016 | **[@PurplePulse](https://github.com/PurplePulse)**, and **[@nbiish](https://github.com/nbiish)**. |
| 1017 | |
| 1018 | --- |
| 1019 | |
| 1020 | </details> |
| 1021 | |
| 1022 | <details> |
| 1023 | <summary><strong>Reconciled credits — earlier contributors restored to the record</strong></summary> |
| 1024 | |
| 1025 | A credit-reconciliation pass mapped every shipped commit author to a GitHub |
| 1026 | handle and found these contributors whose merged work was not yet listed here or |
| 1027 | in the changelog. Restoring them with thanks — every one shipped real code. |
| 1028 | |
| 1029 | - **[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 |
| 1030 | - **[mars-base](https://github.com/mars-base)** — session title shown in the composer border and `gh` discovery across common install paths (#836) |
| 1031 | - **[Giggitycountless](https://github.com/Giggitycountless)** — auto-add `.deepseek/` to `.gitignore`, gitignore-check robustness, and `/clear` resetting the Todos panel |
| 1032 | - **[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) |
| 1033 | - **[membphis](https://github.com/membphis)** — bordered Markdown table rendering and Shift+Enter newline in the composer (#801) |
| 1034 | - **[JasonOA888](https://github.com/JasonOA888)** — `web_run` network-policy enforcement and refusing to snapshot `$HOME` (#798, #800) |
| 1035 | - **[tuohai666](https://github.com/tuohai666)** — recursive skills-directory reading plus hook-dispatch and approval-branch test coverage (#811) |
| 1036 | - **[xuezhaoyu](https://github.com/xuezhaoyu)** — DEC 2026 synchronized-update flicker fix for GPU terminals, guaranteeing `END_SYNC_UPDATE` even when a draw fails |
| 1037 | - **[manaskarra](https://github.com/manaskarra)** — global `~/.deepseek/AGENTS.md` fallback loading (#1157) |
| 1038 | - **[gerryqi](https://github.com/gerryqi)** — wrap fire-and-forget `spawn_blocking` calls with a panic dump (#810) |
| 1039 | - **[ccomma](https://github.com/ccomma)** — skip snapshots for dangerous workspaces (#804) |
| 1040 | - **[AGSaturn](https://github.com/AGSaturn)** — preserve requested model-ID casing in registry resolution (#733) |
| 1041 | - **[wucm667](https://github.com/wucm667)** — accept provider-prefixed DeepSeek model IDs (#794) |
| 1042 | - **[quentin-lian](https://github.com/quentin-lian)** — portable-pty 0.9 upgrade for LoongArch64 support (#1992) |
| 1043 | - **[Beltran12138](https://github.com/Beltran12138)** — treat `deepseek-chat` / `deepseek-reasoner` aliases as reasoning models |
| 1044 | - **[chuntseevolving](https://github.com/chuntseevolving)** — send `TurnStarted` before snapshot to prevent WSL2 timeout |
| 1045 | - **[lawrencewzen](https://github.com/lawrencewzen)** — preserve UTF-8 while stripping ANSI |
| 1046 | - **[hhhaiai](https://github.com/hhhaiai)** — keep workspace skills visible when the prompt budget truncates |
| 1047 | - **[khalid-hungerstation](https://github.com/khalid-hungerstation)** — bundle the delegate skill alongside skill-creator |
| 1048 | - **[Anyexyz](https://github.com/Anyexyz)** — GitHub Actions workflow to sync with the CNB repo |
| 1049 | - **[nightfallsad](https://github.com/nightfallsad)** — clearer `/continue` hint copy |
| 1050 | - **[zxyasfas](https://github.com/zxyasfas)** — align Rust MSRV references with the workspace (#739) |
| 1051 | |
| 1052 | _A follow-up audit of harvested commits (work reimplemented onto a maintainer |
| 1053 | branch rather than merged) surfaced contributors whose machine-readable credit |
| 1054 | was dropped. Restoring them here — every one shipped real code:_ |
| 1055 | |
| 1056 | - **[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) |
| 1057 | - **[MMMarcinho](https://github.com/MMMarcinho)** — `image_analyze` vision tool (#1467) |
| 1058 | - **[MeAiRobot](https://github.com/MeAiRobot)** — toast-stack overlay z-order fix (#1485) |
| 1059 | - **[NorethSea](https://github.com/NorethSea)** — `update` refreshing the sibling TUI binary (#1492) |
| 1060 | - **[SamhandsomeLee](https://github.com/SamhandsomeLee)** — bundled |
| 1061 | v4-best-practices skill (#1448) and input-budget-aware compaction trigger |
| 1062 | (#4293) |
| 1063 | - **[YaYII](https://github.com/YaYII)** — opt-in `/translate` command (#1462) |
| 1064 | - **[sandofree](https://github.com/sandofree)** — Tavily and Bocha `web_search` backends (#1294) |
| 1065 | - **[tiger-dog](https://github.com/tiger-dog)** — approval one-line banner and Markdown underscore handling (#1455) |
| 1066 | - **[Jianfengwu2024](https://github.com/Jianfengwu2024)** — preserving MSVC toolchain vars in the child environment (#1487) |
| 1067 | - **[wplll](https://github.com/wplll)** — prompt-cache warmup keys, tool-catalog handling, a dedup test, and pack ordering (#2390, #2391, #2392, #2393) |
| 1068 | |
| 1069 | Additional harvested PRs from the same audit, credited to contributors already |
| 1070 | 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). |
| 1071 | |
| 1072 | _A further machine-credit pass restored these contributors, missing from both the |
| 1073 | list above and the contribution graph (AUTHOR_MAP entries added; logins/IDs |
| 1074 | verified against the GitHub user API) — every one shipped real code:_ |
| 1075 | |
| 1076 | - **[1Git2Clone](https://github.com/1Git2Clone)** — `Ctrl+P`/`Ctrl+N` slash-menu navigation |
| 1077 | - **[rockeverm3m](https://github.com/rockeverm3m)** — community ACP adapter reference in the docs |
| 1078 | - **[hxy91819](https://github.com/hxy91819)** — stable MCP tool ordering for prefix-cache stability (#1319) |
| 1079 | - **[heloanc](https://github.com/heloanc)** — Home/End keys moving the cursor in the input box (#1246) |
| 1080 | |
| 1081 | **Earlier reports, proposals and reviewed overlap** |
| 1082 | |
| 1083 | - **[dajiaohuang](https://github.com/dajiaohuang)** — independently diagnosed the local-model output-budget problem and submitted a reviewed patch; equivalent behavior had already shipped ([#5883](https://github.com/Hmbown/Codewhale/pull/5883)). |
| 1084 | - **[Edouard-Legoupil](https://github.com/Edouard-Legoupil)** — proposed user-controlled skill evolution from repeated work and corrections ([#5860](https://github.com/Hmbown/Codewhale/issues/5860)). |
| 1085 | - **[freedomlovesfrank](https://github.com/freedomlovesfrank)** — proposed an optional Rust allocator alongside the existing default ([#5872](https://github.com/Hmbown/Codewhale/issues/5872)). |
| 1086 | - **[zyxrealhero](https://github.com/zyxrealhero)** — reported malformed tool-call history after a Runtime restart, with a reproduction and payload analysis ([#5823](https://github.com/Hmbown/Codewhale/issues/5823)). |
| 1087 | - **[cmdcorp6534](https://github.com/cmdcorp6534)** — reported Chinese IME pre-edit and composer behavior in Windows Terminal, including input shown behind modal dialogs ([#2323](https://github.com/Hmbown/Codewhale/issues/2323)). |
| 1088 | - **[ivysrono](https://github.com/ivysrono)** — proposed switching to a configured backup profile after provider rate-limit errors ([#855](https://github.com/Hmbown/Codewhale/issues/855)). |
| 1089 | - **[JoeKerF](https://github.com/JoeKerF)** — proposed desktop project and task workflows with managed runtime startup, recovery, and updates ([#4986](https://github.com/Hmbown/Codewhale/issues/4986)). |
| 1090 | - **[ShikiSuen](https://github.com/ShikiSuen)** — provided a detailed reproduction of SwiftPM test failures inside the macOS sandbox ([#2617](https://github.com/Hmbown/Codewhale/issues/2617)). |
| 1091 | |
| 1092 | </details> |
| 1093 | |
| 1094 | --- |
| 1095 | |
| 1096 | Missed someone? Open an issue or PR — credit is kept current, and names are happily added. See [CONTRIBUTING.md](../CONTRIBUTING.md) to get started. |
| 1097 |