Patch bundle — 5 fixes since v9.29.0
| PR | Fix |
|---|---|
| #310 | Perplexity / OpenRouter stdin inheritance (heartbeat.sh <&0) + nested JSON extraction (.choices[0].message.content) — closes #307
|
| #312 | v9.29 migration advisory (SessionStart hook) + /octo:dev / /octo:km idempotence + write-intent principle
|
| #314 | Hook hardening — EXIT trap + || true guards across all 46 hooks; fixes 3 pre-existing silent-fail paths in careful-check.sh, freeze-check.sh, quality-gate.sh — closes #313
|
| #302 | /octo:model-config STEP 0 banner guarantees output before AskUserQuestion so E2E pattern-matching works — closes #301 (external contributor: @harshitanand)
|
38dc41e
| fix(cache): awk instead of bc for byte formatting (env compatibility)
|
Why patch
All 5 changes are bug fixes — v9.29.0 role routing (Opus 4.7 for planning/strategy/security, GPT-5.4 for code-review/implementation) is unchanged. If v9.29.0 worked for you, v9.29.1 works the same way, just with fewer broken edge cases.
Upgrade
claude plugin update octoExisting users on v9.29.0 will see no behavioral change — v9.29.0's migration advisory already fired and was acknowledged. Users still on v9.28.x will see the one-time v9.29 role-routing prompt on their next session (thanks to #312's version-advisory hook), via /octo:setup.
Verified
- 87/87 unit tests pass (macOS + Ubuntu)
- 12/12 smoke tests pass (macOS + Ubuntu)
- CodeRabbit review clean