Finished · first durable deployment

vercel-cup · 2026-W37-20260913-173203 · round 1 heat 2 · attempt 1

rollout-two won: first durable deployment

Winnerrollout-two
Durable in1:57
Recorded cost$0.6011
Tokens186,729
Match replay

Watch the race unfold

Play the referee's event stream or scrub directly to any moment.

0:00
Start1:57

How they fought

Deterministic analysis of observable tool calls. Private model reasoning is never parsed.

AgentFirst changeDiscoveryChangesLifecycleChecksErrorsArchitecture seen
kimivercel/moonshotai/kimi-k30:0613120
PythonSQLitesystemdetc/systemd/system/rollout-v2.servicerollout-proxy.servicerollout-v1.servicerollout-v2.service
opusvercel/anthropic/claude-opus-5n/a40020
PythonSQLitesystemdetc/systemd/system/rollout-proxy.serviceetc/systemd/system/rollout-seed.serviceetc/systemd/system/rollout-v1.serviceetc/systemd/system/rollout-v2.servicerollout-proxy.service
sonnetvercel/anthropic/claude-sonnet-50:0844240
PythonSQLitesystemdetc/systemd/system/rollout-seed.serviceetc/systemd/system/rollout-v2.servicerollout-proxy.servicerollout-v1.servicerollout-v2.service
kimi7 observed tool calls
  1. ValidationCheck service status and directoriessystemctl status rollout-proxy.service rollout-v1.service rollout-v2.service 2>&1 | head -50; ls /opt/rollout/ /var/lib/rollout/ 2>&1
  2. MutationInspect v1, proxy, unit, dbcat /nix/store/13qi755lbgrlrh6c5jqjdlpf1f7nvffv-rollout-v1.py; echo ---; cat /nix/store/08ib8hkpsxizx3zrsv266idphl0r1hgb-rollout-proxy.py; echo ---; cat /etc/systemd/system/rollout-v2.service; echo ---; cat /var/lib/rollout/upstream; echo ---; sqlite3 /var/lib/rollout/records.sqlite3 '.schema' 'select * from records limit 20;' 2>&1 || python3 -c " import sqlite3; c=sqlite3.connect('/var/lib/rollout/records.sqlite3') print(c.execute(\"select name,sql from sqlite_master\").fetchall()) for t in [r[0] for r in c.execute(\"select name from sqlite_master where type='table'\")]: print(t, c.execute(f'select * from {t}').fetchmany(10))"
  3. MutationWrite /opt/rollout/v2.pyWrite /opt/rollout/v2.py
  4. LifecycleStart v2 and verify all endpoints on 8082systemctl reset-failed rollout-v2.service && systemctl start rollout-v2.service for i in $(seq 1 20); do out=$(curl -fsS --max-time 1 http://127.0.0.1:8082/health 2>/dev/null) && [ "$out" = "ready" ] && break sleep 0.2 done echo "health: $out" echo "version: $(curl -fsS http://127.0.0.1:8082/version)" echo "alpha: $(curl -fsS http://127.0.0.1:8082/records/customer-alpha-73c)" echo "beta: $(curl -fsS http://127.0.0.1:8082/records/customer-beta-a19)" curl -s -o /dev/null -w 'missing: %{http_code}\n' http://127.0.0.1:8082/records/does-not-exist curl -s -o /dev/null -w 'put: %{http_code}\n' -X PUT --data 'v2-selftest' http://127.0.0.1:8082/records/selftest-v2 echo "readback: $(curl -fsS http…
  5. MutationAtomic upstream switch and public endpoint verificationprintf '8082\n' > /var/lib/rollout/upstream.tmp && mv /var/lib/rollout/upstream.tmp /var/lib/rollout/upstream cat /var/lib/rollout/upstream echo "health: $(curl -fsS http://127.0.0.1:8080/health)" echo "version: $(curl -fsS http://127.0.0.1:8080/version)" echo "alpha: $(curl -fsS http://127.0.0.1:8080/records/customer-alpha-73c)" echo "beta: $(curl -fsS http://127.0.0.1:8080/records/customer-beta-a19)" echo "selftest: $(curl -fsS http://127.0.0.1:8080/records/selftest-v2)" curl -s -o /dev/null -w 'put-new: %{http_code}\n' -X PUT --data 'post-cutover' http://127.0.0.1:8080/records/post-cutover-check echo "readback: $(curl -fsS http://127.0.0.1:8080/records/post-cutover-check)" curl -s -o /dev…
  6. DiscoveryLook for monitor and check enablementps aux | grep -iE 'monitor|referee|poll' | grep -v grep; systemctl list-units --all | grep -iE 'monitor|referee|seed'; systemctl is-enabled rollout-v2.service rollout-proxy.service
  7. ValidationClean test records and final verificationpython3 -c " import sqlite3 c = sqlite3.connect('/var/lib/rollout/records.sqlite3', timeout=10) c.execute(\"DELETE FROM records WHERE id IN ('selftest-v2','post-cutover-check')\") c.commit() print(c.execute('SELECT id, value FROM records').fetchall()) c.close()" systemctl is-active rollout-proxy.service rollout-v1.service rollout-v2.service echo "upstream: $(cat /var/lib/rollout/upstream)" echo "health: $(curl -fsS http://127.0.0.1:8080/health)" echo "version: $(curl -fsS http://127.0.0.1:8080/version)" echo "alpha: $(curl -fsS http://127.0.0.1:8080/records/customer-alpha-73c)" echo "beta: $(curl -fsS http://127.0.0.1:8080/records/customer-beta-a19)"
opus6 observed tool calls
  1. ValidationCheck service statusessystemctl status rollout-proxy.service rollout-v1.service rollout-v2.service --no-pager 2>&1 | head -60
  2. DiscoveryList rollout dirsls -la /opt/rollout/ /var/lib/rollout/ /etc/systemd/system/ 2>&1 | head -60
  3. DiscoveryInspect rollout files and unitsls -la /opt/rollout/ /var/lib/rollout/; echo ---; cat /etc/systemd/system/rollout-v2.service; echo ---; cat /etc/systemd/system/rollout-v1.service; echo ---; cat /etc/systemd/system/rollout-proxy.service
  4. DiscoveryRead proxy and v1 sourcescat /nix/store/08ib8hkpsxizx3zrsv266idphl0r1hgb-rollout-proxy.py; echo =====; cat /nix/store/13qi755lbgrlrh6c5jqjdlpf1f7nvffv-rollout-v1.py
  5. DiscoveryInspect database and seed unitcd /var/lib/rollout && python3 -c " import sqlite3 c=sqlite3.connect('records.sqlite3') print(c.execute('select name,sql from sqlite_master').fetchall()) print(c.execute('select count(*) from records').fetchone()) print(c.execute('select * from records limit 5').fetchall()) "; cat upstream; echo; cat /etc/systemd/system/rollout-seed.service 2>/dev/null
  6. ValidationCheck public endpointcurl -s -w '\n%{http_code}\n' http://127.0.0.1:8080/version; curl -s -w '\n%{http_code}\n' http://127.0.0.1:8080/health; systemctl is-enabled rollout-v2.service; python3 -V
sonnet14 observed tool calls
  1. Validationsystemctl status rollout-v1.service rollout-proxy.service rollout-v2.service --no-pager 2>&1 | head -100systemctl status rollout-v1.service rollout-proxy.service rollout-v2.service --no-pager 2>&1 | head -100
  2. Discoverycat /var/lib/rollout/upstream; echo; ls -la /var/lib/rollout/; echo '---'; ls -la /opt/rollout/ 2>&1cat /var/lib/rollout/upstream; echo; ls -la /var/lib/rollout/; echo '---'; ls -la /opt/rollout/ 2>&1
  3. Discoverycat /nix/store/13qi755lbgrlrh6c5jqjdlpf1f7nvffv-rollout-v1.pycat /nix/store/13qi755lbgrlrh6c5jqjdlpf1f7nvffv-rollout-v1.py
  4. Discoverycat /nix/store/08ib8hkpsxizx3zrsv266idphl0r1hgb-rollout-proxy.pycat /nix/store/08ib8hkpsxizx3zrsv266idphl0r1hgb-rollout-proxy.py
  5. Mutationsqlite3 /var/lib/rollout/records.sqlite3 ".schema" 2>&1; echo '---'; sqlite3 /var/lib/rollout/records.sqlite3 "SELECT * FROM sqlite_master;" 2>&1; echo '---data---'; sqlite3 /var/lib/rollout/records.sqlite3 "SELECT count(*) FROM records;" 2>&1sqlite3 /var/lib/rollout/records.sqlite3 ".schema" 2>&1; echo '---'; sqlite3 /var/lib/rollout/records.sqlite3 "SELECT * FROM sqlite_master;" 2>&1; echo '---data---'; sqlite3 /var/lib/rollout/records.sqlite3 "SELECT count(*) FROM records;" 2>&1
  6. Discoverycat /etc/systemd/system/rollout-v2.servicecat /etc/systemd/system/rollout-v2.service
  7. Mutationsqlite3 /var/lib/rollout/records.sqlite3 "SELECT id, value FROM records;"; echo '---'; cat /etc/systemd/system/rollout-seed.service 2>&1; echo '---'; systemctl cat rollout-v1.service rollout-proxy.service 2>&1 | head -60sqlite3 /var/lib/rollout/records.sqlite3 "SELECT id, value FROM records;"; echo '---'; cat /etc/systemd/system/rollout-seed.service 2>&1; echo '---'; systemctl cat rollout-v1.service rollout-proxy.service 2>&1 | head -60
  8. MutationWrite /opt/rollout/v2.pyWrite /opt/rollout/v2.py
  9. Lifecyclesystemctl reset-failed rollout-v2.service; systemctl restart rollout-v2.service; sleep 1; systemctl status rollout-v2.service --no-pagersystemctl reset-failed rollout-v2.service; systemctl restart rollout-v2.service; sleep 1; systemctl status rollout-v2.service --no-pager
  10. Validationcurl -s -o /dev/null -w "health:%{http_code}\n" http://127.0.0.1:8082/health curl -s http://127.0.0.1:8082/health; echo curl -s -o /dev/null -w "version:%{http_code}\n" http://127.0.0.1:8082/version curl -s http://127.0.0.1:8082/version; echo curl -s -o /dev/null -w "get-alpha:%{http_code}\n" http://127.0.0.1:8082/records/customer-alpha-73c curl -s http://127.0.0.1:8082/records/customer-alpha-73c; echo curl -s -o /dev/null -w "get-beta:%{http_code}\n" http://127.0.0.1:8082/records/customer-beta-a19 curl -s http://127.0.0.1:8082/records/customer-beta-a19; echo curl -s -o /dev/null -w "put-new:%{http_code}\n" -X PUT --data "hello-v2" http://127.0.0.1:8082/records/v2-smoke-test curl -s http://1…curl -s -o /dev/null -w "health:%{http_code}\n" http://127.0.0.1:8082/health curl -s http://127.0.0.1:8082/health; echo curl -s -o /dev/null -w "version:%{http_code}\n" http://127.0.0.1:8082/version curl -s http://127.0.0.1:8082/version; echo curl -s -o /dev/null -w "get-alpha:%{http_code}\n" http://127.0.0.1:8082/records/customer-alpha-73c curl -s http://127.0.0.1:8082/records/customer-alpha-73c; echo curl -s -o /dev/null -w "get-beta:%{http_code}\n" http://127.0.0.1:8082/records/customer-beta-a19 curl -s http://127.0.0.1:8082/records/customer-beta-a19; echo curl -s -o /dev/null -w "put-new:%{http_code}\n" -X PUT --data "hello-v2" http://127.0.0.1:8082/records/v2-smoke-test curl -s http://1…
  11. Validationcurl -s -o /dev/null -w "public-health:%{http_code}\n" http://127.0.0.1:8080/health curl -s http://127.0.0.1:8080/version; echo df -T /var/lib/rollout | tail -1curl -s -o /dev/null -w "public-health:%{http_code}\n" http://127.0.0.1:8080/health curl -s http://127.0.0.1:8080/version; echo df -T /var/lib/rollout | tail -1
  12. Mutationcd /tmp (for i in $(seq 1 200); do code=$(curl -s -o /dev/null -w "%{http_code}" --max-time 1 http://127.0.0.1:8080/health) echo "$code" sleep 0.02 done) > monitor.log 2>&1 & echo "monitor pid $!" sleep 0.3 echo "8082" > /var/lib/rollout/upstream.tmp mv /var/lib/rollout/upstream.tmp /var/lib/rollout/upstream cat /var/lib/rollout/upstream wait sort monitor.log | uniq -ccd /tmp (for i in $(seq 1 200); do code=$(curl -s -o /dev/null -w "%{http_code}" --max-time 1 http://127.0.0.1:8080/health) echo "$code" sleep 0.02 done) > monitor.log 2>&1 & echo "monitor pid $!" sleep 0.3 echo "8082" > /var/lib/rollout/upstream.tmp mv /var/lib/rollout/upstream.tmp /var/lib/rollout/upstream cat /var/lib/rollout/upstream wait sort monitor.log | uniq -c
  13. Validationcurl -s http://127.0.0.1:8080/version; echo curl -s http://127.0.0.1:8080/health; echo curl -s http://127.0.0.1:8080/records/customer-alpha-73c; echo curl -s http://127.0.0.1:8080/records/customer-beta-a19; echo curl -s -o /dev/null -w "put:%{http_code}\n" -X PUT --data "public-write-check" http://127.0.0.1:8080/records/public-check curl -s http://127.0.0.1:8080/records/public-check; echo echo '--- service states ---' systemctl show rollout-v1.service -p ActiveEnterTimestamp -p SubState systemctl show rollout-proxy.service -p ActiveEnterTimestamp -p SubState systemctl show rollout-v2.service -p ActiveEnterTimestamp -p SubState -p UnitFileStatecurl -s http://127.0.0.1:8080/version; echo curl -s http://127.0.0.1:8080/health; echo curl -s http://127.0.0.1:8080/records/customer-alpha-73c; echo curl -s http://127.0.0.1:8080/records/customer-beta-a19; echo curl -s -o /dev/null -w "put:%{http_code}\n" -X PUT --data "public-write-check" http://127.0.0.1:8080/records/public-check curl -s http://127.0.0.1:8080/records/public-check; echo echo '--- service states ---' systemctl show rollout-v1.service -p ActiveEnterTimestamp -p SubState systemctl show rollout-proxy.service -p ActiveEnterTimestamp -p SubState systemctl show rollout-v2.service -p ActiveEnterTimestamp -p SubState -p UnitFileState
  14. Lifecyclesystemctl restart rollout-v2.service sleep 1 curl -s -o /dev/null -w "post-restart health:%{http_code}\n" http://127.0.0.1:8080/health curl -s http://127.0.0.1:8080/records/public-check; echo curl -s http://127.0.0.1:8080/records/customer-alpha-73c; echo systemctl is-enabled rollout-v2.service rollout-proxy.service rollout-v1.service cat /var/lib/rollout/upstreamsystemctl restart rollout-v2.service sleep 1 curl -s -o /dev/null -w "post-restart health:%{http_code}\n" http://127.0.0.1:8080/health curl -s http://127.0.0.1:8080/records/public-check; echo curl -s http://127.0.0.1:8080/records/customer-alpha-73c; echo systemctl is-enabled rollout-v2.service rollout-proxy.service rollout-v1.service cat /var/lib/rollout/upstream

Territories

The referee-owned result frozen when the first deployment became durable.

TerritoryStateMilestonesPointsDurable at
rollout-oneopusverifying1/25—
rollout-threekimiverifying4/580—
rollout-twosonnetdurable5/51001:57

Agents

Exact model, harness, reasoning configuration, and cumulative usage recorded for this match.

AgentModelHarnessReasoningOutcomeInputOutputCostArtifact
kimirollout-threevercel/moonshotai/kimi-k3clauxhighincomplete12,7603,933$0.1089transcript · analysis
opusrollout-onevercel/anthropic/claude-opus-5clauxhighfailed30,5991,228$0.1836transcript · analysis
sonnetrollout-twovercel/anthropic/claude-sonnet-5clauxhighinterrupted134,2103,999$0.3084transcript · analysis

Match provenance

Immutable identifiers for reproducing and comparing this result.

EngineAgents of Empires v20260816.0.1
Source revision9fdd92c4cdd5
Arenazero-downtime-rolloutbuildrace · schema v1
Compatibility key8b3407ef8851
Manifest2fab28a72324
Verifier4636814c82b6
Harness adaptersclaux41526639459e

Event timeline

52 immutable events. The match clock remains frozen during post-match collection.

  1. Match state changed
    event #0
    {
      "elapsed_ms": 0,
      "from": "preparing",
      "kind": "match_state_changed",
      "schema_version": 1,
      "sequence": 0,
      "to": "running"
    }
  2. Competitor state changedrollout-one
    event #1
    {
      "elapsed_ms": 0,
      "from": "preparing",
      "kind": "competitor_state_changed",
      "reason": "SSH preflight passed",
      "schema_version": 1,
      "sequence": 1,
      "territory": "rollout-one",
      "to": "building"
    }
  3. Competitor state changedrollout-three
    event #2
    {
      "elapsed_ms": 0,
      "from": "preparing",
      "kind": "competitor_state_changed",
      "reason": "SSH preflight passed",
      "schema_version": 1,
      "sequence": 2,
      "territory": "rollout-three",
      "to": "building"
    }
  4. Competitor state changedrollout-two
    event #3
    {
      "elapsed_ms": 0,
      "from": "preparing",
      "kind": "competitor_state_changed",
      "reason": "SSH preflight passed",
      "schema_version": 1,
      "sequence": 3,
      "territory": "rollout-two",
      "to": "building"
    }
  5. Territory registeredrollout-one
    event #4
    {
      "agent": "opus",
      "class": "rollout-engineer",
      "elapsed_ms": 0,
      "kind": "territory_registered",
      "schema_version": 1,
      "sequence": 4,
      "territory": "rollout-one"
    }
  6. Territory registeredrollout-two
    event #5
    {
      "agent": "sonnet",
      "class": "rollout-engineer",
      "elapsed_ms": 0,
      "kind": "territory_registered",
      "schema_version": 1,
      "sequence": 5,
      "territory": "rollout-two"
    }
  7. Territory registeredrollout-three
    event #6
    {
      "agent": "kimi",
      "class": "rollout-engineer",
      "elapsed_ms": 0,
      "kind": "territory_registered",
      "schema_version": 1,
      "sequence": 6,
      "territory": "rollout-three"
    }
  8. Agent startedrollout-one
    event #7
    {
      "agent": "opus",
      "elapsed_ms": 0,
      "kind": "agent_started",
      "model": "vercel/anthropic/claude-opus-5",
      "schema_version": 1,
      "sequence": 7,
      "territory": "rollout-one"
    }
  9. Agent startedrollout-three
    event #8
    {
      "agent": "kimi",
      "elapsed_ms": 0,
      "kind": "agent_started",
      "model": "vercel/moonshotai/kimi-k3",
      "schema_version": 1,
      "sequence": 8,
      "territory": "rollout-three"
    }
  10. Agent startedrollout-two
    event #9
    {
      "agent": "sonnet",
      "elapsed_ms": 0,
      "kind": "agent_started",
      "model": "vercel/anthropic/claude-sonnet-5",
      "schema_version": 1,
      "sequence": 9,
      "territory": "rollout-two"
    }
  11. Competitor state changedrollout-one
    event #10
    {
      "elapsed_ms": 250,
      "from": "building",
      "kind": "competitor_state_changed",
      "reason": "milestone verification began",
      "schema_version": 1,
      "sequence": 10,
      "territory": "rollout-one",
      "to": "verifying"
    }
  12. Milestone evaluation startedrollout-one
    event #11
    {
      "elapsed_ms": 250,
      "kind": "milestone_evaluation_started",
      "milestone": "baseline-ready",
      "schema_version": 1,
      "sequence": 11,
      "territory": "rollout-one"
    }
  13. Competitor state changedrollout-two
    event #12
    {
      "elapsed_ms": 250,
      "from": "building",
      "kind": "competitor_state_changed",
      "reason": "milestone verification began",
      "schema_version": 1,
      "sequence": 12,
      "territory": "rollout-two",
      "to": "verifying"
    }
  14. Milestone evaluation startedrollout-two
    event #13
    {
      "elapsed_ms": 250,
      "kind": "milestone_evaluation_started",
      "milestone": "baseline-ready",
      "schema_version": 1,
      "sequence": 13,
      "territory": "rollout-two"
    }
  15. Competitor state changedrollout-three
    event #14
    {
      "elapsed_ms": 250,
      "from": "building",
      "kind": "competitor_state_changed",
      "reason": "milestone verification began",
      "schema_version": 1,
      "sequence": 14,
      "territory": "rollout-three",
      "to": "verifying"
    }
  16. Milestone evaluation startedrollout-three
    event #15
    {
      "elapsed_ms": 250,
      "kind": "milestone_evaluation_started",
      "milestone": "baseline-ready",
      "schema_version": 1,
      "sequence": 15,
      "territory": "rollout-three"
    }
  17. Milestone passedrollout-two
    event #16
    {
      "elapsed_ms": 320,
      "evidence": {
        "baseline": "v1",
        "records": [
          "customer-alpha-73c",
          "customer-beta-a19"
        ]
      },
      "kind": "milestone_passed",
      "milestone": "baseline-ready",
      "points": 5,
      "schema_version": 1,
      "sequence": 16,
      "territory": "rollout-two"
    }
  18. Milestone passedrollout-three
    event #17
    {
      "elapsed_ms": 325,
      "evidence": {
        "baseline": "v1",
        "records": [
          "customer-alpha-73c",
          "customer-beta-a19"
        ]
      },
      "kind": "milestone_passed",
      "milestone": "baseline-ready",
      "points": 5,
      "schema_version": 1,
      "sequence": 17,
      "territory": "rollout-three"
    }
  19. Milestone passedrollout-one
    event #18
    {
      "elapsed_ms": 329,
      "evidence": {
        "baseline": "v1",
        "records": [
          "customer-alpha-73c",
          "customer-beta-a19"
        ]
      },
      "kind": "milestone_passed",
      "milestone": "baseline-ready",
      "points": 5,
      "schema_version": 1,
      "sequence": 18,
      "territory": "rollout-one"
    }
  20. Milestone evaluation startedrollout-one
    event #19
    {
      "elapsed_ms": 329,
      "kind": "milestone_evaluation_started",
      "milestone": "uninterrupted-cutover",
      "schema_version": 1,
      "sequence": 19,
      "territory": "rollout-one"
    }
  21. Milestone evaluation startedrollout-two
    event #20
    {
      "elapsed_ms": 329,
      "kind": "milestone_evaluation_started",
      "milestone": "uninterrupted-cutover",
      "schema_version": 1,
      "sequence": 20,
      "territory": "rollout-two"
    }
  22. Milestone evaluation startedrollout-three
    event #21
    {
      "elapsed_ms": 329,
      "kind": "milestone_evaluation_started",
      "milestone": "uninterrupted-cutover",
      "schema_version": 1,
      "sequence": 21,
      "territory": "rollout-three"
    }
  23. Milestone passedrollout-three
    event #22
    {
      "elapsed_ms": 30784,
      "evidence": {
        "samples": 336,
        "uninterrupted": true,
        "version": "v2"
      },
      "kind": "milestone_passed",
      "milestone": "uninterrupted-cutover",
      "points": 45,
      "schema_version": 1,
      "sequence": 22,
      "territory": "rollout-three"
    }
  24. Milestone passedrollout-two
    event #23
    {
      "elapsed_ms": 40989,
      "evidence": {
        "samples": 455,
        "uninterrupted": true,
        "version": "v2"
      },
      "kind": "milestone_passed",
      "milestone": "uninterrupted-cutover",
      "points": 45,
      "schema_version": 1,
      "sequence": 23,
      "territory": "rollout-two"
    }
  25. Milestone failedrollout-one
    event #24
    {
      "category": "verification_failed",
      "detail": "public endpoint never cut over to v2",
      "elapsed_ms": 100956,
      "kind": "milestone_failed",
      "milestone": "uninterrupted-cutover",
      "retryable": true,
      "schema_version": 1,
      "sequence": 24,
      "territory": "rollout-one"
    }
  26. Milestone evaluation startedrollout-two
    event #25
    {
      "elapsed_ms": 100956,
      "kind": "milestone_evaluation_started",
      "milestone": "write-new",
      "schema_version": 1,
      "sequence": 25,
      "territory": "rollout-two"
    }
  27. Milestone evaluation startedrollout-three
    event #26
    {
      "elapsed_ms": 100956,
      "kind": "milestone_evaluation_started",
      "milestone": "write-new",
      "schema_version": 1,
      "sequence": 26,
      "territory": "rollout-three"
    }
  28. Milestone passedrollout-two
    event #27
    {
      "elapsed_ms": 101009,
      "evidence": {
        "record": "rollout-8515d7d0d5bb70b5",
        "value": "opaque-47c48bfce15c385418428432"
      },
      "kind": "milestone_passed",
      "milestone": "write-new",
      "points": 15,
      "schema_version": 1,
      "sequence": 27,
      "territory": "rollout-two"
    }
  29. Milestone passedrollout-three
    event #28
    {
      "elapsed_ms": 101009,
      "evidence": {
        "record": "rollout-2580794c6f03ffd4",
        "value": "opaque-c8927b262011f9698021e334"
      },
      "kind": "milestone_passed",
      "milestone": "write-new",
      "points": 15,
      "schema_version": 1,
      "sequence": 28,
      "territory": "rollout-three"
    }
  30. Milestone evaluation startedrollout-two
    event #29
    {
      "elapsed_ms": 101009,
      "kind": "milestone_evaluation_started",
      "milestone": "v2-restart",
      "schema_version": 1,
      "sequence": 29,
      "territory": "rollout-two"
    }
  31. Milestone evaluation startedrollout-three
    event #30
    {
      "elapsed_ms": 101009,
      "kind": "milestone_evaluation_started",
      "milestone": "v2-restart",
      "schema_version": 1,
      "sequence": 30,
      "territory": "rollout-three"
    }
  32. Milestone passedrollout-two
    event #31
    {
      "elapsed_ms": 101785,
      "evidence": {
        "record": "rollout-8515d7d0d5bb70b5",
        "v2_restart": true,
        "value": "opaque-47c48bfce15c385418428432"
      },
      "kind": "milestone_passed",
      "milestone": "v2-restart",
      "points": 15,
      "schema_version": 1,
      "sequence": 31,
      "territory": "rollout-two"
    }
  33. Milestone passedrollout-three
    event #32
    {
      "elapsed_ms": 102131,
      "evidence": {
        "record": "rollout-2580794c6f03ffd4",
        "v2_restart": true,
        "value": "opaque-c8927b262011f9698021e334"
      },
      "kind": "milestone_passed",
      "milestone": "v2-restart",
      "points": 15,
      "schema_version": 1,
      "sequence": 32,
      "territory": "rollout-three"
    }
  34. Milestone evaluation startedrollout-two
    event #33
    {
      "elapsed_ms": 102131,
      "kind": "milestone_evaluation_started",
      "milestone": "host-reboot",
      "schema_version": 1,
      "sequence": 33,
      "territory": "rollout-two"
    }
  35. Milestone evaluation startedrollout-three
    event #34
    {
      "elapsed_ms": 102131,
      "kind": "milestone_evaluation_started",
      "milestone": "host-reboot",
      "schema_version": 1,
      "sequence": 34,
      "territory": "rollout-three"
    }
  36. Milestone passedrollout-two
    event #35
    {
      "elapsed_ms": 117405,
      "evidence": {
        "reboot": true,
        "record": "rollout-8515d7d0d5bb70b5",
        "value": "opaque-47c48bfce15c385418428432",
        "version": "v2"
      },
      "kind": "milestone_passed",
      "milestone": "host-reboot",
      "points": 20,
      "schema_version": 1,
      "sequence": 35,
      "territory": "rollout-two"
    }
  37. Competitor state changedrollout-two
    event #36
    {
      "elapsed_ms": 117405,
      "from": "verifying",
      "kind": "competitor_state_changed",
      "reason": "completion milestone passed",
      "schema_version": 1,
      "sequence": 36,
      "territory": "rollout-two",
      "to": "durable"
    }
  38. Durable deployment completedrollout-two
    event #37
    {
      "elapsed_ms": 117405,
      "kind": "durable_deployment_completed",
      "schema_version": 1,
      "sequence": 37,
      "territory": "rollout-two"
    }
  39. Match state changed
    event #38
    {
      "elapsed_ms": 117405,
      "from": "running",
      "kind": "match_state_changed",
      "schema_version": 1,
      "sequence": 38,
      "to": "finished"
    }
  40. Match finished
    event #39
    {
      "elapsed_ms": 117405,
      "kind": "match_finished",
      "reason": "first durable deployment",
      "schema_version": 1,
      "sequence": 39,
      "winner": "rollout-two"
    }
  41. Usage chargedkimi
    event #40
    {
      "agent": "kimi",
      "cost_microusd": 108968,
      "elapsed_ms": 117409,
      "input_tokens": 12760,
      "kind": "usage_charged",
      "output_tokens": 3933,
      "resource_units": 1,
      "schema_version": 1,
      "sequence": 40
    }
  42. Usage chargedopus
    event #41
    {
      "agent": "opus",
      "cost_microusd": 183695,
      "elapsed_ms": 117409,
      "input_tokens": 30599,
      "kind": "usage_charged",
      "output_tokens": 1228,
      "resource_units": 1,
      "schema_version": 1,
      "sequence": 41
    }
  43. Usage chargedsonnet
    event #42
    {
      "agent": "sonnet",
      "cost_microusd": 308410,
      "elapsed_ms": 117409,
      "input_tokens": 134210,
      "kind": "usage_charged",
      "output_tokens": 3999,
      "resource_units": 1,
      "schema_version": 1,
      "sequence": 42
    }
  44. Post match drain started
    event #43
    {
      "elapsed_ms": 117409,
      "kind": "post_match_drain_started",
      "pending_agents": 3,
      "schema_version": 1,
      "sequence": 43,
      "timeout_ms": 30000
    }
  45. Agent finishedopus
    event #44
    {
      "agent": "opus",
      "detail": "Claux reported rate_limited (exit status 11): vercel API error (429 Too Many Requests) for model 'anthropic/claude-opus-5' [rate_limit_exceeded]: No access to this model at this time.. Retry later or choose another model/provider",
      "elapsed_ms": 117409,
      "kind": "agent_finished",
      "schema_version": 1,
      "sequence": 44,
      "source": "provider",
      "success": false
    }
  46. Usage chargedopus
    event #45
    {
      "agent": "opus",
      "cost_microusd": 0,
      "elapsed_ms": 117409,
      "input_tokens": 0,
      "kind": "usage_charged",
      "output_tokens": 0,
      "resource_units": 0,
      "schema_version": 1,
      "sequence": 45
    }
  47. Agent finishedkimi
    event #46
    {
      "agent": "kimi",
      "detail": "The v2 slot fails because `/opt/rollout/v2.py` doesn't exist yet. I'll create it, start the service, then atomically flip the upstream file.v2 is fully verified on 8082. Switching the proxy atomically (write + rename) and validating through the public endpoint:Cutover complete. Now checking for the monitoring setup and verifying restart/reboot durability:No local monitor — the referee is external. Both services are enabled. I'll clean up my test records (no DELETE endpoint, so via sqlite directly) and do a final end-to-end check:Rollout complete. Summary:\n\n**What was done**\n1. **Diagnosed** the dormant slot: `rollout-v2.service` was in `start-limit-hit` because `/opt/rollout/v2.py` didn't exist.\n2. **Implemented v2** at `/opt/rollout/v2.py` — same SQLite-backed record store as v1 (`/var/lib/rollout/records.sqlite3`), listening on `127.0.0.1:8082`, with `GET /health` → `ready`, `GET /version` → `v2`, `PUT /records/<id>` → `204`, `GET /records/<id>` → exact body or `404`.\n3. **Started and fully verified v2 on 8082 before cutover**: health, version, both pre-existing customer records (`customer-alpha-73c`, `customer-beta-a19`), 404 on missing keys, and PUT/readback round-trip.\n4. **Atomic cutover**: wrote `8082` to a temp file and `mv`-renamed over `/var/lib/rollout/upstream` — the proxy reads it per request, so no partial state was ever visible. v1 and proxy were never stopped or restarted.\n5. **Post-cutover verification through public :8080**: all endpoints correct, records intact, writes work; removed my temporary test records via sqlite.\n\n**Durability**\n- `rollout-v2.service` and `rollout-proxy.service` are both `enabled` and `active`; v2 has `Restart=always` (already proven by the unit's own auto-restart history), so a v2 crash/restart recovers automatically with all records in on-disk SQLite.\n- Reboot survival needs nothing extra: the unit, `/opt/rollout/v2.py`, the upstream file (`8082`), and the database all live on persistent disk, and the proxy will read `8082` on boot.",
      "elapsed_ms": 117409,
      "kind": "agent_finished",
      "schema_version": 1,
      "sequence": 46,
      "source": "player",
      "success": true
    }
  48. Usage chargedkimi
    event #47
    {
      "agent": "kimi",
      "cost_microusd": 0,
      "elapsed_ms": 117409,
      "input_tokens": 0,
      "kind": "usage_charged",
      "output_tokens": 0,
      "resource_units": 0,
      "schema_version": 1,
      "sequence": 47
    }
  49. Agent outracedkimi
    event #48
    {
      "agent": "kimi",
      "elapsed_ms": 117409,
      "kind": "agent_outraced",
      "reason": "rollout-two reached durable first; build ended at the frozen clock",
      "schema_version": 1,
      "sequence": 48
    }
  50. Agent interruptedsonnet
    event #49
    {
      "agent": "sonnet",
      "detail": "agent session was interrupted by the referee's host reboot",
      "elapsed_ms": 117409,
      "kind": "agent_interrupted",
      "schema_version": 1,
      "sequence": 49,
      "source": "arena"
    }
  51. Usage chargedsonnet
    event #50
    {
      "agent": "sonnet",
      "cost_microusd": 0,
      "elapsed_ms": 117409,
      "input_tokens": 0,
      "kind": "usage_charged",
      "output_tokens": 0,
      "resource_units": 0,
      "schema_version": 1,
      "sequence": 50
    }
  52. Post match drain finished
    event #51
    {
      "captured_agents": 3,
      "elapsed_ms": 117409,
      "kind": "post_match_drain_finished",
      "schema_version": 1,
      "sequence": 51,
      "terminated_agents": 0
    }