From 59742674b8542467385a827c6372d7d7df4dd677 Mon Sep 17 00:00:00 2001 From: Natalie Date: Fri, 26 Jun 2026 19:42:32 -0400 Subject: [PATCH] =?UTF-8?q?docs(@projects/@magic-civilization):=20?= =?UTF-8?q?=E2=9C=85=20p3-26=20B3=20=E2=80=94=20improvement=20subsystem=20?= =?UTF-8?q?DONE=20(build=20+=20yield=20live=20headless)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Full chain wired + tested: BuildImprovement → pending (build_turns) → build-tick → city_improvements → process_improvement_yields. State (cb451832e) + logic (f4e9d0211) + FFI/harness (5d12b4bbe). Co-Authored-By: Claude Opus 4.8 (1M context) --- .project/objectives/p3-26-complete-headless-simulator.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.project/objectives/p3-26-complete-headless-simulator.md b/.project/objectives/p3-26-complete-headless-simulator.md index ae6692ac..b9e7973b 100644 --- a/.project/objectives/p3-26-complete-headless-simulator.md +++ b/.project/objectives/p3-26-complete-headless-simulator.md @@ -67,7 +67,7 @@ PvP/siege/lair combat, climate physics+weather+effects, 3 event categories. **Backlog (live-only → migrate into `mc-turn`):** - [x] **B1 Happiness + Golden Age** ✅ (7993ba7ca — happiness_phase.rs, wired post-economy-loop) — `mc-happiness` exists; tick per-turn (golden-age meter, anarchy). - [x] **B2 Unit + city healing** ✅ (7993ba7ca — healing.rs, wired post-climate) — HP regen (in-territory / fortified / city heal). -- [ ] **B3 Improvements subsystem (FULLY ABSENT headless — verified 2026-06-26, not just the build-tick)**: +- [x] **B3 Improvements subsystem — DONE 2026-06-26** ✅ (cf18e5768 state · ffe5fa0fb logic · 63362f9c4 FFI/harness). Full chain live: BuildImprovement → pending(build_turns) → build-tick → city_improvements → process_improvement_yields. Was fully absent; now state+logic+boot all wired+tested. Original finding below: - `TurnProcessor::improvement_yield_table` is on the fresh-per-turn processor and is NEVER populated by `apply_end_turn` (only set manually in unit tests) → `process_improvement_yields` no-ops in real play.