Architecture Decisions
Architecture decision records preserve decisions that are expensive to reverse, affect multiple modules, or establish public contracts. They explain why a design was selected while the current architecture pages describe how the system works now.
Accepted decisions
- ADR-0001: Hosted documentation platform
- ADR-0002: Five-layer runtime module architecture
- ADR-0003: Public package ownership and platform handles
- ADR-0004: Design-system resolution boundary
- ADR-0005: Design-system host and component backend boundary
- ADR-0006: Root-scoped overlay backend selection
- ADR-0007: Host-owned Android resource environment
- ADR-0008: Transactional effect lifecycle
- ADR-0009: Development tooling isolation and request-driven inspection
- ADR-0010: Hierarchical saveable-state ownership
- ADR-0011: Prefetched session activation boundary
- ADR-0012: Lazy collection logical and physical ownership
- ADR-0013: Component appearance resolution boundary
- ADR-0014: Renderer-neutral interaction indication
- ADR-0015: Observed property transactions
- ADR-0016: ConstraintLayout graph and helper ownership
- ADR-0017: Typed ConstraintLayout helper expansion
- ADR-0018: Focus visibility and pager selection ownership
- ADR-0019: Animation physics, transition, and inspection ownership
- ADR-0020: Separate animation value and velocity domains
- ADR-0021: Correlated render diagnostics ownership
- ADR-0022: In-memory development-tooling installation
- ADR-0023: Retained ViewModel scope ownership
- ADR-0024: Scene-derived navigation lifecycle and presentation ownership
- ADR-0025: Version-bound AI tooling upgrades
Rules
- Use the next four-digit number and a lowercase kebab-case title.
- Accepted records are not rewritten to hide historical trade-offs.
- A changed decision receives a new ADR that explicitly supersedes the previous one.
- Update current architecture and module documentation when a decision changes implementation.