From 6feaca4eb74000b7c5e5437827d52229004e7038 Mon Sep 17 00:00:00 2001 From: CodeWhale Bot Date: Sun, 30 Aug 2026 10:48:58 -0700 Subject: [PATCH 1/2] chore: use the public name Codewhale in prose Replace the word CodeWhale with the ratified public name Codewhale in public prose only: docs/**, all 15 TUI locale packs, and user-facing Rust string literals in crates/tui/src (update/help/status/error copy plus the tests that assert on that copy). Compatibility identifiers are untouched: the Hmbown/CodeWhale GitHub slug and every URL containing it, Hmbown.CodeWhale (winget), Windows install paths (%LOCALAPPDATA%\Programs\CodeWhale\bin), clone directories (cd CodeWhale), user-agent and header strings, gherkin step names, test fixtures, doc comments, CHANGELOG history, README URLs. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_014aDEyM2a4pPZ9qqMDrP5YX Signed-off-by: CodeWhale Bot --- crates/tui/locales/ca.json | 8 ++-- crates/tui/locales/de.json | 8 ++-- crates/tui/locales/en.json | 8 ++-- crates/tui/locales/es-419.json | 8 ++-- crates/tui/locales/fr.json | 8 ++-- crates/tui/locales/hi.json | 8 ++-- crates/tui/locales/id.json | 8 ++-- crates/tui/locales/ja.json | 8 ++-- crates/tui/locales/ko.json | 8 ++-- crates/tui/locales/pt-BR.json | 8 ++-- crates/tui/locales/ru.json | 8 ++-- crates/tui/locales/uk.json | 8 ++-- crates/tui/locales/vi.json | 8 ++-- crates/tui/locales/zh-Hans.json | 8 ++-- crates/tui/locales/zh-Hant.json | 8 ++-- .../tui/src/commands/groups/utility/update.rs | 16 +++---- crates/tui/src/skills/mutation.rs | 22 +++++----- crates/tui/src/tools/file.rs | 4 +- crates/tui/src/tools/file/tests/tools.rs | 2 +- crates/tui/src/tools/tui_help.rs | 2 +- crates/tui/src/tui/keybindings.rs | 2 +- crates/tui/src/tui/ui.rs | 4 +- crates/tui/src/tui/ui/apply.rs | 2 +- crates/tui/src/tui/ui/tests.rs | 20 ++++----- docs/AGENT_RUNTIME.md | 18 ++++---- docs/ARCHITECTURE.md | 2 +- docs/CATALOG_REFRESH.md | 10 ++--- docs/CHANGELOG_ARCHIVE.md | 2 +- docs/CLASSROOM_INSTALL.md | 2 +- docs/CONFIGURATION.md | 2 +- docs/CONTRIBUTORS.md | 14 +++--- docs/DOCKER.md | 2 +- docs/ENVIRONMENTS.md | 2 +- docs/FLEET.md | 2 +- docs/INSTALL.md | 2 +- docs/ISSUE_TRIAGE.md | 2 +- docs/KEYBINDINGS.md | 2 +- docs/RELEASE_RUNBOOK.md | 2 +- docs/SKILLS.md | 12 ++--- docs/THIRD_PARTY_NOTICES.md | 6 +-- docs/WORKROOM_ARCHITECTURE.md | 4 +- docs/WORKROOM_SECURITY.md | 4 +- docs/examples/Dockerfile.toolbox | 2 +- docs/examples/compose.toolbox.yml | 2 +- docs/rfcs/1364-hooks-lifecycle.md | 4 +- docs/rfcs/3209-workrooms.md | 8 ++-- docs/rfcs/HARNESS_PROFILE_CUTLINE.md | 4 +- docs/rfcs/REMOTE_SETUP_DESIGN.md | 44 +++++++++---------- docs/rfcs/UNIFIED_PROVIDER_LOGIN.md | 2 +- docs/skills/README.md | 2 +- docs/skills/codew-release-qa-sweep/SKILL.md | 6 +-- docs/skills/gh-assign-issues/SKILL.md | 2 +- docs/skills/gh-close-issues/SKILL.md | 2 +- docs/skills/gh-compile-issues/SKILL.md | 2 +- docs/skills/gh-file-issue/SKILL.md | 6 +-- docs/skills/gh-find-prs/SKILL.md | 4 +- docs/zh_hans/INSTALL.md | 2 +- docs/zh_hans/KEYBINDINGS.md | 2 +- docs/zh_hans/README.md | 22 +++++----- 59 files changed, 200 insertions(+), 200 deletions(-) diff --git a/crates/tui/locales/ca.json b/crates/tui/locales/ca.json index ad828780e7..c4b276fe32 100644 --- a/crates/tui/locales/ca.json +++ b/crates/tui/locales/ca.json @@ -475,7 +475,7 @@ "CmdModelsDescription": "Obtén els IDs de model en viu de l'API activa", "CmdModelDbDescription": "Explora la base de dades de models inclosa", "CmdNetworkDescription": "Gestiona les regles de xarxa de permís i denegació", - "CmdUpdateDescription": "Comprova i instal·la una nova versió de CodeWhale", + "CmdUpdateDescription": "Comprova i instal·la una nova versió de Codewhale", "CmdNoteDescription": "Afegeix, llista, edita o elimina notes de l'espai de treball", "CmdThemeDescription": "Canvia de tema o obre el selector de temes", "CmdProviderDescription": "Canvia el proveïdor i/o model actiu", @@ -630,8 +630,8 @@ "KbAltJumpPlanAgentYolo": "Salt alternatiu al mode Plan / Act / Operate", "KbFocusSidebar": "Enfoca el panell del rail Tasks / Agents / Context / Pinned", "KbSessionPicker": "Obre el selector de sessions", - "KbUpdateInstall": "Comprova i instal·la l'última actualització de CodeWhale (`/update install`)", - "UpdateChangedHint": "CodeWhale s'ha actualitzat: {previous} → {current}. Executa /change per veure les novetats.", + "KbUpdateInstall": "Comprova i instal·la l'última actualització de Codewhale (`/update install`)", + "UpdateChangedHint": "Codewhale s'ha actualitzat: {previous} → {current}. Executa /change per veure les novetats.", "KbTerminalPaste": "Enganxa text amb el teu terminal local", "KbPasteAttach": "Enganxa text o adjunta una imatge des d'un porta-retalls gràfic local o reenviat", "KbCopySelection": "Copia la selecció actual de Codewhale", @@ -972,7 +972,7 @@ "ApprovalChooseAction": "Enter per a l'opció seleccionada, o prem y/a/d directament", "ApprovalIntentLabel": "Intenció: ", "ApprovalMoreLines": " … (+{count} línies)", - "ApprovalAutoDeniedSession": "{tool} denegat automàticament: una sol·licitud coincident es va denegar abans en aquesta execució de CodeWhale. Reinicia CodeWhale per reconsiderar-la.", + "ApprovalAutoDeniedSession": "{tool} denegat automàticament: una sol·licitud coincident es va denegar abans en aquesta execució de Codewhale. Reinicia Codewhale per reconsiderar-la.", "ElevationTitleSandboxDenied": " ⚠, Sandbox denegat ", "ElevationTitleRequired": " Cal elevació del sandbox ", "ElevationFieldTool": " Eina: ", diff --git a/crates/tui/locales/de.json b/crates/tui/locales/de.json index 1c3f9e4633..6fa755c807 100644 --- a/crates/tui/locales/de.json +++ b/crates/tui/locales/de.json @@ -475,7 +475,7 @@ "CmdModelsDescription": "Live-Modell-IDs von der aktiven API abrufen", "CmdModelDbDescription": "Mitgelieferte Modelldatenbank durchsuchen", "CmdNetworkDescription": "Netzwerk-Allow- und Deny-Regeln verwalten", - "CmdUpdateDescription": "Neue CodeWhale-Version suchen und installieren", + "CmdUpdateDescription": "Neue Codewhale-Version suchen und installieren", "CmdNoteDescription": "Workspace-Notizen hinzufügen, auflisten, bearbeiten oder entfernen", "CmdThemeDescription": "Theme wechseln oder Theme-Auswahl öffnen", "CmdProviderDescription": "Aktiven Provider und/oder Modell wechseln", @@ -630,8 +630,8 @@ "KbAltJumpPlanAgentYolo": "Alternativer Sprung in den Plan- / Act- / Operate-Modus", "KbFocusSidebar": "Rail-Panel Tasks / Agents / Context / Pinned fokussieren", "KbSessionPicker": "Sitzungsauswahl öffnen", - "KbUpdateInstall": "Nach dem neuesten CodeWhale-Update suchen und es installieren (`/update install`)", - "UpdateChangedHint": "CodeWhale wurde aktualisiert: {previous} → {current}. Führe /change aus, um die Neuerungen anzuzeigen.", + "KbUpdateInstall": "Nach dem neuesten Codewhale-Update suchen und es installieren (`/update install`)", + "UpdateChangedHint": "Codewhale wurde aktualisiert: {previous} → {current}. Führe /change aus, um die Neuerungen anzuzeigen.", "KbTerminalPaste": "Text über das lokale Terminal einfügen", "KbPasteAttach": "Text einfügen oder Bild aus einer lokalen bzw. weitergeleiteten grafischen Zwischenablage anhängen", "KbCopySelection": "Aktuelle Codewhale-Auswahl kopieren", @@ -972,7 +972,7 @@ "ApprovalChooseAction": "Enter wählt die Option, oder direkt y/a/d drücken", "ApprovalIntentLabel": "Absicht: ", "ApprovalMoreLines": " … (+{count} Zeilen)", - "ApprovalAutoDeniedSession": "Auto-abgelehnt {tool}: eine passende Anfrage wurde früher in diesem CodeWhale-Lauf abgelehnt. CodeWhale neu starten, um sie erneut zu prüfen.", + "ApprovalAutoDeniedSession": "Auto-abgelehnt {tool}: eine passende Anfrage wurde früher in diesem Codewhale-Lauf abgelehnt. Codewhale neu starten, um sie erneut zu prüfen.", "ElevationTitleSandboxDenied": " ⚠, Sandbox verweigert ", "ElevationTitleRequired": " Sandbox-Elevation erforderlich ", "ElevationFieldTool": " Tool: ", diff --git a/crates/tui/locales/en.json b/crates/tui/locales/en.json index afb5fbcdfb..d1bcc71bc6 100644 --- a/crates/tui/locales/en.json +++ b/crates/tui/locales/en.json @@ -478,7 +478,7 @@ "CmdModelsDescription": "Fetch live model IDs from the active API", "CmdModelDbDescription": "Browse the bundled model database", "CmdNetworkDescription": "Manage network allow and deny rules", - "CmdUpdateDescription": "Check for and install a new CodeWhale release", + "CmdUpdateDescription": "Check for and install a new Codewhale release", "CmdNoteDescription": "Add, list, edit, or remove workspace notes", "CmdThemeDescription": "Switch theme or open the theme picker", "CmdProviderDescription": "Switch the active provider and/or model", @@ -647,8 +647,8 @@ "KbAltJumpPlanAgentYolo": "Jump to Plan / Work, or request Full Access (legacy alias, not a mode)", "KbFocusSidebar": "Focus the Tasks / Agents / Context / Pinned rail panel", "KbSessionPicker": "Open the session picker", - "KbUpdateInstall": "Check for and install the latest CodeWhale update (`/update install`)", - "UpdateChangedHint": "CodeWhale was updated: {previous} → {current}. Run /change to see what's new.", + "KbUpdateInstall": "Check for and install the latest Codewhale update (`/update install`)", + "UpdateChangedHint": "Codewhale was updated: {previous} → {current}. Run /change to see what's new.", "KbTerminalPaste": "Paste text using your local terminal", "KbPasteAttach": "Paste text or attach an image from a local or forwarded graphical clipboard", "KbCopySelection": "Copy the current Codewhale selection", @@ -995,7 +995,7 @@ "ApprovalChooseAction": "Enter selected option, or press y/a/d directly", "ApprovalIntentLabel": "Intent: ", "ApprovalMoreLines": " … (+{count} lines)", - "ApprovalAutoDeniedSession": "Auto-denied {tool}: a matching request was denied earlier during this CodeWhale run. Restart CodeWhale to reconsider it.", + "ApprovalAutoDeniedSession": "Auto-denied {tool}: a matching request was denied earlier during this Codewhale run. Restart Codewhale to reconsider it.", "ElevationTitleSandboxDenied": " ⚠, Sandbox Denied ", "ElevationTitleRequired": " Sandbox Elevation Required ", "ElevationFieldTool": " Tool: ", diff --git a/crates/tui/locales/es-419.json b/crates/tui/locales/es-419.json index bf08ce794f..6afb804b02 100644 --- a/crates/tui/locales/es-419.json +++ b/crates/tui/locales/es-419.json @@ -478,7 +478,7 @@ "CmdModelsDescription": "Obtener IDs de modelo en vivo de la API activa", "CmdModelDbDescription": "Explorar la base de datos de modelos integrada", "CmdNetworkDescription": "Gestionar reglas de red permitidas y bloqueadas", - "CmdUpdateDescription": "Buscar e instalar una nueva versión de CodeWhale", + "CmdUpdateDescription": "Buscar e instalar una nueva versión de Codewhale", "CmdNoteDescription": "Agregar nota al archivo persistente (.codewhale/notes.md)", "CmdThemeDescription": "Alternar entre tema claro y oscuro", "CmdProviderDescription": "Cambiar o mostrar el backend LLM activo (deepseek | nvidia-nim | ollama)", @@ -647,8 +647,8 @@ "KbAltJumpPlanAgentYolo": "Salto alternativo a modo Plan / Act / Operate", "KbFocusSidebar": "Enfocar el panel del riel Tasks / Agents / Context / Pinned", "KbSessionPicker": "Abrir selector de sesiones", - "KbUpdateInstall": "Buscar e instalar la última actualización de CodeWhale (`/update install`)", - "UpdateChangedHint": "CodeWhale se actualizó: {previous} → {current}. Ejecuta /change para ver las novedades.", + "KbUpdateInstall": "Buscar e instalar la última actualización de Codewhale (`/update install`)", + "UpdateChangedHint": "Codewhale se actualizó: {previous} → {current}. Ejecuta /change para ver las novedades.", "KbTerminalPaste": "Pegar texto con el terminal local", "KbPasteAttach": "Pegar texto o adjuntar una imagen desde un portapapeles gráfico local o reenviado", "KbCopySelection": "Copiar la selección actual de Codewhale", @@ -993,7 +993,7 @@ "ApprovalChooseAction": "Enter para seleccionar, o presione y/a/d directamente", "ApprovalIntentLabel": "Intención: ", "ApprovalMoreLines": " … (+{count} líneas)", - "ApprovalAutoDeniedSession": "Se rechazó automáticamente {tool}: se rechazó antes una solicitud coincidente durante esta ejecución de CodeWhale. Reinicia CodeWhale para reconsiderarla.", + "ApprovalAutoDeniedSession": "Se rechazó automáticamente {tool}: se rechazó antes una solicitud coincidente durante esta ejecución de Codewhale. Reinicia Codewhale para reconsiderarla.", "ElevationTitleSandboxDenied": " ⚠, Sandbox Denegado ", "ElevationTitleRequired": " Elevación de Sandbox Requerida ", "ElevationFieldTool": " Herramienta: ", diff --git a/crates/tui/locales/fr.json b/crates/tui/locales/fr.json index 485db040d2..a82c75f1a7 100644 --- a/crates/tui/locales/fr.json +++ b/crates/tui/locales/fr.json @@ -475,7 +475,7 @@ "CmdModelsDescription": "Récupérer les IDs de modèles en direct depuis l'API active", "CmdModelDbDescription": "Parcourir la base de modèles intégrée", "CmdNetworkDescription": "Gérer les règles réseau d'autorisation et de refus", - "CmdUpdateDescription": "Rechercher et installer une nouvelle version de CodeWhale", + "CmdUpdateDescription": "Rechercher et installer une nouvelle version de Codewhale", "CmdNoteDescription": "Ajouter, lister, modifier ou supprimer des notes du workspace", "CmdThemeDescription": "Changer de thème ou ouvrir le sélecteur de thème", "CmdProviderDescription": "Changer le fournisseur et/ou le modèle actif", @@ -630,8 +630,8 @@ "KbAltJumpPlanAgentYolo": "Saut alternatif vers le mode Plan / Act / Operate", "KbFocusSidebar": "Cibler le panneau du rail Tasks / Agents / Context / Pinned", "KbSessionPicker": "Ouvrir le sélecteur de sessions", - "KbUpdateInstall": "Rechercher et installer la dernière mise à jour de CodeWhale (`/update install`)", - "UpdateChangedHint": "CodeWhale a été mis à jour : {previous} → {current}. Exécutez /change pour voir les nouveautés.", + "KbUpdateInstall": "Rechercher et installer la dernière mise à jour de Codewhale (`/update install`)", + "UpdateChangedHint": "Codewhale a été mis à jour : {previous} → {current}. Exécutez /change pour voir les nouveautés.", "KbTerminalPaste": "Coller du texte avec votre terminal local", "KbPasteAttach": "Coller du texte ou joindre une image depuis un presse-papiers graphique local ou transféré", "KbCopySelection": "Copier la sélection Codewhale actuelle", @@ -972,7 +972,7 @@ "ApprovalChooseAction": "Enter pour l'option sélectionnée, ou appuyez directement sur y/a/d", "ApprovalIntentLabel": "Intention : ", "ApprovalMoreLines": " … (+{count} lignes)", - "ApprovalAutoDeniedSession": "{tool} refusé automatiquement : une demande correspondante a été refusée plus tôt pendant cette exécution de CodeWhale. Redémarrez CodeWhale pour la reconsidérer.", + "ApprovalAutoDeniedSession": "{tool} refusé automatiquement : une demande correspondante a été refusée plus tôt pendant cette exécution de Codewhale. Redémarrez Codewhale pour la reconsidérer.", "ElevationTitleSandboxDenied": " ⚠, Sandbox refusé ", "ElevationTitleRequired": " Élévation du sandbox requise ", "ElevationFieldTool": " Outil : ", diff --git a/crates/tui/locales/hi.json b/crates/tui/locales/hi.json index be6877c2b1..fe68b5e5e5 100644 --- a/crates/tui/locales/hi.json +++ b/crates/tui/locales/hi.json @@ -475,7 +475,7 @@ "CmdModelsDescription": "सक्रिय API से लाइव मॉडल ID लाएँ", "CmdModelDbDescription": "बंडल किया मॉडल डेटाबेस ब्राउज़ करें", "CmdNetworkDescription": "नेटवर्क अनुमति और निषेध नियम प्रबंधित करें", - "CmdUpdateDescription": "नया CodeWhale रिलीज़ जाँचें और इंस्टॉल करें", + "CmdUpdateDescription": "नया Codewhale रिलीज़ जाँचें और इंस्टॉल करें", "CmdNoteDescription": "वर्कस्पेस नोट जोड़ें, सूचीबद्ध करें, संपादित करें या हटाएँ", "CmdThemeDescription": "थीम बदलें या थीम चयनकर्ता खोलें", "CmdProviderDescription": "सक्रिय प्रोवाइडर और/या मॉडल बदलें", @@ -630,8 +630,8 @@ "KbAltJumpPlanAgentYolo": "Plan / Act / Operate मोड पर वैकल्पिक जंप", "KbFocusSidebar": "Tasks / Agents / Context / Pinned रेल पैनल फ़ोकस करें", "KbSessionPicker": "सत्र चयनकर्ता खोलें", - "KbUpdateInstall": "नवीनतम CodeWhale अपडेट जाँचें और इंस्टॉल करें (`/update install`)", - "UpdateChangedHint": "CodeWhale अपडेट हो गया है: {previous} → {current}। नया क्या है यह देखने के लिए /change चलाएँ।", + "KbUpdateInstall": "नवीनतम Codewhale अपडेट जाँचें और इंस्टॉल करें (`/update install`)", + "UpdateChangedHint": "Codewhale अपडेट हो गया है: {previous} → {current}। नया क्या है यह देखने के लिए /change चलाएँ।", "KbTerminalPaste": "अपने लोकल टर्मिनल से टेक्स्ट पेस्ट करें", "KbPasteAttach": "लोकल या फ़ॉरवर्ड किए ग्राफ़िकल क्लिपबोर्ड से टेक्स्ट पेस्ट करें या इमेज अटैच करें", "KbCopySelection": "वर्तमान Codewhale चयन कॉपी करें", @@ -972,7 +972,7 @@ "ApprovalChooseAction": "चुना विकल्प भेजें, या सीधे y/a/d दबाएँ", "ApprovalIntentLabel": "इरादा: ", "ApprovalMoreLines": " … (+{count} पंक्तियाँ)", - "ApprovalAutoDeniedSession": "स्वतः अस्वीकृत {tool}: इस CodeWhale रन में पहले मिलता-जुलता अनुरोध अस्वीकृत हुआ था। पुनर्विचार के लिए CodeWhale फिर शुरू करें।", + "ApprovalAutoDeniedSession": "स्वतः अस्वीकृत {tool}: इस Codewhale रन में पहले मिलता-जुलता अनुरोध अस्वीकृत हुआ था। पुनर्विचार के लिए Codewhale फिर शुरू करें।", "ElevationTitleSandboxDenied": " ⚠, सैंडबॉक्स अस्वीकृत ", "ElevationTitleRequired": " सैंडबॉक्स एलिवेशन आवश्यक ", "ElevationFieldTool": " टूल: ", diff --git a/crates/tui/locales/id.json b/crates/tui/locales/id.json index ddad8fecbb..2c8eaed37d 100644 --- a/crates/tui/locales/id.json +++ b/crates/tui/locales/id.json @@ -475,7 +475,7 @@ "CmdModelsDescription": "Ambil ID model langsung dari API aktif", "CmdModelDbDescription": "Telusuri database model bawaan", "CmdNetworkDescription": "Kelola aturan izinkan dan tolak jaringan", - "CmdUpdateDescription": "Periksa dan pasang rilis CodeWhale baru", + "CmdUpdateDescription": "Periksa dan pasang rilis Codewhale baru", "CmdNoteDescription": "Tambah, tampilkan, edit, atau hapus catatan workspace", "CmdThemeDescription": "Ganti tema atau buka pemilih tema", "CmdProviderDescription": "Ganti penyedia dan/atau model aktif", @@ -630,8 +630,8 @@ "KbAltJumpPlanAgentYolo": "Lompatan alternatif ke mode Plan / Act / Operate", "KbFocusSidebar": "Fokuskan panel rail Tasks / Agents / Context / Pinned", "KbSessionPicker": "Buka pemilih sesi", - "KbUpdateInstall": "Periksa dan pasang pembaruan CodeWhale terbaru (`/update install`)", - "UpdateChangedHint": "CodeWhale telah diperbarui: {previous} → {current}. Jalankan /change untuk melihat apa yang baru.", + "KbUpdateInstall": "Periksa dan pasang pembaruan Codewhale terbaru (`/update install`)", + "UpdateChangedHint": "Codewhale telah diperbarui: {previous} → {current}. Jalankan /change untuk melihat apa yang baru.", "KbTerminalPaste": "Tempel teks memakai terminal lokal Anda", "KbPasteAttach": "Tempel teks atau lampirkan gambar dari papan klip grafis lokal atau yang diteruskan", "KbCopySelection": "Salin pilihan Codewhale saat ini", @@ -972,7 +972,7 @@ "ApprovalChooseAction": "Enter untuk opsi terpilih, atau tekan y/a/d langsung", "ApprovalIntentLabel": "Maksud: ", "ApprovalMoreLines": " … (+{count} baris)", - "ApprovalAutoDeniedSession": "Ditolak otomatis {tool}: permintaan yang cocok telah ditolak sebelumnya selama run CodeWhale ini. Mulai ulang CodeWhale untuk meninjaunya kembali.", + "ApprovalAutoDeniedSession": "Ditolak otomatis {tool}: permintaan yang cocok telah ditolak sebelumnya selama run Codewhale ini. Mulai ulang Codewhale untuk meninjaunya kembali.", "ElevationTitleSandboxDenied": " ⚠ Sandbox Ditolak ", "ElevationTitleRequired": " Perlu Elevasi Sandbox ", "ElevationFieldTool": " Tool: ", diff --git a/crates/tui/locales/ja.json b/crates/tui/locales/ja.json index 04656f725b..0e790765d3 100644 --- a/crates/tui/locales/ja.json +++ b/crates/tui/locales/ja.json @@ -478,7 +478,7 @@ "CmdModelsDescription": "アクティブな API からライブのモデル ID を取得する", "CmdModelDbDescription": "内蔵のモデルデータベースを閲覧する", "CmdNetworkDescription": "ネットワーク許可・拒否ルールを管理", - "CmdUpdateDescription": "新しい CodeWhale リリースを確認してインストールします", + "CmdUpdateDescription": "新しい Codewhale リリースを確認してインストールします", "CmdNoteDescription": "ワークスペースノートの追加、一覧、編集、削除", "CmdThemeDescription": "テーマを切り替え(ダーク/ライト/グレースケール/システム)", "CmdProviderDescription": "現在の LLM バックエンドを切り替え・確認(deepseek | nvidia-nim | ollama)", @@ -647,8 +647,8 @@ "KbAltJumpPlanAgentYolo": "Plan / Act / Operate モードへの代替ジャンプ", "KbFocusSidebar": "Tasks / Agents / Context / Pinned レールパネルにフォーカス", "KbSessionPicker": "セッションピッカーを開く", - "KbUpdateInstall": "最新のCodeWhaleアップデートを確認してインストールする(`/update install`)", - "UpdateChangedHint": "CodeWhale が更新されました: {previous} → {current}。/change を実行して更新内容を確認してください。", + "KbUpdateInstall": "最新のCodewhaleアップデートを確認してインストールする(`/update install`)", + "UpdateChangedHint": "Codewhale が更新されました: {previous} → {current}。/change を実行して更新内容を確認してください。", "KbTerminalPaste": "ローカル端末を使ってテキストを貼り付け", "KbPasteAttach": "ローカルまたは転送されたグラフィカルクリップボードからテキストを貼り付けるか画像を添付", "KbCopySelection": "Codewhale の現在の選択をコピー", @@ -993,7 +993,7 @@ "ApprovalChooseAction": "Enterで選択、または y/a/d を直接入力", "ApprovalIntentLabel": "意図:", "ApprovalMoreLines": " … (+{count} 行)", - "ApprovalAutoDeniedSession": "{tool} を自動的に拒否しました: この CodeWhale の実行中に一致するリクエストが以前拒否されています。再検討するには CodeWhale を再起動してください。", + "ApprovalAutoDeniedSession": "{tool} を自動的に拒否しました: この Codewhale の実行中に一致するリクエストが以前拒否されています。再検討するには Codewhale を再起動してください。", "ElevationTitleSandboxDenied": " ⚠, サンドボックス拒否 ", "ElevationTitleRequired": " サンドボックス昇格 ", "ElevationFieldTool": " ツール:", diff --git a/crates/tui/locales/ko.json b/crates/tui/locales/ko.json index 04da63ad2c..edbadbefaf 100644 --- a/crates/tui/locales/ko.json +++ b/crates/tui/locales/ko.json @@ -478,7 +478,7 @@ "CmdModelsDescription": "현재 API에서 실시간 모델 ID를 가져옵니다", "CmdModelDbDescription": "내장 모델 데이터베이스를 조회합니다", "CmdNetworkDescription": "네트워크 허용/차단 규칙을 관리합니다", - "CmdUpdateDescription": "새 CodeWhale 릴리스를 확인하고 설치합니다", + "CmdUpdateDescription": "새 Codewhale 릴리스를 확인하고 설치합니다", "CmdNoteDescription": "작업 공간 메모를 추가, 목록 조회, 편집, 삭제합니다", "CmdThemeDescription": "테마를 전환하거나 테마 선택 화면을 엽니다", "CmdProviderDescription": "현재 프로바이더 및/또는 모델을 전환합니다", @@ -647,8 +647,8 @@ "KbAltJumpPlanAgentYolo": "계획 / 실행 / 운영 모드로 대체 이동", "KbFocusSidebar": "Tasks / Agents / Context / Pinned 레일 패널에 포커스", "KbSessionPicker": "세션 선택 화면 열기", - "KbUpdateInstall": "최신 CodeWhale 업데이트를 확인하고 설치 (`/update install`)", - "UpdateChangedHint": "CodeWhale가 업데이트되었습니다: {previous} → {current}. /change를 실행하여 새로운 내용을 확인하세요.", + "KbUpdateInstall": "최신 Codewhale 업데이트를 확인하고 설치 (`/update install`)", + "UpdateChangedHint": "Codewhale가 업데이트되었습니다: {previous} → {current}. /change를 실행하여 새로운 내용을 확인하세요.", "KbTerminalPaste": "로컬 터미널로 텍스트 붙여넣기", "KbPasteAttach": "로컬 또는 전달된 그래픽 클립보드에서 텍스트를 붙여넣거나 이미지 첨부", "KbCopySelection": "현재 Codewhale 선택 영역 복사", @@ -995,7 +995,7 @@ "ApprovalChooseAction": "Enter로 선택 항목 적용, 또는 y/a/d를 바로 누르세요", "ApprovalIntentLabel": "의도: ", "ApprovalMoreLines": " … (+{count}줄)", - "ApprovalAutoDeniedSession": "{tool} 자동 거부: 이번 CodeWhale 실행 중 일치하는 요청이 이전에 거부되었습니다. 다시 검토하려면 CodeWhale을 재시작하세요.", + "ApprovalAutoDeniedSession": "{tool} 자동 거부: 이번 Codewhale 실행 중 일치하는 요청이 이전에 거부되었습니다. 다시 검토하려면 Codewhale을 재시작하세요.", "ElevationTitleSandboxDenied": " ⚠, 샌드박스 거부됨 ", "ElevationTitleRequired": " 샌드박스 권한 상승 필요 ", "ElevationFieldTool": " 도구: ", diff --git a/crates/tui/locales/pt-BR.json b/crates/tui/locales/pt-BR.json index 5bebcafb1c..6d3181fe13 100644 --- a/crates/tui/locales/pt-BR.json +++ b/crates/tui/locales/pt-BR.json @@ -478,7 +478,7 @@ "CmdModelsDescription": "Buscar IDs de modelo ao vivo da API ativa", "CmdModelDbDescription": "Navegar pelo banco de dados de modelos integrado", "CmdNetworkDescription": "Gerenciar regras de rede permitidas e bloqueadas", - "CmdUpdateDescription": "Verificar e instalar uma nova versão do CodeWhale", + "CmdUpdateDescription": "Verificar e instalar uma nova versão do Codewhale", "CmdNoteDescription": "Adicionar, listar, editar ou remover notas do workspace", "CmdThemeDescription": "Alternar tema: escuro, claro, tons de cinza ou sistema", "CmdProviderDescription": "Trocar ou exibir o backend LLM ativo (deepseek | nvidia-nim | ollama)", @@ -647,8 +647,8 @@ "KbAltJumpPlanAgentYolo": "Salto alternativo para modo Plan / Act / Operate", "KbFocusSidebar": "Focar o painel do trilho Tasks / Agents / Context / Pinned", "KbSessionPicker": "Abrir seletor de sessões", - "KbUpdateInstall": "Verificar e instalar a atualização mais recente do CodeWhale (`/update install`)", - "UpdateChangedHint": "O CodeWhale foi atualizado: {previous} → {current}. Execute /change para ver as novidades.", + "KbUpdateInstall": "Verificar e instalar a atualização mais recente do Codewhale (`/update install`)", + "UpdateChangedHint": "O Codewhale foi atualizado: {previous} → {current}. Execute /change para ver as novidades.", "KbTerminalPaste": "Colar texto usando o terminal local", "KbPasteAttach": "Colar texto ou anexar uma imagem de uma área de transferência gráfica local ou encaminhada", "KbCopySelection": "Copiar a seleção atual do Codewhale", @@ -993,7 +993,7 @@ "ApprovalChooseAction": "Enter para selecionar, ou pressione y/a/d diretamente", "ApprovalIntentLabel": "Intenção: ", "ApprovalMoreLines": " … (+{count} linhas)", - "ApprovalAutoDeniedSession": "{tool} foi negado automaticamente: uma solicitação correspondente foi negada anteriormente nesta execução do CodeWhale. Reinicie o CodeWhale para reconsiderá-la.", + "ApprovalAutoDeniedSession": "{tool} foi negado automaticamente: uma solicitação correspondente foi negada anteriormente nesta execução do Codewhale. Reinicie o Codewhale para reconsiderá-la.", "ElevationTitleSandboxDenied": " ⚠, Sandbox Negado ", "ElevationTitleRequired": " Elevação de Sandbox Necessária ", "ElevationFieldTool": " Ferramenta: ", diff --git a/crates/tui/locales/ru.json b/crates/tui/locales/ru.json index f9b7101696..75feb0ebd6 100644 --- a/crates/tui/locales/ru.json +++ b/crates/tui/locales/ru.json @@ -475,7 +475,7 @@ "CmdModelsDescription": "Получить актуальные ID моделей из активного API", "CmdModelDbDescription": "Просмотр встроенной базы моделей", "CmdNetworkDescription": "Управление правилами разрешения и запрета сети", - "CmdUpdateDescription": "Проверить и установить новый выпуск CodeWhale", + "CmdUpdateDescription": "Проверить и установить новый выпуск Codewhale", "CmdNoteDescription": "Добавить, показать, изменить или удалить заметки рабочей области", "CmdThemeDescription": "Сменить тему или открыть выбор темы", "CmdProviderDescription": "Сменить активного провайдера и/или модель", @@ -630,8 +630,8 @@ "KbAltJumpPlanAgentYolo": "Альтернативный переход в режим Plan / Act / Operate", "KbFocusSidebar": "Фокус на панели рейки Tasks / Agents / Context / Pinned", "KbSessionPicker": "Открыть выбор сессии", - "KbUpdateInstall": "Проверить и установить последнее обновление CodeWhale (`/update install`)", - "UpdateChangedHint": "CodeWhale обновлён: {previous} → {current}. Запустите /change, чтобы узнать, что нового.", + "KbUpdateInstall": "Проверить и установить последнее обновление Codewhale (`/update install`)", + "UpdateChangedHint": "Codewhale обновлён: {previous} → {current}. Запустите /change, чтобы узнать, что нового.", "KbTerminalPaste": "Вставить текст через локальный терминал", "KbPasteAttach": "Вставить текст или прикрепить изображение из локального или проброшенного графического буфера обмена", "KbCopySelection": "Скопировать текущее выделение Codewhale", @@ -972,7 +972,7 @@ "ApprovalChooseAction": "Enter — выбранный вариант, или нажмите y/a/d напрямую", "ApprovalIntentLabel": "Намерение: ", "ApprovalMoreLines": " … (ещё {count} строк)", - "ApprovalAutoDeniedSession": "{tool} отклонён автоматически: похожий запрос уже был отклонён в этом запуске CodeWhale. Перезапустите CodeWhale, чтобы пересмотреть.", + "ApprovalAutoDeniedSession": "{tool} отклонён автоматически: похожий запрос уже был отклонён в этом запуске Codewhale. Перезапустите Codewhale, чтобы пересмотреть.", "ElevationTitleSandboxDenied": " ⚠, Отказ песочницы ", "ElevationTitleRequired": " Требуется повышение прав песочницы ", "ElevationFieldTool": " Инструмент: ", diff --git a/crates/tui/locales/uk.json b/crates/tui/locales/uk.json index b77760614d..74f5b37a24 100644 --- a/crates/tui/locales/uk.json +++ b/crates/tui/locales/uk.json @@ -475,7 +475,7 @@ "CmdModelsDescription": "Отримати актуальні ID моделей з активного API", "CmdModelDbDescription": "Переглянути вбудовану базу моделей", "CmdNetworkDescription": "Керувати мережевими правилами дозволу та заборони", - "CmdUpdateDescription": "Перевірити та встановити новий випуск CodeWhale", + "CmdUpdateDescription": "Перевірити та встановити новий випуск Codewhale", "CmdNoteDescription": "Додати, показати, змінити або видалити нотатки робочої області", "CmdThemeDescription": "Змінити тему або відкрити вибір теми", "CmdProviderDescription": "Змінити активного провайдера та/або модель", @@ -630,8 +630,8 @@ "KbAltJumpPlanAgentYolo": "Альтернативний перехід до режиму Plan / Act / Operate", "KbFocusSidebar": "Фокус на панелі рейки Tasks / Agents / Context / Pinned", "KbSessionPicker": "Відкрити вибір сеансу", - "KbUpdateInstall": "Перевірити й встановити останнє оновлення CodeWhale (`/update install`)", - "UpdateChangedHint": "CodeWhale оновлено: {previous} → {current}. Запустіть /change, щоб переглянути нововведення.", + "KbUpdateInstall": "Перевірити й встановити останнє оновлення Codewhale (`/update install`)", + "UpdateChangedHint": "Codewhale оновлено: {previous} → {current}. Запустіть /change, щоб переглянути нововведення.", "KbTerminalPaste": "Вставити текст через локальний термінал", "KbPasteAttach": "Вставити текст або додати зображення з локального чи перенаправленого графічного буфера обміну", "KbCopySelection": "Скопіювати поточне виділення Codewhale", @@ -972,7 +972,7 @@ "ApprovalChooseAction": "Enter — вибрати опцію, або натисніть y/a/d напряму", "ApprovalIntentLabel": "Намір: ", "ApprovalMoreLines": " … (+{count} рядків)", - "ApprovalAutoDeniedSession": "Автоматично відхилено {tool}: подібний запит уже було відхилено під час цього запуску CodeWhale. Перезапустіть CodeWhale, щоб переглянути рішення.", + "ApprovalAutoDeniedSession": "Автоматично відхилено {tool}: подібний запит уже було відхилено під час цього запуску Codewhale. Перезапустіть Codewhale, щоб переглянути рішення.", "ElevationTitleSandboxDenied": " ⚠, Пісочниця відхилена ", "ElevationTitleRequired": " Потрібне підвищення прав пісочниці ", "ElevationFieldTool": " Інструмент: ", diff --git a/crates/tui/locales/vi.json b/crates/tui/locales/vi.json index f552281a9d..5dfdf2c234 100644 --- a/crates/tui/locales/vi.json +++ b/crates/tui/locales/vi.json @@ -478,7 +478,7 @@ "CmdModelsDescription": "Lấy ID mô hình trực tiếp từ API đang dùng", "CmdModelDbDescription": "Duyệt cơ sở dữ liệu mô hình tích hợp", "CmdNetworkDescription": "Quản lý các quy tắc cho phép và từ chối mạng", - "CmdUpdateDescription": "Kiểm tra và cài đặt bản phát hành CodeWhale mới", + "CmdUpdateDescription": "Kiểm tra và cài đặt bản phát hành Codewhale mới", "CmdNoteDescription": "Thêm, liệt kê, sửa hoặc xóa ghi chú trong không gian làm việc", "CmdThemeDescription": "Chuyển đổi giao diện hoặc mở bảng chọn giao diện", "CmdProviderDescription": "Chuyển đổi hoặc xem backend LLM đang hoạt động (deepseek | nvidia-nim | ollama)", @@ -647,8 +647,8 @@ "KbAltJumpPlanAgentYolo": "Phím tắt thay thế nhảy sang Plan / Act / Operate", "KbFocusSidebar": "Focus vào bảng thanh ray Tasks / Agents / Context / Pinned", "KbSessionPicker": "Mở bảng chọn phiên làm việc", - "KbUpdateInstall": "Kiểm tra và cài đặt bản cập nhật CodeWhale mới nhất (`/update install`)", - "UpdateChangedHint": "CodeWhale đã được cập nhật: {previous} → {current}. Chạy /change để xem nội dung mới.", + "KbUpdateInstall": "Kiểm tra và cài đặt bản cập nhật Codewhale mới nhất (`/update install`)", + "UpdateChangedHint": "Codewhale đã được cập nhật: {previous} → {current}. Chạy /change để xem nội dung mới.", "KbTerminalPaste": "Dán văn bản bằng terminal cục bộ", "KbPasteAttach": "Dán văn bản hoặc đính kèm ảnh từ bộ nhớ tạm đồ họa cục bộ hoặc được chuyển tiếp", "KbCopySelection": "Sao chép vùng chọn Codewhale hiện tại", @@ -993,7 +993,7 @@ "ApprovalChooseAction": "Enter để chọn, hoặc nhấn y/a/d trực tiếp", "ApprovalIntentLabel": "Ý định: ", "ApprovalMoreLines": " … (+{count} dòng)", - "ApprovalAutoDeniedSession": "Đã tự động từ chối {tool}: một yêu cầu khớp đã bị từ chối trước đó trong lần chạy CodeWhale này. Hãy khởi động lại CodeWhale để xem xét lại.", + "ApprovalAutoDeniedSession": "Đã tự động từ chối {tool}: một yêu cầu khớp đã bị từ chối trước đó trong lần chạy Codewhale này. Hãy khởi động lại Codewhale để xem xét lại.", "ElevationTitleSandboxDenied": " ⚠ Sandbox Bị Từ Chối ", "ElevationTitleRequired": " Yêu Cầu Nâng Cấp Sandbox ", "ElevationFieldTool": " Công cụ: ", diff --git a/crates/tui/locales/zh-Hans.json b/crates/tui/locales/zh-Hans.json index 23972f4e8b..d49c08b250 100644 --- a/crates/tui/locales/zh-Hans.json +++ b/crates/tui/locales/zh-Hans.json @@ -478,7 +478,7 @@ "CmdModelsDescription": "工具箱:从当前 API 获取实时模型 ID", "CmdModelDbDescription": "参考:浏览内置的模型数据库", "CmdNetworkDescription": "管理网络允许和拒绝规则", - "CmdUpdateDescription": "检查并安装新的 CodeWhale 版本", + "CmdUpdateDescription": "检查并安装新的 Codewhale 版本", "CmdNoteDescription": "添加、列出、编辑或删除工作区笔记", "CmdThemeDescription": "切换主题或打开主题选择器", "CmdProviderDescription": "切换当前提供商 和/或 模型(deepseek | nvidia-nim | ollama)", @@ -647,8 +647,8 @@ "KbAltJumpPlanAgentYolo": "替代快捷键跳转到 Plan / Act / Operate 模式", "KbFocusSidebar": "聚焦 Tasks / Agents / Context / Pinned 工作栏面板", "KbSessionPicker": "打开会话选择器", - "KbUpdateInstall": "检查并安装最新的 CodeWhale 更新(`/update install`)", - "UpdateChangedHint": "CodeWhale 已更新:{previous} → {current}。运行 /change 查看更新内容。", + "KbUpdateInstall": "检查并安装最新的 Codewhale 更新(`/update install`)", + "UpdateChangedHint": "Codewhale 已更新:{previous} → {current}。运行 /change 查看更新内容。", "KbTerminalPaste": "使用本地终端粘贴文本", "KbPasteAttach": "从本地或转发的图形剪贴板粘贴文本或附加图片", "KbCopySelection": "复制 Codewhale 当前选中内容", @@ -993,7 +993,7 @@ "ApprovalChooseAction": "Enter 执行选中项,或直接按 y/a/d", "ApprovalIntentLabel": "意图:", "ApprovalMoreLines": " … (还有 {count} 行)", - "ApprovalAutoDeniedSession": "已自动拒绝 {tool}:在本次 CodeWhale 运行期间,已有匹配请求被拒绝。若要重新考虑,请重启 CodeWhale。", + "ApprovalAutoDeniedSession": "已自动拒绝 {tool}:在本次 Codewhale 运行期间,已有匹配请求被拒绝。若要重新考虑,请重启 Codewhale。", "ElevationTitleSandboxDenied": " ⚠ 沙箱拒绝 ", "ElevationTitleRequired": " 沙箱提权 ", "ElevationFieldTool": " 工具:", diff --git a/crates/tui/locales/zh-Hant.json b/crates/tui/locales/zh-Hant.json index 85b9fa6499..4fb2fe0e03 100644 --- a/crates/tui/locales/zh-Hant.json +++ b/crates/tui/locales/zh-Hant.json @@ -95,7 +95,7 @@ "AppModePlanHint": "先唯讀調研,行動前提出計畫", "AppModeYolo": "完全存取(已棄用標籤)", "AppModeYoloHint": "僅相容 — Act + 完全存取,不是可見模式", - "ApprovalAutoDeniedSession": "已自動拒絕 {tool}:在本次 CodeWhale 執行期間,已有相符請求被拒絕。若要重新考慮,請重新啟動 CodeWhale。", + "ApprovalAutoDeniedSession": "已自動拒絕 {tool}:在本次 Codewhale 執行期間,已有相符請求被拒絕。若要重新考慮,請重新啟動 Codewhale。", "ApprovalBlockTitle": "審批", "ApprovalCategoryAgent": "子代理", "ApprovalCategoryFileWrite": "檔案寫入", @@ -345,7 +345,7 @@ "CmdModelDescription": "切換或檢視目前模型", "CmdModelsDescription": "工具箱:從目前 API 取得實時模型 ID", "CmdNetworkDescription": "管理網路允許和拒絕規則", - "CmdUpdateDescription": "檢查並安裝新的 CodeWhale 版本", + "CmdUpdateDescription": "檢查並安裝新的 Codewhale 版本", "CmdNewDescription": "開始一個新的已儲存工作階段", "CmdNoteDescription": "添加、列出、編輯或刪除工作區筆記", "CmdPermissionsDescription": "列出並安全刪除權限規則", @@ -1012,8 +1012,8 @@ "KbSelectedDetails": "顯示所選工具或訊息的原始詳情;Ctrl+Alt+O 開啟整輪概覽", "KbSendDraft": "閒置時傳送,忙碌時排隊;輸入框為空時立即傳送下一條排隊訊息", "KbSessionPicker": "開啟工作階段選擇器", - "KbUpdateInstall": "檢查並安裝最新的 CodeWhale 更新(`/update install`)", - "UpdateChangedHint": "CodeWhale 已更新:{previous} → {current}。執行 /change 查看更新內容。", + "KbUpdateInstall": "檢查並安裝最新的 Codewhale 更新(`/update install`)", + "UpdateChangedHint": "Codewhale 已更新:{previous} → {current}。執行 /change 查看更新內容。", "KbSettings": "開啟類型化設定編輯器", "KbShellControls": "將正在等待的 shell 移到 /jobs", "KbStashDraft": "先傳送排隊的跟進內容;否則暫存目前草稿(用 `/stash pop` 還原)", diff --git a/crates/tui/src/commands/groups/utility/update.rs b/crates/tui/src/commands/groups/utility/update.rs index 49ceb33db7..a7e305c4ad 100644 --- a/crates/tui/src/commands/groups/utility/update.rs +++ b/crates/tui/src/commands/groups/utility/update.rs @@ -127,8 +127,8 @@ pub(super) fn resolve_updater( /// Instructions for an install this command must not update in place. pub(super) fn managed_install_message(method: InstallMethod) -> String { format!( - "CodeWhale was installed with {label}, which owns this binary.\n\ - Run `{command}` in a shell, then restart CodeWhale.\n\n\ + "Codewhale was installed with {label}, which owns this binary.\n\ + Run `{command}` in a shell, then restart Codewhale.\n\n\ /update deliberately will not self-update here: replacing a binary {label} manages \ leaves its metadata describing a version that is no longer on disk, and the next \ upgrade silently reverts you.", @@ -142,7 +142,7 @@ pub(super) fn no_updater_message(exe: &Path) -> String { format!( "No `{UPDATER_BIN_STEM}` updater was found for this install ({exe}).\n\ The updater ships in the `{UPDATER_BIN_STEM}` CLI. Install or locate it, run \ - `{UPDATER_BIN_STEM} update` in a shell, then restart CodeWhale.", + `{UPDATER_BIN_STEM} update` in a shell, then restart Codewhale.", exe = exe.display(), ) } @@ -153,7 +153,7 @@ fn install_preamble(updater: &Path) -> String { "`/update install` will run `{updater} update`: it resolves the latest release, \ downloads the binary for this platform, verifies its SHA256 checksum, and atomically \ replaces {updater}.\n\ - It does not restart CodeWhale — you will need to do that yourself once it finishes. \ + It does not restart Codewhale — you will need to do that yourself once it finishes. \ The UI is paused while the updater runs.", updater = updater.display(), ) @@ -189,7 +189,7 @@ fn run_updater(updater: &Path, mode: UpdateMode) -> CommandResult { Ok(output) => output, Err(err) => { return CommandResult::error(format!( - "Failed to run `{} update`: {err}\nRun it in a shell instead, then restart CodeWhale.", + "Failed to run `{} update`: {err}\nRun it in a shell instead, then restart Codewhale.", updater.display() )); } @@ -208,7 +208,7 @@ fn run_updater(updater: &Path, mode: UpdateMode) -> CommandResult { CommandResult::message(format!("{}\n\n{transcript}", install_preamble(updater))) } UpdateMode::Install => CommandResult::message(format!( - "{transcript}\n\nRestart CodeWhale to run the updated binary." + "{transcript}\n\nRestart Codewhale to run the updated binary." )), } } @@ -274,7 +274,7 @@ mod tests { "{method:?} message must name its own update command: {message}" ); assert!( - message.contains("restart CodeWhale"), + message.contains("restart Codewhale"), "{method:?} message must tell the user to restart: {message}" ); } @@ -293,7 +293,7 @@ mod tests { let message = no_updater_message(exe); assert!(message.contains("codewhale update"), "{message}"); - assert!(message.contains("restart CodeWhale"), "{message}"); + assert!(message.contains("restart Codewhale"), "{message}"); assert!(message.contains("codewhale-tui"), "{message}"); } diff --git a/crates/tui/src/skills/mutation.rs b/crates/tui/src/skills/mutation.rs index c41a4aeb9c..955728551e 100644 --- a/crates/tui/src/skills/mutation.rs +++ b/crates/tui/src/skills/mutation.rs @@ -147,12 +147,12 @@ fn checked_real_directory(path: &Path) -> Result { match fs::symlink_metadata(path) { Ok(meta) if meta.file_type().is_symlink() => { bail!( - "refusing to mutate symlinked CodeWhale skills path component {}", + "refusing to mutate symlinked Codewhale skills path component {}", path.display() ) } Ok(meta) if !meta.is_dir() => bail!( - "refusing to mutate through non-directory CodeWhale skills path component {}", + "refusing to mutate through non-directory Codewhale skills path component {}", path.display() ), Ok(_) => Ok(true), @@ -171,7 +171,7 @@ fn validate_owned_target_chain( let expected = anchor.join(".codewhale").join("skills"); if skills_dir != expected { bail!( - "refusing to mutate non-canonical CodeWhale skills root {}", + "refusing to mutate non-canonical Codewhale skills root {}", skills_dir.display() ); } @@ -495,7 +495,7 @@ fn resolve_owned_skill_by_name( import it with /skills (refusing to write external harness directories)" ); } - bail!("skill '{name}' not found in CodeWhale-owned project/global roots"); + bail!("skill '{name}' not found in Codewhale-owned project/global roots"); } [only] => { let DigestState::Known(digest) = &only.digest else { @@ -507,7 +507,7 @@ fn resolve_owned_skill_by_name( }) } _ => bail!( - "skill '{name}' exists in both project and global CodeWhale roots; \ + "skill '{name}' exists in both project and global Codewhale roots; \ specify --project or --global" ), } @@ -861,10 +861,10 @@ async fn update_skill( ) -> Result { let (skill, path) = find_audited_skill(ctx, &skill_id)?; if !skill.root.is_writable_owned() { - bail!("refusing to update skill outside CodeWhale-owned roots"); + bail!("refusing to update skill outside Codewhale-owned roots"); } if skill.source_kind != SkillSourceKind::CodeWhaleManaged { - bail!("only CodeWhale managed skills can be updated"); + bail!("only Codewhale managed skills can be updated"); } let skills_dir = validate_owned_skill_path(ctx, &skill, &path)?; // Imported skills carry `import:…` provenance and must not hit the registry. @@ -939,10 +939,10 @@ fn remove_skill( ) -> Result { let (skill, path) = find_audited_skill(ctx, &skill_id)?; if !skill.root.is_writable_owned() { - bail!("refusing to remove skill outside CodeWhale-owned roots"); + bail!("refusing to remove skill outside Codewhale-owned roots"); } if skill.source_kind != SkillSourceKind::CodeWhaleManaged { - bail!("only CodeWhale managed skills can be removed"); + bail!("only Codewhale managed skills can be removed"); } let skills_dir = validate_owned_skill_path(ctx, &skill, &path)?; let before = verify_expected_digest(&path, expected_digest.as_deref())?; @@ -972,10 +972,10 @@ fn trust_skill( ) -> Result { let (skill, path) = find_audited_skill(ctx, &skill_id)?; if !skill.root.is_writable_owned() { - bail!("refusing to trust skill outside CodeWhale-owned roots"); + bail!("refusing to trust skill outside Codewhale-owned roots"); } if skill.source_kind != SkillSourceKind::CodeWhaleManaged { - bail!("only CodeWhale managed skills can be trusted"); + bail!("only Codewhale managed skills can be trusted"); } validate_owned_skill_path(ctx, &skill, &path)?; let before = verify_expected_digest(&path, Some(&expected_digest))?; diff --git a/crates/tui/src/tools/file.rs b/crates/tui/src/tools/file.rs index ca2400200e..c54c6869b1 100644 --- a/crates/tui/src/tools/file.rs +++ b/crates/tui/src/tools/file.rs @@ -806,7 +806,7 @@ impl ToolSpec for ReadFileTool { } fn description(&self) -> &'static str { - "Read a UTF-8 file from the workspace. Use this instead of `cat`, `head`, `tail`, or `sed -n '..p'` in `Bash` — it's faster, sandbox-aware, and skips the approval prompt. Plain text is returned as-is and records the file snapshot required before `edit` will make a narrow in-place edit. Text reads report the whole file's `content_hash=\"sha256:…\"`; pass that value back as `expected_hash` on a later `write`, `edit`, or `patch` to have the write refused if the file changed in between. CodeWhale config files and file-backed credential stores cannot be read with this tool; use `codewhale config list` or `codewhale auth status` for safe inspection. PDFs are text-extracted when the optional `pdftotext` executable (Poppler) is installed. Image screenshots are OCR-extracted when local OCR is available. Cannot read other non-PDF binaries.\n\nFor large files, use `start_line` and `max_lines` to read in chunks. By default, returns up to 500 lines or 16KB, whichever comes first. If `truncated=\"true\"` and `next_start_line` is present, continue reading from there; a byte-limited window instead shows head + tail with a `[CONTENT TRUNCATED]` marker and its note says how to narrow the range. For PDFs, use `pages` instead — `start_line`/`max_lines` only apply to text files." + "Read a UTF-8 file from the workspace. Use this instead of `cat`, `head`, `tail`, or `sed -n '..p'` in `Bash` — it's faster, sandbox-aware, and skips the approval prompt. Plain text is returned as-is and records the file snapshot required before `edit` will make a narrow in-place edit. Text reads report the whole file's `content_hash=\"sha256:…\"`; pass that value back as `expected_hash` on a later `write`, `edit`, or `patch` to have the write refused if the file changed in between. Codewhale config files and file-backed credential stores cannot be read with this tool; use `codewhale config list` or `codewhale auth status` for safe inspection. PDFs are text-extracted when the optional `pdftotext` executable (Poppler) is installed. Image screenshots are OCR-extracted when local OCR is available. Cannot read other non-PDF binaries.\n\nFor large files, use `start_line` and `max_lines` to read in chunks. By default, returns up to 500 lines or 16KB, whichever comes first. If `truncated=\"true\"` and `next_start_line` is present, continue reading from there; a byte-limited window instead shows head + tail with a `[CONTENT TRUNCATED]` marker and its note says how to narrow the range. For PDFs, use `pages` instead — `start_line`/`max_lines` only apply to text files." } fn input_schema(&self) -> Value { @@ -856,7 +856,7 @@ impl ToolSpec for ReadFileTool { let file_path = context.resolve_path(path_str)?; if is_codewhale_credential_path(&file_path) { return Err(ToolError::permission_denied( - "File `read` cannot expose CodeWhale configuration or credential-store files; use `codewhale config list` or `codewhale auth status` for safe inspection", + "File `read` cannot expose Codewhale configuration or credential-store files; use `codewhale config list` or `codewhale auth status` for safe inspection", )); } enforce_read_denylist(&file_path, "read_file")?; diff --git a/crates/tui/src/tools/file/tests/tools.rs b/crates/tui/src/tools/file/tests/tools.rs index 7bd984c5d8..095019a6fc 100644 --- a/crates/tui/src/tools/file/tests/tools.rs +++ b/crates/tui/src/tools/file/tests/tools.rs @@ -68,7 +68,7 @@ async fn read_file_denies_codewhale_config_backups_and_secret_store() { .await .expect_err("credential-bearing CodeWhale file must be denied"); let message = err.to_string(); - assert!(message.contains("cannot expose CodeWhale"), "{message}"); + assert!(message.contains("cannot expose Codewhale"), "{message}"); assert!(message.contains("codewhale config list"), "{message}"); } diff --git a/crates/tui/src/tools/tui_help.rs b/crates/tui/src/tools/tui_help.rs index 71aaa28b3e..8f5f240fc6 100644 --- a/crates/tui/src/tools/tui_help.rs +++ b/crates/tui/src/tools/tui_help.rs @@ -72,7 +72,7 @@ impl ToolSpec for TuiHelpTool { } fn description(&self) -> &'static str { - "Look up CodeWhale slash commands and keyboard shortcuts. Pass a query to scope the answer; omit it for a compact cheatsheet." + "Look up Codewhale slash commands and keyboard shortcuts. Pass a query to scope the answer; omit it for a compact cheatsheet." } fn input_schema(&self) -> Value { diff --git a/crates/tui/src/tui/keybindings.rs b/crates/tui/src/tui/keybindings.rs index b47578be30..a029d68020 100644 --- a/crates/tui/src/tui/keybindings.rs +++ b/crates/tui/src/tui/keybindings.rs @@ -601,7 +601,7 @@ mod tests { assert_eq!(entry.section, KeybindingSection::Sessions); assert_eq!( crate::localization::tr(crate::localization::Locale::En, entry.description_id), - "Check for and install the latest CodeWhale update (`/update install`)" + "Check for and install the latest Codewhale update (`/update install`)" ); } diff --git a/crates/tui/src/tui/ui.rs b/crates/tui/src/tui/ui.rs index ab77f78597..6c0af87f5a 100644 --- a/crates/tui/src/tui/ui.rs +++ b/crates/tui/src/tui/ui.rs @@ -1248,11 +1248,11 @@ impl UpdateNotice { /// on disk, and the next upgrade silently reverts the user. fn notice_block(&self, install: InstallMethod) -> String { let action = if install.supports_self_update() { - "Run `/update install` here (preview it with a bare `/update`), or `codewhale update` in a shell, then restart CodeWhale." + "Run `/update install` here (preview it with a bare `/update`), or `codewhale update` in a shell, then restart Codewhale." .to_string() } else { format!( - "Installed via {label}. Run `{command}`, then restart CodeWhale.\n\ + "Installed via {label}. Run `{command}`, then restart Codewhale.\n\ Do not use `codewhale update` here — it would replace a binary {label} manages.", label = install.label(), command = install.update_command() diff --git a/crates/tui/src/tui/ui/apply.rs b/crates/tui/src/tui/ui/apply.rs index 7fd72d865d..47b265e4fb 100644 --- a/crates/tui/src/tui/ui/apply.rs +++ b/crates/tui/src/tui/ui/apply.rs @@ -94,7 +94,7 @@ pub(crate) fn apply_coordination_detail_projection( let message = if note.contains(crate::tools::subagent::COORDINATION_LOCK_TIMEOUT_MARKER) { "Timed out claiming delegated coordination for this workspace — job rows still settle locally.".to_string() } else { - "Another CodeWhale session in this workspace owns delegated coordination — job rows still settle locally.".to_string() + "Another Codewhale session in this workspace owns delegated coordination — job rows still settle locally.".to_string() }; // Demoted from sticky 30s to transient 5s — two sessions in same workspace // should not feel broken; job rows still settle locally. The detail view diff --git a/crates/tui/src/tui/ui/tests.rs b/crates/tui/src/tui/ui/tests.rs index 8cdee9865d..d506517eda 100644 --- a/crates/tui/src/tui/ui/tests.rs +++ b/crates/tui/src/tui/ui/tests.rs @@ -1374,7 +1374,7 @@ fn coordination_handover_within_this_process_does_not_toast() { assert!( toast .text - .starts_with("Another CodeWhale session in this workspace"), + .starts_with("Another Codewhale session in this workspace"), "the toast must lead with the fact that explains the state: {}", toast.text ); @@ -5032,8 +5032,8 @@ async fn session_denied_cache_auto_deny_explains_the_cached_rejection() { assert_eq!(toast.level, StatusToastLevel::Warning); assert_eq!(toast.ttl_ms, Some(12_000)); assert!(toast.text.contains("matching request was denied earlier")); - assert!(toast.text.contains("during this CodeWhale run")); - assert!(toast.text.contains("Restart CodeWhale")); + assert!(toast.text.contains("during this Codewhale run")); + assert!(toast.text.contains("Restart Codewhale")); assert!(toast.text.contains("exec_shell")); let history_notice = app .history @@ -5059,7 +5059,7 @@ async fn session_denied_cache_auto_deny_explains_the_cached_rejection() { let rendered = render_underwater_test_app(&mut app, 40, 12); assert!(rendered.contains("Auto-denied"), "{rendered:?}"); assert!( - rendered.contains("Restart") && rendered.contains("CodeWhale"), + rendered.contains("Restart") && rendered.contains("Codewhale"), "{rendered:?}" ); } @@ -5286,7 +5286,7 @@ async fn session_denied_cache_notice_renders_host_scope_in_zh_hans() { _ => None, }) .expect("localized persistent auto-deny explanation"); - assert!(notice.contains("本次 CodeWhale 运行期间")); + assert!(notice.contains("本次 Codewhale 运行期间")); assert!(notice.contains("匹配请求")); assert!(!notice.contains("example.com")); @@ -5298,7 +5298,7 @@ async fn session_denied_cache_notice_renders_host_scope_in_zh_hans() { assert!(rendered_compact.contains("已自动拒绝"), "{rendered:?}"); assert!(rendered_compact.contains("匹配请求"), "{rendered:?}"); assert!( - rendered_compact.contains("重启") && rendered_compact.contains("CodeWhale"), + rendered_compact.contains("重启") && rendered_compact.contains("Codewhale"), "{rendered:?}" ); } @@ -5310,8 +5310,8 @@ fn session_denied_notice_explains_cached_decision_and_recovery() { assert!(notice.contains("exec_shell")); assert!(notice.contains("matching request was denied earlier")); - assert!(notice.contains("during this CodeWhale run")); - assert!(notice.contains("Restart CodeWhale")); + assert!(notice.contains("during this Codewhale run")); + assert!(notice.contains("Restart Codewhale")); } #[tokio::test] @@ -5380,7 +5380,7 @@ async fn cached_denial_explanation_survives_tool_completion_and_done_render() { cell, HistoryCell::System { content } if content.contains("Auto-denied exec_shell") - && content.contains("Restart CodeWhale") + && content.contains("Restart Codewhale") ) }) .expect("cached denial must leave a durable recovery receipt"); @@ -5417,7 +5417,7 @@ async fn cached_denial_explanation_survives_tool_completion_and_done_render() { "cached-decision explanation disappeared after completion:\n{rendered}" ); assert!( - rendered.contains("Restart CodeWhale"), + rendered.contains("Restart Codewhale"), "cached-denial recovery path disappeared after completion:\n{rendered}" ); assert_eq!( diff --git a/docs/AGENT_RUNTIME.md b/docs/AGENT_RUNTIME.md index 27bf9320e6..92442c96a7 100644 --- a/docs/AGENT_RUNTIME.md +++ b/docs/AGENT_RUNTIME.md @@ -1,4 +1,4 @@ -# The CodeWhale Agent Runtime — one durable substrate, familiar launchers +# The Codewhale Agent Runtime — one durable substrate, familiar launchers > 阅读简体中文版:[zh_hans/AGENT_RUNTIME.md](zh_hans/AGENT_RUNTIME.md) @@ -182,13 +182,13 @@ request (turn-step) when the provider reported usage for that call: ## Convergence with Claude Code (#2972) -CodeWhale should converge with Claude Code on **shape**, not on branding: +Codewhale should converge with Claude Code on **shape**, not on branding: - **Adopt**: a headless runtime with a real CLI/SDK front door; sub-agents as isolated runs that return summaries (not transcripts); a compact, event-driven fanout projection; capability/role tool profiles; the skills ecosystem (#2743); structured run receipts. -- **Keep distinct**: CodeWhale branding and first-class DeepSeek/GLM/MiniMax/ +- **Keep distinct**: Codewhale branding and first-class DeepSeek/GLM/MiniMax/ multi-provider support; the local-first **Agent Fleet** as the identity, membership, and selection layer; durable local/SSH execution and authority in Runtime; Workflow as the ordering overlay. @@ -241,11 +241,11 @@ probing (needs a product decision). ## Public launch contract for an external harness (#4641) An external evaluation harness (for example a future Verifiers v1 built-in -harness) embeds CodeWhale by launching the public `codewhale exec` front door -against an interception endpoint it owns. CodeWhale owns only its **launch +harness) embeds Codewhale by launching the public `codewhale exec` front door +against an interception endpoint it owns. Codewhale owns only its **launch contract**; the harness owns interception, traces, model-call timing, token accounting, retries, rollout limits, and runtime orchestration. Do not add a -harness runtime, trace parser, or receipt schema to CodeWhale. +harness runtime, trace parser, or receipt schema to Codewhale. A reproducible headless launch uses only existing generic surfaces: @@ -311,8 +311,8 @@ is the provider-free acceptance lock for this contract. ### Future upstream checklist (out of scope here — do not run) -Actually adding CodeWhale as a built-in harness lives in the external Verifiers -repository; the public, immutable CodeWhale GitHub Releases with checksum +Actually adding Codewhale as a built-in harness lives in the external Verifiers +repository; the public, immutable Codewhale GitHub Releases with checksum manifests it needs have existed since v0.9.1 (latest published release is v0.9.10; the workspace source candidate is v0.9.11). That upstream change is expected to be limited to a new @@ -322,7 +322,7 @@ registration, with `CodewhaleHarnessConfig` pinning the target release, writing the temporary route/MCP files above and calling `runtime.run_program(...)`. Holdouts, explicitly **not** performed by this contract work: tagging, -publishing, or creating a CodeWhale release; opening or submitting the upstream +publishing, or creating a Codewhale release; opening or submitting the upstream Verifiers PR; running its credentialed E2E matrix; or claiming runtime/architecture support before the exact released archive has run in that upstream runtime. diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 4f904f2d85..e6dfe8be80 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -303,7 +303,7 @@ ordinary durable tasks. 1. Create skill directory with `SKILL.md` 2. Define skill prompt and optional scripts -3. Place in a CodeWhale-owned root (`~/.codewhale/skills/` or +3. Place in a Codewhale-owned root (`~/.codewhale/skills/` or `/.codewhale/skills/`), or import from a compatible harness root through `/skills` diff --git a/docs/CATALOG_REFRESH.md b/docs/CATALOG_REFRESH.md index d24b51ecbb..603cb0c2ff 100644 --- a/docs/CATALOG_REFRESH.md +++ b/docs/CATALOG_REFRESH.md @@ -1,6 +1,6 @@ # Catalog refresh -How CodeWhale keeps model metadata current — what already auto-updates, what +How Codewhale keeps model metadata current — what already auto-updates, what is hand-maintained, and what a scheduled catalog job should (and should not) do. Related docs: [`PROVIDERS.md`](./PROVIDERS.md), RFC @@ -13,7 +13,7 @@ Related docs: [`PROVIDERS.md`](./PROVIDERS.md), RFC | Question | Answer | |---|---| | Do users need a special model just to refresh models? | **No.** | -| Does CodeWhale auto-update the public model catalog? | **Yes, at runtime**, from [Models.dev](https://models.dev/catalog.json), ~24 h TTL. | +| Does Codewhale auto-update the public model catalog? | **Yes, at runtime**, from [Models.dev](https://models.dev/catalog.json), ~24 h TTL. | | Is the offline bundled seed auto-committed in CI? | **Not yet.** Live cache covers running installs; the in-repo seed is still manual / PR-driven. | | Should an LLM rewrite catalog JSON? | **No.** Ingest is deterministic public JSON. An LLM can *review* a PR, not own the source of truth. | @@ -62,7 +62,7 @@ When the TUI/runtime starts (and is not disabled): 1. Seed pickers from the **on-disk cache** if present (even if stale). 2. If the cache is missing or older than **24 hours**, **background-fetch** - Models.dev (15 s timeout, explicit CodeWhale user-agent, **no credentials**). + Models.dev (15 s timeout, explicit Codewhale user-agent, **no credentials**). 3. On success: atomic write to `~/.codewhale/catalog/models-dev-catalog.json` and publish rows into ProviderLake as `CatalogSource::Live`. @@ -94,7 +94,7 @@ Defaults: - Catalog URL: `https://models.dev/catalog.json` - TTL: `24 * 60 * 60` seconds (`DEFAULT_MODELS_DEV_TTL_SECS`) -- Cache file name: `models-dev-catalog.json` under the CodeWhale `catalog` +- Cache file name: `models-dev-catalog.json` under the Codewhale `catalog` state dir Freshness values exposed for UI / status chips: `bundled` | `live` | `stale` | @@ -226,7 +226,7 @@ truth** for catalog JSON. ## Auth note (Claude / Anthropic) Anthropic model **catalog** refresh does not require Claude Pro/Max OAuth. -Models.dev is public. CodeWhale’s Anthropic route remains **API-key-based** +Models.dev is public. Codewhale’s Anthropic route remains **API-key-based** for inference (`ANTHROPIC_API_KEY`). Do not couple catalog automation to subscription OAuth or Claude Code identity headers. diff --git a/docs/CHANGELOG_ARCHIVE.md b/docs/CHANGELOG_ARCHIVE.md index 9e3c01827c..d057fc8590 100644 --- a/docs/CHANGELOG_ARCHIVE.md +++ b/docs/CHANGELOG_ARCHIVE.md @@ -1,6 +1,6 @@ # Changelog Archive -Older releases of CodeWhale (v0.8.39 and earlier). Recent releases live in [CHANGELOG.md](../CHANGELOG.md). +Older releases of Codewhale (v0.8.39 and earlier). Recent releases live in [CHANGELOG.md](../CHANGELOG.md). ## [0.8.39] - 2026-05-17 diff --git a/docs/CLASSROOM_INSTALL.md b/docs/CLASSROOM_INSTALL.md index e800bb13a3..45b57add34 100644 --- a/docs/CLASSROOM_INSTALL.md +++ b/docs/CLASSROOM_INSTALL.md @@ -90,7 +90,7 @@ previous Codewhale install: | # | Scenario | Expected result | Done? | |---|----------|-----------------|-------| -| 1 | Install with no existing CodeWhale PATH entry | Adds exactly `%LOCALAPPDATA%\Programs\CodeWhale\bin` | ☐ | +| 1 | Install with no existing Codewhale PATH entry | Adds exactly `%LOCALAPPDATA%\Programs\CodeWhale\bin` | ☐ | | 2 | Install twice | PATH is not duplicated | ☐ | | 3 | Install with a neighboring PATH entry such as `C:\Tools\CodeWhale\bin-extra` | Neighboring entry is preserved | ☐ | | 4 | Upgrade by installing a newer `CodeWhaleSetup.exe` over an older one | Apps & Features version and both `--version` outputs match the new build | ☐ | diff --git a/docs/CONFIGURATION.md b/docs/CONFIGURATION.md index 1e10ba1d9e..21ff016ba6 100644 --- a/docs/CONFIGURATION.md +++ b/docs/CONFIGURATION.md @@ -2148,7 +2148,7 @@ reasoning contract, and all four membership ids omit generic sampling fields. `~/.claude/skills`. First launch installs versioned bundled skills for common workflows including skill creation, delegation, MCP/plugin scaffolding, documents, presentations, spreadsheets, PDFs, and Feishu/Lark. Only - CodeWhale-owned roots (`/.codewhale/skills` and + Codewhale-owned roots (`/.codewhale/skills` and `~/.codewhale/skills`) are writable install/import targets; compatible harness roots stay read-only. Bare `/skills` opens the Skills Manager (owned-only, zero network). See [SKILLS.md](SKILLS.md) for the manager, audit statuses, diff --git a/docs/CONTRIBUTORS.md b/docs/CONTRIBUTORS.md index ad418c34a8..d190b112bb 100644 --- a/docs/CONTRIBUTORS.md +++ b/docs/CONTRIBUTORS.md @@ -568,7 +568,7 @@ release evidence. The reports and pull requests below materially shaped it. matches on UTF-8 character boundaries; preserve inline skill task text in PR #4372 (#4088, #4045, #3915) - **[gaord](https://github.com/gaord)** — add the community-maintained - CodeWhale for VS Code GUI frontend to the English and Chinese READMEs (#4035) + Codewhale for VS Code GUI frontend to the English and Chinese READMEs (#4035) - **[Darrell Thomas](https://github.com/DarrellThomas)** — remove the unused whale route taxonomy module and its dead tests (#4041) - **[Taixin Guo](https://github.com/taixinguo)** — CJK fuzzy-edit panic report @@ -596,7 +596,7 @@ in several community provider and bridge contributions with release credit. ask-rules` view for resolved ask-rule paths, status, and configured tool/command/path rules (#3569, merged) - **[noaft](https://github.com/noaft)** — `/links` provider docs fallback - update, including the current CodeWhale docs URL and a Baidu Qianfan docs + update, including the current Codewhale docs URL and a Baidu Qianfan docs link (#3621, harvested) - **[noaft](https://github.com/noaft)** — OpenModel provider support across config, CLI, TUI provider picker, docs, and registry checks (#3585, @@ -658,7 +658,7 @@ proxying, and DeepSeek thinking tool calls — alongside community contributions The v0.8.62 release retuned provider/model routing (GLM-5.2 as the default direct Z.AI model, `type: "explore"` sub-agents defaulting to the cheaper same-family -sibling), added TOML comment preservation and the CodeWhale-only skill discovery +sibling), added TOML comment preservation and the Codewhale-only skill discovery gate, and shipped the static Linux x64 musl binary — alongside a broad community closeout and a retroactive credit reconciliation pass. @@ -671,7 +671,7 @@ closeout and a retroactive credit reconciliation pass. - **[LeoLin990405](https://github.com/LeoLin990405)** — Poppler `pdftotext -v` detection (#1667), session persistence before stall/cancel recovery (#2739), and debounced thinking-stream re-renders (#1620) -- **[nightt5879](https://github.com/nightt5879)** — CodeWhale-only skill discovery +- **[nightt5879](https://github.com/nightt5879)** — Codewhale-only skill discovery gate (`[skills].scan_codewhale_only`) ignoring cross-tool directories (#3296) and app-server no-auth loopback docs - **[reidliu41](https://github.com/reidliu41)** — slash commands exposed as hotbar @@ -736,7 +736,7 @@ patches, and TUI fixes landed alongside first-time and returning contributor wor Forward track — recent v0.9 work (newest) -- **[xyuai](https://github.com/xyuai)** — canonical CodeWhale settings path, +- **[xyuai](https://github.com/xyuai)** — canonical Codewhale settings path, provider persistence, provider picker, logout-scope, and MiMo auth cleanup work (#2730, #2714, #2715, #2717, #2718) - **[shenjackyuanjie](https://github.com/shenjackyuanjie)** — HarmonyOS / @@ -853,7 +853,7 @@ patches, and TUI fixes landed alongside first-time and returning contributor wor - **[mdrkrg](https://github.com/mdrkrg)** — first-run onboarding crash fix when the API key is missing (#1598) - **[Aitensa](https://github.com/Aitensa)** — CJK wrapping propagation for diff and pager output (#1622) - **[qiyan233](https://github.com/qiyan233)** — legacy DeepSeek CN provider alias compatibility (#1645) -- **[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) +- **[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) - **[aboimpinto](https://github.com/aboimpinto)** — Windows alt-screen logging, Home/End composer, runtime log follow-ups, sidebar command polish, and pausable command lifecycle work (#1774, #1776, #1748, #1749, #1782, @@ -870,7 +870,7 @@ patches, and TUI fixes landed alongside first-time and returning contributor wor - **[mrluanma](https://github.com/mrluanma)** — Metaso search provider (#2059) - **[Lellansin](https://github.com/Lellansin)** — skip config merge at home dir (#2055) - **[zhuangbiaowei](https://github.com/zhuangbiaowei)** — update release channels and legacy MCP SSE fixes (#2145, #2301) -- **[cy2311](https://github.com/cy2311)** — Windows `.bat` launcher for CodeWhale (#1861) +- **[cy2311](https://github.com/cy2311)** — Windows `.bat` launcher for Codewhale (#1861) - **[LING71671](https://github.com/LING71671)** — effective cost currency context, custom provider docs, and core tool taxonomy prompt block (#1902, #2287, #2292) - **[dzyuan](https://github.com/dzyuan)** — Volcengine provider support with DeepSeek V4 Pro/Flash models (#1993) - **[mvanhorn](https://github.com/mvanhorn)** — live request-shape test factories and global `~/.agents/AGENTS.md` fallback (#2107, #2236) diff --git a/docs/DOCKER.md b/docs/DOCKER.md index 8735b1c422..51c388e2d9 100644 --- a/docs/DOCKER.md +++ b/docs/DOCKER.md @@ -286,7 +286,7 @@ image with the Rust toolchain, Git, `pkg-config`, and the DBus development heade required by the workspace. The first open runs `cargo build --locked` and installs rust-analyzer and the other editor extensions. -The source checkout remains mounted from the host. CodeWhale state and Cargo build +The source checkout remains mounted from the host. Codewhale state and Cargo build artifacts use Docker named volumes instead, so the configuration works when VS Code cannot provide a POSIX-style `HOME` variable (notably on Windows), and builds do not write thousands of small files through a Windows bind mount. Rebuild the container diff --git a/docs/ENVIRONMENTS.md b/docs/ENVIRONMENTS.md index 8fabba68de..a2566c7167 100644 --- a/docs/ENVIRONMENTS.md +++ b/docs/ENVIRONMENTS.md @@ -26,7 +26,7 @@ they do not cost context on machines that will never hit them. ## Running the agent without provider API keys -Point CodeWhale at any local OpenAI-compatible endpoint via the keyless +Point Codewhale at any local OpenAI-compatible endpoint via the keyless `vllm`/`ollama`/`sglang` providers: ```sh diff --git a/docs/FLEET.md b/docs/FLEET.md index 526f185ad2..a8648b5f2e 100644 --- a/docs/FLEET.md +++ b/docs/FLEET.md @@ -321,7 +321,7 @@ choose a different member or route. See Reasoning receipts record the requested tier *and* the tier the provider was actually asked for. Those differ whenever a route cannot express the requested -one — CodeWhale's route normalizer sends `high` for a requested `low` on most +one — Codewhale's route normalizer sends `high` for a requested `low` on most routes, and Z.AI's GLM routes express only thinking on/off — so the receipt reports the real request rather than the label that was selected. The value a call actually carries is spelled by that route's own normalizer, not by the tier diff --git a/docs/INSTALL.md b/docs/INSTALL.md index c9b22c1789..d279240b13 100644 --- a/docs/INSTALL.md +++ b/docs/INSTALL.md @@ -553,7 +553,7 @@ when you need the newest version immediately. ### Windows winget (v0.9.5+) -CodeWhale publishes a winget manifest for `Hmbown.CodeWhale` (resolves #1561). +Codewhale publishes a winget manifest for `Hmbown.CodeWhale` (resolves #1561). Winget installs only the `codewhale` + `codew` commands. GitHub Releases retain byte-identical `codewhale-tui-*` filenames only for legacy updater compatibility; they are not a third installed command. diff --git a/docs/ISSUE_TRIAGE.md b/docs/ISSUE_TRIAGE.md index 31a3450a77..4d33da11bd 100644 --- a/docs/ISSUE_TRIAGE.md +++ b/docs/ISSUE_TRIAGE.md @@ -65,7 +65,7 @@ Before relying on automation, perform one manual pass: current-version reproduction details. - Close obvious GUI, VS Code, and web UI duplicates with links to canonical desktop/runtime issues. -- Close old brand-discussion issues as superseded when the CodeWhale rebrand +- Close old brand-discussion issues as superseded when the Codewhale rebrand and README/history work already covers them. - Protect intentional v0.9.0 roadmap shards with `keep-open` or close them as superseded by a canonical epic. diff --git a/docs/KEYBINDINGS.md b/docs/KEYBINDINGS.md index 044842e004..f9e3c531c0 100644 --- a/docs/KEYBINDINGS.md +++ b/docs/KEYBINDINGS.md @@ -56,7 +56,7 @@ Editing the message you're about to send. | `Shift-Home` / `Shift-End` | Extend the selection to the start / end of the line | | `Ctrl-Shift-Home` / `Ctrl-Shift-End` | Extend the selection to the start / end of the draft | | `Ctrl-Shift-A` / `Cmd-A` | Select the whole draft (see note below) | -| `Ctrl-Shift-U` | Run `/update install` from the keyboard: check for and install the latest CodeWhale release without leaving the TUI. Managed installs (Homebrew/npm/cargo) keep their package-manager gate; when already current the updater's "Already up to date." result is shown and nothing changes | +| `Ctrl-Shift-U` | Run `/update install` from the keyboard: check for and install the latest Codewhale release without leaving the TUI. Managed installs (Homebrew/npm/cargo) keep their package-manager gate; when already current the updater's "Already up to date." result is shown and nothing changes | | Mouse drag | Select composer text; click moves the cursor | | `Cmd-V` / `Ctrl-Shift-V` | Terminal-local paste (arrives as bracketed paste when supported) | | `Ctrl-V` | Direct clipboard paste in a local or forwarded graphical session | diff --git a/docs/RELEASE_RUNBOOK.md b/docs/RELEASE_RUNBOOK.md index 2df128d39c..d0af33a83e 100644 --- a/docs/RELEASE_RUNBOOK.md +++ b/docs/RELEASE_RUNBOOK.md @@ -1,4 +1,4 @@ -# CodeWhale Release Runbook +# Codewhale Release Runbook This runbook is the source of truth for shipping Rust crates, GitHub release assets, and the `codewhale` npm wrapper. diff --git a/docs/SKILLS.md b/docs/SKILLS.md index 831a2d7518..4fc2658449 100644 --- a/docs/SKILLS.md +++ b/docs/SKILLS.md @@ -3,7 +3,7 @@ > 阅读简体中文版:[zh_hans/SKILLS.md](zh_hans/SKILLS.md) Skills are reusable `SKILL.md` instruction packs. Codewhale discovers them from -several roots, but **only CodeWhale-owned directories are writable**. The unified +several roots, but **only Codewhale-owned directories are writable**. The unified `/skills` manager is the interactive surface for audit and mutation; slash aliases share the same write path. @@ -25,7 +25,7 @@ shadowing stay visible. ## Ownership and roots -**Writable (CodeWhale-owned)** +**Writable (Codewhale-owned)** | Scope | Path | | --- | --- | @@ -43,7 +43,7 @@ and similar harness layouts. - `.codex/skills` appears in **compatible** audit scans so operators can see it. It does **not** join the runtime discovery set. -Configured `skills_dir` that is not one of the owned CodeWhale roots stays +Configured `skills_dir` that is not one of the owned Codewhale roots stays read-only. Discovery and the manager can list it; mutations still target owned project/global roots only. @@ -67,7 +67,7 @@ Notes: - There is **no** `/skills audit` subcommand. Use the manager (and `c` to toggle compatible roots) or `/skills inspect` for discovery details. -- Bare `/skill install ` (no scope flag) installs into the CodeWhale +- Bare `/skill install ` (no scope flag) installs into the Codewhale **global** owned root. - `/skills suggest` only reads the curated registry through the existing network policy. It never downloads, trusts, enables, or activates a skill; @@ -296,12 +296,12 @@ does not run readiness probes and does not block mutations on readiness. ```toml # Optional override for discovery preference (not automatically a write target -# unless it is the CodeWhale project/global owned path). +# unless it is the Codewhale project/global owned path). skills_dir = "/path/to/skills" [skills] # When true, runtime discovery skips cross-tool roots (.claude, .agents, …). -# Owned CodeWhale roots and an explicit skills_dir override still apply. +# Owned Codewhale roots and an explicit skills_dir override still apply. scan_codewhale_only = false # Optional registry / install size overrides used by --remote, sync, and install. diff --git a/docs/THIRD_PARTY_NOTICES.md b/docs/THIRD_PARTY_NOTICES.md index e50b7b8a5b..d4d3015424 100644 --- a/docs/THIRD_PARTY_NOTICES.md +++ b/docs/THIRD_PARTY_NOTICES.md @@ -1,6 +1,6 @@ # Third-party notices -CodeWhale is MIT licensed (see [`LICENSE`](../LICENSE)). Portions of it are +Codewhale is MIT licensed (see [`LICENSE`](../LICENSE)). Portions of it are adapted from other open-source projects. Their copyright and permission notices are reproduced here, and each adapted file carries an attribution header pointing back to its origin. @@ -22,7 +22,7 @@ the licence obligation travels with the code rather than with a package. credential per provider, `modify` as the only serialized write path, a single stated precedence rule enforced in one place, an injectable auth context, and a resolution result that names its source. This is a design port into - idiomatic synchronous Rust over CodeWhale's existing stores, not a + idiomatic synchronous Rust over Codewhale's existing stores, not a line-for-line copy; several doc comments are adapted closely. ``` @@ -58,7 +58,7 @@ the adapting file; they are listed here so the set is discoverable from one place. Their licence text has not been reproduced below — that is a gap, not a claim that none is required. -| CodeWhale file | Adapted from | +| Codewhale file | Adapted from | | --- | --- | | `crates/tui/src/tui/frame_rate_limiter.rs` | `codex-rs/tui/src/tui/frame_rate_limiter.rs`, [openai/codex](https://github.com/openai/codex) | | `crates/tui/src/tui/display_refresh.rs` | Grok CLI's host display-refresh probe | diff --git a/docs/WORKROOM_ARCHITECTURE.md b/docs/WORKROOM_ARCHITECTURE.md index 227e8ea685..455a2076dd 100644 --- a/docs/WORKROOM_ARCHITECTURE.md +++ b/docs/WORKROOM_ARCHITECTURE.md @@ -2,7 +2,7 @@ ## Purpose -Workrooms are CodeWhale's chat-native abstraction for durable, addressable +Workrooms are Codewhale's chat-native abstraction for durable, addressable threads of agent work. They sit between the Runtime API's transient thread model and the user-facing surfaces (TUI, mobile, chat bridges). @@ -60,7 +60,7 @@ rendering, and model-visible link resolution are planned follow-ups. ## State store -Persisted workroom state should live alongside existing CodeWhale state: +Persisted workroom state should live alongside existing Codewhale state: ``` ~/.codewhale/ diff --git a/docs/WORKROOM_SECURITY.md b/docs/WORKROOM_SECURITY.md index 642112b640..3ab614a3e3 100644 --- a/docs/WORKROOM_SECURITY.md +++ b/docs/WORKROOM_SECURITY.md @@ -2,7 +2,7 @@ ## Scope -This document covers the security boundaries of CodeWhale Workrooms — the +This document covers the security boundaries of Codewhale Workrooms — the durable, addressable containers for threaded agent conversations described in [RFC 3209](rfcs/3209-workrooms.md). @@ -18,7 +18,7 @@ model-visible link resolution remain follow-up work. ## Principles 1. **Local-first.** Future persisted workroom state should live under the - CodeWhale home directory, protected by user-only filesystem permissions. + Codewhale home directory, protected by user-only filesystem permissions. No cloud sync and no third-party hosting. Workroom content is never a telemetry subject: the anonymous usage counting in `docs/TELEMETRY.md` collects counts and closed enums only, and no workroom id, title, link, or diff --git a/docs/examples/Dockerfile.toolbox b/docs/examples/Dockerfile.toolbox index fab0b73eb7..67f81ae267 100644 --- a/docs/examples/Dockerfile.toolbox +++ b/docs/examples/Dockerfile.toolbox @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 # -# Opt-in CodeWhale toolbox image. +# Opt-in Codewhale toolbox image. # # The published ghcr.io/hmbown/codewhale:latest image intentionally stays # minimal, non-root, and without passwordless sudo. Use this Dockerfile only for diff --git a/docs/examples/compose.toolbox.yml b/docs/examples/compose.toolbox.yml index 0cd7c9ec57..7bc8d445d1 100644 --- a/docs/examples/compose.toolbox.yml +++ b/docs/examples/compose.toolbox.yml @@ -1,4 +1,4 @@ -# Opt-in CodeWhale toolbox workflow. +# Opt-in Codewhale toolbox workflow. # # Usage: # CODEWHALE_IMAGE=ghcr.io/hmbown/codewhale:vX.Y.Z \ diff --git a/docs/rfcs/1364-hooks-lifecycle.md b/docs/rfcs/1364-hooks-lifecycle.md index e791ce0603..d6065bf76a 100644 --- a/docs/rfcs/1364-hooks-lifecycle.md +++ b/docs/rfcs/1364-hooks-lifecycle.md @@ -9,7 +9,7 @@ is correct and this document is history. **Scope:** everything below landed as a **TUI runtime** feature. No hook in this RFC fires from `codewhale exec`, the CLI subcommands, the app-server / -ACP surfaces, or the `workflow` tool. The RFC's use of "CodeWhale" as the +ACP surfaces, or the `workflow` tool. The RFC's use of "Codewhale" as the actor should be read as "the Codewhale TUI" throughout. ## 0. Implementation status @@ -60,7 +60,7 @@ Four contract points hardened after this RFC, all documented in ## 1. Problem -CodeWhale already has lifecycle hooks and MCP support, but the current hook +Codewhale already has lifecycle hooks and MCP support, but the current hook surface is mostly observer-only. This blocks portable extensions that need to participate in the agent data flow: diff --git a/docs/rfcs/3209-workrooms.md b/docs/rfcs/3209-workrooms.md index 6624f5fac4..d489cfcd56 100644 --- a/docs/rfcs/3209-workrooms.md +++ b/docs/rfcs/3209-workrooms.md @@ -1,4 +1,4 @@ -# RFC: CodeWhale Workrooms — Chat-native Threaded Agent Work +# RFC: Codewhale Workrooms — Chat-native Threaded Agent Work **Issue:** #3209 **Status:** Future RFC — Phase 1 shipped (protocol types + link parser in @@ -14,7 +14,7 @@ integration, persistent state, and model-visible tools remain follow-up work. ## 1. Problem -CodeWhale agent work currently lives in transient TUI sessions, local Runtime API +Codewhale agent work currently lives in transient TUI sessions, local Runtime API threads, Fleet runs, and chat-bridge message loops — each with its own lifecycle, state representation, and context boundary. There is no first-class abstraction that: @@ -190,7 +190,7 @@ should not be registered until the backing runtime resolution behavior exists. ## 4. Security Model - **Local-first by default.** Persisted workroom state should live under the - CodeWhale home directory alongside existing state. No cloud service is + Codewhale home directory alongside existing state. No cloud service is assumed. - **Runtime API auth required.** Planned workroom endpoints must use the same `Authorization: Bearer ` protection as other runtime surfaces. @@ -245,7 +245,7 @@ context resolution. ## 7. Non-goals for Phase 1 -- No hosted public CodeWhale cloud service +- No hosted public Codewhale cloud service - No default-on Slack/Discord/Feishu/Telegram/GitHub App integration - No arbitrary public share links without explicit auth story - No model-specific workroom format diff --git a/docs/rfcs/HARNESS_PROFILE_CUTLINE.md b/docs/rfcs/HARNESS_PROFILE_CUTLINE.md index 5942e96306..dfe3509c21 100644 --- a/docs/rfcs/HARNESS_PROFILE_CUTLINE.md +++ b/docs/rfcs/HARNESS_PROFILE_CUTLINE.md @@ -11,7 +11,7 @@ profiles, and user-visible status surfaces are explicit and tested. ## Decision -For v0.9.0, CodeWhale should treat harness profiles as typed policy data first. +For v0.9.0, Codewhale should treat harness profiles as typed policy data first. Automatic profile evolution is deferred until replay evidence, candidate manifests, and promotion gates exist. @@ -24,7 +24,7 @@ The first implementation lane stops at: 5. Repo constitution overlay input. 6. Status/UX display of the resolved provider, model, profile, and repo law. -Only after those surfaces are visible and tested should CodeWhale add evidence +Only after those surfaces are visible and tested should Codewhale add evidence stores, candidate manifests, promotion gates, or an agentic Harness Creator. ## Required Seed Profiles diff --git a/docs/rfcs/REMOTE_SETUP_DESIGN.md b/docs/rfcs/REMOTE_SETUP_DESIGN.md index bc23535d69..d2772cfaae 100644 --- a/docs/rfcs/REMOTE_SETUP_DESIGN.md +++ b/docs/rfcs/REMOTE_SETUP_DESIGN.md @@ -7,7 +7,7 @@ cloud plus chat bridge deployments, and `--apply` is still not implemented. ## Goal -Give users a guided, education-forward way to reach a local-first CodeWhale +Give users a guided, education-forward way to reach a local-first Codewhale runtime from another surface without accidentally publishing their agent. Default posture: @@ -18,7 +18,7 @@ Default posture: The wizard should ask: -> How do you want to reach CodeWhale? +> How do you want to reach Codewhale? and offer these paths, in this order: @@ -124,7 +124,7 @@ curl -fsS \ Runtime mental model: -- Exposed by CodeWhale: only the address it binds. The recommended bind is +- Exposed by Codewhale: only the address it binds. The recommended bind is `127.0.0.1:7878`. - Auth token: `CODEWHALE_RUNTIME_TOKEN`, passed as `Authorization: Bearer ...` by clients and bridges. Legacy `DEEPSEEK_RUNTIME_TOKEN` remains a fallback. @@ -136,7 +136,7 @@ Runtime mental model: ### 1. This machine only (localhost) Use this when the TUI, SDK, browser, or local script runs on the same machine as -CodeWhale. +Codewhale. Setup: @@ -176,8 +176,8 @@ Trust boundary: ### 2. Private devices with Tailscale (Recommended) -Use this to reach CodeWhale from your phone or laptop without opening a LAN or -public port. Tailscale authenticates devices in your tailnet; CodeWhale still +Use this to reach Codewhale from your phone or laptop without opening a LAN or +public port. Tailscale authenticates devices in your tailnet; Codewhale still binds to localhost. Target setup to feature in the wizard: @@ -195,7 +195,7 @@ tailscale serve --bg --https=443 localhost:7878 ``` Then open the Tailscale Serve URL from a phone or laptop in the same tailnet. -For the current binary's mobile page, start CodeWhale with the verified mobile +For the current binary's mobile page, start Codewhale with the verified mobile variant: ```bash @@ -237,15 +237,15 @@ tailscale serve status Trust boundary: - Exposed: an HTTPS endpoint reachable by devices authorized in your tailnet. -- Not exposed: the raw CodeWhale listener; it stays on `127.0.0.1`. -- Token used: Tailscale identity gates network reachability; CodeWhale still +- Not exposed: the raw Codewhale listener; it stays on `127.0.0.1`. +- Token used: Tailscale identity gates network reachability; Codewhale still uses `CODEWHALE_RUNTIME_TOKEN` for runtime control. - Caveat: Tailscale Serve is private to the tailnet. Tailscale Funnel is public internet exposure and belongs only in the advanced path below. ### 3. Telegram bot -Use this when a Telegram DM should control a local CodeWhale runtime. The bridge +Use this when a Telegram DM should control a local Codewhale runtime. The bridge uses Telegram Bot API long polling, so it does not require a public webhook URL or inbound port. @@ -315,8 +315,8 @@ npm run validate:config -- \ Trust boundary: -- Exposed: no inbound CodeWhale port. Telegram sees messages sent to the bot. -- Not exposed: CodeWhale remains on `127.0.0.1`; provider keys stay in the +- Exposed: no inbound Codewhale port. Telegram sees messages sent to the bot. +- Not exposed: Codewhale remains on `127.0.0.1`; provider keys stay in the runtime env, not the Telegram env. - Tokens used: `TELEGRAM_BOT_TOKEN` for Telegram, `CODEWHALE_RUNTIME_TOKEN` for bridge-to-runtime calls, and `TELEGRAM_CHAT_ALLOWLIST` for user/chat gating. @@ -392,8 +392,8 @@ npm run validate:config -- \ Trust boundary: -- Exposed: no inbound CodeWhale port. Feishu/Lark sees messages sent to the app. -- Not exposed: CodeWhale remains on `127.0.0.1`; provider keys stay in runtime +- Exposed: no inbound Codewhale port. Feishu/Lark sees messages sent to the app. +- Not exposed: Codewhale remains on `127.0.0.1`; provider keys stay in runtime config. - Tokens used: `FEISHU_APP_ID` / `FEISHU_APP_SECRET` for the platform, `CODEWHALE_RUNTIME_TOKEN` for bridge-to-runtime calls, and @@ -459,9 +459,9 @@ npm run check Trust boundary: -- Exposed: no inbound CodeWhale port. The personal Weixin session and the +- Exposed: no inbound Codewhale port. The personal Weixin session and the bridge state directory become sensitive local state. -- Not exposed: CodeWhale remains on `127.0.0.1`; provider keys stay in runtime +- Not exposed: Codewhale remains on `127.0.0.1`; provider keys stay in runtime config. - Tokens used: the scanned Weixin login/session state for platform access, `CODEWHALE_RUNTIME_TOKEN` for bridge-to-runtime calls, and @@ -512,11 +512,11 @@ tailscale funnel status Trust boundary: - Exposed: a public HTTPS endpoint, not just your tailnet. -- Not exposed by CodeWhale directly: the backend still binds to `127.0.0.1`, +- Not exposed by Codewhale directly: the backend still binds to `127.0.0.1`, but the fronting layer makes selected routes reachable from the internet. - Token used: `CODEWHALE_RUNTIME_TOKEN` remains mandatory for control routes. - Caveat: public does not mean safe. Do not use `--insecure-no-auth`, do not bind - CodeWhale to `0.0.0.0`, and do not call this the default. + Codewhale to `0.0.0.0`, and do not call this the default. ## Cloud/VPS posture @@ -539,7 +539,7 @@ choices, not the default cloud path. ## Prior art: Hermes Agent (reference only - do not copy) Nous Research's Hermes Agent validates the table-driven part of this design. -Use it for ideas; keep CodeWhale's style: Rust core, local runtime, zero-dep +Use it for ideas; keep Codewhale's style: Rust core, local runtime, zero-dep Node bridges where possible, and plain-text replies. - `gateway/platform_registry.py` maps to our `BridgeSpec` / access-path @@ -683,7 +683,7 @@ Existing cloud target design remains accurate: - Azure VM: Docker image plus Key Vault, managed identity at boot. - DigitalOcean Droplet: native plus systemd, env-file secrets, `doctl` plan. -All cloud plans should bind CodeWhale to `127.0.0.1` and then layer one of the +All cloud plans should bind Codewhale to `127.0.0.1` and then layer one of the reachability paths above. ## Namespace migration: `DEEPSEEK_*` to `CODEWHALE_*` @@ -739,7 +739,7 @@ New tests for this revision: ## Command verification ledger -Verified against CodeWhale code/docs in this worktree: +Verified against Codewhale code/docs in this worktree: - `codewhale app-server --http --host 127.0.0.1 --port 7878 --auth-token TOKEN` - `codewhale app-server --mobile --host 127.0.0.1 --port 7878 --auth-token TOKEN` @@ -756,4 +756,4 @@ Marked proposed or external: - `--apply` execution - Tailscale CLI commands (`tailscale serve ...`, `tailscale funnel ...`) are external Tailscale commands. They are the intended RFC examples, but they are - not CodeWhale CLI flags. + not Codewhale CLI flags. diff --git a/docs/rfcs/UNIFIED_PROVIDER_LOGIN.md b/docs/rfcs/UNIFIED_PROVIDER_LOGIN.md index 4f68211e07..4eb640b130 100644 --- a/docs/rfcs/UNIFIED_PROVIDER_LOGIN.md +++ b/docs/rfcs/UNIFIED_PROVIDER_LOGIN.md @@ -61,7 +61,7 @@ provider picker row, `auth status`, and logout behave identically: Do not copy OAuth constants, client IDs, scopes, or Claude-Code-specific headers from reference implementations (e.g. Pi's `packages/ai/src/utils/oauth/anthropic.ts`) without first verifying that -CodeWhale is permitted to use that flow. Those details may be +Codewhale is permitted to use that flow. Those details may be client-specific or governed by Anthropic compatibility policy. This verification is an explicit maintainer action and blocks the Anthropic adapter, not the shared `auth login` scaffolding. diff --git a/docs/skills/README.md b/docs/skills/README.md index 398c9bc4ad..f5f79cb1a3 100644 --- a/docs/skills/README.md +++ b/docs/skills/README.md @@ -10,7 +10,7 @@ For end-user Skills Manager behavior (ownership, audit, import, trust), see To activate: - **Claude Code:** copy a skill dir into `.claude/skills/` (project) or your user skills dir. -- **Codewhale:** copy into a CodeWhale-owned root (e.g. `~/.codewhale/skills/`), import via +- **Codewhale:** copy into a Codewhale-owned root (e.g. `~/.codewhale/skills/`), import via `/skills`, or bundle into `crates/tui/assets/skills/` + register in `crates/tui/src/skills/system.rs` to ship it. diff --git a/docs/skills/codew-release-qa-sweep/SKILL.md b/docs/skills/codew-release-qa-sweep/SKILL.md index 20ea8b0cfa..3b558bac46 100644 --- a/docs/skills/codew-release-qa-sweep/SKILL.md +++ b/docs/skills/codew-release-qa-sweep/SKILL.md @@ -1,11 +1,11 @@ --- name: codew-release-qa-sweep -description: "Use before claiming CodeWhale release work is done: run the full gate sweep and list the manual QA targets." +description: "Use before claiming Codewhale release work is done: run the full gate sweep and list the manual QA targets." --- -# CodeWhale Release QA Sweep +# Codewhale Release QA Sweep -Run this before claiming any CodeWhale release work is "done." A green automated +Run this before claiming any Codewhale release work is "done." A green automated gate sweep plus the three manual QA targets is the evidence bar. No sweep, no "done" — report exactly what was run and the result of each step. diff --git a/docs/skills/gh-assign-issues/SKILL.md b/docs/skills/gh-assign-issues/SKILL.md index 06a76dd669..b919a81e2f 100644 --- a/docs/skills/gh-assign-issues/SKILL.md +++ b/docs/skills/gh-assign-issues/SKILL.md @@ -5,7 +5,7 @@ description: "Use to assign GitHub issues to a milestone and/or owners in bulk, # gh-assign-issues -Retarget or assign a set of CodeWhale issues to a milestone and/or owners in +Retarget or assign a set of Codewhale issues to a milestone and/or owners in bulk, verifying every one. The milestone (or assignee) change is the signal; do not narrate it with comments. Use `gh` for all GitHub calls. diff --git a/docs/skills/gh-close-issues/SKILL.md b/docs/skills/gh-close-issues/SKILL.md index 6ebf5c6cf0..798e8d1f59 100644 --- a/docs/skills/gh-close-issues/SKILL.md +++ b/docs/skills/gh-close-issues/SKILL.md @@ -1,6 +1,6 @@ --- name: gh-close-issues -description: "Close resolved CodeWhale issues only after verifying the landed commit/behavior, with a positive crediting comment; never from title alone." +description: "Close resolved Codewhale issues only after verifying the landed commit/behavior, with a positive crediting comment; never from title alone." --- # gh-close-issues diff --git a/docs/skills/gh-compile-issues/SKILL.md b/docs/skills/gh-compile-issues/SKILL.md index 0ed86b8aba..9d87519b8e 100644 --- a/docs/skills/gh-compile-issues/SKILL.md +++ b/docs/skills/gh-compile-issues/SKILL.md @@ -14,7 +14,7 @@ maintainer approval. ## Inputs -- Repo root: the local CodeWhale checkout (run `git rev-parse --show-toplevel`). +- Repo root: the local Codewhale checkout (run `git rev-parse --show-toplevel`). - GitHub repo: `Hmbown/CodeWhale` - Required GitHub CLI: `gh` - An issue set: explicit numbers, or a milestone (e.g. `v0.8.62`). diff --git a/docs/skills/gh-file-issue/SKILL.md b/docs/skills/gh-file-issue/SKILL.md index 090038d437..56e9252383 100644 --- a/docs/skills/gh-file-issue/SKILL.md +++ b/docs/skills/gh-file-issue/SKILL.md @@ -1,11 +1,11 @@ --- name: gh-file-issue -description: "Use when filing a new CodeWhale GitHub issue: turn a bug or idea into a well-formed, actionable issue with repro, acceptance criteria, labels, and milestone." +description: "Use when filing a new Codewhale GitHub issue: turn a bug or idea into a well-formed, actionable issue with repro, acceptance criteria, labels, and milestone." --- # gh-file-issue -File ONE high-quality, actionable issue for CodeWhale. An issue is maintainer +File ONE high-quality, actionable issue for Codewhale. An issue is maintainer evidence, not a sticky note: it must name a real gap, show falsifiable proof, and tell the next agent exactly when it is done. Vague issues become queue noise; concrete ones become fixes with credit. @@ -13,7 +13,7 @@ noise; concrete ones become fixes with credit. ## When to use - You hit a bug, regression, or rough edge while building, reviewing, or - running CodeWhale and want it tracked instead of lost. + running Codewhale and want it tracked instead of lost. - You have a feature or product-surface idea worth a milestone slot. - A community report, comment, or PR surfaced a gap that deserves its own trackable issue (link, do not duplicate). diff --git a/docs/skills/gh-find-prs/SKILL.md b/docs/skills/gh-find-prs/SKILL.md index 7f5e665dd6..be2d4fd14a 100644 --- a/docs/skills/gh-find-prs/SKILL.md +++ b/docs/skills/gh-find-prs/SKILL.md @@ -1,6 +1,6 @@ --- name: gh-find-prs -description: "Survey open CodeWhale PRs and triage each for mergeability and disposition against the real landing branch." +description: "Survey open Codewhale PRs and triage each for mergeability and disposition against the real landing branch." --- # gh-find-prs @@ -39,7 +39,7 @@ This is read-and-recommend. You do NOT merge, close, tag, or publish. You surfac ``` Read the diff. A "fix(exec): ..." can be a no-op or a regression; a "chore" can be the real fix. Judge the change, the tests it adds, and any review comments. -4. **Decode check failures — distinguish trivial from real.** In `statusCheckRollup`, find each `conclusion: FAILURE` and read its job. CodeWhale's CI jobs are `Lint`, `Test (ubuntu-latest|macos-latest|windows-latest)`, `Version drift`, `gate` (Contribution gate), `npm wrapper smoke`, `Mobile runtime smoke`, `Documentation`, `GitGuardian Security Checks`. +4. **Decode check failures — distinguish trivial from real.** In `statusCheckRollup`, find each `conclusion: FAILURE` and read its job. Codewhale's CI jobs are `Lint`, `Test (ubuntu-latest|macos-latest|windows-latest)`, `Version drift`, `gate` (Contribution gate), `npm wrapper smoke`, `Mobile runtime smoke`, `Documentation`, `GitGuardian Security Checks`. - A `Lint` failure that is only `cargo fmt` drift is trivial — harvestable, fix on landing with `cargo fmt --all`. - A failing `Test (...)` or `clippy` under Lint is real — read the log before trusting it. - `Version drift` failing on a community PR is expected (they bumped, or didn't); not a blocker for harvest. diff --git a/docs/zh_hans/INSTALL.md b/docs/zh_hans/INSTALL.md index 6a35df0fd5..0e3acf6bca 100644 --- a/docs/zh_hans/INSTALL.md +++ b/docs/zh_hans/INSTALL.md @@ -425,7 +425,7 @@ Scoop 清单维护在本仓库的发布工作流之外,可能落后于 GitHub/ ### Windows winget(v0.9.5+) -CodeWhale 为 `Hmbown.CodeWhale` 发布 winget manifest(解决 #1561)。Winget 只安装 `codewhale` + `codew` 命令。GitHub Releases 保留字节完全一致的 `codewhale-tui-*` 文件名,仅用于旧版更新器兼容;它们不是第三个已安装命令。 +Codewhale 为 `Hmbown.CodeWhale` 发布 winget manifest(解决 #1561)。Winget 只安装 `codewhale` + `codew` 命令。GitHub Releases 保留字节完全一致的 `codewhale-tui-*` 文件名,仅用于旧版更新器兼容;它们不是第三个已安装命令。 ```powershell winget install Hmbown.CodeWhale diff --git a/docs/zh_hans/KEYBINDINGS.md b/docs/zh_hans/KEYBINDINGS.md index a958ded7eb..b4d1ab91ef 100644 --- a/docs/zh_hans/KEYBINDINGS.md +++ b/docs/zh_hans/KEYBINDINGS.md @@ -56,7 +56,7 @@ | `Shift-Home` / `Shift-End` | 把选区扩展到行首 / 行尾 | | `Ctrl-Shift-Home` / `Ctrl-Shift-End` | 把选区扩展到草稿开头 / 结尾 | | `Ctrl-Shift-A` / `Cmd-A` | 选择整个草稿(参见下方说明) | -| `Ctrl-Shift-U` | 从键盘运行 `/update install`:无需离开 TUI 即可检查并安装最新的 CodeWhale 版本。托管安装(Homebrew/npm/cargo)保留其包管理器门槛;已是最新版本时显示更新器的 "Already up to date." 结果,不做任何更改 | +| `Ctrl-Shift-U` | 从键盘运行 `/update install`:无需离开 TUI 即可检查并安装最新的 Codewhale 版本。托管安装(Homebrew/npm/cargo)保留其包管理器门槛;已是最新版本时显示更新器的 "Already up to date." 结果,不做任何更改 | | 鼠标拖动 | 选择 composer 文本;点击移动光标 | | `Cmd-V` / `Ctrl-Shift-V` | 终端本地粘贴(在支持时以括号粘贴形式到达) | | `Ctrl-V` | 在本地或转发的图形会话中直接粘贴剪贴板 | diff --git a/docs/zh_hans/README.md b/docs/zh_hans/README.md index 477c884a41..f7fe564f3d 100644 --- a/docs/zh_hans/README.md +++ b/docs/zh_hans/README.md @@ -1,8 +1,8 @@ -# CodeWhale 简体中文文档阅读指南 +# Codewhale 简体中文文档阅读指南 -> 这里是简体中文用户阅读 CodeWhale 文档的入口。英文原版文档在文档根目录 [`docs/`](../)下。 +> 这里是简体中文用户阅读 Codewhale 文档的入口。英文原版文档在文档根目录 [`docs/`](../)下。 > 本文档按经验水平组织阅读路径,并跟踪各文档的翻译状态。 -> 下文建议仅表文档维护者本人观点,与 CodeWhale 官方立场无关 +> 下文建议仅表文档维护者本人观点,与 Codewhale 官方立场无关 --- @@ -16,16 +16,16 @@ ## 二、入门用户(已经装好程序、但仍然对 harness 不够了解) -阅读以下文档,能够帮助您快速入门,掌握 CodeWhale 这个软件的使用方法 +阅读以下文档,能够帮助您快速入门,掌握 Codewhale 这个软件的使用方法 1. [GUIDE.md](../GUIDE.md) —— 最基础的入门教程,一个小时就能读完、实践完,适用于所有平台 -2. [KEYBINDINGS.md](../KEYBINDINGS.md) —— TUI 页面的快捷键列表,在此可以了解到 CodeWhale 的食用方法 -3. [MODES.md](../MODES.md) —— 各个模式的使用说明(强烈建议每个 CodeWhale 用户都阅读此项) -4. [PROVIDERS.md](../PROVIDERS.md) —— 查询您所用的模型的供应商是否在 CodeWhale 官方支持的列表之中 +2. [KEYBINDINGS.md](../KEYBINDINGS.md) —— TUI 页面的快捷键列表,在此可以了解到 Codewhale 的食用方法 +3. [MODES.md](../MODES.md) —— 各个模式的使用说明(强烈建议每个 Codewhale 用户都阅读此项) +4. [PROVIDERS.md](../PROVIDERS.md) —— 查询您所用的模型的供应商是否在 Codewhale 官方支持的列表之中 ## 三、进阶用户(已经有充足了解,追求效率、安全与定制) -把 CodeWhale 配置成最顺手的样子。 +把 Codewhale 配置成最顺手的样子。 1. [CONFIGURATION.md](../CONFIGURATION.md) —— 完整配置参考(最大的文档,可分章节阅读) 2. [FLEET.md](../FLEET.md) —— Fleet 角色与多模型编排 @@ -36,16 +36,16 @@ 7. [TOOL_SURFACE.md](../TOOL_SURFACE.md) —— 工具面:AI 当前可用的工具契约 8. [AGENT_RUNTIME.md](../AGENT_RUNTIME.md) —— Agent 运行时:子智能体、exec 与 Fleet 的关系 -## 四、开发者(阅读源码或为 CodeWhale 贡献) +## 四、开发者(阅读源码或为 Codewhale 贡献) -为 CodeWhale 贡献代码或做集成开发。 +为 Codewhale 贡献代码或做集成开发。 1. [ARCHITECTURE.md](../ARCHITECTURE.md) —— 架构总览 2. [CONTRIBUTING.md](CONTRIBUTING.md) —— 贡献指南:如何提交 Issue 与 PR、代码约定与验证门禁 3. [CODE_OF_CONDUCT.md](../../CODE_OF_CONDUCT.md) —— 社区行为准则 4. [RUNTIME_API.md](../RUNTIME_API.md) —— Runtime API 与集成契约(供集成与二次开发) -> 我们强烈建议,成为 CodeWhale 贡献者之前,您需要具备一定的英语阅读能力。如果您在英语方面较为薄弱,当然可以使用 LLM 来翻译。但是在 LLM 翻译完原文之后,建议您强忍着看不懂外文的不适,即使皱着眉头,也要审查一遍 LLM 翻译后的语义是否与你的原文语义相同。LLM 幻觉是会把事情搞砸的。 +> 我们强烈建议,成为 Codewhale 贡献者之前,您需要具备一定的英语阅读能力。如果您在英语方面较为薄弱,当然可以使用 LLM 来翻译。但是在 LLM 翻译完原文之后,建议您强忍着看不懂外文的不适,即使皱着眉头,也要审查一遍 LLM 翻译后的语义是否与你的原文语义相同。LLM 幻觉是会把事情搞砸的。 --- From c8bf2d8c3967a6edd0118e95097f5111527deb8b Mon Sep 17 00:00:00 2001 From: CodeWhale Bot Date: Sun, 30 Aug 2026 11:03:25 -0700 Subject: [PATCH 2/2] chore: bundled plan skill prose uses the public name Codewhale Signed-off-by: CodeWhale Bot --- crates/tui/assets/skills/plan/SKILL.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/tui/assets/skills/plan/SKILL.md b/crates/tui/assets/skills/plan/SKILL.md index 39db268d38..da0b9160eb 100644 --- a/crates/tui/assets/skills/plan/SKILL.md +++ b/crates/tui/assets/skills/plan/SKILL.md @@ -1,6 +1,6 @@ --- name: plan -description: Turn a sufficiently understood task into an ordered implementation plan with dependencies and verification. Orchestrate CodeWhale’s native plan state; do not build a parallel planner. +description: Turn a sufficiently understood task into an ordered implementation plan with dependencies and verification. Orchestrate Codewhale’s native plan state; do not build a parallel planner. invocation: model+user --- @@ -11,13 +11,13 @@ Use when the task is understood well enough to sequence work, but not yet a sing ## Non-goals - Do not plan while key goals are still unknown — use interview first. -- Do not create a second planner outside CodeWhale plan/Work state. +- Do not create a second planner outside Codewhale plan/Work state. ## Workflow 1. Restate the goal and constraints. 2. List ordered steps with dependencies. 3. Mark verification for each risky step. -4. Write the plan into CodeWhale’s native plan/Work surface. +4. Write the plan into Codewhale’s native plan/Work surface. 5. Wait for authorization before broad implementation. ## Output shape