release(0.10.2): re-freeze on main — fold Unreleased into 0.10.2, stop promoting account key storage

Founder, 2026-10-18: "we should be at a point where we can release
0.10.2". This takes the recommended F1 path (b): 0.10.2 is cut from
current main instead of the frozen 14683c9983 candidate, so it carries
the #7007 Linux sandbox fix, the CW-7236 credential-upload and
hidden-Unicode holds, the three session data-loss fixes and everything
else that landed since.

CHANGELOG.md: the [Unreleased] entries move into [0.10.2] under "Latest
fixes", the release is dated 2026-10-18, and the summary paragraph now
names the headline changes from those entries (session data loss,
credential uploads, invisible Unicode, the symlinked credential mask, idle
CPU, /color, DeepSeek Responses replay, relay model lists). [Unreleased]
is empty. crates/tui/CHANGELOG.md regenerated with sync-changelog.sh.

README.md and the 18 translations: founder, 2026-10-18 (codewhale-ops
CURRENT_DECISIONS §38): pause anything account related until frontier
security review is available, after OpenCode users' stored OpenAI and
Claude keys were exposed. The README no longer promotes keeping provider
keys in a Codewhale account; each language keeps only its own first
sentence of that paragraph ("You don't need an account."), so nothing was
machine translated. The CLI's existing opt-in account commands are
unchanged.

Checks:
- scripts/release/check-versions.sh --require-dated-release: OK
  (workspace, npm and npm-binary 0.10.2, lockfile in sync)
- check-ohos-deps.sh: OK; check-feature-release-notes.sh v0.10.1 HEAD: 12
  linked issue references OK; check-contributor-credit.py (advisory): two
  co-author-only credits (3c0a3d2f25, 9ae63ee664), every contributor
  credited on all three surfaces
- sync-changelog.sh --check: up to date
- check-readme-translations.py: 18 in sync (sha256:2712306ab5f7);
  check-readme-locales.sh: PASS; check-provider-registry.py: passed
- web prebuild + check-facts: OK; check:docs current
- npm test: 101/101, 19/19, 413 passed + 7 skipped of 420, 7/7, vitest
  772/772; npm run check:web: exit 0

Not done here: the exact-SHA full CI and release-candidate dispatches and
the clean-cache crate dry run run next on the frozen head; the tag and
every publication step wait for the founder's approval (F2).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01NBKbhx19BRbZtvWK8rVKjz
This commit is contained in:
CodeWhale BotandClaude Opus 5.5 committed 2026-10-18 16:04:34 -07:00
1 parent 3352da9391
commit 44e528d1f2
21 files changed
+64 -119

No files matched your search

