You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[P1.59] Move the Sonnet-tier defaults to claude-sonnet-5-5 before claude-sonnet-4-5 reaches end of life (2026-11-30) #1348
Spun off from PR #1347 (issue #1267) during post-merge disposition.
Context
claude-sonnet-4-5 reaches end of life on 2026-11-30 (anthropic 1.11 DEPRECATED_MODELS). It is still the default for planning, execution, correction and supervision (adapters/llm/base.py:59-63). #1267 made every current model usable, which unblocks the move. The dated plan is in docs/AGENT_SYSTEM_REFERENCE.md under "Plan: moving the defaults off Sonnet 4.5".
Why it was not done in that PR
#1267 asked for the plan. The move changes cost and behaviour (Sonnet 5.5 runs adaptive thinking by default), so it needs its own comparison and review.
Definition of done (by 2026-10-31)
DEFAULT_PLANNING/EXECUTION/CORRECTION/SUPERVISION_MODEL are claude-sonnet-5-5, and tests/adapters/test_model_defaults_guard_1112.py is updated.
scripts/lifecycle --mode cli runs on the new default, and its cost and gate pass rate are compared with Sonnet 4.5 in the PR.
Parked (needs-operator): the definition of done needs scripts/lifecycle --mode cli with a real key for the cost comparison, and the agent environment has none. Decided 2026-10-02: this ships as 0.9.5, after 0.9.4 (#1277), and still before the 2026-10-31 deadline.
Priority 3 of 7. Blocked by #1277 (0.9.4 must ship first). Deadline: tag v0.9.5 by 2026-10-31, two weeks before claude-sonnet-4-5 retires on 2026-11-30. About 1.5 hours: two real-key lifecycle runs (about $1–3 each) and a release.
⚠️scripts/lifecycle defaults to haiku and overrides the compiled-in defaults (tests/lifecycle/conftest.py). A defaults comparison must pass --model sonnet, or both runs measure haiku.
1. Start the agent's half. Say "go on #1348". The agent opens a PR that:
5. Hand both logs back. Tell the agent: "lifecycle logs are at /tmp/lifecycle-sonnet45.log and /tmp/lifecycle-sonnet55.log". It posts the cost, token and gate pass-rate comparison on the PR. The bar: the pass rate is not lower than 4.5's, and the cost is acceptable to you.
6. Approve the merge. Reply on the PR, or tell the agent, "merge #1348". It merges after CI and bot triage.
7. Release 0.9.5. Follow #1277's steps 2–12 with 0.9.5 in place of 0.9.4:
cleanroom --source .;
set the heading date;
git tag -a v0.9.5 … && git push origin v0.9.5;
watch release.yml;
check the PyPI version;
cleanroom against PyPI.
The release's model guard does a live check of the new default, using the staging key.
8. Close.
gh issue close 1348 --repo frankbria/codeframe --comment "0.9.5 ships claude-sonnet-5-5 defaults; lifecycle comparison on PR #$PR; cleanroom green on PyPI."
Update (2026-10-06): the cost comparison runs in CI, not on your machine
lifecycle.yml takes mode/model inputs on workflow_dispatch and runs in the staging environment with the working Anthropic key. It has passed every Sunday. So steps 2–5 above (the two scripts/lifecycle --model sonnet runs) are the agent's:
These are still billed to your Anthropic account (about $1–3 each). Your part is only to approve that spend and the merge. Order unchanged: #1443 (the discovery cap) lands first, then this, then the 0.9.5 release.
quickstart-cleanroom against the published package:uv tool install codeframe-ai installed codeframe-ai==0.9.5, 17/17 steps OK, 0 findings, 409s; 4-prd-generate took 90s with 3 questions.
Activity
frankbria commentedon Oct 3, 2026
Parked (needs-operator): the definition of done needs
scripts/lifecycle --mode cliwith a real key for the cost comparison, and the agent environment has none. Decided 2026-10-02: this ships as 0.9.5, after 0.9.4 (#1277), and still before the 2026-10-31 deadline.frankbria commentedon Oct 6, 2026
Operator steps: tactical, in order (2026-10-06)
Priority 3 of 7. Blocked by #1277 (0.9.4 must ship first). Deadline: tag
v0.9.5by 2026-10-31, two weeks beforeclaude-sonnet-4-5retires on 2026-11-30. About 1.5 hours: two real-key lifecycle runs (about $1–3 each) and a release.1. Start the agent's half. Say "go on #1348". The agent opens a PR that:
DEFAULT_{PLANNING,EXECUTION,CORRECTION,SUPERVISION}_MODEL = "claude-sonnet-5-5";tests/adapters/test_model_defaults_guard_1112.py;sonnetalias to 5.5, so step 4 measures the new model;Note the PR number:
2. Load the key.
3. Baseline: Sonnet 4.5 on main.
4. Candidate: Sonnet 5.5 on the PR branch.
5. Hand both logs back. Tell the agent: "lifecycle logs are at
/tmp/lifecycle-sonnet45.logand/tmp/lifecycle-sonnet55.log". It posts the cost, token and gate pass-rate comparison on the PR. The bar: the pass rate is not lower than 4.5's, and the cost is acceptable to you.6. Approve the merge. Reply on the PR, or tell the agent, "merge #1348". It merges after CI and bot triage.
7. Release 0.9.5. Follow #1277's steps 2–12 with
0.9.5in place of0.9.4:--source .;git tag -a v0.9.5 … && git push origin v0.9.5;release.yml;The release's model guard does a live check of the new default, using the staging key.
8. Close.
gh issue close 1348 --repo frankbria/codeframe --comment "0.9.5 ships claude-sonnet-5-5 defaults; lifecycle comparison on PR #$PR; cleanroom green on PyPI."frankbria commentedon Oct 6, 2026
Update (2026-10-06): the cost comparison runs in CI, not on your machine
lifecycle.ymltakesmode/modelinputs onworkflow_dispatchand runs in thestagingenvironment with the working Anthropic key. It has passed every Sunday. So steps 2–5 above (the twoscripts/lifecycle --model sonnetruns) are the agent's:These are still billed to your Anthropic account (about $1–3 each). Your part is only to approve that spend and the merge. Order unchanged: #1443 (the discovery cap) lands first, then this, then the 0.9.5 release.
test(lifecycle): print the run's token usage and cost, and show it on…
test(adapters): pin temperature-on-the-wire tests to a sampling model…
feat(llm): Sonnet-tier defaults move to claude-sonnet-5-5 (#1348)
test(lifecycle): print the run's token usage and cost, and show it on…
test(adapters): pin temperature-on-the-wire tests to a sampling model…
feat(llm): Sonnet-tier defaults move to claude-sonnet-5-5 (#1348) (#1458
docs(readme): beta banner reads 0.9.5 (#1348)
chore(release): 0.9.5 — version bump and CHANGELOG (#1459)
frankbria commentedon Oct 12, 2026
Done: shipped in 0.9.5 (2026-10-12), seven weeks before
claude-sonnet-4-5retires on 2026-11-30.Definition of done:
Defaults:
DEFAULT_{PLANNING,EXECUTION,CORRECTION,SUPERVISION}_MODELareclaude-sonnet-5-5, and the guards are updated (PR feat(llm): Sonnet-tier defaults move to claude-sonnet-5-5 (#1348) #1458). Generation stays onclaude-haiku-4-5.Lifecycle comparison (
lifecycle.ymlcli/sonnet, details on feat(llm): Sonnet-tier defaults move to claude-sonnet-5-5 (#1348) #1458). Both models pass every acceptance check:Release at least two weeks before EOL:
v0.9.5tagged;release.ymlpassed Unlocked Resolution, published to PyPI and created the GitHub Release (PR chore(release): 0.9.5 — version bump and CHANGELOG #1459).quickstart-cleanroomagainst the published package:uv tool install codeframe-aiinstalledcodeframe-ai==0.9.5, 17/17 steps OK, 0 findings, 409s;4-prd-generatetook 90s with 3 questions.