docs: reconcile project status and navigation

Add a canonical documentation map, modernize the public README, and align milestone, roadmap, architecture, issue, divergence, and session guidance with the July 20 baseline. Correct the far-teleport residual to issue #153, close visually accepted indicator and terrain-tiling work, record the remaining detail-overlay and build-warning debt, and deprecate the duplicate legacy bug ledger.

Co-authored-by: OpenAI Codex <codex@openai.com>
This commit is contained in:
Erik 2026-07-20 13:00:41 +02:00
parent a755b764bf
commit 6c3bd4ce4b
11 changed files with 429 additions and 155 deletions

View file

@ -4,7 +4,8 @@
"Code Structure Rules" section in `CLAUDE.md`.
**Purpose:** Describe the desired structural state of the App layer,
explain the rules we've adopted, and lay out the safe extraction
sequence from today's reality (one 15,288-line `GameWindow.cs`) to the
sequence from today's reality (one 14,557-line `GameWindow.cs` at the
2026-07-20 audit) to the
target (thin `GameWindow`, small focused collaborators).
**Companion to:** [`acdream-architecture.md`](acdream-architecture.md)
(the layered architecture) and
@ -20,7 +21,7 @@ layer is wire-compatible, the UI has a stable contract, plugins load.
The structural debt is concentrated in **one file**:
```
src/AcDream.App/Rendering/GameWindow.cs 15,288 lines
src/AcDream.App/Rendering/GameWindow.cs 14,557 lines (2026-07-20)
```
`GameWindow` is the single object that:
@ -341,7 +342,7 @@ Each step is **one PR-sized refactor**. Each must build clean, all
tests pass, and visual verification at Holtburg looks identical to
the previous step. Don't bundle two steps.
### Step 1 — `RuntimeOptions` (this PR)
### Step 1 — `RuntimeOptions` — SHIPPED (`eda936dc`)
**Scope:** Replace startup-time env var reads with a typed options
object built once in `Program.cs`.
@ -357,7 +358,7 @@ new `tests/AcDream.App.Tests/` project).
**Verification:** `dotnet build` + `dotnet test` green. Visual launch
verifies live mode + dat dir resolution still work.
### Step 2 — `LiveSessionController`
### Step 2 — `LiveSessionController` — SHIPPED (`0b25df53`)
**Scope:** Extract `TryStartLiveSession` + the WorldSession ownership +
the post-EnterWorld drain (`OnLiveStateUpdated`, `OnLiveEntityDeleted`,