Architecture Decision Records (ADRs)
This directory records decisions that are likely to be controversial later, or that we want to lock to avoid churn.
Format
Each ADR follows a consistent shape:
- Context — why we had to decide
- Decision — what we chose
- Alternatives considered — what we rejected and why
- Consequences — positive, negative, and trade-offs
- Test plan / verification — how we keep the decision enforced
ADRs should be short, opinionated, and operational.
Current ADRs
Hybrid (scroll-region + overlay redraw) with automatic strategy selection from terminal capabilities.
ADR-001: Inline Mode StrategyReset+apply for v1; incremental SGR diffs deferred until terminal-model tests cover all edge cases.
ADR-002: Presenter Emission StrategyCrossterm is the v1 backend, wrapped behind TerminalSession.
Windows supported with documented limitations — honest docs beat unstable half-support.
ADR-004: Windows v1 ScopeTerminalWriter is the single gate for UI, logs, and mode toggles.
Sanitize-by-default for all log paths; raw passthrough is opt-in.
ADR-006: Untrusted Output PolicyEmbedded host-agnostic core + first-class host bindings; no universal C ABI.
ADR-007: SDK ModularizationIntroduce a backend boundary at the runtime; enable WASM without threads or blocking.
ADR-008: Terminal Backend Strategy (v2+)FrankenTerm’s first-party WebGPU renderer with atlas-based glyph caching and patch-driven updates.
ADR-009: WebGPU RendererAsupersync only at orchestration seams — runtime shell + doctor_frankentui.
ADR-010: Targeted Asupersync Adoption