From 91c0b79ad1277c2808682e4dc5bc312b9c0ac8b0 Mon Sep 17 00:00:00 2001 From: Natalie Date: Fri, 26 Jun 2026 02:26:53 -0400 Subject: [PATCH] =?UTF-8?q?docs(@projects/@magic-civilization):=20?= =?UTF-8?q?=F0=9F=93=8B=20p3-25=20=E2=80=94=20record=20e2e=20proof=20+=20n?= =?UTF-8?q?o-regression=20verification=20(canonical=20GUT=20607/0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit p3-25 steps 1-5 verification recorded in the objective: - End-to-end: process_trade_phase forms+persists a real StrategicSwap → projected into view_json (steps 2-5 chain proven). - No-regression: release dylib rebuilt; canonical GUT gate engine/tests/unit/ → 617 tests, 607 passing, 0 failing; cargo mc-core/mc-state/mc-turn/mc-player-api green; workspace compiles incl. api-gdext dylib. - The 5 failures in a broader -ginclude_subdirs run are pre-existing non-canonical debt (stale v2 save fixtures in ffi/ vs the v3 loader from p2-72b; a stats-modal test; a cross-suite pollution cascade in test_audio_manager) — untouched by this work, flagged for a separate cleanup session. Co-Authored-By: Claude Opus 4.8 (1M context) --- ...ty-model-unify-headless-view-completeness.md | 17 +++++++++++++++++ .../games/age-of-dwarves/data/objectives.json | 12 ++++++------ 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/.project/objectives/p3-25-rail1-city-model-unify-headless-view-completeness.md b/.project/objectives/p3-25-rail1-city-model-unify-headless-view-completeness.md index 30bd277c..8756ff47 100644 --- a/.project/objectives/p3-25-rail1-city-model-unify-headless-view-completeness.md +++ b/.project/objectives/p3-25-rail1-city-model-unify-headless-view-completeness.md @@ -100,6 +100,23 @@ to `state.trade_ledger`, (d) projecting it all. ## Notes +**End-to-end proof (2026-06-26):** `process_trade_phase_forms_and_persists_strategic_swap` +(mc-turn) crafts two players with complementary owned-tile strategics → the full headless +chain forms a `StrategicSwap`, persists it to `state.trade_ledger`, and fans it onto both +players' `traded_strategics`; `projection_surfaces_trade_deals_from_ledger` then shows it +in `view_json`. So a headless player-adapter now sees territory + real trades entirely +from the simulator — steps 1-5 deliver the headless view-completeness goal. Step 6 (live +game adopting the unified `PlayerView`) remains a large separate follow-on. + +**No-regression verified (2026-06-26):** release dylib rebuilt (cargo clean reclaimed disk +mid-session) + canonical GUT gate `engine/tests/unit/` → **617 tests, 607 passing, 0 +failing** (10 pending). cargo across mc-core/mc-state/mc-turn/mc-player-api green; +workspace compiles incl. the api-gdext dylib crate. (A broader `-ginclude_subdirs` run +shows 5 failures in non-canonical `ffi/` + `integration/` dirs — stale **v2** save +fixtures vs the v3 loader from p2-72b, a stats-modal test, and a cross-suite pollution +cascade in `test_audio_manager` — all pre-existing and untouched by this work; flagged +separately.) + Created 2026-06-26 from the p3-23 follow-up thread. This is the keystone Rail-1 debt — it underlies "simulator provides everything" for the whole headless/view path, not just trades. Large + central (touches `GameState`, projection, `mc-turn`, the `GdGameState` diff --git a/public/games/age-of-dwarves/data/objectives.json b/public/games/age-of-dwarves/data/objectives.json index d4cd9fa9..045950fb 100644 --- a/public/games/age-of-dwarves/data/objectives.json +++ b/public/games/age-of-dwarves/data/objectives.json @@ -1,12 +1,12 @@ { - "generated_at": "2026-06-26T06:04:57Z", + "generated_at": "2026-06-26T06:26:53Z", "totals": { - "done": 296, - "stub": 0, - "missing": 0, - "in_progress": 0, - "oos": 31, "partial": 2, + "done": 296, + "missing": 0, + "oos": 31, + "stub": 0, + "in_progress": 0, "total": 329 }, "objectives": [