Docs: session log + roadmap — full Phase-1 remainder (windups, frames/FrameId, light-relevancy, gym scene)

Session 2026-07-15 continued: powered through the Phase-1 remainder per operator
direction. Log + roadmap Phase-1 status updated (500 EditMode green; deferred
items surfaced: underwater tuning, AbilityRef removal, CharacterId rename, L3/
gamma/rollback, ★ adversarial review).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-15 08:55:39 -07:00
parent d30d96952c
commit 78d4489699
2 changed files with 46 additions and 6 deletions
@@ -83,6 +83,42 @@ untouched — the SpawnEnemy op reuses the existing scalar `DebugCommandRequest`
- Reel-convergence / decoy-aggro / client-never-instantiate / cross-socket dispatch: structurally sound + self-
reviewed, but their behavioural confirmation is L3 (need the full netcode world), not L2.
## Continued — the full Phase-1 remainder (same session, operator: "do everything, don't defer, commit as you go")
After the milestone, the operator directed powering through ALL remaining Phase-1 items in one session. Shipped
(each L1 clean + suite green + committed):
- **Gym scene built, then RE-BASED on DevSandbox:** first a fresh minimal `GymSub` subscene (PlayerSpawner /
AbilityDatabase-with-9-abilities / physics+collision config / ProjectileSpawner / GymRoster, built by
duplicate-and-move of the proven singletons + GymTag). The from-scratch host had no dev UI and a name-collision
(host + subscene both "Gym") that made the operator Play the *subscene* → "no cameras". Fixed: renamed subscene →
`GymSub.unity` (GUID-stable); **host `Gym.unity` re-based on DevSandbox** (operator's call — inherits camera +
DebugOverlay + world), SubScene repointed to GymSub. **Operator note: DevSandbox/gym visuals should match the
future LANTERN look — a future improvement.**
- **Manual-aim windups (step 6, `8f099c32b`):** `WindupTicks` on the def; `AbilityFireSystem` resolves each socket
at `GetDataAtTick(serverTick WindupTicks)` — a pure fn of replicated data (§4/DB-6). 4 Sparks tuned.
- **Two-frame identity + FrameId (step 5 + §8, `342a39a54`):** `FrameId` written server-side; the 2 class-HUD
readers moved to it (AbilityRef fallback); per-frame gym loadouts via `ClassTraits.FrameLoadout` (Harpooner /
Bathynaut). Caught + fixed a MetaSeeding test regression (FrameId must be `AddComponent`, not `SetComponent` —
the minimal test prefab has no baked FrameId).
- **Light-as-territory relevancy prototype (step 8 ★, `aeb979f8d`):** `LightRelevancySystem` hides enemy ghosts
outside each player's lamp radius (SetIsIrrelevant, modelled on `RegionRelevancySystem`; the shared-set is cleared
only by RegionRelevancy, Light `[UpdateAfter]` it + only `TryAdd`s; gated on GymTag). Pure decision in
`LightRelevancyMath` (+3 tests). **500 EditMode green.**
**Deferred to focused/operator passes (surfaced, NOT silent):**
- **Underwater feel (step 7):** the substrate (AmbientAudio bed, WorldAtmosphere fog, AmbientMotion debris) all
EXISTS — §11 is a tuning pass needing eyes/ears, and the operator flagged underwater visuals as a future
improvement. Backlog: murk fog values, buoyant-decay presentation, hydrophone timbre.
- **AbilityRef/AbilityCooldown/EffectiveAbilityStats wholesale removal** + the **CharacterId → Bathynaut/Harpooner
rename** — risky refactors (woven through equip/class/meta/StatRecompute + tests) that "still work" via the
transition; a focused pass, not a marathon ram.
- **L3 / operator-eyes:** the gym Play (world-creation cycle check for this session's new [UpdateBefore/After]
edges + functional server==client + feel: reel yank / vortex pull / decoy aggro / **skinned-enemy animation** =
the A1 confirmation), the light-relevancy **gamma test**, the induced-rollback (NP-4) 2-instance check, the
windup client telegraph VFX, per-player lamp dim/bright, and the **★ adversarial netcode review** of the
relevancy + reel slices before they ship.
## Related
- [[Phase1_Combat_Gym_Build_Spec]] · [[DR-050_Lantern_Phase1_Combat_Design]] · [[Roadmap_Lantern_Slice]] (A1 gym
note) · [[2026-07-14_Lantern_Phase1_GroupA_Combat_Sockets]] · [[DR-023_Enemy_Animation_MonsterMash]]