feat: claude-code opus reviewer + max-thinking spec support
Build & push image / build-and-push (pull_request) Successful in 6s
Adversarial Review (Gadfly) / review (pull_request) Successful in 10m29s

Per Steve: add Claude Code opus to gadfly's own swarm, and prep a
max-thinking variant.

- Dogfood workflow: add claude-code/opus alongside claude-code/sonnet
  (claude-code lane bumped to 2 so they run in parallel), and bump the
  image pin to :sha-80d8f53 so the clean-lens telemetry fix from #4 is
  actually live in dogfood reviews.
- Engine: a "claude-code/<model>:<thinking>" spec now sets an extended-
  thinking budget for that run via MAX_THINKING_TOKENS on the subprocess
  — ":max" (high ultrathink tier) or ":<n>". Best-effort (a no-op if the
  CLI build ignores it); harmless, never errors. This ships the capability
  so a follow-up can enable claude-code/opus:max once this image builds
  (the currently-pinned image predates the parse and would mis-route it).
- README documents the :thinking suffix; new tests cover the spec parse.

gofmt clean, go vet quiet, go test -race green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-27 18:23:23 -04:00
parent 80d8f53f63
commit af2d3a2938
4 changed files with 97 additions and 19 deletions
+9 -9
View File
@@ -45,7 +45,7 @@ jobs:
# with the 3-lens suite. All cloud now, so runs are fast.
timeout-minutes: 90
steps:
- uses: docker://gitea.stevedudenhoeffer.com/steve/gadfly:sha-86f12c1
- uses: docker://gitea.stevedudenhoeffer.com/steve/gadfly:sha-80d8f53
env:
GITEA_API: ${{ github.server_url }}/api/v1/repos/${{ github.repository }}
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
@@ -54,14 +54,14 @@ jobs:
# below): Pro/Max subscription token. Dogfoods the Phase-1 engine on
# gadfly's own PRs as a competitor alongside the Ollama models.
CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
# Fleet: 6 cloud (3 at a time) + Claude Code (sonnet) — one consolidated
# comment each, all cloud now. The local Macs (m1/m5) and the weaker
# cloud models (gemma4, gpt-oss:120b, kimi-k2.7-code) were dropped as
# low-signal for gadfly's own PRs. claude-code/sonnet runs the Phase-1
# engine as a competitor in its own lane (needs CLAUDE_CODE_OAUTH_TOKEN).
GADFLY_MODELS: "minimax-m3:cloud,glm-5.2:cloud,glm-5.1:cloud,deepseek-v4-pro:cloud,nemotron-3-super:cloud,qwen3-coder:480b-cloud,claude-code/sonnet"
# cloud runs 3 at once; claude-code one at a time; both lanes parallel.
GADFLY_PROVIDER_CONCURRENCY: "ollama-cloud=3,claude-code=1"
# Fleet: 6 cloud (3 at a time) + Claude Code (sonnet + opus) — one
# consolidated comment each, all cloud now. The local Macs (m1/m5) and
# the weaker cloud models (gemma4, gpt-oss:120b, kimi-k2.7-code) were
# dropped as low-signal. The claude-code/* entries run the Phase-1
# engine as competitors in their own lane (need CLAUDE_CODE_OAUTH_TOKEN).
GADFLY_MODELS: "minimax-m3:cloud,glm-5.2:cloud,glm-5.1:cloud,deepseek-v4-pro:cloud,nemotron-3-super:cloud,qwen3-coder:480b-cloud,claude-code/sonnet,claude-code/opus"
# cloud runs 3 at once; claude-code 2 at a time; both lanes parallel.
GADFLY_PROVIDER_CONCURRENCY: "ollama-cloud=3,claude-code=2"
# 3 cloud models x 3 lenses = 9 concurrent ollama-cloud queries (under the 10 budget).
GADFLY_PROVIDER_LENS_CONCURRENCY: "ollama-cloud=3"
# Default => the 3-lens suite (security, correctness, error-handling).