Highlights
Role default refresh based on April 2026 benchmark consensus.
| Role | v9.28 | v9.29 |
|---|---|---|
architect
| gpt-5.4 | claude-opus-4.7 |
strategist
| claude-opus-4.6 | claude-opus-4.7 |
security-reviewer
| (part of reviewer) | claude-opus-4.7 (new role) |
code-reviewer
| (was reviewer)
| gpt-5.4 |
reviewer (alias)
| gpt-5.4 | → code-reviewer
|
implementer
| gpt-5.4 | gpt-5.4 |
implementer-heavy
| — | claude-opus-4.7 (opt-in) |
synthesizer
| claude-sonnet-4.6 | claude-sonnet-4.6 |
researcher
| gemini-3.1-pro-preview | gemini-3.1-pro-preview |
Why
- Opus 4.7 wins SWE-bench Pro (64.3 vs 57.7), MCP-Atlas tool use (+9.2), LMArena Text #1 (first model past 1500 elo), OSWorld (78 vs 75)
- GPT-5.4 wins Terminal-Bench 2.0 (75.1 vs 69.4, self-reported), edge-case review (dev consensus)
New
docs/GPT-5.4-PROMPTING.md— condensed OpenAI prompt guidance (reasoning-effort tiers, output contracts, tool persistence,phasefield,gpt-5.4-minipatterns)/octo:setupSTEP 2a — one-time migration prompt for users upgrading from ≤9.28; surfaces ~2x cost impact and offers theOCTOPUS_LEGACY_ROLES=1opt-out
Also fixed
- #307 — perplexity/openrouter stdin + nested JSON extraction (merged via #310):
heartbeat.sh—"$@" <&0 &restores stdin into background shell-function jobs (non-interactive bash otherwise redirects to/dev/null)perplexity.sh— replace flatjson_extract "content"withjq -re '.choices[0].message.content'for bothperplexity_executeandopenrouter_execute_model
Opt-out
export OCTOPUS_LEGACY_ROLES=1 # Restores v9.28 role mapping verbatim