Skip to content

release: 0.9.9 - #5476

Merged
Hmbown merged 10 commits into
mainfrom
release/v0.9.9
Aug 17, 2026
Merged

release: 0.9.9#5476
Hmbown merged 10 commits into
mainfrom
release/v0.9.9

Conversation

@Hmbown

@Hmbown Hmbown commented Aug 17, 2026

Copy link
Copy Markdown
Owner

Theme

Codewhale v0.9.9 is a truth-and-resilience release: the shell tool can no longer wedge a session when the host runs out of disk/descriptors (#5465 — the bug that took out the owner's own 0.9.9 session), unverified context windows / output ceilings / telemetry defaults are labeled honestly everywhere (#5459), DeepSeek V4 is priced on the published peak/off-peak tiers (#5470), SSE UTF-8 fails closed in every dialect (#5468), Fleet shadowing is visible (#5466), bwrap gets container essentials + extra roots (#5462), the dsh skin is applied through the bundle profile (#5469), the agent tool schema is 12 fields (#5458), and 18 README locales / 8 web locales landed (#5452, #5454).

Punch list (merges since v0.9.8)

#5469 #5470 #5465 #5471 #5466 #5468 #5462 #5459 #5467 #5463 #5448 #5438 #5461 #5454 #5452 #5458 #5450 #5444 #5457 #5445 #5446 #5449 #5389 #5388 #5435 #5433 #5432 #5431 #5428 — full text in the ## [0.9.9] CHANGELOG section on this branch.

Security-adjacent: #5463 closes the CodeQL cache-poisoning Highs #88#107 in the release workflows (no cache restore after checking out a caller-supplied SHA); #5462 hardens bwrap defaults; #5468 fails closed on invalid SSE UTF-8.

Contributors

Thanks @h3c-hexin (#5461, explicit route output limit), @Pinvou (branch host for #5461), Cursor-lane harvests (#5450 via #5402; #5468 supersedes #5404), dependabot (#5388, #5389). @wuisabel-gif's #5437 status-bar slice is in flight and rolls to 0.9.10 if it does not land before the tag.

What ran where (owner's rule for this cut: no local cargo builds on the thrashed host)

Local, on this branch head:

  • cargo fmt --all -- --check
  • ./scripts/release/check-versions.shVersion state OK: workspace=0.9.9, npm=0.9.9, lockfile in sync.
  • ./scripts/sync-changelog.sh --check → up to date ✔

CI (this PR + main): full workspace test/build/clippy/doctest matrix, plus — after merge — the exact-head ci.yml and non-publishing release-candidate.yml dispatches per RELEASE_CHECKLIST §6 carry the workspace-test and 7-target artifact evidence. cargo check/clippy/test --workspace, publish-crates.sh dry-run, cargo build --release, and npm-wrapper-smoke.js were not run on the owner's machine for this cut; they are covered by CI's Lint/Test/Release-candidate jobs (evidence links go in the approval packet).

Known issues

No-Issue: release branch for v0.9.9.

@cursor

cursor Bot commented Aug 17, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@claude

claude Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

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


Review: release: 0.9.9

  • Gather context (PR body, changed files list)
  • Inspect diff (git diff origin/main...HEAD)
  • Review CHANGELOG / version bump consistency
  • Review provider/model/route safety implications
  • Check for correctness bugs, dead code, missing tests
  • Post final review

Summary

This is a pure release/version-bump PR — no crates/*/src changes are in the diff. All 26 changed files are Cargo.toml version pins, lockfiles, package.json versions, and CHANGELOG entries consolidating already-merged feature PRs. I verified this mechanically rather than assuming it from the file list.

Version bump correctness:

  • Cargo.toml bumps [workspace.package] version 0.9.8 → 0.9.9; every crate uses version.workspace = true, so only crates with an explicit internal path = "../x", version = "0.9.8" dependency pin needed a manual edit — and all of them (agent, app-server, cli, command-contract, config, core, execpolicy, hooks, lane, secrets, state, telemetry, tools, tui) were updated in lockstep. Crates with no internal path deps (protocol, mcp, workflow, release, paths, build-support) correctly needed no edit — spot-checked several to confirm.
  • Cargo.lock diff is exclusively 0.9.80.9.9 on internal codewhale-* packages; no unrelated dependency drift.
  • package-lock.json / extensions/vscode/package-lock.json / npm package.json files are consistent with the same bump.
  • docs/public-surface-facts.json, web/lib/facts.generated.ts, scripts/remote-smoke/setup-vm.sh (RELEASE_TAG) all correctly reference 0.9.9.

CHANGELOG.md / crates/tui/CHANGELOG.md:

  • New ## [0.9.9] - 2026-08-17 section and updated [Unreleased]/[0.9.9] compare links look correct.
  • crates/tui/CHANGELOG.md additionally drops the old [0.8.63] archived section — consistent with sync-changelog.sh's rolling-window behavior, not a content loss (still in docs/CHANGELOG_ARCHIVE.md/git history).
  • Minor nit (non-blocking): both CHANGELOG.md and crates/tui/CHANGELOG.md have a duplicated blank line right after the ### Changed header (e.g. CHANGELOG.md:101-103). Cosmetic only — renders fine in Markdown, and the PR body confirms sync-changelog.sh --check passed.

Provider/model/route safety: No route/provider-selection logic in this diff — the DeepSeek V4 tiered pricing and dsh route changes described in the changelog were already merged in their originating PRs (#5470, #5434); nothing new to check here.

Correctness / reuse / tests: N/A — no source changes in this diff.

No blocking issues found. This PR is safe to merge as a release/version-bump.

@claude

claude Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

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


Review: release: 0.9.9

  • Gather context (PR body, changed files list)
  • Inspect diff (git diff origin/main...HEAD)
  • Review CHANGELOG / version bump consistency
  • Review provider/model/route safety implications
  • Check for correctness bugs, dead code, missing tests
  • Post final review

Summary

Pure release/version-bump PR — confirmed by walking the full git diff origin/main...HEAD myself, not just trusting the changed-files list. All 29 files are version pins (Cargo.toml/Cargo.lock, package.json/package-lock.json), generated facts, and hand-authored CHANGELOG/credits content. No crates/*/src changes.

Version bump correctness:

  • Workspace Cargo.toml 0.9.8 → 0.9.9; every internal path dependency pin (codewhale-agent, -app-server, -config, -core, -execpolicy, -hooks, -lane, -mcp, -protocol, -release, -secrets, -state, -telemetry, -tools, -tui, -workflow, -workflow-js, -build-support) updated in lockstep across every crate that references it — spot-checked app-server, cli, core, tui in full, no stragglers.
  • Cargo.lock diff is exclusively 0.9.80.9.9 on internal codewhale-* packages, no unrelated dependency drift.
  • package.json/package-lock.json (root, npm/codewhale, npm/runtime-sdk, extensions/vscode) all consistent with the bump.
  • docs/public-surface-facts.json, web/lib/facts.generated.ts, scripts/remote-smoke/setup-vm.sh (RELEASE_TAG), docs/INSTALL.md all correctly reference 0.9.9.

Contributor credits (hand-authored, verified for internal consistency):

  • web/lib/release-credits.ts: RELEASE_CONTRIBUTORS["@h3c-hexin"], new RELEASE_HELPERS["@hardy922", "@redstar", "@all-lopezg", "@alitvak69", "@wuisabel-gif"]. Both arrays are consumed correctly by web/app/[locale]/community/page.tsx and covered by web/lib/public-copy.test.ts.
  • docs/public-surface-facts.json's requiredCandidateCredits is checked by web/lib/public-surface-contract.test.ts as a non-empty subset that must appear in the credits, not an exhaustive list — the omission of @redstar/@wuisabel-gif from that specific array is consistent with the same pattern in prior releases, not a bug.
  • docs/CONTRIBUTORS.md new v0.9.9 <details> section is well-formed and closed correctly; older sections are left intact.

CHANGELOG.md / crates/tui/CHANGELOG.md:

  • New ## [0.9.9] - 2026-08-17 sections and [0.9.9]/[Unreleased] compare links are correct.
  • crates/tui/CHANGELOG.md drops the old [0.8.63] archived section, bringing it in line with root CHANGELOG.md (which had already dropped it) — consistent with the rolling-window behavior scripts/release/check-versions.sh enforces (check fix: address PR #4 follow-ups #5, packaged copy must match root), not a content loss (still in docs/CHANGELOG_ARCHIVE.md/git history).
  • Confirmed the DeepSeek V4 tiered-pricing changelog entry cites verification "against api-docs.deepseek.com on 2026-08-17," which matches today's date.
  • Nit (non-blocking, already flagged in the prior review pass and still present): both CHANGELOG.md and crates/tui/CHANGELOG.md have a duplicated blank line right after the ### Changed header. Cosmetic only.

Provider/model/route safety: No route/provider-selection logic in this diff — nothing to check against the EPIC #2608 invariant.

Correctness / reuse / tests: N/A — no source changes in this diff. I did not re-run check-versions.sh/sync-changelog.sh myself (sandbox denied the shell invocation here), but the diff is fully consistent with what those scripts check, and the PR body reports both passing locally.

No blocking issues. Safe to merge as a release/version-bump PR.

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 23f707af8a

ℹ️ 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

"sourceRevision": null,
"sourceCommittedAt": null,
"version": "0.9.8",
"version": "0.9.9",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Update the install guide for the 0.9.9 fact

After this generated fact advances to 0.9.9, web/lib/public-surface-contract.test.ts:194-198 requires docs/INSTALL.md to contain v0.9.9 source candidate, but the guide still identifies the branch, candidate matrix, and Android wrapper as v0.9.8 at lines 11, 31, and 55. Consequently the required web npm test gate fails for this release; advance those current-candidate references alongside the source fact.

AGENTS.md reference: web/AGENTS.md:L17-L24

Useful? React with 👍 / 👎.

Comment thread CHANGELOG.md

## [Unreleased]

## [0.9.9] - 2026-08-17

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Add the 0.9.9 contributor ledger

When FACTS.version becomes 0.9.9, web/lib/public-copy.test.ts:175-210 selects this release section and requires a ### Contributors ledger in exact parity with a v0.9.9 band in docs/CONTRIBUTORS.md and the website credit arrays. This section has no ledger, while both supporting credit surfaces remain on v0.9.8, so the web test gate fails and the new release retains the previous release's public credits; add and synchronize all three 0.9.9 credit surfaces.

AGENTS.md reference: AGENTS.md:L66-L67

Useful? React with 👍 / 👎.

Comment thread CHANGELOG.md

## [Unreleased]

## [0.9.9] - 2026-08-17

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Name 0.9.9 in the dated changelog entry

Because this heading uses a release date, web/lib/public-surface-contract.test.ts:210-230 follows its released-entry branch and requires the changelog to contain Codewhale v0.9.9. That text is absent from the heading and release body, so npm test still fails even after the install and contributor parity problems are repaired; add a versioned introduction to the dated section.

Useful? React with 👍 / 👎.

@Hmbown
Hmbown merged commit 9d2a6e4 into main Aug 17, 2026
54 of 55 checks passed
@Hmbown
Hmbown deleted the release/v0.9.9 branch August 17, 2026 11:05
This was referenced Aug 17, 2026
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.

1 participant