+14 -8
View File
@@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
## [0.10.2] - 2026-10-18
Codewhale v0.10.2 adds an animated pet view (`/pet on`), a live Terminal work
dock and per-chat composer colors (`/color`). It closes three session
data-loss paths, holds a `curl` or `wget` that uploads a credential, refuses
shell commands containing invisible Unicode, keeps the Linux sandbox working when a
hidden credential directory is a symlink, and uses much less CPU while the
TUI waits on you. `/undo` takes back a whole request, `/diff` works outside a
Git repository, DeepSeek's Responses route no longer rejects replayed tool
history, and contributor fixes improve token accounting, relay model lists,
localized replies and Windows launcher guidance.
### Latest fixes
- `/settings` choice lists that don't fit, such as Language and Theme, show
a scroll rail. Thanks @Lstarsky0 (#7024).
- During an `/mcp` search that finds nothing, the status line says "No
@@ -446,8 +460,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
relay) counts as a relay, and the provider panel no longer reports its
catalog missing while listing it.
## [0.10.2] - 2026-10-13
- The footer preview in `/settings` now uses the footer's own words and
colours, in the UI language: Startup mode Work previews `● ask work`
and Plan previews `● read only plan`, as the footer under the composer
@@ -662,12 +674,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- `codewhale app-server` no longer serves `GET /jobs`, which was always empty;
background jobs are `GET /v1/jobs` on the Runtime API (#6513).
Codewhale v0.10.2 adds an animated pet view (`/pet on`) and a live Terminal work
dock, and improves recovery, plugin approval and provider reliability. `/undo`
takes back a whole request, `/diff` works outside a Git repository, and
contributor fixes improve token accounting, localized replies and Windows
launcher guidance.
### Added
- Standard Compute is available as a bundled compatible provider, with the
+2 -5
View File
@@ -1,4 +1,4 @@
<!-- source: README.md sha256:4102e79c1672 -->
<!-- source: README.md sha256:2712306ab5f7 -->
<div align="center">
<picture>
@@ -165,10 +165,7 @@ OpenAI، وكذلك النماذج المحلية عبر Ollama أو vLLM أو S
الجلسة عندما يكون السعر معروفًا، ويُعرض السعر غير المعروف على أنه غير معروف، ولا
يُعرض أبدًا على أنه مجاني.
لا تحتاج إلى حساب. أما إذا كان لديك حساب (`codewhale login`)، فيمكنك حفظ مفاتيح
المزوّدين في [حساب Codewhale](docs/CONFIGURATION.md#account-provider-keys) الخاص بك؛
وعلى جهاز آخر، سجّل الدخول واختر Codewhale في `/provider` لاستخدامها. ولا يرفع تسجيل
الدخول المفاتيح الموجودة بالفعل على جهازك.
لا تحتاج إلى حساب.
## الأمان والخصوصية
+2 -6
View File
@@ -1,4 +1,4 @@
<!-- source: README.md sha256:4102e79c1672 -->
<!-- source: README.md sha256:2712306ab5f7 -->
<div align="center">
<picture>
@@ -178,11 +178,7 @@ directament al proveïdor; els models locals no necessiten clau. La barra
inferior i `/cost` mostren quant ha costat una sessió quan se’n coneix el preu,
i un preu desconegut es mostra com a desconegut, mai com a gratuït.
No necessites cap compte. Amb un compte (`codewhale login`), pots desar les
claus dels proveïdors al teu
[compte de Codewhale](docs/CONFIGURATION.md#account-provider-keys); en un altre
dispositiu, inicia la sessió i tria Codewhale a `/provider` per fer-les servir.
Iniciar la sessió no puja les claus que ja tens a la teva màquina.
No necessites cap compte.
## Seguretat i privadesa
+2 -7
View File
@@ -1,4 +1,4 @@
<!-- source: README.md sha256:4102e79c1672 -->
<!-- source: README.md sha256:2712306ab5f7 -->
<div align="center">
<picture>
@@ -178,12 +178,7 @@ Schlüssel. Die Fußzeile und `/cost` zeigen, was eine Sitzung gekostet hat, wen
der Preis bekannt ist; ein unbekannter Preis wird als unbekannt angezeigt, nie
als kostenlos.
Du brauchst kein Konto. Mit einem Konto (`codewhale login`) kannst du
Anbieterschlüssel in deinem
[Codewhale-Konto](docs/CONFIGURATION.md#account-provider-keys) speichern; auf
einem anderen Gerät meldest du dich an und wählst in `/provider` Codewhale, um
sie zu verwenden. Beim Anmelden werden Schlüssel, die schon auf deinem Rechner
liegen, nicht hochgeladen.
Du brauchst kein Konto.
## Sicherheit und Datenschutz
+2 -6
View File
@@ -1,4 +1,4 @@
<!-- source: README.md sha256:4102e79c1672 -->
<!-- source: README.md sha256:2712306ab5f7 -->
<div align="center">
<picture>
@@ -179,11 +179,7 @@ directamente al proveedor; los modelos locales no necesitan clave. La barra
inferior y `/cost` muestran cuánto ha costado una sesión cuando se conoce el
precio; un precio desconocido se muestra como desconocido, nunca como gratuito.
No necesitas una cuenta. Con una (`codewhale login`), puedes guardar las claves
de tus proveedores en tu
[cuenta de Codewhale](docs/CONFIGURATION.md#account-provider-keys); en otro
dispositivo, inicia sesión y elige Codewhale en `/provider` para usarlas.
Iniciar sesión no sube las claves que ya están en tu máquina.
No necesitas una cuenta.
## Seguridad y privacidad
+2 -6
View File
@@ -1,4 +1,4 @@
<!-- source: README.md sha256:4102e79c1672 -->
<!-- source: README.md sha256:2712306ab5f7 -->
<div align="center">
<picture>
@@ -182,11 +182,7 @@ directement le fournisseur ; les modèles locaux ne nécessitent aucune clé. Le
pied de page et `/cost` indiquent ce qu’une session a coûté lorsque le prix est
connu ; un prix inconnu est affiché comme inconnu, jamais comme gratuit.
Aucun compte n’est nécessaire. Avec un compte (`codewhale login`), vous pouvez
conserver vos clés de fournisseurs dans votre
[compte Codewhale](docs/CONFIGURATION.md#account-provider-keys) ; sur un autre
appareil, connectez-vous et choisissez Codewhale dans `/provider` pour les
utiliser. La connexion n’envoie pas les clés déjà présentes sur votre machine.
Aucun compte n’est nécessaire.
## Sécurité et confidentialité
+2 -5
View File
@@ -1,4 +1,4 @@
<!-- source: README.md sha256:4102e79c1672 -->
<!-- source: README.md sha256:2712306ab5f7 -->
<div align="center">
<picture>
@@ -169,10 +169,7 @@ Codewhale मुफ़्त है और MIT लाइसेंस के त
हो, तो फ़ुटर और `/cost` दिखाते हैं कि किसी सेशन पर कितना खर्च हुआ है, और अज्ञात कीमत
को अज्ञात ही दिखाया जाता है, कभी मुफ़्त नहीं।
आपको खाते की ज़रूरत नहीं है। खाता होने पर (`codewhale login`) आप प्रोवाइडर कुंजियाँ
अपने [Codewhale खाते](docs/CONFIGURATION.md#account-provider-keys) में रख सकते हैं;
किसी दूसरे डिवाइस पर उनका इस्तेमाल करने के लिए साइन इन करें और `/provider` में
Codewhale चुनें। साइन इन करने से आपकी मशीन पर पहले से मौजूद कुंजियाँ अपलोड नहीं होतीं।
आपको खाते की ज़रूरत नहीं है।
## सुरक्षा और गोपनीयता
+2 -6
View File
@@ -1,4 +1,4 @@
<!-- source: README.md sha256:4102e79c1672 -->
<!-- source: README.md sha256:2712306ab5f7 -->
<div align="center">
<picture>
@@ -177,11 +177,7 @@ langsung ke penyedia; model lokal tidak memerlukan kunci. Footer dan `/cost`
menampilkan biaya sesi jika harganya diketahui, dan harga yang tidak diketahui
ditampilkan sebagai tidak diketahui, tidak pernah sebagai gratis.
Anda tidak memerlukan akun. Dengan akun (`codewhale login`), Anda dapat
menyimpan kunci penyedia di
[akun Codewhale](docs/CONFIGURATION.md#account-provider-keys) Anda; di perangkat
lain, masuk lalu pilih Codewhale di `/provider` untuk memakainya. Masuk tidak
mengunggah kunci yang sudah ada di mesin Anda.
Anda tidak memerlukan akun.
## Keamanan dan privasi
+2 -6
View File
@@ -1,4 +1,4 @@
<!-- source: README.md sha256:4102e79c1672 -->
<!-- source: README.md sha256:2712306ab5f7 -->
<div align="center">
<picture>
@@ -176,11 +176,7 @@ direttamente il provider; i modelli locali non richiedono una chiave. Il piè di
pagina e `/cost` mostrano quanto è costata una sessione quando il prezzo è
noto; un prezzo sconosciuto viene mostrato come sconosciuto, mai come gratuito.
Non ti serve un account. Con un account (`codewhale login`) puoi conservare le
chiavi dei provider nel tuo
[account Codewhale](docs/CONFIGURATION.md#account-provider-keys); su un altro
dispositivo, accedi e scegli Codewhale in `/provider` per usarle. L’accesso non
carica le chiavi già presenti sulla tua macchina.
Non ti serve un account.
## Sicurezza e privacy
+1 -4
View File
@@ -1,4 +1,4 @@
<!-- source: README.md sha256:4102e79c1672 -->
<!-- source: README.md sha256:2712306ab5f7 -->
<div align="center">
<picture>
@@ -157,9 +157,6 @@ Codewhale は無料で、MIT ライセンスです。
価格が不明な場合は「不明」と表示され、無料として表示されることはありません。
アカウントは必須ではありません。
アカウントがあれば(`codewhale login`)、プロバイダーのキーを [Codewhale アカウント](docs/CONFIGURATION.md#account-provider-keys)に保存できます。
別のデバイスでは、サインインして `/provider` で Codewhale を選ぶと、それらのキーを使えます。
サインインしても、すでにマシン上にあるキーはアップロードされません。
## 安全性とプライバシー
+2 -5
View File
@@ -1,4 +1,4 @@
<!-- source: README.md sha256:4102e79c1672 -->
<!-- source: README.md sha256:2712306ab5f7 -->
<div align="center">
<picture>
@@ -173,10 +173,7 @@ Codewhale은 무료이며 MIT 라이선스로 배포됩니다. 자신의 API 키
있으면 하단 표시줄과 `/cost`에 세션 비용이 표시되며, 가격을 알 수 없으면 무료가
아니라 알 수 없음으로 표시합니다.
계정은 없어도 됩니다. 계정이 있으면(`codewhale login`) 제공업체 키를
[Codewhale 계정](docs/CONFIGURATION.md#account-provider-keys)에 보관할 수 있고,
다른 기기에서는 로그인한 뒤 `/provider`에서 Codewhale을 선택해 그 키를 사용할
수 있습니다. 로그인해도 이미 컴퓨터에 있는 키는 업로드되지 않습니다.
계정은 없어도 됩니다.
## 안전과 개인정보
+1 -4
View File
@@ -171,10 +171,7 @@ directly; local models need no key. The footer and `/cost` show what a session
has cost when the price is known, and an unknown price is shown as unknown,
never as free.
You don't need an account. With one (`codewhale login`), you can keep provider
keys in your [Codewhale account](docs/CONFIGURATION.md#account-provider-keys);
on another device, sign in and choose Codewhale in `/provider` to use them.
Signing in does not upload keys already on your machine.
You don't need an account.
## Safety and privacy
+2 -6
View File
@@ -1,4 +1,4 @@
<!-- source: README.md sha256:4102e79c1672 -->
<!-- source: README.md sha256:2712306ab5f7 -->
<div align="center">
<picture>
@@ -179,11 +179,7 @@ płacisz bezpośrednio dostawcy; modele lokalne nie wymagają klucza. Stopka i
`/cost` pokazują koszt sesji, gdy cena jest znana; nieznana cena jest
pokazywana jako nieznana, nigdy jako darmowa.
Konto nie jest wymagane. Jeśli je masz (`codewhale login`), możesz przechowywać
klucze dostawców na swoim
[koncie Codewhale](docs/CONFIGURATION.md#account-provider-keys); na innym
urządzeniu zaloguj się i wybierz Codewhale w `/provider`, aby z nich korzystać.
Logowanie nie przesyła kluczy, które już są na Twoim komputerze.
Konto nie jest wymagane.
## Bezpieczeństwo i prywatność
+2 -6
View File
@@ -1,4 +1,4 @@
<!-- source: README.md sha256:4102e79c1672 -->
<!-- source: README.md sha256:2712306ab5f7 -->
<div align="center">
<picture>
@@ -177,11 +177,7 @@ paga diretamente ao provedor; modelos locais não precisam de chave. O rodapé e
`/cost` mostram quanto uma sessão custou quando o preço é conhecido, e um preço
desconhecido aparece como desconhecido, nunca como gratuito.
Você não precisa de uma conta. Com uma (`codewhale login`), você pode guardar
chaves de provedores na sua
[conta Codewhale](docs/CONFIGURATION.md#account-provider-keys); em outro
dispositivo, entre na conta e escolha Codewhale em `/provider` para usá-las.
Entrar na conta não envia as chaves que já estão na sua máquina.
Você não precisa de uma conta.
## Segurança e privacidade
+2 -6
View File
@@ -1,4 +1,4 @@
<!-- source: README.md sha256:4102e79c1672 -->
<!-- source: README.md sha256:2712306ab5f7 -->
<div align="center">
<picture>
@@ -178,11 +178,7 @@ Codewhale бесплатен и распространяется под лице
и `/cost` показывают, сколько стоила сессия, когда цена известна; неизвестная
цена отображается как неизвестная и никогда — как бесплатная.
Аккаунт не обязателен. С аккаунтом (`codewhale login`) можно хранить ключи
провайдеров в [аккаунте Codewhale](docs/CONFIGURATION.md#account-provider-keys);
чтобы использовать их на другом устройстве, войдите в аккаунт и выберите
Codewhale в `/provider`. При входе ключи, которые уже есть на вашей машине, не
загружаются.
Аккаунт не обязателен.
## Безопасность и конфиденциальность
+2 -5
View File
@@ -1,4 +1,4 @@
<!-- source: README.md sha256:4102e79c1672 -->
<!-- source: README.md sha256:2712306ab5f7 -->
<div align="center">
<picture>
@@ -175,10 +175,7 @@ sağlayıcıya yaparsınız; yerel modeller anahtar gerektirmez. Alt bilgi satı
`/cost`, fiyat biliniyorsa bir oturumun maliyetini gösterir; bilinmeyen bir fiyat
asla ücretsiz olarak değil, bilinmeyen olarak gösterilir.
Hesaba ihtiyacınız yok. Bir hesapla (`codewhale login`) sağlayıcı anahtarlarınızı
[Codewhale hesabınızda](docs/CONFIGURATION.md#account-provider-keys) saklayabilirsiniz;
başka bir cihazda bunları kullanmak için oturum açın ve `/provider` içinde
Codewhale'i seçin. Oturum açmak, makinenizde zaten bulunan anahtarları yüklemez.
Hesaba ihtiyacınız yok.
## Güvenlik ve gizlilik
+2 -6
View File
@@ -1,4 +1,4 @@
<!-- source: README.md sha256:4102e79c1672 -->
<!-- source: README.md sha256:2712306ab5f7 -->
<div align="center">
<picture>
@@ -178,11 +178,7 @@ Codewhale безкоштовний і поширюється за ліцензі
і `/cost` показують, скільки коштувала сесія, якщо ціна відома; невідома ціна
показується як невідома і ніколи — як безкоштовна.
Обліковий запис не обов’язковий. Якщо він у вас є (`codewhale login`), ключі
провайдерів можна зберігати у вашому
[обліковому записі Codewhale](docs/CONFIGURATION.md#account-provider-keys); щоб
скористатися ними на іншому пристрої, увійдіть і виберіть Codewhale у
`/provider`. Вхід не завантажує ключі, які вже є на вашій машині.
Обліковий запис не обов’язковий.
## Безпека й конфіденційність
+2 -6
View File
@@ -1,4 +1,4 @@
<!-- source: README.md sha256:4102e79c1672 -->
<!-- source: README.md sha256:2712306ab5f7 -->
<div align="center">
<picture>
@@ -174,11 +174,7 @@ bạn trả tiền trực tiếp cho nhà cung cấp; mô hình cục bộ khôn
dưới cùng và `/cost` hiển thị chi phí của một phiên khi biết giá, còn giá chưa
biết được hiển thị là chưa biết, không bao giờ là miễn phí.
Bạn không cần tài khoản. Nếu có tài khoản (`codewhale login`), bạn có thể lưu
khóa của các nhà cung cấp trong
[tài khoản Codewhale](docs/CONFIGURATION.md#account-provider-keys); trên thiết
bị khác, hãy đăng nhập và chọn Codewhale trong `/provider` để dùng các khóa đó.
Việc đăng nhập không tải lên các khóa đã có sẵn trên máy của bạn.
Bạn không cần tài khoản.
## An toàn và quyền riêng tư
+2 -4
View File
@@ -1,4 +1,4 @@
<!-- source: README.md sha256:4102e79c1672 -->
<!-- source: README.md sha256:2712306ab5f7 -->
<div align="center">
<picture>
@@ -154,9 +154,7 @@ Codewhale 免费,采用 MIT 许可证。使用你自己的 API 密钥时,费
本地模型不需要密钥。价格已知时,底部状态栏和 `/cost` 会显示一次会话的花费;
价格未知时会显示为未知,而不会显示为免费。
你不需要账号。有了账号(`codewhale login`)后,你可以把提供商密钥保存在你的
[Codewhale 账号](docs/CONFIGURATION.md#account-provider-keys)中;在另一台设备上登录,
并在 `/provider` 中选择 Codewhale,即可使用这些密钥。登录不会上传你机器上已有的密钥。
你不需要账号。
## 安全与隐私
+2 -4
View File
@@ -1,4 +1,4 @@
<!-- source: README.md sha256:4102e79c1672 -->
<!-- source: README.md sha256:2712306ab5f7 -->
<div align="center">
<picture>
@@ -154,9 +154,7 @@ Codewhale 免費,並採用 MIT 授權。使用你自己的 API 金鑰時,費
不需要金鑰。價格已知時,底部狀態列與 `/cost` 會顯示工作階段目前的花費;價格未知時會顯示為
未知,絕不會顯示為免費。
你不需要帳號。有帳號時(`codewhale login`),你可以把供應商金鑰保存在你的
[Codewhale 帳號](docs/CONFIGURATION.md#account-provider-keys)中;在另一台裝置上,登入後在
`/provider` 中選擇 Codewhale 即可使用這些金鑰。登入不會上傳你機器上既有的金鑰。
你不需要帳號。
## 安全與隱私
+14 -8
View File
@@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
## [0.10.2] - 2026-10-18
Codewhale v0.10.2 adds an animated pet view (`/pet on`), a live Terminal work
dock and per-chat composer colors (`/color`). It closes three session
data-loss paths, holds a `curl` or `wget` that uploads a credential, refuses
shell commands containing invisible Unicode, keeps the Linux sandbox working when a
hidden credential directory is a symlink, and uses much less CPU while the
TUI waits on you. `/undo` takes back a whole request, `/diff` works outside a
Git repository, DeepSeek's Responses route no longer rejects replayed tool
history, and contributor fixes improve token accounting, relay model lists,
localized replies and Windows launcher guidance.
### Latest fixes
- `/settings` choice lists that don't fit, such as Language and Theme, show
a scroll rail. Thanks @Lstarsky0 (#7024).
- During an `/mcp` search that finds nothing, the status line says "No
@@ -446,8 +460,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
relay) counts as a relay, and the provider panel no longer reports its
catalog missing while listing it.
## [0.10.2] - 2026-10-13
- The footer preview in `/settings` now uses the footer's own words and
colours, in the UI language: Startup mode Work previews `● ask work`
and Plan previews `● read only plan`, as the footer under the composer
@@ -662,12 +674,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- `codewhale app-server` no longer serves `GET /jobs`, which was always empty;
background jobs are `GET /v1/jobs` on the Runtime API (#6513).
Codewhale v0.10.2 adds an animated pet view (`/pet on`) and a live Terminal work
dock, and improves recovery, plugin approval and provider reliability. `/undo`
takes back a whole request, `/diff` works outside a Git repository, and
contributor fixes improve token accounting, localized replies and Windows
launcher guidance.
### Added
- Standard Compute is available as a bundled compatible provider, with the