This commit is contained in:
2026-07-04 16:57:40 -07:00
parent 16e396841e
commit c6b7890212
47 changed files with 1713 additions and 209 deletions
@@ -0,0 +1,54 @@
---
title: Demo-Readiness Polish Pass — redesign closeout review + full four-area polish
date: 2026-07-04
tags: [session, polish, demo, review, netcode, hud, audio, onboarding, dots-dev]
permalink: gamevault/07-sessions/2026/2026-07-04-demo-polish-pass
---
# Demo-Readiness Polish Pass (/dots-dev, ultracode)
Operator brief: *"overall complete polish pass, ready for a game demo"* → intake locked: hands-off public demo,
standalone Windows co-op build, finish-the-redesign baseline, all four polish areas. Full decisions + finding
table: [[DR-044_Expedition_Redesign_Shipped_Demo_Polish]].
## How it went
1. **Ground fan-out** (`wf_d3f1890a-8ca`, 3 read-only agents) — headline: the 07-02 log said "steps 111" but
`Run Re-Do` already contained 12a/12b/13/14. Only the post-impl review + doc bookend were missing.
2. **Baseline verify** — 452/452 EditMode + clean netcode Play boot (born-correct Staging on both worlds).
3. **Post-impl adversarial review** (`wf_38ef58c2-8bd`, 3 lenses → per-finding critics, 15 agents, 0 failures)
— 7 confirmed / 3 refuted. All 7 fixed same-session + pinned (`RunRosterRegressionTests`,
`TerminalCampaignRollTests`); the two contradictory critic verdicts on the respawn stray line were
adjudicated by reading the code (artifact confirmed, deleted).
4. **Stability slice** — ConnectionWatchdog/SessionEnd/menu-reason plumbing; mode-aware outcome banner;
terminal-save roll-forward; save-before-restart.
5. **UI slice** — READY panel, drawn route map (Painter2D DAG + client path trace), onboarding re-author
(the dead at-base Mine step was a first-run soft-lock), How-to-Play rewrite, DOWNED countdown.
6. **Feel/audio slice** — 4-layer phase-locked procedural music, Fabricator can-die parity, core-hit alarm,
landing grace, slash-arc reach fold (local+remote), Warrior cone VFX, boss bar+roar, rarity borders,
depth dots, outcome flourish, shop pips, core-crystal tint system.
7. **Sweep** — build scenes → MainMenu+Game only; `com.unity.ai.assistant` removed; corrupt whitespace-only
`Simulation/Meta.meta` (committed in Run Re-Do; surfaced on the package re-resolve) deleted → regenerated.
## Validation
456/456 EditMode · repeated Play smokes (launch conscription sampled tick-by-tick; wipe-abort self-validated;
zero exceptions) · L3 screenshots: staging READY panel + meta shop, route map with lit path + depth dots,
rarity boon modal. The route-map/boon states were forced via the disable-the-driver idiom
(`ResolveSystemStateRef(handle).Enabled = false` on `RunDirectorSystem`, then write `RunInfo` server-side).
## Gotchas worth remembering
- **A session log can lag the commit** — ground the working tree, not the log's "Remaining" section.
- **Two critics can contradict each other** (one refuted, one confirmed the same stray line) — adjudicate at
the source before acting.
- **A committed `.meta` can be whitespace-corrupt and stay latent** until a package re-resolve forces a full
reimport ("GUID cannot be extracted"); Unity's own advice applies — delete it, let it regenerate (folder
GUIDs are unreferenced; script GUIDs live in their own metas).
- **`CombatFeedbackSystem` already owns the `AbilityCooldown` fire-edge latch** (muzzle flash) — a second
consumer needs its OWN latch field or it never sees the edge (CS0102 caught the collision).
- The idle-player death→respawn→wipe-abort arc is the system working, not a bug — but it exposed the missing
landing grace.
## Operator-side next steps
Standalone build (`ProjectM/Build/Windows Player`) + 2-instance smoke: `-mhost` / `-mjoin 127.0.0.1`, then kill
the host and expect `[ConnectionWatchdog] CONNECTION LOST…` in the joiner log (that line also proves the join
connected); a dead-IP join should log the 12 s timeout. Onboarding fun-gate via Settings → Force Each Launch.
Explicitly deferred to operator art curation: HudTheme structure icons, projectile/pickup placeholder meshes.