返回 CodeWhale
CONTRIBUTORS.md
根目录 / docs / CONTRIBUTORS.md
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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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
1097 lines MARKDOWN