WavelengthWatch¶
As of the 2026-07-31 baseline seed (issue #3).
A watchOS-only companion for the Archetypal Wavelength: browse every layer
and phase, see "medicinal" and "toxic" expressions side by side, and get
context-aware self-care strategies from the wrist. Not yet deployed to
production; an App Store launch is planned. Source: WavelengthWatch
README.md and CLAUDE.md.
Stack¶
- Frontend — watchOS SwiftUI app
(
frontend/WavelengthWatch/WavelengthWatch.xcodeproj), built with Xcode 26.3+ (16.4 still builds; Liquid Glass APIs need the watchOS 26 SDK). - Backend — FastAPI + SQLModel service (
backend/app.py) over SQLite, seeded on startup from bundled CSV/JSON fixtures (backend/data/,backend/tools/), serving/api/v1/*.
Module map¶
backend/routers/— endpoint modules for catalog, curriculum, journal, layer, phase, and strategy routes.backend/services/,backend/schemas.py,backend/schemas_catalog.py,backend/cache.py— aggregation and response shaping;build_catalogassembles layers, phases, curriculum entries, and strategies into a single cache-friendly payload.frontend/WavelengthWatch/— the Xcode project:ContentViewModelcoordinates catalog loading, user selections, and journal submission;CatalogRepositorypersists the aggregated catalog to the watch's caches directory with a 24-hour TTL;JournalClientstamps a stable pseudo-user ID and saves entries locally first.tests/— pytest suite for the backend; watch test suites run viafrontend/WavelengthWatch/run-tests-individually.sh.
Data flow¶
- The watch requests
/api/v1/catalog; the backend aggregates the full curriculum into one payload with cache headers. CatalogRepositoryreplays the cached payload instantly (24h TTL) before attempting a refresh, so the curriculum is always available offline.- Journal entries are written to local SQLite first and only sync to
/api/v1/journalif the user opts in to cloud sync — local-first, privacy-first by design. - The API base URL comes from
APIConfiguration.plist; the default host is an intentionally unreachable placeholder, and debug builds assert until a real backend is configured.
Key entry points¶
- Backend:
uvicorn backend.app:app --reload(afterpip install -r backend/requirements.txt -r backend/requirements-dev.txt). - Full setup:
bash dev-setup.sh(venv, pre-commit, SwiftFormat). - Quality gates:
scripts/check-backend.sh(lint, format, type, test);swiftformat --lint frontendfor Swift. - Knowledge graph: committed in-tree at
graphify-out/graph.json(the satellite pattern), merged nightly into adepthood'span-graph.json.
Relation to Adepthood¶
WavelengthWatch serves the same six-phase, ten-layer Wavelength model that
Adepthood's course and Map use, packaged for glanceable wrist access. It is
promoted by wavelength-demo and shares no code with the app — the shared
surface is the ontology, not a library.