Rewrite the encryption/persona/JWT docs to match the implemented code and record the multi-person sharing design. - multi-person-sharing.md (NEW): ADR for per-profile DEK + X25519 envelope sharing. All five original open questions resolved 2026-07-18. Covers divorced-parents, pets, graduation, and elderly-parent care; adds an admin permission tier for owner-incapacity. Decided, not yet implemented. (#3) - encryption.md: full rewrite to the implemented wrapped-DEK / Web Crypto model; the old version described ZK encryption as 'planned'. (#4) - jwt-authentication-decision.md: rewritten to match implementation (PBKDF2 not bcrypt, no Redis, token_version revocation, real Claims). Original aspirational content preserved in a History section. (#4) - PERSONA_AND_FAMILY_MANAGEMENT.md: 'Current reality' section added, old 'Implementation Status' marked superseded, encryption section corrected. (#4) - ENCRYPTION_UPDATE_SUMMARY.md: archived (changelog for a rewrite that itself went stale). (#4) - ADR README index updated for the new + reconciled entries. |
||
|---|---|---|
| .. | ||
| android-health-connect-data-types.md | ||
| backend-deployment-constraints.md | ||
| frontend-decision-summary.md | ||
| jwt-authentication-decision.md | ||
| mobile-health-frameworks-data.md | ||
| mongodb-schema-decision.md | ||
| monorepo-structure.md | ||
| multi-person-sharing.md | ||
| README.md | ||
| state-management-decision.md | ||
| tech-stack-decision.md | ||
| zero-knowledge-encryption.md | ||
Architecture Decision Records
This directory holds the project's decision records — the "why" behind the
major technical choices. These were originally written during Phase 1 research
(dated Jan–Feb 2026) and moved here from the old thoughts/research/ tree during
the documentation reconciliation. They are historical context, not current specs.
Decisions
| Record | Topic |
|---|---|
| tech-stack-decision.md | Master stack choice: Rust/Axum backend, React frontend, MongoDB, JWT |
| mongodb-schema-decision.md | Document model + at-rest encryption approach |
| jwt-authentication-decision.md | JWT access/refresh tokens, token_version revocation, refresh rotation — reconciled with code 2026-07-18 |
| frontend-decision-summary.md | React (web) + React Native (mobile, future) split |
| state-management-decision.md | Client state — superseded: decision was Redux Toolkit, actual code uses Zustand |
| monorepo-structure.md | Repository layout (backend/, web/, mobile/, docs/) |
| backend-deployment-constraints.md | Deployment requirements (Solaria, Docker) |
| mobile-health-frameworks-data.md | HealthKit / Health Connect data-type reference (for future mobile work) |
| android-health-connect-data-types.md | Android Health Connect data types |
| zero-knowledge-encryption.md | Client-side zero-knowledge encryption (AES-256-GCM, double-PBKDF2, wrapped-DEK recovery; Phase 1 + Phase 2 implemented) |
| multi-person-sharing.md | Per-profile DEK + X25519 envelope for family/caregiver sharing — Decided, not yet implemented (issue #3) |
Note
: Where a decision diverges from the implemented code (e.g. state management), the code is the source of truth and the ADR is kept only as historical record of the reasoning at the time.