Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
14 KiB
v0.8.59 Release Triage
Generated on 2026-06-12 for Hmbown/CodeWhale.
Current local release branch at handoff time:
- Branch:
codex/v0.8.59-release-ready - Head:
ca826bb2 fix(tui): clarify Codex response errors - Remote:
origin=https://github.com/Hmbown/CodeWhale.git
Mission
Move v0.8.59 toward release by actively landing, harvesting, or closing the remaining PR and issue queue. Do not only summarize. Use GitHub and local Git state to decide which items are already landed, which can be directly merged, which need a credited harvest, and which should be deferred with a clear note.
Start from codex/v0.8.59-release-ready unless Hunter gives a newer branch.
Key Operating Idea: Scratch Integration Branches
Hunter's "dummy branch" idea is feasible and useful. Use it.
The scratch branch is for discovery and acceleration:
- create it from the real release branch;
- merge or cherry-pick many candidate PR heads into it;
- use conflicts, tests, and diff review to learn what composes;
- harvest only the safe result back into the release branch.
The scratch branch is not the thing to ship. It can contain noisy merge commits, temporary conflict resolutions, and interactions between unrelated PRs.
Suggested local workflow:
git fetch --prune origin
git switch codex/v0.8.59-release-ready
git pull --ff-only
git switch -c scratch/v0.8.59-pr-train-$(date +%Y%m%d-%H%M)
Fetch specific PR heads into temporary refs:
git fetch origin pull/3152/head:refs/tmp/pr-3152
git fetch origin pull/3148/head:refs/tmp/pr-3148
git fetch origin pull/3150/head:refs/tmp/pr-3150
Dry-run conflicts before touching the scratch branch:
base=$(git merge-base origin/codex/v0.8.59-release-ready refs/tmp/pr-3152)
git merge-tree "$base" origin/codex/v0.8.59-release-ready refs/tmp/pr-3152
On the scratch branch, merge one candidate at a time:
git merge --no-ff refs/tmp/pr-3152
If it conflicts, resolve only enough to learn whether the PR should be directly merged, cherry-picked, harvested, or closed as already landed. After the scratch experiment, return to the release branch and apply the final result as narrow commits.
Use direct GitHub merge only when the PR is clean against the actual landing
branch. Many PRs are clean against main but conflict against
codex/v0.8.59-release-ready.
If a scratch branch needs CI, push it only as a clearly named scratch branch or draft PR after Hunter authorizes that branch/CI lane. Never tag or publish from scratch.
Credit Contract
When harvesting contributor work:
- Preserve the original author when practical.
- Add
Co-authored-byusing.github/AUTHOR_MAPor:
gh api users/<login> --jq '"\(.id)+\(.login)@users.noreply.github.com"'
- Include this line in the commit body:
Harvested from PR #N by @handle
The repo has .github/workflows/auto-close-harvested.yml, which closes PRs
after such commits land on main. Until then, leave clear comments linking the
release-branch commit or harvest plan.
Recently Approved PRs Already Covered
Hmbown submitted formal APPROVED reviews on these PRs on 2026-06-12. A
follow-up scratch-merge pass against codex/v0.8.59-release-ready found that
the release branch already contains equivalent or stronger implementations. Do
not spend another cycle re-harvesting them; close them after the release branch
lands on main, or leave/update triage comments if they remain open.
PR #3152 - SSE data: parsing
- URL: https://github.com/Hmbown/CodeWhale/pull/3152
- Author:
wgeeker - Title:
fix(SSE): accept SSE data lines without space after colon - Hunter approval: 2026-06-12T16:10:34Z
- GitHub merge state against
main:BLOCKED - Non-success checks shown by
gh: none - Head:
fix/sse-data-prefix-no-space - Commit:
50445eb3 fix: accept SSE data lines without space after colon - Files:
crates/tui/src/client.rs,client/anthropic.rs,client/chat.rs,client/responses.rs - Release-branch result: scratch merge produced a literal zero diff.
- Covered by release commit:
2f717d33 fix(tui): accept compact SSE data fields. - Notes: release branch already has an identical
extract_sse_data_valuehelper and equivalent tests. - Action: no harvest needed. Keep the triage comment as credit and close after
the release branch lands on
main.
PR #3148 - --model auto / DEEPSEEK_MODEL
- URL: https://github.com/Hmbown/CodeWhale/pull/3148
- Author:
hongchen1993 - Title:
fix(exec): resolve --model auto via DEEPSEEK_MODEL env and reorder ExecArgs - Hunter approval: 2026-06-12T16:10:21Z
- GitHub merge state against
main:CLEAN - Non-success checks shown by
gh: none - Head:
fix/auto-model-agent-plan - Commits:
b67f4add,55e66a6e - File:
crates/tui/src/main.rs - Release-branch result: fully covered.
- Covered by release commit:
862cb2e3 fix(exec): preserve auto model handoff. - Notes:
ExecArgsis already reordered so the prompt is last, and the release branch env fallback is a superset:CODEWHALE_MODEL, thenDEEPSEEK_MODEL. - Action: no harvest needed. Keep the triage comment as credit and close after
the release branch lands on
main.
PR #3150 - prompt source map / context usage
- URL: https://github.com/Hmbown/CodeWhale/pull/3150
- Author:
idling11 - Title:
feat(context): add prompt source map and context-usage report (#3143) - Hunter approval: 2026-06-12T16:10:10Z
- GitHub merge state against
main:CLEAN - Non-success checks shown by
gh: none - Head:
feat/3143-prompt-source-map - Commits:
e91d4984,97e711c4,c463dac4,b8efcde0 - Files include
crates/tui/src/context_report.rs, command wiring,compaction.rs,localization.rs,main.rs, and TUI UI/app files. - Closing issue: #3143
- Release-branch result: independently implemented.
- Covered by release commit:
0986cabb feat(tui): add context source map report. - Notes: release branch already has
/context [report|json|summary]andcodewhale doctor --context-json. Gemini's string-slicing and duplicateAGENTS.mdfindings apply to the PR implementation, not the release branch: the release module does no string slicing and noAGENTS.mdprocessing. The PR's remaining tests target its divergent API and do not transplant cleanly. - Action: no harvest needed. Keep the triage comment as credit and close after
the release branch lands on
main.
Current v0.8.59 PR Queue
Open PRs carrying v0.8.59 at the handoff scan, updated with the
release-branch scratch triage pass.
Merge cleanly into the release branch (await Hunter approval)
- #3062 - fix(tools): apply strict mode per schema
- #3008 - docs(prompt): clarify Constitution trust framing
- #3006 - fix update release-download timeout/error messaging
- #3003 - bump
clap_complete(CodeQL neutral) - #3002 - bump
rustls(CodeQL neutral) - #3001 - bump
reqwest(CodeQL neutral) - #2971 - expose matched approval rule metadata
- #2943 - normalize macOS Cmd/SUPER to CONTROL
These can be landed directly or via a small scratch train, but they did not have Hunter approval at the 2026-06-12 re-scan (reviewDecision empty on all). Ask for approval or review each one before merging. Lowest-risk first: docs PR #3008, update-network fallback #3006, then the three dependency bumps #3001/#3002/#3003.
Already landed on the release branch (verified by scratch merge, zero residual diff)
Triage comments with the covering commits were posted on each on 2026-06-12.
Close after the release branch reaches main.
- #2901 - localize ToolFamily labels. Zero unique commits vs release branch.
- #3056 - hotbar number keys. Covered by
3de1d35cwith stronger tests (extraneeds_redrawassertions). - #3052 - verbosity settings. Covered by
42de833d, which is a superset (case/whitespace-tolerantis_concise_verbosity). - #3011 - provider source tracking + unsupported-TUI errors. Release branch
already has
ProviderSource::Cli/Envandprovider_is_supported_by_tuiwith per-source error messages. - #3009 - cli-compare Harbor harness. Release-branch script is a strict
evolution (adds
_first_present/_stable_pathhelpers). - #2895 -
siliconflow_cnprovider config field. Test merge produced zero residual diff.
Genuinely missing work; needs review/rebase (commented 2026-06-12)
- #3051 - feat(voice):
/voicespeech-to-text. Release branch has NO voice command — this is a real 711-line feature. Conflicts incommands/mod.rs,localization.rs,tui/ui.rs, and it smuggles an unrelatedswitch_providerchange (app.api_key/app.base_urlreassignment) that collides with the release branch'sreasoning_effort.normalize_for_providerline. Asked contributor to split/rebase; Hunter decides 0.8.59 vs next. - #3005 - refactor(config): provider metadata registry. NOT landed — real
~300-line net simplification delta. One semantic conflict: release branch
registers config key
siliconflow_cn; PR usessiliconflow+ aliases. Recommend deferring the refactor to the cycle after v0.8.59 unless Hunter wants it in; asked for rebase onto the release branch.
Blocked against main or with failing checks
- #3053 - docs: add Upgrading from deepseek-tui section. Merge state: BLOCKED.
- #3013 - detect legacy deepseek/deepseek-tui binary and print migration instructions. Merge state: BLOCKED; macOS test failed and Windows test was cancelled at scan time.
- #2995 - bump actions/stale from 9 to 10. Merge state: BLOCKED; version drift failed and CodeQL was neutral.
- #2903 - build static linux x64 binaries with musl. Merge state: BLOCKED.
Dirty / needs rebase, conflict triage, or harvest
- #3010 - exclude Calm personality overlay from default prompt path
- #2940 - localize Cmd command output messages
- #2932 - localize mode-picker messages
- #2929 - localize pending-input preview messages
- #2926 - localize onboard-welcome and app-mode-switch messages
- #2921 - localize sidebar panel labels, status messages, and focus indicators
- #2919 - localize ConfigEdit labels and default values
- #2918 - localize ConfigSection and ConfigScope labels
- #2899 - localize SubAgents surface
- #2894 - localize composer surface
- #2879 - align Hugging Face provider docs, errors, and tests
- #2851 - refactor TUI command groups into focused implementations; draft
- #2808 - runtime-api session save, undo/retry, and snapshot endpoints; dirty,
needs-human, lint failing - #2773 - complete provider fallback chain
- #2239 - i18n Phase 1-4b wiring plus rebase compile fixes
Milestone Issues
At scan time, milestone v0.8.59 had 76 open issues and 35 open PRs, for 111
open milestone items. Issue priorities:
- #3063 release tracker and release-blocker coordination.
- Close/update already-covered approved PRs #3152, #3148, #3150 after the
release branch reaches
main; do not re-harvest them. - User-visible bugs/regressions: #3064, #3067, #3065, #3080, #3088, #3095, #3094, #3070, #1812, #1679, #1190, #1120, #1060, #861, #759, #1920.
- Provider/model catalog and cost/context: #3086, #3085, #3084, #3083, #3076, #3075, #3073, #3072, #3071, #3066, #2574, #1310, #868.
- Tool and runtime UX: #3146, #3145, #3144, #3143, #3102, #3079, #2886, #1917, #1847, #1822, #1802, #1794, #1186.
- TUI and command polish: #3081, #3077, #3074, #3069, #2870, #2791, #1871, #1722, #963.
- Docs/localization/migration: #3093, #3092, #3091, #3090, #3087, #3068, #3061, #3058, #1447, #1118, #683.
For each issue, first ask: "Is this already satisfied on
codex/v0.8.59-release-ready?" If yes, prepare a closure/update note with the
commit hash. If no, implement or harvest the smallest safe slice.
Suggested Next Work Session
Conflict triage of #3056/#3052/#3051/#3011/#3009/#3005 was completed on
2026-06-12 (scratch branch scratch/v0.8.59-conflict-triage-20260612,
local only). Remaining:
- Get Hunter's explicit approval to land the eight release-branch-clean PRs: #3062, #3008, #3006, #3003, #3002, #3001, #2971, #2943.
- Land those in small batches, starting with docs/dependencies/low-risk fixes, and run focused checks after each batch.
- Hunter decisions needed: include #3051 (voice) in v0.8.59 or defer; defer
#3005 (provider registry refactor) or reconcile the
siliconflow_cnvssiliconflow+aliases key naming and land. - After the release branch reaches
main, close the verified-covered PRs: #3152, #3148, #3150, #2901, #3056, #3052, #3011, #3009, #2895. - Triage the blocked PRs (#3053, #3013, #2995, #2903) and the dirty/localize train, then move to milestone issues per the priority list above.
- Update
CHANGELOG.mdand close/update linked issues only after verification.
Useful Commands
List PRs with v0.8.59:
gh pr list -R Hmbown/CodeWhale --state open --limit 200 \
--search 'milestone:v0.8.59' \
--json number,title,url,headRefName,baseRefName,mergeStateStatus,reviewDecision,isDraft,statusCheckRollup
Find formal reviews by Hunter on open PRs:
for n in $(gh pr list -R Hmbown/CodeWhale --state open --limit 200 --json number --jq '.[].number'); do
gh pr view -R Hmbown/CodeWhale "$n" --json number,title,url,reviews,updatedAt \
--jq '. as $pr | [.reviews[]? | select(.author.login == "Hmbown") | {number:$pr.number,title:$pr.title,url:$pr.url,prUpdatedAt:$pr.updatedAt,state:.state,submittedAt:.submittedAt}][] | [.number,.state,.submittedAt,.prUpdatedAt,.title,.url] | @tsv'
done
Check whether a PR has patch-equivalent commits already on the release branch:
git log --cherry-mark --right-only --oneline \
origin/codex/v0.8.59-release-ready...refs/tmp/pr-3152
Show conflicts without modifying the worktree:
base=$(git merge-base origin/codex/v0.8.59-release-ready refs/tmp/pr-3152)
git merge-tree "$base" origin/codex/v0.8.59-release-ready refs/tmp/pr-3152