← back to Model Arena

5x/sweep-2-contrarian-fixes.md

16 lines

# post-/contrarian FIX FIRST pass — 2026-07-22

Panel verdict: FIX FIRST (4× FIX FIRST, 1× KILL-as-scoped/Strategist).

## Blockers fixed (this pass)
1. **Metered spend-injection (Engineer #1, live $-vector):** `/retry/:model` now 400s if the model isn't already a competitor in that battle. Was: anyone with the shared cred could inject paid models onto every challenge and loop. Verified: retry/claude→400, retry/hermes3-8b→200.
2. **Metered double-spend race (Engineer #2):** metered generations now serialize per-model via onKey('metered:'+id); runModel has a double-fire guard (no-op if already running/queued). Two rapid retries queue instead of both charging.
3. **Zombie/stuck runs (User/Skeptic/Engineer #3):** startup sentinel now also heals corrupt records (finished_at<started_at); a 30s watchdog fails runs stuck past 660s running / 20min queued so the UI shows an honest error instead of an infinite poll. Verified: all prior zombie runs healed to error.
4. **gpt-5.3 hallucinated id (Skeptic/Strategist):** the live "neon city" battle proved gpt-5.3 404s; changed to gpt-5.1 (verified against OpenAI /models), env-overridable OPENAI_MODEL.
5. **Winner not a visual event (Designer):** `.pane.winner` breaks the grid (grid-column:1/-1, order:-1, taller iframe, one-time gold flash) — champion on top, full width.
6. **Crown unexplained (User):** Crown button now has a title tooltip explaining it records a ledger vote.
7. **Dishonest cost estimate (Skeptic):** relabeled "Estimated battle cost" → "Rough ceiling (flat per-model guess; actual metered by real tokens)".

## Deferred to Steve (Strategist dissent — a product-scope call, not an autonomous fix)
The arena's challenges are game/toy demos; the Strategist argues the win-rate ledger only becomes a real "moat" if challenges are drawn from Steve's actual production workloads (product-description gen, vendor-PDF JSON extraction, inquiry classification) with rubric scores, echoing ollama-model-eval. That's a direction change — surfaced for Steve, not applied.