# Milestones

Historical record of shipped REBNO milestones.

## v1.0 MVP — 2026-05-17

**Status:** SHIPPED
**Tag:** `v1.0`
**Range:** `21ee4e8` (2026-05-01) → `e6b6c47` (2026-05-17)
**Timeline:** 17 days
**Phases:** 13 (11 complete, 2 superseded by 06.7) / **Plans:** 142

### Delivered

Original BN Online players can open Chrome, log in with their migrated account, walk around a single MVP room, and chat with each other in real time over a deployed Fly.io server. The MVP gate (CLI-08) cleared in HUMAN-UAT round 2 at commit `1f6073e` with two real players on the staging environment.

### Key accomplishments

1. **Full extraction pipeline** (Phase 1) — `tools/extract-gmd` ports LateralGM `GmFileReader` semantics, parses both `BN Online Client 5-8.gmd` and `BN Online Master 5-4.gmd` end-to-end, byte-identical re-extraction verified, 13 wire-format bugs uncovered and documented against LateralGM source.
2. **Engine + protocol documentation** (Phases 2–3) — 22 subsystem docs across `docs/extracted-engine/` + `docs/extracted-server/`, feature-vs-engine matrix that locked Phaser 3.90 via ADR 0001, 39dll opcode table + `.bno`/`.bnb`/`.bnu` schemas reversed from GML call order.
3. **Authoritative server** (Phase 4) — Node 22 + Colyseus 0.17 + Drizzle/SQLite + Better-Auth/argon2id with hot-reloadable signed room registry, transparent legacy-account rehash on first login, and a `lint-no-clipboard-rce` forcing function that structurally prevents porting the original RCE admin model.
4. **Production deploy** (Phase 5) — Multi-stage Dockerfile, Fly.io staging machine with persistent volume, Litestream → Tigris with sub-second RPO, drilled `RESTORE.md` runbook, OpenObserve obs sidecar Fly app.
5. **Multiplayer client + CLI-08 cleared** (Phase 6 + 06.1/06.2/06.5/06.6/06.7) — Vite + Phaser 3 client with HiDPI integer scaling, chat HUD, content-hashed asset pipeline. The MVP gate cleared via a mid-phase trust-model pivot in 06.7 (player movement flipped to client-owns-position, eliminating the reconciler-drift bug class that had blocked the original Phase 6 / 06.1 / 06.3 / 06.4 chain).
6. **Phase 7 (Full Parity) relegated to backlog** — Original 11-req Phase 7 (AST-02..04 + PAR-01..08) recognized as a multi-milestone roadmap, not a single phase; preserved in `.planning/todos/pending/2026-05-17-phase-7-full-parity-backlog.md` for next-milestone decomposition.

### Known Gaps / Deferred Items

- **SRV-08 kill -9 mid-tick verification** — Linux-only manual procedure documented in `04-HUMAN-UAT.md` Test 1; SIGTERM half closed.
- **Phase 5 HUMAN-UAT Test 5** — legacy `localList.txt` one-shot import — ⬜ pending.
- **Phase 5 HUMAN-UAT Test 6** — prod environment never provisioned; deferred until staging soak completes.
- **Phase 06.8 (anti-cheat illegal-position fall trigger)** — server-side `isPositionLegal` + grace-window fall-reset was cut from 06.7 to ship CLI-08; without it a malicious client can teleport visually (rate-limited at 30 Hz).
- **GitHub Actions CI** — storage quota exhausted 2026-05-17; deploy reverted to operator-local `flyctl deploy` per `docs/deploy/LOCAL-DEPLOY.md`.
- **`pnpm trace:check` placeholder noise** — `REQ-SRV-XX` / `REQ-X` illustrative placeholders in Phase 04 + 06.4 docs; accepted as known noise.
- **Phase 06.3 + 06.4 SUPERSEDED** — 06.3 verification NOT APPROVED + 06.4 0/16 plans; both made structurally moot by 06.7's network-model shift. SUPERSEDED markers in each phase dir.
- **D-63 HARD-gate audit script** — `tooling/no-inline-origin.ts` from 06.4 plan 15 was never built; helper itself shipped at `apps/client/src/render/legacy-origin.ts`. Next-milestone first effect port should add the audit.

### Stats

- v1 requirements: 38/38 active satisfied (+ 1 partial: SRV-08) / 11 relegated to Full Parity backlog
- Files modified: see `git diff --stat 21ee4e8..e6b6c47`
- Architecture: monorepo (`apps/client`, `apps/server`, `apps/obs`, `packages/protocol`, `packages/game-logic`, `packages/db`, `tools/extract-gmd`, `tools/asset-pipeline`, `tools/asset-catalog`, `tools/protocol-doc`, `tools/save-format-doc`, `tools/room-converter`, `tools/db-schema`)
- Hard milestones cleared: 1/1 (CLI-08)
