Checkpoint: current Lumen state
Some checks failed
ci / check (push) Has been cancelled

This commit is contained in:
Lumen Stage1 2026-09-23 18:58:21 -05:00
commit fcc18ddcc8
96 changed files with 8074 additions and 214 deletions

View file

@ -1,27 +1,49 @@
# Lumen — offline-first festival PWA
Stage 1 foundation only. No feature code per `IMPLEMENTATION-CONTRACT.md`.
Implementation is complete through Stage 8 (A/B activation). UI feature views and transport orchestration remain staged work per `IMPLEMENTATION-CONTRACT.md`.
- **Validated architecture:** `ARCHITECTURE-VALIDATION.md` (SPIKE-01…08 reconciled)
- **Contract:** `IMPLEMENTATION-CONTRACT.md` — single source for implementation rules, boundaries B-1…B-7, invariants I-1…I-17
- **Stage 1 work:** dedicated git repo + TypeScript strict + lint/format + directory structure + import boundaries + CI + boundary tests
- **No PWA / IDB / sync / mesh / accounts yet** — see contract Stages 2…19
- **Implemented:** strict TypeScript foundation, PWA shell/service worker, package schema and pipeline, IndexedDB A/B persistence, signed-package verifier, and activation/rollback coordinator
- **No transport/network orchestration, mesh, or accounts yet** — see contract Stages 9…19
## Quick start (Stage 1)
## Quick start
```bash
npm install
npm run typecheck # tsc --noEmit strict
npm run lint # eslint with boundaries B-1…B-7
npm run format # prettier --check
npm test # vitest — boundary tests
npm run ci # typecheck + lint + format + test
npm test # vitest — unit and contract tests
npm run ci # typecheck + lint + format + test + build
```
## Project structure
See `IMPLEMENTATION-CONTRACT.md §4` and per-directory `README.md`.
## Navigation
The desktop shell uses a fixed 240px sidebar on the left. It contains five large,
evenly spaced vertically stacked navigation buttons:
- **HOME** — the launcher landing page at `/`, showing a centered 2×2 grid of the four
destination tiles.
- **EMERGENCY** — the emergency destination and retains its red (rose) background.
- **SCHEDULE** — the existing schedule route and functionality.
- **MAP** — the existing map route and functionality.
- **INFORMATION** — the navigation label previously shown as **FESTIVAL**; the existing
`/festival` route and page functionality remain intact.
The root route `/` boots into the home launcher (no redirect). On every destination
page, the header brand ("LUMEN") acts as a home/back button — it is highlighted with
a leading chevron and returns to the launcher in one tap.
The sidebar preserves the SolLunar deck aesthetic, thin borders, typography, and
visual hierarchy. On smaller screens it becomes a responsive fixed bottom navigation
bar. All routes, one-tap emergency access, active-route state, and navigation
behavior remain unchanged.
## Branches
- `main` — validated architecture + Stage 1 foundation (YELLOW device/content/ops gates tracked in `ARCHITECTURE-VALIDATION.md §7`).
- `main` — validated architecture plus implemented stages (YELLOW device/content/ops gates tracked in `ARCHITECTURE-VALIDATION.md §7`).