Skip to content

fix(ai-review): inconclusive-finding copy claims 'dual-model' in single+fallback mode, and claude_code auth errors lack structural circuit-breaker classification #8791

Description

@JSONbored

Context

Two small alignment gaps found while tracing the inconclusive-verdict incident:

  1. Copy inaccuracy: `AI_PROVIDER=claude-code,ollama` WITHOUT `AI_DUAL_REVIEW` resolves to a SINGLE-reviewer plan with a same-slot fallback (resolveAiReviewerPlan, src/selfhost/ai.ts) — yet the inconclusive finding text unconditionally says "The dual-model AI review did not return a usable verdict" (src/queue/ai-review-orchestration.ts:803). On single+fallback deployments this misdescribes a provider-chain outage as a two-model disagreement and sent this incident's debugging down the wrong path.
  2. Asymmetric structural-error classification: isStructuralProviderConfigError (src/services/ai-review.ts) matches only `codex_*` auth-error prefixes, so `claude_code_no_oauth_token` / `claude_code_error_401/403` never get the long structural circuit-breaker cooldown Codex auth errors get — an expired Claude token burns the full retry budget on every review instead of failing fast.

Requirements

Deliverables

  • Mode-aware copy + test per mode.
  • claude_code structural classification + test.

Test Coverage Requirements

99%+ patch coverage, branch-counted.

Metadata

Metadata

Assignees

Labels

maintainer-onlyOwner-only work — yields no Gittensor points.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions