ADR Index
| Doc | Title | Status | Date |
|---|---|---|---|
| TA | Technical Authority | v2.2 | Jun 2026 |
| ADR-001 | Three.js r128 as 3D renderer | Accepted | Apr 2026 |
| ADR-002 | Vanilla JS, no framework | Superseded by ADR-011, ADR-012 | Apr 2026 |
| ADR-003 | Vite as bundler | Superseded by ADR-012 | Apr 2026 |
| ADR-004 | Hash-based client-side routing | Superseded by ADR-013 | Apr 2026 |
| ADR-005 | nginx + Docker Compose deployment | Superseded by ADR-014 | Apr 2026 |
| ADR-006 | JSON files for mission data | Accepted | Apr 2026 |
| ADR-007 | Separate nginx volume for data | Accepted | Apr 2026 |
| ADR-008 | Lambert solver in Web Worker | Accepted | Apr 2026 |
| ADR-009 | Free-return flyby as mission scenario | Accepted | Apr 2026 |
| ADR-010 | Keplerian half-ellipses for transfer arc | Accepted | Apr 2026 |
| ADR-011 | TypeScript throughout | Accepted | Apr 2026 |
| ADR-012 | SvelteKit as application framework | Accepted | Apr 2026 |
| ADR-013 | History API routing | Accepted | Apr 2026 |
| ADR-014 | GitHub Actions CI + GitHub Pages preview | Accepted | Apr 2026 |
| ADR-015 | Vitest + Playwright testing | Accepted | Apr 2026 |
| ADR-016 | All external assets resolved at build time | Accepted | Apr 2026 |
| ADR-017 | Paraglide-js i18n + locale overlay architecture | Accepted | Apr 2026 |
| ADR-018 | Mobile-first design, bottom sheet panels | Accepted | Apr 2026 |
| ADR-019 | JSON schema validation on PR via ajv | Accepted | Apr 2026 |
| ADR-020 | Canonical mission JSON schema | Accepted (closes RFC-002) | Apr 2026 |
| ADR-021 | Documentation site at /docs/ via VitePress | Accepted | Apr 2026 |
| ADR-022 | Lambert worker message protocol | Accepted (closes RFC-003) | Apr 2026 |
| ADR-023 | Porkchop plot mobile interaction (RFC-006 Option C) | Accepted (closes RFC-006) | Apr 2026 |
| ADR-024 | Mission URL sharing | Accepted (closes RFC-004) | Apr 2026 |
| ADR-025 | Accessibility tier-1 contract | Accepted (closes RFC-005) | Apr 2026 |
| ADR-026 | Multi-destination porkchop | Accepted (closes RFC-007) | Apr 2026 |
| ADR-027 | Mission flight params + timeline navigator | Accepted (closes RFC-009) | Apr 2026 |
| ADR-028 | Outer planets + dwarf planets in /plan | Accepted (closes RFC-008) | May 2026 |
| ADR-029 | Service worker via @vite-pwa/sveltekit | Accepted (closes Theme C.C1) | May 2026 |
| ADR-030 | /fly trajectory math: pure-function isolation + per-mission validation | Accepted | May 2026 |
| ADR-031 | i18n language list and rollout waves | Accepted (closes RFC-010) | May 2026 |
| ADR-032 | Font and script strategy (Wave 1) | Accepted (closes RFC-010) | May 2026 |
| ADR-033 | Translation workflow: LLM-only first-pass | Accepted (closes RFC-010) | May 2026 |
| ADR-034 | Math rendering: KaTeX server-rendered at build | Accepted (closes RFC-011) | May 2026 |
| ADR-035 | Diagram authoring pipeline: hand-drawn SVG, sources committed | Accepted (closes RFC-011) | May 2026 |
| ADR-036 | ?-chip cross-screen pattern: click navigates, hover tooltip on desktop | Accepted (closes RFC-011) | May 2026 |
| ADR-037 | Shared surface-site type, deferred shared <SurfaceMap> component | Accepted (closes RFC-012 OQ-1) | May 2026 |
| ADR-038 | Per-body 2D projection: Mars equirectangular, Moon orthographic dual-disc | Accepted (closes RFC-012 OQ-2) | May 2026 |
| ADR-039 | Bidirectional cross-link contract: site panels ↔ mission cards | Accepted (closes RFC-012 OQ-4) | May 2026 |
| ADR-040 | ISS Explorer diagrammatic model + asset pipeline | Accepted (closes RFC-013 OQ-1) | May 2026 |
| ADR-041 | ISS module pickability contract (userData.moduleId) | Accepted | May 2026 |
| ADR-042 | ISS Explorer low-end fallback (list + perf heuristics) | Accepted | May 2026 |
| ADR-043 | Serbian Cyrillic font gate for sr-Cyrl | Accepted | May 2026 |
| ADR-044 | CJK font strategy for Wave 2 locales | Accepted | May 2026 |
| ADR-045 | RTL strategy for Arabic locale | Accepted | May 2026 |
| ADR-046 | Agency-first build-time imagery sourcing | Accepted | May 2026 |
| ADR-047 | Provenance manifests + license stewardship | Accepted | May 2026 |
| ADR-048 | Tiangong Explorer asset pipeline and nav placement | Accepted (closes RFC-014 OQ-1) | May 2026 |
| ADR-049 | Tiangong module pickability and scene graph | Accepted | May 2026 |
| ADR-050 | Tiangong Explorer low-end fallback (?view=list + heuristics) | Accepted | May 2026 |
| ADR-051 | Outbound learn-link stewardship | Accepted (closes RFC-015) | May 2026 |
| ADR-052 | Spaceflight Fleet schema + bidirectional cross-reference contract | Accepted (closes RFC-016) | May 2026 |
| ADR-053 | Fleet imagery: hero, anatomy SVG, mission patch, crew portrait sourcing | Accepted (closes RFC-016) | May 2026 |
| ADR-054 | Fleet i18n strategy: locale overlay parity at 137 × 14 | Accepted (closes RFC-016) | May 2026 |
| ADR-055 | Science Lens + multi-layer attribute-on-<html> state | Accepted | May 2026 |
| ADR-056 | Deterministic e2e readiness signals: data-* attributes + window.__pickAt test hooks | Accepted | May 2026 |
| ADR-057 | Narrow exception to "no client storage": one functional cookie for explicit locale override | Accepted (closes #73 Gap 2) | May 2026 |
| ADR-058 | Cislunar view: Earth-centered second camera + per-mission Moon trajectory profiles | Accepted | May 2026 |
| ADR-063 | Web container: nginx:alpine with host bind-mounts (no custom Dockerfile after Amendment) | Accepted | May 2026 |
| ADR-064 | Pipeline runner: single tsx-entrypoint image, docker compose run --rm on-demand, no scheduler service | Accepted | May 2026 |
| ADR-065 | Live /data surface: host bind-mount of ./static/data, pipelines write, web reads, no rebuild between refreshes | Accepted | May 2026 |
| ADR-066 | Docker-stack e2e CI workflow — Playwright against the running compose stack | Accepted | May 2026 |
| ADR-067 | Sentry as client-side error-tracking layer (errors only, env-var-gated, no committed secrets) | Accepted | May 2026 |
| ADR-068 | Grafana Cloud Agent as docker-stack log shipper (profile-gated, env-var-gated, silent without credentials) | Accepted | May 2026 |
| ADR-069 | Three-layer overlay-completeness policy (validate-data check + opt-in smoke pre-push + AGENTS.md rule) | Accepted | May 2026 |
| ADR-070 | Split docs deploy from app deploy (CI-gated docs, e2e-gated app) | Accepted | May 2026 |
| ADR-071 | Consolidate e2e workflows: docker-e2e becomes the canonical Playwright gate; delete e2e.yml | Accepted | May 2026 |
| ADR-072 | Shared SurfaceScene.svelte for rocky-body surface routes + 23 drift consolidations between /moon and /mars | Accepted | May 2026 |
| ADR-073 | Surface texture LOD via per-region insets (Layer A) + 2K → 4K base swap (Layer B); no tile streaming | Accepted | May 2026 |
| ADR-074 | Panorama schema v2 + spatial-context renderer; commit to "exhibit, not embed" | Accepted | May 2026 |
| ADR-075 | Narrow exception #2 to no-client-storage — orrery_tour cookie for Curator Tour resume | Accepted | Jun 2026 |
| ADR-076 | /plan ships Mars-only porkchop in v0.7; multi-destination deferred to v0.8 | Accepted | Jun 2026 |
| ADR-077 | /fly throne-of-glory iconic-shot architecture (body wiring + cislunar hold detector + per-event compositions + race-free test hooks) | Accepted | Jun 2026 |