diff --git a/MEMORY.md b/MEMORY.md index 99d690f..e567b20 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -183,6 +183,13 @@ Session memory for durable decisions, state, and gotchas. Keep concise, remove o 0.9.3 UI polish, 0.9.4 NPC visual optimization and 0.9.5 texture/material pass are complete and in `DONE.md`. 0.9.6 integration and 0.10.0 release work are next. The current source version is 0.9.6. +- **0.9.6 integration (2026-11-03):** no gameplay/content changes. A clean + detached worktree at `f5b8ef2` rebuilt Linux/Windows/macOS/Web/HQ without the + dirty tree's ignored `tmp/`/`build/` payload; the in-repo build was 1.6–3.1 GB + per artifact because those folders were packed, so always build release + artifacts from a clean checkout/worktree. Verification: 263/263 tests, + 101/101 Python, 14 smokes, 24-NPC 6.90 ms / 168 meshes / 131,616 triangles, + gallery 21/0, screen judge 21/21, realism judge overall 2.1 / gap 0.291. - **Release v0.9.5 (2026-11-02):** commit `4bc6390` tagged `v0.9.5`; Gitea Actions run 922 passed checks and the full build and published seven assets (Linux, Windows, macOS, NSIS setup, AppImage, Web, Desktop HQ). Release page: diff --git a/TODO.md b/TODO.md index 2148122..69f24e5 100644 --- a/TODO.md +++ b/TODO.md @@ -66,8 +66,13 @@ target paths and leave a clean release-candidate handoff. 14 smokes green: audio, campaign, crowd, emergency, focus/radial, movement, NPC budget, PLAN verbs, props, scenario content, session shell, timeline, tutorial and UI flows. Campaign/tutorial used isolated `XDG_DATA_HOME`.) -- [-] Re-run the 24-NPC budget smoke and record frame time, mesh count and any - texture-memory change; check Web and Desktop HQ if available. (claimed; budget measured, builds next) +- [x] Re-run the 24-NPC budget smoke and record frame time, mesh count and any + texture-memory change; check Web and Desktop HQ if available. (24 avatars, + 168 meshes, 131,616 triangles, 6.90 ms of 50 ms headless; NPC maps remain + 0.48 MB. A clean detached worktree at `f5b8ef2` built Linux/Windows/macOS/ + Web/HQ (`161.5/197.1/148.0/97.8/241.5 MB`); the Web zip has index.html, + wasm and pck, the HQ zip has `override.cfg`, and the HQ binary launches + headless with the Forward+ override.) - [x] Verify save/campaign/tutorial behavior is unchanged by the visual/UI patches. (Persistence/session tests remain in the 263-test suite; campaign and tutorial smokes passed with isolated `XDG_DATA_HOME`.) @@ -98,10 +103,13 @@ target paths and leave a clean release-candidate handoff. ### Release-candidate handoff -- [ ] Update README, architecture, development status, changelog and TODO with the - final patch-level results and any remaining gaps. -- [ ] Tag/version or otherwise freeze `0.9.6` as the integration checkpoint before - the `0.10.0` release candidate. +- [x] Update README, architecture, development status, changelog and TODO with the + final patch-level results and any remaining gaps. (README/PLAN/architecture + now point at 0.9.6; the changelog and development status record the + integration build, performance numbers, judge results and the clean-worktree + export rule; `docs/RELEASING.md` documents the ignored-folder trap.) +- [-] Tag/version or otherwise freeze `0.9.6` as the integration checkpoint before + the `0.10.0` release candidate. (claimed; committing and tagging) - [ ] Exit: combined build is functionally green, visually reviewed, performance measured and ready for the 0.10.0 content-lock/playtest phase. diff --git a/docs/RELEASING.md b/docs/RELEASING.md index 53bb4ad..57ea898 100644 --- a/docs/RELEASING.md +++ b/docs/RELEASING.md @@ -103,6 +103,11 @@ The optional Desktop HQ zip is assembled by `tools/build_releases.sh` from `packaging/desktop_hq/`; keep `override.cfg` next to the extracted executable. It is not part of the default Compatibility/Web build. +Always run the release build from a clean checkout or detached worktree. Godot +can pack files from ignored `tmp/` and old `build/` folders into the PCK; the +0.9.6 dirty-tree build produced 1.6–3.1 GB artifacts, while the clean worktree +produced the expected ~160–240 MB packages. + Locally you can build the AppImage with `bash packaging/linux/build_appimage.sh `; the NSIS installer requires `makensis` (covered by CI). diff --git a/docs/asset-tooling.md b/docs/asset-tooling.md index 94c7a3c..8cf5f98 100644 --- a/docs/asset-tooling.md +++ b/docs/asset-tooling.md @@ -268,6 +268,19 @@ photoreal renderer. The 0.9.5 before/after close-up sheet is the texture-adoption run itself was the earlier 0.8-style candidate comparison, and its report remains local/gitignored. +For the 0.9.6 integration checkpoint the same judge was pinned to +`z-ai/glm-5.3-flash` and run once per shot on the 10-shot set: mean overall 2.1, +lighting 2.4, materials 2.1, texture 1.7, backdrop 2.3, characters 1.8, Pillow +gap 0.291. No `review` verdicts were produced by the screen judge, so there was +no manual layout verdict to convert into a fix; the remaining realism comments +are the accepted stylized gaps. + +Build release artifacts from a clean checkout or detached worktree. A normal +working tree may contain ignored `tmp/` captures and old `build/` artifacts, and +Godot can pack enough of those into exports to inflate a 0.9.6 package from +~160 MB to 1.6–3.1 GB. The 0.9.6 clean worktree produced 161.5 MB Linux, +197.1 MB Windows, 148.0 MB macOS, 97.8 MB Web and 241.5 MB Desktop HQ. + The Forward+ A/B compared the Compatibility entrance with the optional Desktop HQ preset. The gear-fit run checked the sunglasses, bag and helmet against measured head/skirt bounds with `python3 tools/blender_assets.py fit`; it also fixed the diff --git a/docs/development-status.md b/docs/development-status.md index eb010d8..6c54fd7 100644 --- a/docs/development-status.md +++ b/docs/development-status.md @@ -42,6 +42,7 @@ Implemented so far: - NPC neck/shoulder transition (0.9.4 work): the body graph now uses a fuller neck base, a slightly tapered neck top and a lower shoulder root, giving the head/neck/shoulder line a trapezius slope instead of a thin post. The full character library was rebuilt with a final degenerate-face cleanup; the baseline comparison is `sheet_npc_baseline_compare-body.jpg`. - NPC face-depth pass (0.9.4 work): sclera are recessed and capped by a thin upper lid, and the separate jaw/cheek spheres are replaced by a chin plate and cheekbones sculpted into the head mesh. The full library was rebuilt; the comparison is `sheet_npc_baseline_compare-face.jpg`. - NPC torso/hip transition (0.9.4 work): the pelvis and chest are slightly wider than the waist, giving shirts and jackets a readable taper into the hips without changing the build multipliers or the skeleton. The comparison is `sheet_npc_baseline_compare-torso.jpg`. +- Integration checkpoint (0.9.6 work): the clean worktree at `f5b8ef2` rebuilt all five release packages and the Desktop HQ zip without ignored `tmp/`/`build/` content (Linux 161.5 MB, Windows 197.1 MB, macOS 148.0 MB, Web 97.8 MB, HQ 241.5 MB). The Web zip contains `index.html`, `index.wasm` and `index.pck`; the HQ zip contains `override.cfg` and launches headless with the Forward+ override. Current verification: Godot 263/263, Python 101/101, 14 smokes green, 24-NPC budget 6.90 ms / 168 meshes / 131,616 triangles, gallery 21 good / 0 bad, screen judge 21/21 match with 0 review/diff, and a pinned realism judge (`z-ai/glm-5.3-flash`, one pass per shot) at mean overall 2.1 and Pillow gap 0.291. No new gameplay or content changes. - Release v0.9.5 (2026-11-02): the tagged commit `4bc6390` passed Gitea Actions run 922 (checks + full build) and published seven artifacts (Linux, Windows, macOS, NSIS setup, AppImage, Web and Desktop HQ). Release page: . - Release v0.9.4 (2026-11-02): the tagged commit `a57b86c` passed the Gitea checks and full build and published seven artifacts (Linux, Windows, macOS, NSIS setup, AppImage, Web and Desktop HQ). Release page: . - Environment texture pass (0.9.5 work): `capture_realism.gd` now has hidden-HUD `surfaces`/`surfaces_joke` close-up stages. The Walk of Fame band uses the paver texture as dark terrazzo, the neighbour awning keeps its cream stripe, and the skyline shader blends its lower 42 m toward a per-phase haze colour. Brick, asphalt, limestone and paver UV scales/profiles passed without replacement.