github nyldn/claude-octopus v9.52.0
v9.52.0 — reliability wave: correction loop, review supervision, council fixes

4 hours ago

Added

  • docs/TROUBLESHOOTING.md: user-facing provider-auth runbook — per-provider availability checks and fix commands for all eleven seats, plus the common non-auth failures (circuit-breaker skips, quota-dead providers, fail-closed Ollama pulls, Fable 5 refusals, session provider disable).
  • README cost expectations: "What a Typical Run Costs" table (probe/debate/council/embrace token volumes and dollar ranges) and a collapsed "Upgrading to 9.5x" note covering the GPT-5.4→5.5 default shift and the claude-sdk/Fable 5 env var families.
  • Tangle contextual review correction loop (#593, community contribution by @Jhacarreiro; hardening by maintainers): after the tangle validation gate, a contextual code review runs against the develop diff and blocking findings feed a correction loop (delta → single-finding → cleanup-and-fix strategies) until blockers reach zero or a guard trips. Guards: convergence limit (OCTOPUS_TANGLE_CONVERGENCE_NO_PROGRESS_ROUNDS, default 3 no-progress rounds), stall watchdog (OCTOPUS_TANGLE_CORRECTION_STALL_WINDOW, default 1800s), opt-in bounded mode (OCTOPUS_TANGLE_REVIEW_CORRECTION_MODE=bounded + OCTOPUS_TANGLE_REVIEW_CORRECTION_ROUNDS), and a maintainer-added absolute round ceiling (OCTOPUS_TANGLE_CORRECTION_HARD_CAP, default 10, applies in both modes, 0 opts out) so the default unbounded mode cannot spin paid provider calls indefinitely. The loop was extracted into tangle_contextual_review_gate() and covered by behavioral tests (tests/unit/test-tangle-correction-loop-behavior.sh) driving stubbed rounds and asserting round counts and exit codes.

Changed

  • sync-marketplace.sh now derives the marketplace blurb from plugin.json's description instead of from marketplace.json's own previous description. The old self-referential read meant the summary could only change via a hand-edit to a file documented as never-hand-edit, and its strip regex missed hand-written "N agents," fragments — which is how the v9.50/v9.51 marketplace shipped a doubled counts sentence. The strip now also removes agents/personas count fragments.
  • README correctness sweep: provider count updated to ten (Grok/xAI seat from v9.48 and the claude-sdk seat from v9.50 were missing), Codex model references updated from GPT-5.4 to GPT-5.5 (matches the resolver default), Claude Code minimum corrected from v2.1.14+ to v2.1.50+ (matches plugin-manifest compatibility), three dead doc links removed (FEATURE-GAP, PLUGIN-ARCHITECTURE, CLI-REFERENCE), the hardcoded "117 suites passing" badge dropped, and the Documentation section now links TROUBLESHOOTING, PROVIDERS, DEVELOPER, SCHEDULER, PRIVACY, SECURITY, and RELEASING.
  • RELEASING.md §2 now leads with scripts/release.sh (the bump script existed but the doc described a manual table); release.sh additionally bumps the routines.json $comment version it previously missed.
  • Repo-rules meta-audit (CLAUDE.md/AGENTS.md): marketplace-blurb rule now states the plugin.json source of truth; exec-bit rule notes that local test runs chmod fixtures; the beads memory ruling clarifies that this repo's Session Completion push mandate is the explicit authority bd's conservative profile asks for.
  • Timeout model for supervised long dispatches (#593): design-review ceremony, ink delivery review, tangle decompose/reformat, and the new correction loop now dispatch with timeout_secs=0 (no wall clock) under heartbeat/stall supervision; run_with_timeout gained an explicit 0 = unlimited bypass covering both the GNU-timeout and in-process fallback paths. Per-provider caps (e.g. OCTOPUS_GEMINI_TIMEOUT) still apply.
  • code-review on a clean tree now exits non-zero (#593): review_run returns 1 when there is no diff to review ("nothing to review" is no longer a pass). Scripts that ran octo code-review on clean trees and relied on exit 0 must handle exit 1.

Fixed

  • tests/smoke/test-monolith-guard.sh cap tightened from 22,600 to 3,400 lines — orchestrate.sh is 3,123 lines post-decomposition, so the old cap could never trip and the guard was vacuous.
  • docs/README.md command count corrected from 47 to 50.
  • Review aggregation and progress supervision hardened (#592, community contribution by @Jhacarreiro; maintainer takeover to land): review rounds now run without a wall-clock cap under progress-stall supervision (OCTOPUS_REVIEW_STALL_WINDOW, default 1800s), Round 1 codex empty-output-with-reconnect failures retry once, findings extraction tolerates prose-wrapped JSON, and severity counting is pipefail-safe. Maintainer fixes on top of the contribution: the stall fingerprint is scoped to each agent's own artifacts (previously it hashed all of RESULTS_DIR, so any concurrent activity reset every agent's stall timer); stall kills walk the full descendant tree (a single-level pkill -P could orphan the grandchild provider CLI mid-billing); and the findings extractor prefers the last non-empty findings array so a provider echoing the prompt's {"findings": []} format example cannot erase real findings. The timeout_secs=0 contract this relies on is the run_with_timeout bypass that shipped with #593.

Removed

  • Dead one-shot scripts with zero references: scripts/integrate-v2.1.20-features.sh, scripts/test-v7.13.0-features.sh, scripts/apply-octopus-theme.js.

Don't miss a new claude-octopus release

NewReleases is sending notifications on new releases.