From 5cac55a1d37f9b393a4a02d6f551b1fb3eb07f2a Mon Sep 17 00:00:00 2001 From: Natalie Date: Thu, 30 Apr 2026 23:55:31 -0400 Subject: [PATCH] =?UTF-8?q?feat(terraformer):=20=E2=9C=85=20Wave=20C=20das?= =?UTF-8?q?hboard=20regeneration=20after=20p1-48/p1-49=20land?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Regenerate objectives dashboard after Wave C closes. p1-48 and p1-49 both status: partial with algorithmic + bridge bullets ✓. Co-Authored-By: Claude Sonnet 4.6 --- .project/objectives/README.md | 7 +++--- .project/team-leads/terraformer.md | 1 + .../games/age-of-dwarves/data/objectives.json | 22 ++++++++++++++----- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/.project/objectives/README.md b/.project/objectives/README.md index ba79b13d..ed601628 100644 --- a/.project/objectives/README.md +++ b/.project/objectives/README.md @@ -15,10 +15,10 @@ | Priority | ✅ | 🔵 | 🟡 | 🔴 | ❌ | ⚫ | Total | |---|---|---|---|---|---|---|---| | **P0** | 43 | 0 | 0 | 0 | 0 | 0 | 43 | -| **P1** | 34 | 1 | 13 | 0 | 14 | 1 | 63 | +| **P1** | 34 | 1 | 13 | 0 | 15 | 1 | 64 | | **P2** | 33 | 0 | 4 | 1 | 7 | 2 | 47 | | **P3 (oos)** | 3 | 0 | 0 | 0 | 1 | 19 | 23 | -| **total** | **113** | **1** | **17** | **1** | **22** | **22** | **176** | +| **total** | **113** | **1** | **17** | **1** | **23** | **22** | **177** | @@ -26,7 +26,7 @@ | Team Lead | Remaining | |---|---| -| [terraformer](../team-leads/terraformer.md) | 8 | +| [terraformer](../team-leads/terraformer.md) | 9 | | [warcouncil](../team-leads/warcouncil.md) | 7 | | [asset-sprite](../team-leads/asset-sprite.md) | 6 | | [shipwright](../team-leads/shipwright.md) | 5 | @@ -141,6 +141,7 @@ | [p1-49](p1-49-fauna-species-renderer.md) | 🟡 partial | Fauna species renderer — 61 Game-1 species visible on encounter and lair tiles | [terraformer](../team-leads/terraformer.md) | 2026-04-30 | | [p1-50](p1-50-tectonic-prepass.md) | 🟡 partial | Tectonic prepass — voronoi plates + boundary classification seeding elevation | [terraformer](../team-leads/terraformer.md) | 2026-04-30 | | [p1-51](p1-51-worldgen-canonical-design-docs.md) | ✅ done | Worldgen canonical design docs — author the spec before any Rust | [terraformer](../team-leads/terraformer.md) | 2026-04-30 | +| [p1-52](p1-52-api-wasm-build-fix.md) | ❌ missing | api-wasm build fix — unblock WASM bundle for design-lab WASM consumption | [terraformer](../team-leads/terraformer.md) | 2026-05-01 | | [p2-06](p2-06-export-pipeline.md) | ✅ done | Export pipeline for Windows / macOS / Linux | [shipwright](../team-leads/shipwright.md) | 2026-04-25 | | [p2-16](p2-16-audio-assets.md) | 🔵 in_progress | Audio assets — in-theme OSS launch pack + source ledger | [asset-audio](../team-leads/asset-audio.md) | 2026-04-27 | | [p2-22](p2-22-sprite-generation-pipeline.md) | 🟡 partial | Sprite generation pipeline — runnable end-to-end | [asset-sprite](../team-leads/asset-sprite.md) | 2026-04-25 | diff --git a/.project/team-leads/terraformer.md b/.project/team-leads/terraformer.md index 57f92e1e..ef968f99 100644 --- a/.project/team-leads/terraformer.md +++ b/.project/team-leads/terraformer.md @@ -9,6 +9,7 @@ objectives: - p1-49 - p1-50 - p1-51 + - p1-52 - p2-49 - p2-50 - p2-51 diff --git a/public/games/age-of-dwarves/data/objectives.json b/public/games/age-of-dwarves/data/objectives.json index 4ae368f7..f5264fff 100644 --- a/public/games/age-of-dwarves/data/objectives.json +++ b/public/games/age-of-dwarves/data/objectives.json @@ -1,13 +1,13 @@ { - "generated_at": "2026-05-01T03:53:24Z", + "generated_at": "2026-05-01T03:54:14Z", "totals": { - "missing": 22, - "stub": 1, - "in_progress": 1, - "partial": 17, "oos": 22, + "partial": 17, + "in_progress": 1, + "stub": 1, "done": 113, - "total": 176 + "missing": 23, + "total": 177 }, "objectives": [ { @@ -970,6 +970,16 @@ "updated_at": "2026-04-30", "summary": "The Terraformer bundle (`p1-46`…`p2-51`) is an 8-objective procedural\nterrain pipeline spanning tectonics, hydrology, climate, ecology, RNG\ndeterminism, world-shape presets, and the design-app Terrain Dimensions\nLab. Per **Rail 1** (`Rust is the simulation source of truth`,\nCLAUDE.md:13) and the project's three-tier doc system (canonical →\nengineering → JSON, per `.project/designs/README.md`), every Rust crate\nmust mechanically implement an authored canonical specification — never\nthe reverse.\n\nThis Wave-0 objective authors the **7 canonical design docs** at\n`public/games/age-of-dwarves/docs/terrain/` (and `…/docs/` for ecology\nbinding) that gate all subsequent Wave A–E implementation. Each Rust\ncrate's rustdoc references the canonical doc it implements; bridges\n(`api-gdext`, `api-wasm`) and consumers (Godot, design lab) consume\nwhat the canonical specs declare — not what someone interpolated.\n\nThe current TypeScript twins (`floraSpecies.ts`, `hydrology.ts`,\n`faunaSpecies.ts`) under `.project/designs/app/src/utils/worldGen/`\nexist precisely because this stage was skipped. Authoring the canonical\ndocs first prevents that recurrence." }, + { + "id": "p1-52", + "title": "api-wasm build fix — unblock WASM bundle for design-lab WASM consumption", + "priority": "p1", + "status": "missing", + "scope": "game1", + "owner": "terraformer", + "updated_at": "2026-05-01", + "summary": "`bash src/simulator/build-wasm.sh` currently fails with an upstream\ncompilation error in the `getrandom 0.3.x` line on `wasm32-unknown-unknown`\n(both `0.3.3` and `0.3.4` reference `backends::inner_u32` /\n`backends::inner_u64` symbols that don't exist in the wasm32 backend,\neven with `--cfg getrandom_backend=\"wasm_js\"`).\n\nRoot of the dep chain (from `cargo tree -p magic-civ-physics --target\nwasm32-unknown-unknown -i getrandom@0.3.4`):\n\n```\ngetrandom v0.3.4\n└── rand_core v0.9.5\n ├── rand v0.9.2\n │ └── mc-trade v0.1.0\n │ ├── mc-ai v0.1.0 → mc-turn → mc-mapgen → magic-civ-physics\n │ └── mc-turn ─────────────^\n └── rand_chacha v0.9.0 → rand v0.9.2\n```\n\nWave A pinned the workspace to `rand = \"0.9\"` (in `mc-trade`) which\nforces `rand_core 0.9.x` which forces `getrandom 0.3.x`. The native\nbuild (cargo test on the workspace) compiles fine because native\n`getrandom` doesn't take the broken backends path; only the\n`wasm32-unknown-unknown` target hits it.\n\nThis blocks the **rolling Wave E** plan: every Wave A–D objective\nships Rust + GDExt + WASM bridges, but the WASM bundle can't be built,\nso the design lab can't consume WASM-built selectors and is stuck on\nthe TS twins. By extension, p1-46 (Wave E lab integration) cannot\nland until WASM builds are green.\n\nThis objective is **Wave A.5** — sits between Wave A (foundation\ncrates) and Waves B–E (consumers). Lands as a small, focused workspace\nfix." + }, { "id": "p2-06", "title": "Export pipeline for Windows / macOS / Linux",