Skip to content

chore: use the public name Codewhale in prose (identifiers untouched) - #5742

Merged
Hmbown merged 5 commits into
mainfrom
chore/public-name-codewhale-20260830
Sep 1, 2026
Merged

chore: use the public name Codewhale in prose (identifiers untouched)#5742
Hmbown merged 5 commits into
mainfrom
chore/public-name-codewhale-20260830

Conversation

@Hmbown

@Hmbown Hmbown commented Aug 30, 2026

Copy link
Copy Markdown
Owner

What

The ratified public name is Codewhale (AGENTS.md, PRD). This sweep converges public prose on it: docs/** (~100 lines), all 15 TUI locale packs (60 hits → 0), 37 user-facing Rust string literals (updater messages, tool descriptions, status/approval copy) with their assertions, and the bundled plan skill prose.

Deliberately untouched (compatibility identifiers): the Hmbown/CodeWhale slug and every URL/path containing it, winget id Hmbown.CodeWhale and Windows install paths, user-agent strings, X-CodeWhale-Webhook-Secret, MCP OAuth client_name, the git-exclude marker line, gherkin step names bound to .feature files, test fixtures, doc comments, CHANGELOG history, VS Code displayName, npm/packaging/scripts.

1,355 word hits enumerated and classified; every hunk reviewed by diff (59 files, 200 insertions / 200 deletions + 1 skill file).

Evidence

  • web: npm testTest Files 40 passed / Tests 341 passed; eslint and tsc clean; check:docs PASS; check-locales.mjs PASS
  • scripts/check-tui-locale-parity.py → PASS (15 packs); check-tui-product-vocabulary.sh exit 0; README translation + locale-link checks PASS; all 15 locale JSONs parse
  • cargo test -p codewhale-tui localetest result: ok. 64 passed; 0 failed
  • touched-string filters (update keybinding skills::mutation tools::file::tests tui::ui::tests::{apply,approval,auto_denied} tools::tui_help denied coordination_handover cached_denial read_file_denies updater ctrl_shift_u) with RUST_MIN_STACK=16777216 (the same discipline .cnb.yml uses; the default stack overflows this test binary — pre-existing, see feat(tui): checkpoint live provider catalogs and routed usage #5726 notes) → passing result lines below
  • Independent reviewer: approve; the one product-facing minor (bundled plan skill) fixed in c8bf2d8c3

Unproven: cargo doc (no doc comments touched); the GT network locale check.

No-Issue: ratified public-name convergence (AGENTS.md "Public name is Codewhale"; founder decision 2026-08-30)

🤖 Generated with Claude Code

https://claude.ai/code/session_014aDEyM2a4pPZ9qqMDrP5YX


Note

Low Risk
Copy-only branding sweep with no behavioral or security logic changes; main risk is missing a user-facing string or over-editing a stable identifier (the PR explicitly excludes those).

Overview
Aligns the ratified public product name Codewhale across user-visible copy while leaving compatibility identifiers (repo slug, URLs, winget id, env vars, crate/type names) unchanged.

TUI: All 15 locale packs rename CodeWhaleCodewhale in strings for /update, update keyboard hints, post-update notices, and session auto-deny approval messaging. Matching Rust literals and tests in the updater command, skills mutation errors, read_file / tui_help tool text, coordination toasts, and update notices follow the same spelling.

Docs & skills: English and zh_hans documentation, maintainer skill prose, and the bundled plan skill now say Codewhale in narrative text; GitHub paths, Hmbown.CodeWhale, and historical changelog entries are not rewritten.

Reviewed by Cursor Bugbot for commit 660622a. Bugbot is set up for automated code reviews on this repo. Configure here.

CodeWhale Bot and others added 2 commits August 30, 2026 10:48
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 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014aDEyM2a4pPZ9qqMDrP5YX
Signed-off-by: CodeWhale Bot <bot@codewhale.net>
Signed-off-by: CodeWhale Bot <bot@codewhale.net>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Aug 30, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-08-30T18:36:20.431144Z c8bf2d8 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@claude

claude Bot commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Claude finished @Hmbown's task in 2m 52s —— View job


Review: chore/public-name-codewhale-20260830

Todo list

  • Gather context (fetch base, view diff)
  • Review docs/** prose changes
  • Review locale JSON changes (15 packs)
  • Review Rust string literal changes + their test assertions
  • Review bundled plan skill prose change
  • Check for any missed/leaked compatibility identifiers
  • Post final review

Summary

This is a clean, mechanical, well-scoped rename. I walked all 60 changed files hunk-by-hunk against origin/main...HEAD:

  • Rust (update.rs, mutation.rs, file.rs, tui_help.rs, keybindings.rs, ui.rs, apply.rs, and their test files): every user-facing "CodeWhale""Codewhale" edit has a matching test-assertion update in the same commit (e.g. update.rs message + assert!(message.contains("restart Codewhale")), tui/ui/tests.rs matching all 6 renamed assertions including the zh-Hans localized string). No orphaned assertions, no unbalanced format strings.
  • Locale packs (15 files): identical 4-key pattern (CmdUpdateDescription, KbUpdateInstall, UpdateChangedHint, ApprovalAutoDeniedSession) converged consistently in every language including CJK strings with no stray whitespace/spacing regressions relative to the originals.
  • Compatibility identifiers correctly left untouched everywhere I checked: Hmbown/CodeWhale repo slug/URLs, Hmbown.CodeWhale winget id, %LOCALAPPDATA%\Programs\CodeWhale\bin, CodeWhaleSetup.exe, .codewhale/ storage paths, the [skills].scan_codewhale_only config key, and ghcr.io/hmbown/codewhale. Nice touch in docs/CLASSROOM_INSTALL.md: table row 1 prose was converted while the adjacent row 3's literal path C:\Tools\CodeWhale\bin-extra was correctly left alone in the same table.
  • crates/tui/assets/skills/plan/SKILL.md prose-only, matches the PR description's called-out fix.

Minor notes (non-blocking)

  1. docs/CATALOG_REFRESH.md (and its docs/zh_hans counterpart isn't touched here, but) the line "background-fetch Models.dev (15 s timeout, explicit CodeWhale Codewhale user-agent...)" now describes the literal USER_AGENT constant in crates/tui/src/models_dev_live.rs:36, which is concat!("CodeWhale/", env!("CARGO_PKG_VERSION"), " (+models-dev)") — i.e. an actual wire value, and per AGENTS.md user-agent strings are a deliberately-untouched compatibility identifier. The doc prose no longer matches the real header's casing. Low severity (doc-only, doesn't touch the constant itself), but worth a follow-up tweak so the doc doesn't misdescribe the wire value.
  2. docs/CONTRIBUTORS.md: one line renames the community contribution note "add the community-maintained CodeWhale for VS Code GUI frontend" (docs(readme): link CodeWhale for VS Code GUI frontend #4035, credited to gaord) to "Codewhale for VS Code". This is describing a specific third-party project's name in a historical credit record rather than generic first-party prose — worth a quick check that the actual extension/project name doesn't itself use "CodeWhale" casing before treating this as pure prose convergence.

Both are low-severity documentation nuances, not functional or test-breaking issues. I did not find any correctness bugs, provider/model-routing risk, dead code, or missing test coverage — this diff is prose/string-literal only with no logic changes.

@codewhale-agent codewhale-agent Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codewhale review

Mechanical prose rename from CodeWhale to Codewhale across docs, TUI locale packs, user-facing Rust string literals, and their test assertions. The scope is largely consistent: compatibility identifiers, URLs, paths, env vars, and historical changelog content are intentionally preserved.

Findings

  • [INFO] CHANGELOG_ARCHIVE heading contradicts the stated no-history-edit scope (docs/CHANGELOG_ARCHIVE.md:1)
    The PR description lists CHANGELOG history as deliberately untouched, but this change renames the archive heading from CodeWhale to Codewhale while the archived release entries below remain in the old spelling. This leaves the archive document internally inconsistent and slightly contradicts the stated scope note. If history is to stay untouched, consider leaving this heading as CodeWhale; otherwise rewrite the archived entries as well.

Assessment

Approved with one minor documentation consistency note. The mechanical rename is correctly scoped and test assertions are updated; no functional or test coverage issues found.


Advisory review by Codewhale (codewhale review --pr 5742 --post, head c8bf2d8c3967a6edd0118e95097f5111527deb8b). Line-specific findings are also posted as inline review comments; mechanical fixes arrive as committable suggestions you can apply from the Files tab. CODEOWNERS approval still governs merge.

Comment thread docs/CHANGELOG_ARCHIVE.md
@@ -1,6 +1,6 @@
# Changelog Archive

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[INFO] CHANGELOG_ARCHIVE heading contradicts the stated no-history-edit scope

The PR description lists CHANGELOG history as deliberately untouched, but this change renames the archive heading from CodeWhale to Codewhale while the archived release entries below remain in the old spelling. This leaves the archive document internally inconsistent and slightly contradicts the stated scope note. If history is to stay untouched, consider leaving this heading as CodeWhale; otherwise rewrite the archived entries as well.

…ewhale-20260830

# Conflicts:
#	docs/AGENT_RUNTIME.md
Copilot AI lite review requested due to automatic review settings September 1, 2026 02:42
@cursor

cursor Bot commented Sep 1, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_b6a70f0c-73c9-49d3-bd86-6b26e88e6c1f)

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Left a non-blocking comment and did not approve: Cursor Bugbot was present but skipped (usage limit), so there is no completed clean Bugbot signal for this head. Reviewers were assigned for a human look.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Router and Approver

@claude

claude Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Claude finished @Hmbown's task in 1m 45s —— View job


Review: chore/public-name-codewhale-20260830

  • Gather context (fetch base, view diff)
  • Review docs/** prose changes
  • Review locale JSON changes (15 packs)
  • Review Rust string literal changes + their test assertions
  • Review bundled plan skill prose change
  • Check for any missed/leaked compatibility identifiers
  • Address CHANGELOG_ARCHIVE consistency finding from codewhale-agent review
  • Post final review

Summary

I re-walked git diff origin/main...HEAD (60 files, 203/203) against the review priorities (correctness, provider/route safety, reuse, tests, security). This is a pure prose/string-literal rename with no logic changes — findings below are confirmatory, not new blockers.

Correctness — clean. Every user-facing "CodeWhale""Codewhale" edit in Rust has its matching test assertion updated in the same file/commit:

  • update.rs messages ↔ assert!(message.contains("restart Codewhale")) (both managed_install_message and no_updater_message paths)
  • mutation.rs bail! messages (symlink guard, non-canonical root, owned-root checks) — no test coupling needed, these are operator-facing error strings only
  • ui/tests.rs — all 10 renamed assertions verified, including the zh-Hans localized string ("本次 Codewhale 运行期间") matching the corresponding en.json/locale-pack key changes
  • Traced "during this Codewhale run" back to crates/tui/locales/en.json:1039 (ApprovalAutoDeniedSession) — matches the 15-locale-pack diff exactly
  • Confirmed crates/tui/src/tui/ui/event_loop.rs (untouched by this PR, has 5 "Codewhale" occurrences) was already spelled correctly on origin/main before this PR — not a missed spot

Provider/model/route safety — N/A. No routing, prefix-inference, or model-selection code touched.

Reuse/simplification — N/A. No logic changes to assess.

Compatibility identifiers — correctly preserved everywhere I sampled: Hmbown/CodeWhale slug/URLs, Hmbown.CodeWhale winget id (including in docs/zh_hans/README.md's Chinese prose, where the surrounding sentence converts but the id doesn't), %LOCALAPPDATA%\Programs\CodeWhale\bin, CodeWhaleSetup.exe, .codewhale/ paths, CODEWHALE_RUNTIME_TOKEN/DEEPSEEK_RUNTIME_TOKEN env vars, scan_codewhale_only config key, codewhale app-server ... CLI flags in docs/rfcs/REMOTE_SETUP_DESIGN.md.

Two minor doc nuances (both already surfaced by prior reviewers, confirmed on inspection, non-blocking):

  1. docs/CATALOG_REFRESH.md:98 — "explicit Codewhale user-agent" now describes the literal wire value in crates/tui/src/models_dev_live.rs:36, which is concat!("CodeWhale/", ...) (an intentionally-preserved compat identifier per this PR's own scope). The doc prose no longer matches the actual header casing. Fix this →
  2. docs/CHANGELOG_ARCHIVE.md:1 — I checked whether this contradicts the "CHANGELOG history untouched" scope note as the codewhale-agent bot flagged: the heading (doc-level prose, 1 line) converged to "Codewhale" while all 78 occurrences in the archived per-release entries below remain "CodeWhale". This matches the same doc-header-vs-content split used consistently elsewhere in this PR (e.g. docs/AGENT_RUNTIME.md's title), so it's intentional and internally consistent by that pattern — not an actual defect, just worth a maintainer nod that "history untouched" means the entries, not the file's own heading.

Tests — no gaps. This is a rename with 1:1 assertion updates; no new behavior needs new coverage. Locale JSON structural validity for the 15 touched packs is already covered by the PR's stated check-tui-locale-parity.py / cargo test -p codewhale-tui locale (64 passed) evidence, which I did not need to re-run given the diffs are simple value-only key edits with no key additions/removals.

No correctness bugs, provider-safety issues, or missing test coverage found.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

A few edits conflict with the PR’s stated “identifiers/history untouched” constraints (notably changelog scope and VS Code extension naming), so the remaining scope boundaries need to be corrected before approval.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

This PR standardizes user-facing prose and UI copy to the ratified public name Codewhale, while intentionally preserving compatibility identifiers (repo slug, package IDs, paths, env vars, etc.) elsewhere in the codebase.

Changes:

  • Updated documentation prose across English + zh_hans docs and RFCs from “CodeWhale” → “Codewhale”.
  • Updated TUI user-facing Rust string literals (and their tests) to the new public name.
  • Updated all TUI locale packs and the bundled plan skill prose to match “Codewhale”.
File summaries
File Description
docs/zh_hans/README.md Align zh_hans docs entry-point prose to “Codewhale”.
docs/zh_hans/KEYBINDINGS.md Update zh_hans keybinding prose mentioning the product name.
docs/zh_hans/INSTALL.md Update zh_hans install prose to “Codewhale” while keeping identifiers (e.g., winget ID).
docs/WORKROOM_SECURITY.md Update Workrooms security doc prose to “Codewhale”.
docs/WORKROOM_ARCHITECTURE.md Update Workrooms architecture doc prose to “Codewhale”.
docs/THIRD_PARTY_NOTICES.md Update third-party notices prose references to “Codewhale”.
docs/skills/README.md Update skills documentation prose to “Codewhale”.
docs/skills/gh-find-prs/SKILL.md Update skill description/prose references to “Codewhale”.
docs/skills/gh-file-issue/SKILL.md Update skill description/prose references to “Codewhale”.
docs/skills/gh-compile-issues/SKILL.md Update skill prose references to “Codewhale”.
docs/skills/gh-close-issues/SKILL.md Update skill description to “Codewhale”.
docs/skills/gh-assign-issues/SKILL.md Update skill prose references to “Codewhale”.
docs/skills/codew-release-qa-sweep/SKILL.md Update skill title/description/prose references to “Codewhale”.
docs/SKILLS.md Update skills system documentation prose references to “Codewhale”.
docs/rfcs/UNIFIED_PROVIDER_LOGIN.md Update RFC prose references to “Codewhale”.
docs/rfcs/REMOTE_SETUP_DESIGN.md Update RFC prose references to “Codewhale”.
docs/rfcs/HARNESS_PROFILE_CUTLINE.md Update RFC prose references to “Codewhale”.
docs/rfcs/3209-workrooms.md Update RFC prose references to “Codewhale”.
docs/rfcs/1364-hooks-lifecycle.md Update RFC prose references to “Codewhale”.
docs/RELEASE_RUNBOOK.md Update runbook title/prose to “Codewhale”.
docs/KEYBINDINGS.md Update keybindings doc prose mentioning “Codewhale”.
docs/ISSUE_TRIAGE.md Update triage doc prose mentioning “Codewhale”.
docs/INSTALL.md Update install doc prose mentioning “Codewhale”.
docs/FLEET.md Update Fleet doc prose mentioning “Codewhale”.
docs/examples/Dockerfile.toolbox Update example Dockerfile comments to “Codewhale”.
docs/examples/compose.toolbox.yml Update example compose comments to “Codewhale”.
docs/ENVIRONMENTS.md Update environments doc prose to “Codewhale”.
docs/DOCKER.md Update Docker doc prose to “Codewhale”.
docs/CONTRIBUTORS.md Update contributor-credit prose references to “Codewhale”.
docs/CONFIGURATION.md Update configuration doc prose to “Codewhale”.
docs/CLASSROOM_INSTALL.md Update classroom install doc prose references to “Codewhale”.
docs/CHANGELOG_ARCHIVE.md Update changelog archive intro prose to “Codewhale”.
docs/CATALOG_REFRESH.md Update catalog refresh doc prose to “Codewhale”.
docs/ARCHITECTURE.md Update architecture doc prose to “Codewhale”.
docs/AGENT_RUNTIME.md Update agent runtime doc prose references to “Codewhale”.
crates/tui/src/tui/ui/tests.rs Update UI tests asserting user-facing “Codewhale” strings.
crates/tui/src/tui/ui/apply.rs Update coordination toast copy to “Codewhale”.
crates/tui/src/tui/ui.rs Update updater notice copy to “Codewhale”.
crates/tui/src/tui/keybindings.rs Update keybinding description test string to “Codewhale”.
crates/tui/src/tools/tui_help.rs Update tool description copy to “Codewhale”.
crates/tui/src/tools/file/tests/tools.rs Update deny-message assertion to “Codewhale”.
crates/tui/src/tools/file.rs Update read_file tool description + denial message to “Codewhale”.
crates/tui/src/skills/mutation.rs Update skills mutation error messages to “Codewhale”.
crates/tui/src/commands/groups/utility/update.rs Update updater command messaging to “Codewhale”.
crates/tui/locales/zh-Hant.json Update localized strings referencing “Codewhale”.
crates/tui/locales/zh-Hans.json Update localized strings referencing “Codewhale”.
crates/tui/locales/vi.json Update localized strings referencing “Codewhale”.
crates/tui/locales/uk.json Update localized strings referencing “Codewhale”.
crates/tui/locales/ru.json Update localized strings referencing “Codewhale”.
crates/tui/locales/pt-BR.json Update localized strings referencing “Codewhale”.
crates/tui/locales/ko.json Update localized strings referencing “Codewhale”.
crates/tui/locales/ja.json Update localized strings referencing “Codewhale”.
crates/tui/locales/id.json Update localized strings referencing “Codewhale”.
crates/tui/locales/hi.json Update localized strings referencing “Codewhale”.
crates/tui/locales/fr.json Update localized strings referencing “Codewhale”.
crates/tui/locales/es-419.json Update localized strings referencing “Codewhale”.
crates/tui/locales/en.json Update localized strings referencing “Codewhale”.
crates/tui/locales/de.json Update localized strings referencing “Codewhale”.
crates/tui/locales/ca.json Update localized strings referencing “Codewhale”.
crates/tui/assets/skills/plan/SKILL.md Update bundled plan skill prose references to “Codewhale”.
Review details
  • Files reviewed: 60/60 changed files
  • Comments generated: 3
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread docs/CLASSROOM_INSTALL.md
| # | 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` | ☐ |
Comment thread docs/CONTRIBUTORS.md
Comment on lines 570 to +571
- **[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)
Comment thread docs/CHANGELOG_ARCHIVE.md
# 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).

@codewhale-agent codewhale-agent Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codewhale review

This is a copy-only rebrand of user-visible prose from CodeWhale to Codewhale across TUI locale packs, Rust string literals, docs, and bundled skills. Compatibility identifiers are largely preserved, and tests were updated accordingly.

Findings

  • [WARNING] Meta note in RFC now self-referential (docs/rfcs/1364-hooks-lifecycle.md:12)
    The RFC's note explaining that its historical 'CodeWhale' mentions should be read as 'the Codewhale TUI' was changed to quote 'Codewhale' itself, which makes the instruction self-referential and removes the historical context it is meant to explain.
  • [WARNING] User-agent documentation may contradict preserved identifier (docs/CATALOG_REFRESH.md:65)
    The prose now says 'explicit Codewhale user-agent', but the PR intentionally leaves user-agent strings as CodeWhale compatibility identifiers. If the actual User-Agent header still contains CodeWhale, this reference should stay as CodeWhale to match the preserved string.

Suggestions

  • docs/rfcs/1364-hooks-lifecycle.md:12 — Keep the quoted historical name as CodeWhale so the sentence still explains how to interpret the RFC's old branding.

    ACP surfaces, or the `workflow` tool. The RFC's use of "CodeWhale" as the
    
  • docs/CATALOG_REFRESH.md:65 — Keep the user-agent reference aligned with the intentionally untouched CodeWhale user-agent string.

       Models.dev (15 s timeout, explicit CodeWhale user-agent, **no credentials**).
    

Assessment

The implementation is low-risk and mostly consistent, but a couple of documentation references likely should retain the old brand where they refer to preserved identifiers or historical context.


Advisory review by Codewhale (codewhale review --pr 5742 --post, head 00ad9d211546f21121617f400da4f491901307bd). Line-specific findings are also posted as inline review comments; mechanical fixes arrive as committable suggestions you can apply from the Files tab. CODEOWNERS approval still governs merge.

**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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[WARNING] Meta note in RFC now self-referential

The RFC's note explaining that its historical 'CodeWhale' mentions should be read as 'the Codewhale TUI' was changed to quote 'Codewhale' itself, which makes the instruction self-referential and removes the historical context it is meant to explain.

Comment thread docs/CATALOG_REFRESH.md
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**).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[WARNING] User-agent documentation may contradict preserved identifier

The prose now says 'explicit Codewhale user-agent', but the PR intentionally leaves user-agent strings as CodeWhale compatibility identifiers. If the actual User-Agent header still contains CodeWhale, this reference should stay as CodeWhale to match the preserved string.

**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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Keep the quoted historical name as CodeWhale so the sentence still explains how to interpret the RFC's old branding.

Suggested change
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

Comment thread docs/CATALOG_REFRESH.md
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**).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Keep the user-agent reference aligned with the intentionally untouched CodeWhale user-agent string.

Suggested change
Models.dev (15 s timeout, explicit Codewhale user-agent, **no credentials**).
Models.dev (15 s timeout, explicit CodeWhale user-agent, **no credentials**).

@cursor

cursor Bot commented Sep 1, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_53ea1d93-979c-4b15-a029-82368dffba81)

@claude

claude Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Claude finished @Hmbown's task in 2m 6s —— View job


Review: chore/public-name-codewhale-20260830

Todo list

  • Gather context (fetch base, view diff)
  • Review docs/** prose changes, cross-check flagged items (CHANGELOG_ARCHIVE, RFC 1364, CATALOG_REFRESH, CONTRIBUTORS.md)
  • Review locale JSON changes (15 packs)
  • Review Rust string literal changes + their test assertions
  • Check for correctness bugs / provider-safety / reuse / test gaps per repo review priorities
  • Post final review

Summary

Re-walked git diff origin/main...HEAD (60 files, 203/+203-) against this repo's review priorities. This is a copy-only prose rename with no logic changes; findings below are confirmatory of prior bot rounds plus one verification.

1. Correctness — clean. Every user-facing "CodeWhale""Codewhale" edit in Rust has a matching test-assertion update in the same commit/file:

  • update.rs: managed_install_message/no_updater_message/install_preamble/run_updater strings ↔ assert!(message.contains("restart Codewhale")) (crates/tui/src/commands/groups/utility/update.rs:274,296)
  • mutation.rs: 8 bail! operator-facing strings, no test coupling needed
  • file.rs denial message ↔ crates/tui/src/tools/file/tests/tools.rs:71 ("cannot expose Codewhale")
  • keybindings.rs:616 and ui/tests.rs (10 assertions, including the zh-Hans localized string "本次 Codewhale 运行期间") match the corresponding locale-pack diffs
  • Verified SkillSourceKind::CodeWhaleManaged (an enum identifier, mutation.rs:866,944,977) was correctly left untouched while the surrounding prose in the same bail! strings converted — good discipline on the identifier/prose boundary.

2. Provider/model/route safety — N/A. No routing, prefix-inference, or model-selection code touched.

3. Reuse/simplification — N/A. No logic changes to assess; nothing duplicated or dead introduced.

4. Tests — no gaps. 1:1 assertion updates for every renamed literal; locale JSON structural validity already covered by the PR's stated check-tui-locale-parity.py / cargo test -p codewhale-tui locale evidence (64 passed).

5. Security — N/A. No secret handling, exec policy, or input validation touched.

Still-open from prior review rounds (verified present at current HEAD 2296572, not just the earlier 00ad9d2/c8bf2d8 heads reviewers cited)

These three were flagged by codewhale-agent and copilot-pull-request-reviewer in earlier passes and remain unresolved in the diff as of this run:

  1. docs/rfcs/1364-hooks-lifecycle.md:12-13 — the meta-note now reads "The RFC's use of "Codewhale" as the actor should be read as "the Codewhale TUI" throughout," but a grep of the whole file shows these are the only two product-name occurrences left in it — there's no remaining literal "CodeWhale" elsewhere in the document for this note to be explaining. The note is now self-referential and has lost the historical context it exists to convey. Keep the quoted name as "CodeWhale" here since it's citing the RFC's original (historical) usage, not current prose.
  2. docs/CATALOG_REFRESH.md:65"explicit Codewhale user-agent" describes the literal wire value in crates/tui/src/models_dev_live.rs:36 (concat!("CodeWhale/", env!("CARGO_PKG_VERSION"), " (+models-dev)")), which this PR's own scope note lists as an intentionally-preserved compatibility identifier (user-agent strings). The doc should stay "CodeWhale" to match the actual header.
  3. docs/CLASSROOM_INSTALL.md:93 — table row says "no existing Codewhale PATH entry" but the expected result in the same row is the literal path %LOCALAPPDATA%\Programs\CodeWhale\bin (capital W). Same casing mismatch pattern as Simplify UI and improve footer display (v0.3.14) #2 — the scenario label should match the identifier operators actually search for.

Lower-confidence / needs a human call, not re-verifiable from this checkout:
4. docs/CONTRIBUTORS.md:571 — renames the historical credit "CodeWhale for VS Code GUI frontend" (#4035, gaord) to "Codewhale for VS Code." This repo's own first-party extension at extensions/vscode/package.json:3 still has displayName: "CodeWhale", but the #4035 credit is for a separate community-maintained project, not this repo's extension — I can't confirm that third-party project's actual name from this checkout. Worth a quick look before treating this line as pure prose.
5. docs/CHANGELOG_ARCHIVE.md:1 — heading converges to "Codewhale" while all archived per-release entries below stay "CodeWhale." Internally consistent with the header-vs-body-content split used elsewhere in this PR (e.g. AGENT_RUNTIME.md's title), so likely intentional, but the PR description's "CHANGELOG history untouched" line doesn't disambiguate "history" as excluding the file's own heading — worth a maintainer nod either way. Non-blocking.

Items 1–3 are casing/consistency nits that don't affect compilation, tests, or product behavior, but they invert the exact rule this PR is enforcing (preserve compatibility identifiers verbatim) in three doc spots. No new correctness bugs, provider-safety issues, or missing test coverage found beyond these.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Left a non-blocking comment and did not approve: Cursor Bugbot was present but skipped (usage limit), so there is no completed clean Bugbot signal for this head. Reviewers were assigned for a human look.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Router and Approver

@codewhale-agent codewhale-agent Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codewhale review

PR #5742 replaces the public product name 'CodeWhale' with 'Codewhale' in user-facing prose across docs, 15 TUI locale packs, Rust string literals, the bundled plan skill, and their test assertions. Compatibility identifiers, URLs, install paths, env vars, and changelog entries remain unchanged.

Assessment

Low-risk, copy-only branding alignment. The change is consistent, test assertions are updated in the same PR, and no logic, API, auth, or identifier behavior is affected. No issues found.


Advisory review by Codewhale (codewhale review --pr 5742 --post, head 2296572e041633ce7d831cb08278f241c0840c48). Line-specific findings are also posted as inline review comments; mechanical fixes arrive as committable suggestions you can apply from the Files tab. CODEOWNERS approval still governs merge.

@cursor

cursor Bot commented Sep 1, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_377c8c78-c793-46a2-953d-2f8e8b8800c1)

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left a non-blocking comment and did not approve: Cursor Bugbot was present but skipped (usage limit), so there is no completed clean Bugbot signal for this head. Reviewers were assigned for a human look.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Router and Approver

@claude

claude Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Claude finished @Hmbown's task in 1m 14s —— View job


Review: chore/public-name-codewhale-20260830

Todo list

  • Gather context (fetch base, view diff)
  • Verify current status of issues flagged by prior review rounds (CATALOG_REFRESH.md, CHANGELOG_ARCHIVE.md, RFC 1364, CLASSROOM_INSTALL.md, CONTRIBUTORS.md)
  • Full pass over remaining diff for correctness/provider-safety/reuse/tests/security
  • Post final review

Summary

Re-verified git diff origin/main...HEAD at current head 660622a (60 files, 203/-203, unchanged content vs. the diff prior rounds reviewed — the two merge commits since then only pulled in unrelated main history, e.g. b18d1fd/686b4f9 test fixes). This is a copy-only prose rename with no logic changes.

1. Correctness — clean. Walked every Rust hunk (update.rs, mutation.rs, file.rs, tui_help.rs, keybindings.rs, ui.rs, apply.rs, ui/tests.rs, file/tests/tools.rs). Every user-facing "CodeWhale""Codewhale" literal has its matching test assertion updated in the same file, including the zh-Hans localized string ("本次 Codewhale 运行期间"). SkillSourceKind::CodeWhaleManaged (an enum identifier) is correctly left untouched in mutation.rs:866,944,977 even though the surrounding bail! prose in the same lines converts — good identifier/prose discipline.

2. Provider/model/route safety — N/A. No routing, prefix-inference, or model-selection code touched.

3. Reuse/simplification — N/A. No logic changes.

4. Tests — no gaps. 1:1 assertion updates; no new behavior needing coverage.

5. Security — N/A.

Four items from earlier bot rounds are still present at this head (confirmed by direct grep against files on disk, not just prior review text)

These invert the PR's own rule — preserve compatibility identifiers and historical/wire text verbatim — in doc-only spots:

  1. docs/CATALOG_REFRESH.md:65"explicit Codewhale user-agent". The actual wire value is crates/tui/src/models_dev_live.rs:36: concat!("CodeWhale/", env!("CARGO_PKG_VERSION"), " (+models-dev)") — confirmed still "CodeWhale/" on disk. Doc should stay "CodeWhale" to match the real header.
  2. docs/rfcs/1364-hooks-lifecycle.md:12-13 — the meta-note "The RFC's use of "Codewhale" as the actor should be read as "the Codewhale TUI"" is now self-referential (both halves say "Codewhale"); a grep of the file shows no remaining literal "CodeWhale" elsewhere for the note to explain. The first quoted instance should stay "CodeWhale" since it's citing the RFC's original historical spelling.
  3. docs/CLASSROOM_INSTALL.md:93"no existing Codewhale PATH entry" but the same table row's expected result is the literal path %LOCALAPPDATA%\Programs\CodeWhale\bin (capital W, confirmed still present at line 34/93/etc.). Scenario label should match the identifier operators actually search for.
  4. docs/CONTRIBUTORS.md:571 — renames the historical credit "CodeWhale for VS Code GUI frontend" (docs(readme): link CodeWhale for VS Code GUI frontend #4035, gaord) to "Codewhale for VS Code". Confirmed extensions/vscode/package.json:3 still has "displayName": "CodeWhale" for this repo's own extension; whether the third-party docs(readme): link CodeWhale for VS Code GUI frontend #4035 project shares that exact name isn't verifiable from this checkout, but given this repo's own artifact of the same name kept its casing, this credit line is safer left as "CodeWhale" too.

docs/CHANGELOG_ARCHIVE.md:3 (heading-only conversion, archived entries below untouched) was also flagged earlier — this one reads as an intentional, internally-consistent header-vs-body split used the same way elsewhere in the PR (e.g. AGENT_RUNTIME.md's title), so it's a maintainer judgment call rather than a defect, unlike the four above which are factual mismatches against literal strings still on disk.

None of these affect compilation, tests, or runtime behavior — all four are doc-prose nits, non-blocking, but each is a straightforward one-word revert back to "CodeWhale" at its cited line.

Fix all four →

@codewhale-agent codewhale-agent Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codewhale review

The PR systematically renames user-facing CodeWhale to Codewhale across docs, TUI locale packs, Rust string literals, and skill prose while preserving compatibility identifiers such as paths, env vars, and enum variants. The sweep is mostly consistent and test assertions were updated. Two documentation edits are problematic: one describes a 'Codewhale user-agent' although the actual user-agent string remains CodeWhale, and another renames the quoted legacy spelling inside an explanatory note, destroying its meaning.

Findings

  • [WARNING] Doc claims Codewhale user-agent but actual string remains CodeWhale (docs/CATALOG_REFRESH.md:64)
    docs/CATALOG_REFRESH.md states the runtime uses an 'explicit Codewhale user-agent'. However, the PR description explicitly lists user-agent strings as deliberately untouched identifiers, so the actual HTTP user-agent sent to Models.dev still contains the old spelling 'CodeWhale'. This documentation change now contradicts the implemented behavior.
  • [WARNING] RFC note loses semantic contrast after renaming quoted legacy spelling (docs/rfcs/1364-hooks-lifecycle.md:11)
    The note originally explained that the RFC's use of 'CodeWhale' as the actor should be read as 'the Codewhale TUI'. Renaming the quoted 'CodeWhale' to 'Codewhale' makes the sentence tautological ('use of Codewhale should be read as Codewhale') and defeats the purpose of the note, which was to clarify legacy terminology.

Suggestions

  • docs/CATALOG_REFRESH.md:64 — Revert this line to keep the documented user-agent name consistent with the actual identifier, which is intentionally unchanged.

       Models.dev (15 s timeout, explicit CodeWhale user-agent, **no credentials**).
    
  • docs/rfcs/1364-hooks-lifecycle.md:11 — Restore the quoted legacy spelling 'CodeWhale' in this explanatory sentence so the note remains a meaningful mapping from old terminology to the current TUI name.

Assessment

Copy-only branding sweep with no behavioral impact. Tests and assertions were correctly updated. The two documentation inaccuracies should be corrected before merge to avoid misleading readers about an unchanged identifier and to preserve the clarity of an explanatory note.


Advisory review by Codewhale (codewhale review --pr 5742 --post, head 660622a64ee4ae85ebc2cb59609e7c54ec1fd9cc). Line-specific findings are also posted as inline review comments; mechanical fixes arrive as committable suggestions you can apply from the Files tab. CODEOWNERS approval still governs merge.

Comment thread docs/CATALOG_REFRESH.md
@@ -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**

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[WARNING] Doc claims Codewhale user-agent but actual string remains CodeWhale

docs/CATALOG_REFRESH.md states the runtime uses an 'explicit Codewhale user-agent'. However, the PR description explicitly lists user-agent strings as deliberately untouched identifiers, so the actual HTTP user-agent sent to Models.dev still contains the old spelling 'CodeWhale'. This documentation change now contradicts the implemented behavior.

@@ -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 /

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[WARNING] RFC note loses semantic contrast after renaming quoted legacy spelling

The note originally explained that the RFC's use of 'CodeWhale' as the actor should be read as 'the Codewhale TUI'. Renaming the quoted 'CodeWhale' to 'Codewhale' makes the sentence tautological ('use of Codewhale should be read as Codewhale') and defeats the purpose of the note, which was to clarify legacy terminology.

Comment thread docs/CATALOG_REFRESH.md
@@ -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**

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Revert this line to keep the documented user-agent name consistent with the actual identifier, which is intentionally unchanged.

Suggested change
2. If the cache is missing or older than **24 hours**, **background-fetch**
Models.dev (15 s timeout, explicit CodeWhale user-agent, **no credentials**).

@@ -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 /

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Restore the quoted legacy spelling 'CodeWhale' in this explanatory sentence so the note remains a meaningful mapping from old terminology to the current TUI name.

@Hmbown
Hmbown merged commit 92547e4 into main Sep 1, 2026
33 checks passed
@Hmbown
Hmbown deleted the chore/public-name-codewhale-20260830 branch September 1, 2026 05:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants