Every phase, verified in live games
“Code written” isn't done — “measured and checked in real games” is. The evidence for every item below comes from live tests on a 1.27 test instance.
- P0
Fast lane + SDK facade
DoneEach client owns a lock-free lane, executed in batches inside the game thread's event dispatch; public facade Game + Bot; new directory layout.
Acceptance Results match the old channel item by item; latency and throughput under concurrency; example bots run end to end.
Verification 30/30 identical6-process concurrent median 67 ms → 0.06 msThroughput 88 → 3000 calls/s - P1
Semantic commands + receipts
DoneMove, attack, gather, build, train, cast, learn skills, revive, use items, buy… each with a receipt and a reason code; the SDK facade uses only these.
Acceptance All live verification scripts pass: every kind of command has been issued in a real game and its effect read back.
Live check 41/41 (later expanded to 73/73)15 opcodes + receipts - P2
Real-time information layer
DonePush-based world state + trees + event stream: mana, cooldowns, inventory, buffs and current target are all in the snapshot, and items no longer go through the log.
Acceptance Zero game-thread calls to read this information; reconciled unit by unit against the old snapshot; no events lost over a full game.
Per-unit reconciliation 112/1120 events lost per gameOne capture 11.8 → 0.58 ms - P3
Reference brain migration
DoneThe reference brain, reflex layer, console, bubbles and director all moved to W3P; map block, engine-level damage / kill events, camera and HUD semantic commands.
Acceptance All live checks pass; the reference brain has 0 task errors over a full game, and the 4 reflex-layer modules have 0 errors.
Live check 72/72Decision cycle 0.15~0.56 s → 0.02~0.07 s⏳ ≥ 50-game win-rate comparison pending - P5
Permissions and views
DoneLane roles player / observer; per-unit visibility mask; SDK fair mode and enemy memory.
Acceptance Observer commands are rejected, and a player can't command other players' units; fair mode sees only its own vision.
Role isolation passed liveFair mode 4/4 - P5+
Pro capabilities
DoneProduction table and progress, day/night, combat stats and counters, ground pathfinding, Shift-queue / paths / chained builds / cancel / attack ground, batched commands, per-command execution time; bot manual, pro strategy cookbook, four examples.
Acceptance Every item has offline tests + live checks.
Production 12/12Queued commands 7/7Combat stats 4/4Pathfinding 4/4micro_bot 3023 commands in 5 min with 0 errors - EX
Gameplay extensions
DoneCanvas (runtime-drawn text boxes, panels, progress bars, images, terrain-hugging circles and routes; safe in multiplayer); JASS channel (1291 functions called by name from the Farsight console, command line, HTTP and Python); RPG companion framework (four modes; follow / assist / heal; chat commands, portrait dialogue, lines from a local LLM); reading unit names from custom maps; AI schemes (switch, export, import, trust, results).
Acceptance Run end to end in live games on RPG maps on a test instance: canvas per-frame cost and unit following; JASS functions checked one by one for their effects; the companion follows, assists and retreats for a whole game and keeps following after being revived; switching schemes mid-game to take over the current game.
Canvas with 9 elements 0.27~0.34 ms per frameJASS channel 18/1894 functions checked one by one for effectsUnit names read on 37 of 38 RPG maps - EX+
UI & input · mods · gateway · MCP
DoneUI & input (drawn buttons and choice cards are clickable; hotkeys, ground clicks, the ground point under the cursor, local selection; drawn under the mouse cursor); event coverage filled in (spell casts, players leaving, selection changes, screen messages and full chat text, leaving the game); gameplay mods (scheme type mod, with two examples: Hero Roguelike and Endless Defense); gateway (WebSocket / JSON, three roles dev / player / observer, a JS client and browser demo page); MCP server (10 tools).
Acceptance Checked item by item in real games: clicking drawn buttons, pressing hotkeys, clicking the ground, casting spells, chat, defeating the computer player, leaving the game; the gateway and MCP called one by one against a live game; the key flows of both mods run in live games; MCP actually hooked up in Claude Code.
UI & input 16/16Gateway + MCP 16/1610 tools live in Claude CodeButtons drawn under the mouse cursor - v1
Public release
Up nextRuntime (1.27) + Python SDK + protocol docs + reference brain + four examples + two gameplay mods + gateway and MCP server + Farsight console, director and bubbles + all docs, released together.
Acceptance All tests pass; all live checks pass; the pre-release checklist is completed item by item.
- P4
Multi-version support
PlannedPick a profile (symbol table) per game version → signature-scan fallback → startup self-check → capability list; validated on a second version.
Acceptance A capability matrix is produced automatically on the second version, and verified capabilities keep working.
- P6
Arena
PlannedReferee process + two slots; vision filtering, ownership checks, ticks on game time, replayable records. The WebSocket / JSON gateway is already built; what's missing is a referee everyone trusts.
Acceptance Two external bots play each other in the same game until there's a winner.
Known gaps
- Win-rate comparison before and after the reference brain migration (≥ 50 games, same version)
- Capability circuit breaker: a capability that keeps failing → marked unavailable, an event fires, other capabilities keep working
- Per-instance, rolling runtime log files
- Programmatic win/loss detection (Arena foundation experiment 4)
- Scheme website: one-click upload from Farsight, download and install from the site, win rates aggregated by version
- Hook the companion up to full chat text (the runtime can already read what the player types), for real free-form conversation
- A sync channel for multiplayer games: gameplay that changes the world (spawning units, changing stats, gameplay mods) is single-player only for now