Match replay
Watch the race unfold
Play the referee's event stream or scrub directly to any moment.
0:00
Start1:56
How they fought
Deterministic analysis of observable tool calls. Private model reasoning is never parsed.
| Agent | First change | Discovery | Changes | Lifecycle | Checks | Errors | Architecture seen |
|---|---|---|---|---|---|---|---|
| deepseekdeepseek/deepseek-v4.1-flash | n/a | 0 | 0 | 0 | 2 | 0 | |
| glmz-ai/glm-5.3 | 1:32 | 5 | 1 | 1 | 3 | 0 | |
| lunaopenai/gpt-5.6-luna | 0:08 | 6 | 5 | 1 | 7 | 3 |
deepseek2 observed tool calls
- ValidationInspect rollout dirs, services, and listening ports
id; echo "---"; ls -la /opt/rollout/ 2>&1; echo "---"; ls -la /var/lib/rollout/ 2>&1; echo "---"; systemctl list-units --type=service --all 2>&1 | grep -i rollout; echo "---"; ss -ltnp 2>&1 | head -50 - ValidationCheck rollout service statuses
echo "=== proxy ==="; systemctl status rollout-proxy.service --no-pager 2>&1 | head -30; echo "=== v1 ==="; systemctl status rollout-v1.service --no-pager 2>&1 | head -30; echo "=== v2 ==="; systemctl status rollout-v2.service --no-pager 2>&1 | head -30
glm10 observed tool calls
- ValidationCheck status of the three rollout services
systemctl status rollout-v1.service rollout-v2.service rollout-proxy.service --no-pager 2>&1 | head -60 - DiscoveryList rollout files and current upstream setting
ls -la /opt/rollout/ /var/lib/rollout/ 2>&1; echo '---'; cat /var/lib/rollout/upstream 2>&1 - DiscoveryRead v1 service source code
cat /nix/store/13qi755lbgrlrh6c5jqjdlpf1f7nvffv-rollout-v1.py - DiscoveryRead proxy source code
cat /nix/store/08ib8hkpsxizx3zrsv266idphl0r1hgb-rollout-proxy.py - DiscoveryShow v2 unit file and database schema
cat /etc/systemd/system/rollout-v2.service; echo '---'; python3 -c " import sqlite3 c = sqlite3.connect('/var/lib/rollout/records.sqlite3') print(c.execute('select sql from sqlite_master').fetchall()) print(c.execute('select count(*) from records').fetchall() if True else '') " - ValidationCheck seed service status and unit file
systemctl status rollout-seed.service --no-pager 2>&1; echo '---'; cat /etc/systemd/system/rollout-seed.service - DiscoveryDump existing records read-only
python3 -c " import sqlite3 c = sqlite3.connect('file:/var/lib/rollout/records.sqlite3?mode=ro', uri=True) for r in c.execute('select id, value from records'): print(repr(r)) " - MutationWrite /opt/rollout/v2.py
Write /opt/rollout/v2.py - LifecycleReset start limit and start v2 service
systemctl reset-failed rollout-v2.service && systemctl start rollout-v2.service && sleep 1 && systemctl status rollout-v2.service --no-pager | head -12 - ValidationVerify v2 directly and public endpoint pre-cutover
set -e echo "v2 direct health: $(curl -s http://127.0.0.1:8082/health)" echo "v2 direct version: $(curl -s http://127.0.0.1:8082/version)" echo "v2 alpha: $(curl -s http://127.0.0.1:8082/records/customer-alpha-73c)" echo "v2 beta: $(curl -s http://127.0.0.1:8082/records/customer-beta-a19)" echo "v2 absent->404: $(curl -s -o /dev/null -w '%{http_code}' http://127.0.0.1:8082/records/nope)" echo "public on v1 health: $(curl -s http://127.0.0.1:8080/health)" echo "public on v1 ver: $(curl -s http://127.0.0.1:8080/version)" echo "public on v1 alpha: $(curl -s http://127.0.0.1:8080/records/customer-alpha-73c)" echo "public on v1 beta: $(curl -s http://127.0.0…
luna19 observed tool calls
- ValidationInspect rollout unit status and definitions
systemctl status rollout-v1.service rollout-v2.service rollout-proxy.service --no-pager; printf '\n--- units ---\n'; systemctl cat rollout-v1.service rollout-v2.service rollout-proxy.service - DiscoveryRead /opt/rollout/v2.py
Read /opt/rollout/v2.py - MutationInspect v2 files, upstream, and record database
printf '%s\n' '--- upstream ---'; od -An -tx1 -c /var/lib/rollout/upstream; printf '%s\n' '--- files ---'; ls -la /opt/rollout /var/lib/rollout; printf '%s\n' '--- db ---'; file /var/lib/rollout/records.sqlite3; sqlite3 /var/lib/rollout/records.sqlite3 '.schema' '.tables' 'SELECT id, length(body) FROM records ORDER BY id;' - ValidationCheck current public and v1 endpoints
printf '%s\n' '--- public ---'; curl --fail-with-body -sS -D- http://127.0.0.1:8080/health; printf '\n'; curl --fail-with-body -sS -D- http://127.0.0.1:8080/version; printf '\n'; printf '%s\n' '--- v1 ---'; curl --fail-with-body -sS -D- http://127.0.0.1:8081/health; printf '\n' - DiscoveryRead /nix/store/13qi755lbgrlrh6c5jqjdlpf1f7nvffv-rollout-v1.py
Read /nix/store/13qi755lbgrlrh6c5jqjdlpf1f7nvffv-rollout-v1.py - DiscoveryRead /nix/store/08ib8hkpsxizx3zrsv266idphl0r1hgb-rollout-proxy.py
Read /nix/store/08ib8hkpsxizx3zrsv266idphl0r1hgb-rollout-proxy.py - MutationInspect existing record contents safely
sqlite3 /var/lib/rollout/records.sqlite3 'SELECT id, length(value), quote(value) FROM records ORDER BY id;' - ValidationInspect v2 startup failure logs
journalctl -u rollout-v2.service -n 30 --no-pager - MutationInspect service permissions and sandboxing
systemctl show rollout-v2.service -p User -p Group -p DynamicUser -p ReadWritePaths -p ProtectSystem -p PrivateTmp; ls -ld /opt/rollout /var/lib/rollout; stat -c '%A %U:%G %n' /opt/rollout /var/lib/rollout /var/lib/rollout/records.sqlite3 /var/lib/rollout/upstream - MutationWrite /opt/rollout/v2.py
Write /opt/rollout/v2.py - LifecycleStart v2 and verify readiness endpoints
python3 -m py_compile /opt/rollout/v2.py && systemctl reset-failed rollout-v2.service && systemctl start rollout-v2.service && systemctl is-active rollout-v2.service && curl --fail-with-body -sS -D- http://127.0.0.1:8082/health && printf '\n' && curl --fail-with-body -sS -D- http://127.0.0.1:8082/version && printf '\n' - ValidationDiagnose v2 listener startup
systemctl status rollout-v2.service --no-pager; journalctl -u rollout-v2.service -n 40 --no-pager - ValidationCheck v2 process and listening sockets
ss -ltnp | grep -E ':(8080|8081|8082)\b' || true; ps -ef | grep '[v]2.py' || true - DiscoveryRead /opt/rollout/v2.py
Read /opt/rollout/v2.py - ValidationValidate v2 API and preserved records before cutover
set -e for endpoint in health version; do curl --fail-with-body -sS --retry 3 --retry-delay 0.1 "http://127.0.0.1:8082/$endpoint" > "/tmp/v2-$endpoint" done [ "$(cat /tmp/v2-health)" = ready ] [ "$(cat /tmp/v2-version)" = v2 ] python3 - <<'PY' import http.client def request(method, path, body=b''): conn = http.client.HTTPConnection('127.0.0.1', 8082, timeout=5) conn.request(method, path, body=body) response = conn.getresponse() data = response.read() conn.close() return response.status, data for record_id, expected in (( 'customer-alpha-73c', b'alpha-original'), ('customer-beta-a19', b'beta-original'), ): status, body = request('GET', '/records/' + re… - DiscoveryPreflight v1 and atomically switch stable upstream
set -e python3 - <<'PY' import http.client checks = { '/health': (200, b'ready'), '/version': (200, b'v1'), '/records/customer-alpha-73c': (200, b'alpha-original'), '/records/customer-beta-a19': (200, b'beta-original'), } for path, expected in checks.items(): conn = http.client.HTTPConnection('127.0.0.1', 8080, timeout=5) conn.request('GET', path) response = conn.getresponse() body = response.read() conn.close() assert (response.status, body) == expected, (path, response.status, body) print('public v1 pre-cutover checks passed') PY python3 - <<'PY' import os import tempfile upstream = '/var/lib/rollout/upstream' directory = os.path.dirname(upstream) …
3 more actions in analysis.json
Territories
The referee-owned result frozen when the first deployment became durable.
| Territory | State | Milestones | Points | Durable at |
|---|---|---|---|---|
| rollout-oneluna | durable | 5/5 | 100 | 1:56 |
| rollout-threedeepseek | verifying | 1/2 | 5 | — |
| rollout-twoglm | verifying | 1/2 | 5 | — |
Agents
Exact model, harness, reasoning configuration, and cumulative usage recorded for this match.
| Agent | Model | Harness | Reasoning | Outcome | Input | Output | Cost | Artifact |
|---|---|---|---|---|---|---|---|---|
| deepseekrollout-three | deepseek/deepseek-v4.1-flash | claux | high | failed | 631 | 305 | $0.0006 | transcript · analysis |
| glmrollout-two | z-ai/glm-5.3 | claux | high | incomplete | 10,117 | 5,526 | $0.0370 | transcript · analysis |
| lunarollout-one | openai/gpt-5.6-luna | claux | high | completed | 45 | 8,699 | $0.0181 | transcript · analysis |
Match provenance
Immutable identifiers for reproducing and comparing this result.
EngineAgents of Empires v20260816.0.1
Source revision
b8ce1d258adbArenazero-downtime-rolloutbuildrace · schema v1
Compatibility key
8b3407ef8851Manifest
2fab28a72324Verifier
4636814c82b6Harness adaptersclaux
d05839f7b662Event timeline
46 immutable events. The match clock remains frozen during post-match collection.
- Match state changed
event #0
{ "elapsed_ms": 0, "from": "preparing", "kind": "match_state_changed", "schema_version": 1, "sequence": 0, "to": "running" } - 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" } - 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" } - 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" } - Territory registeredrollout-one
event #4
{ "agent": "luna", "class": "rollout-engineer", "elapsed_ms": 0, "kind": "territory_registered", "schema_version": 1, "sequence": 4, "territory": "rollout-one" } - Territory registeredrollout-two
event #5
{ "agent": "glm", "class": "rollout-engineer", "elapsed_ms": 0, "kind": "territory_registered", "schema_version": 1, "sequence": 5, "territory": "rollout-two" } - Territory registeredrollout-three
event #6
{ "agent": "deepseek", "class": "rollout-engineer", "elapsed_ms": 0, "kind": "territory_registered", "schema_version": 1, "sequence": 6, "territory": "rollout-three" } - Agent startedrollout-one
event #7
{ "agent": "luna", "elapsed_ms": 0, "kind": "agent_started", "model": "openai/gpt-5.6-luna", "schema_version": 1, "sequence": 7, "territory": "rollout-one" } - Agent startedrollout-three
event #8
{ "agent": "deepseek", "elapsed_ms": 0, "kind": "agent_started", "model": "deepseek/deepseek-v4.1-flash", "schema_version": 1, "sequence": 8, "territory": "rollout-three" } - Agent startedrollout-two
event #9
{ "agent": "glm", "elapsed_ms": 0, "kind": "agent_started", "model": "z-ai/glm-5.3", "schema_version": 1, "sequence": 9, "territory": "rollout-two" } - Competitor state changedrollout-one
event #10
{ "elapsed_ms": 251, "from": "building", "kind": "competitor_state_changed", "reason": "milestone verification began", "schema_version": 1, "sequence": 10, "territory": "rollout-one", "to": "verifying" } - Milestone evaluation startedrollout-one
event #11
{ "elapsed_ms": 251, "kind": "milestone_evaluation_started", "milestone": "baseline-ready", "schema_version": 1, "sequence": 11, "territory": "rollout-one" } - Competitor state changedrollout-two
event #12
{ "elapsed_ms": 251, "from": "building", "kind": "competitor_state_changed", "reason": "milestone verification began", "schema_version": 1, "sequence": 12, "territory": "rollout-two", "to": "verifying" } - Milestone evaluation startedrollout-two
event #13
{ "elapsed_ms": 251, "kind": "milestone_evaluation_started", "milestone": "baseline-ready", "schema_version": 1, "sequence": 13, "territory": "rollout-two" } - Competitor state changedrollout-three
event #14
{ "elapsed_ms": 251, "from": "building", "kind": "competitor_state_changed", "reason": "milestone verification began", "schema_version": 1, "sequence": 14, "territory": "rollout-three", "to": "verifying" } - Milestone evaluation startedrollout-three
event #15
{ "elapsed_ms": 251, "kind": "milestone_evaluation_started", "milestone": "baseline-ready", "schema_version": 1, "sequence": 15, "territory": "rollout-three" } - Milestone passedrollout-one
event #16
{ "elapsed_ms": 308, "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-one" } - Milestone passedrollout-three
event #17
{ "elapsed_ms": 310, "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" } - Milestone passedrollout-two
event #18
{ "elapsed_ms": 311, "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-two" } - Milestone evaluation startedrollout-one
event #19
{ "elapsed_ms": 311, "kind": "milestone_evaluation_started", "milestone": "uninterrupted-cutover", "schema_version": 1, "sequence": 19, "territory": "rollout-one" } - Milestone evaluation startedrollout-two
event #20
{ "elapsed_ms": 311, "kind": "milestone_evaluation_started", "milestone": "uninterrupted-cutover", "schema_version": 1, "sequence": 20, "territory": "rollout-two" } - Milestone evaluation startedrollout-three
event #21
{ "elapsed_ms": 311, "kind": "milestone_evaluation_started", "milestone": "uninterrupted-cutover", "schema_version": 1, "sequence": 21, "territory": "rollout-three" } - Milestone passedrollout-one
event #22
{ "elapsed_ms": 56317, "evidence": { "samples": 486, "uninterrupted": true, "version": "v2" }, "kind": "milestone_passed", "milestone": "uninterrupted-cutover", "points": 45, "schema_version": 1, "sequence": 22, "territory": "rollout-one" } - Milestone failedrollout-two
event #23
{ "category": "verification_failed", "detail": "public endpoint never cut over to v2", "elapsed_ms": 101464, "kind": "milestone_failed", "milestone": "uninterrupted-cutover", "retryable": true, "schema_version": 1, "sequence": 23, "territory": "rollout-two" } - Milestone failedrollout-three
event #24
{ "category": "verification_failed", "detail": "public endpoint never cut over to v2", "elapsed_ms": 101465, "kind": "milestone_failed", "milestone": "uninterrupted-cutover", "retryable": true, "schema_version": 1, "sequence": 24, "territory": "rollout-three" } - Milestone evaluation startedrollout-one
event #25
{ "elapsed_ms": 101465, "kind": "milestone_evaluation_started", "milestone": "write-new", "schema_version": 1, "sequence": 25, "territory": "rollout-one" } - Milestone passedrollout-one
event #26
{ "elapsed_ms": 101559, "evidence": { "record": "rollout-ea6c730ee55e8b5b", "value": "opaque-5e6986c52cc6064cce66e106" }, "kind": "milestone_passed", "milestone": "write-new", "points": 15, "schema_version": 1, "sequence": 26, "territory": "rollout-one" } - Milestone evaluation startedrollout-one
event #27
{ "elapsed_ms": 101559, "kind": "milestone_evaluation_started", "milestone": "v2-restart", "schema_version": 1, "sequence": 27, "territory": "rollout-one" } - Milestone passedrollout-one
event #28
{ "elapsed_ms": 102420, "evidence": { "record": "rollout-ea6c730ee55e8b5b", "v2_restart": true, "value": "opaque-5e6986c52cc6064cce66e106" }, "kind": "milestone_passed", "milestone": "v2-restart", "points": 15, "schema_version": 1, "sequence": 28, "territory": "rollout-one" } - Milestone evaluation startedrollout-one
event #29
{ "elapsed_ms": 102420, "kind": "milestone_evaluation_started", "milestone": "host-reboot", "schema_version": 1, "sequence": 29, "territory": "rollout-one" } - Milestone passedrollout-one
event #30
{ "elapsed_ms": 116145, "evidence": { "reboot": true, "record": "rollout-ea6c730ee55e8b5b", "value": "opaque-5e6986c52cc6064cce66e106", "version": "v2" }, "kind": "milestone_passed", "milestone": "host-reboot", "points": 20, "schema_version": 1, "sequence": 30, "territory": "rollout-one" } - Competitor state changedrollout-one
event #31
{ "elapsed_ms": 116145, "from": "verifying", "kind": "competitor_state_changed", "reason": "completion milestone passed", "schema_version": 1, "sequence": 31, "territory": "rollout-one", "to": "durable" } - Durable deployment completedrollout-one
event #32
{ "elapsed_ms": 116145, "kind": "durable_deployment_completed", "schema_version": 1, "sequence": 32, "territory": "rollout-one" } - Match state changed
event #33
{ "elapsed_ms": 116145, "from": "running", "kind": "match_state_changed", "schema_version": 1, "sequence": 33, "to": "finished" } - Match finished
event #34
{ "elapsed_ms": 116145, "kind": "match_finished", "reason": "first durable deployment", "schema_version": 1, "sequence": 34, "winner": "rollout-one" } - Usage chargeddeepseek
event #35
{ "agent": "deepseek", "cost_microusd": 572, "elapsed_ms": 116149, "input_tokens": 631, "kind": "usage_charged", "output_tokens": 305, "resource_units": 1, "schema_version": 1, "sequence": 35 } - Usage chargedglm
event #36
{ "agent": "glm", "cost_microusd": 33213, "elapsed_ms": 116149, "input_tokens": 9878, "kind": "usage_charged", "output_tokens": 5166, "resource_units": 1, "schema_version": 1, "sequence": 36 } - Usage chargedluna
event #37
{ "agent": "luna", "cost_microusd": 18060, "elapsed_ms": 116149, "input_tokens": 45, "kind": "usage_charged", "output_tokens": 8699, "resource_units": 1, "schema_version": 1, "sequence": 37 } - Post match drain started
event #38
{ "elapsed_ms": 116149, "kind": "post_match_drain_started", "pending_agents": 3, "schema_version": 1, "sequence": 38, "timeout_ms": 30000 } - Agent finisheddeepseek
event #39
{ "agent": "deepseek", "detail": "Claux reported rate_limited (exit status 11): openrouter API error (429 Too Many Requests) for model 'deepseek/deepseek-v4.1-flash': Provider returned error. Retry later or choose another model/provider", "elapsed_ms": 116149, "kind": "agent_finished", "schema_version": 1, "sequence": 39, "source": "provider", "success": false } - Usage chargeddeepseek
event #40
{ "agent": "deepseek", "cost_microusd": 0, "elapsed_ms": 116149, "input_tokens": 0, "kind": "usage_charged", "output_tokens": 0, "resource_units": 0, "schema_version": 1, "sequence": 40 } - Agent finishedluna
event #41
{ "agent": "luna", "detail": "Rollout completed and left running.\n\n- Implemented v2 at `/opt/rollout/v2.py`.\n- v2 listens on `127.0.0.1:8082`.\n- Atomically switched `/var/lib/rollout/upstream` from `8081` to `8082`.\n- Did not stop or restart `rollout-v1.service` or `rollout-proxy.service`; both remained active.\n- Verified public v2 health, version, PUT/GET, UTF-8 round-trip, 404 behavior, and existing customer records.\n- Existing records remain intact in `/var/lib/rollout/records.sqlite3`; SQLite integrity check passed.\n- `rollout-v2.service` and `rollout-proxy.service` are active and enabled for boot persistence.", "elapsed_ms": 116149, "kind": "agent_finished", "schema_version": 1, "sequence": 41, "source": "player", "success": true } - Usage chargedluna
event #42
{ "agent": "luna", "cost_microusd": 0, "elapsed_ms": 116149, "input_tokens": 0, "kind": "usage_charged", "output_tokens": 0, "resource_units": 0, "schema_version": 1, "sequence": 42 } - Usage chargedglm
event #43
{ "agent": "glm", "cost_microusd": 3789, "elapsed_ms": 116149, "input_tokens": 239, "kind": "usage_charged", "output_tokens": 360, "resource_units": 0, "schema_version": 1, "sequence": 43 } - Agent outracedglm
event #44
{ "agent": "glm", "elapsed_ms": 116149, "kind": "agent_outraced", "reason": "rollout-one reached durable first; build ended at the frozen clock", "schema_version": 1, "sequence": 44 } - Post match drain finished
event #45
{ "captured_agents": 2, "elapsed_ms": 116149, "kind": "post_match_drain_finished", "schema_version": 1, "sequence": 45, "terminated_agents": 1 }