docs: M1.5 "Indoor world feels right" LANDED 2026-07-10 — advance to M2

User-gated the full dungeon round-trip (enter via portal -> navigate rooms ->
exit to the outdoor world), completing the #138 acceptance. Both M1.5 demo
halves are now confirmed: building/cellar (prior sessions) + full dungeon
round-trip (2026-07-10). Milestone-crossing artifacts per the milestones-doc
discipline:

- Pinned M1.5 landing writeup + flipped header to  LANDED; caveats explicit
  (#145-residual far-town teleport-OUT + #116 slide-response carried as
  post-M1.5 follow-ups, NOT blockers).
- Freeze list applied: all M1.5 phases (indoor render Option A, A6/A6.P4
  physics, A7 lighting, full Phase G.3 dungeon support) now frozen per rule 2.
- M2 "Kill a drudge" flipped to ACTIVE; first ports = CombatMath.ComputeDamage
  (F.3) + inventory panel (F.2) + combat anim (L.1c).
- CLAUDE.md "currently working toward" advanced to M2.
- #138 closed (user gate).

No demo video (per the user's standing preference).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-07-10 09:58:48 +02:00
parent 113569b482
commit 9a772d2b2a
3 changed files with 56 additions and 32 deletions

View file

@ -2,19 +2,16 @@
**Status:** Living document. Created 2026-05-12.
**Sits above:** [`docs/plans/2026-04-11-roadmap.md`](2026-04-11-roadmap.md) (the strategic phase index).
**Currently working toward:** **M1.5 — Indoor world feels right.** The
building/cellar demo is DONE + user-gated. M1.5 was EXTENDED 2026-06-13 to
include **dungeon support (full Phase G.3)** — dungeons initially didn't
work at all (issue #133), but that premise was refuted at design time
(commit `90786c19`: the dungeon LandBlock is flat-terrain and streams via
the existing pipeline), and G.3 has since **SHIPPED**: dungeons render,
stream, teleport-in, collide, light, and their doors work — each piece
individually user-gated (#133/#137/#95/#79/#93/#80 all CLOSED). M1.5's
dungeon-demo scenario is functionally met; M1.5 stays 🔵 ACTIVE /
not-yet-landed, awaiting ONE recorded end-to-end dungeon round-trip user
gate. The sole remaining live-code residual is the far-town teleport-OUT
arrival cascade (**#145-residual, REOPENED** — capture-harness-first). M2
stays deferred.
**Currently working toward:** **M2 — "Kill a drudge."** **M1.5 — Indoor
world feels right LANDED 2026-07-10** (pinned writeup in the M1.5 section
below): the building/cellar demo (prior sessions) AND the full dungeon
round-trip (enter via portal → navigate → exit to the outdoor world) are
both user-gated. Dungeon support (full Phase G.3) shipped — render / stream
/ teleport-in / collide / light / doors, each individually gated
(#133/#137/#95/#79/#93/#80 CLOSED; #138 closed by the round-trip gate).
Carried forward as post-M1.5 follow-ups (NOT M1.5 blockers): the far-town
teleport-OUT arrival cascade (**#145-residual, REOPENED** —
capture-harness-first) and #116 slide-response feel-debt.
---
@ -197,7 +194,26 @@ close range and the player sees "You pick up the X." in chat.
---
### M1.5 — "Indoor world feels right" — 🔵 ACTIVE (building/cellar demo DONE; EXTENDED 2026-06-13 to include dungeon support / Phase G.3)
### M1.5 — "Indoor world feels right" — ✅ LANDED 2026-07-10 (building/cellar demo + full dungeon round-trip both user-gated; EXTENDED 2026-06-13 to include dungeon support / Phase G.3)
**✅ M1.5 LANDED 2026-07-10.** The indoor world reads as solid end-to-end.
A player can walk into a building and climb a multi-floor inn without
sling-out or wall-clip; descend a cottage cellar and ascend without falling
through; and — the piece that extended this milestone — **enter a dungeon
via portal, navigate its rooms, and portal back out to the outdoor world**,
with walls blocking, lighting reading correctly, and no position desync.
Both demo halves are user-gated: the building/cellar demo across the 2026-06
sessions, and the full dungeon round-trip (enter + navigate re-confirmed,
then the exit round-trip confirmed) on 2026-07-10. Dungeon support (full
Phase G.3) shipped with every sub-piece individually gated: teleport-in
(#133), collision (#137), portal-graph visibility (#95), doors (#187/#188),
lighting (#79/#93/#80). The indoor-physics workarounds (#90 stickiness +
`TryFindIndoorWalkablePlane` synthesis) were removed by A6.P4 — no duct-tape
left. **Explicit caveats carried forward (NOT M1.5 blockers — tracked as
their own follow-ups):** the far-town teleport-OUT arrival cascade
(#145-residual, REOPENED — a narrow far-teleport streaming edge case,
capture-harness-first) and #116 slide-response feel-debt. Next: **M2 —
"Kill a drudge."**
**EXTENDED 2026-06-13 — dungeons pulled into M1.5 scope; G.3 SHIPPED.** The
building/cellar demo (below) is DONE + user-gated. Attempting the dungeon
@ -381,10 +397,19 @@ patch.
- **`TryFindIndoorWalkablePlane`** — synthesis workaround removal (Bug A's original goal, finally unblocked; A6.P4)
**Frozen phases during M1.5:** all M0 + M1 phases stay frozen. Plus
specifically the recently-shipped A4 + #89 + #91 + #92 (today's work) — those
specifically the recently-shipped A4 + #89 + #91 + #92 — those
land in main as the M1.5 baseline and shouldn't be revisited except as part
of A6.P4 removal of the workarounds.
**Frozen as of M1.5 landing (2026-07-10):** all M1.5 phases are now frozen
per rule 2 — the indoor render port (Option A `DrawInside(viewer_cell)`),
the A6 physics/membership family + A6.P4 per-cell shadow architecture, A7
indoor/dungeon lighting, and **full Phase G.3 dungeon support** (streaming
collapse/expand, teleport in/out, dungeon collision/lighting/doors). No
rework until M7 polish. Exempt from the freeze as still-open bugs (rule 2's
"actively broken" clause): #145-residual (far-town teleport-OUT cascade) and
#116 (slide-response) — these are tracked follow-ups, not frozen work.
**Estimated timeline:** 35 weeks calendar (1726 days focused work). Bigger
than a normal milestone because lighting is open-ended (less existing
diagnostic infrastructure than physics). Could be shorter if the cdb
@ -401,7 +426,7 @@ unblocks that).
---
### M2 — "Kill a drudge" — ⏸ DEFERRED until M1.5 lands (incl. dungeons)
### M2 — "Kill a drudge" — 🔵 ACTIVE (M1.5 landed 2026-07-10)
**Demo scenario:** Equip a sword. Walk to a drudge. Swing. See "You hit
Drudge for 12 slashing damage (87%)" in chat. Watch the swing animation