Repository navigation
MTG farm volunteer client v26
Superseded by client-v27 (2026-10-09): one engine process per machine, the harness inside the engine jar, engine 2.0.15+f969e863353. The farm serves v26 no harness any more (its harness routes answer 410), so a fresh v26 install cannot finish Install Forge; a running v26 updates itself from its banner.
One-zip Windows volunteer client for the MTG sim farm. Unzip, double-click run-client.bat, enter the farm URL and your runner credential on the first-run page, click Add, pick your work, and go.
New in v26: the Forge 2.0.15 engine, and a harness that records who really cast each card.
- Engine
2.0.15+8e5de3bc7e8. This is upstream Forge 2.0.15 merged into the fork, plus the second batch of dead-card AI fixes (125 cards the AI used to never cast). Install Forge fetches it once the farm advertises it. - A stale engine jar is removed on install. Forge 2.0.15's jar has a different file name from 0bf85's, so an install over 0bf85 left both jars side by side, and Windows then picked the old one. An engine install now removes a differently named Forge jar before it moves anything in, so the engine a machine says it runs is the one it actually runs.
- The harness pin moves (build ee0fb48f). Each card row now carries
owner_castsandowner_first_cast_turn, so a card cast by an opponent who stole it is no longer credited to its owner. The harness also stops a game cleanly (exit 4) on an error that used to leave Forge hanging on an error dialog. A v25 client that updates re-fetches only the harness at its next Start. - Stopping a game kills the whole Java process tree. Before, a game stopped by a timeout could leave a Java process running in the background.
From v25: a worker row says how it ended. From v24: the 2.0.14+0bf85e6d53c engine row. From v23: the harness lets every AI decision finish, and Start syncs the harness pin. From v22: the 2.0.14+6747f05e908 engine row. From v21: the bundle is GPLv3 (LICENSE and NOTICE.txt travel in the zip). From v20: a stopped worker starts from its own row. From v19: a candidate own named derived card order. From v17: the 2.0.14+139b268b780 engine row. From v16: workers persist -- add, start, stop and delete are separate, and rows and their game counts survive a restart. From v12: the client updates itself.
Headless: farmrunner.py --mode backfill --decks REF[,REF...] [--scope within].
Ships Windows embeddable Python 3.12.10; the Forge engine (~200 MB) is downloaded on demand. Needs a farm that advertises active_engine on /hello (any farm since de63260) and accepts the owner-cast card keys (schema v10, live since 2026-10-04).
sha256(mtg-farm-client-v26.zip) = 2fe878448e96345912bd7972c39e67a1395787022ce5d1d9ff03aef5570eddb5