Lumen/README.md
Lumen Stage1 fcc18ddcc8
Some checks failed
ci / check (push) Has been cancelled
Checkpoint: current Lumen state
2026-09-23 18:58:21 -05:00

49 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Lumen — offline-first festival PWA
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
- **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
```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 — 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 plus implemented stages (YELLOW device/content/ops gates tracked in `ARCHITECTURE-VALIDATION.md §7`).