Skip to content

Architecture Decision Records ​

This log tracks the significant architecture and design decisions made for jsvision. Each decision is documented with context, options considered, and rationale. Most were originally captured in the per-RD ambiguity registers under plans/*/00-ambiguity-register.md; the ADRs here distil the cross-cutting ones.

Decision Log ​

#DateDecisionStatus
ADR-0012026-06-28ESM-only, zero runtime dependencies✅ Accepted
ADR-0022026-06-28Capability detection as runtime auto-configuration✅ Accepted
ADR-0032026-06-28Pure core behind injectable seams✅ Accepted
ADR-0042026-06-28No node-pty; restore proven via the RuntimeAdapter✅ Accepted
ADR-0052026-06-28A single canonical sanitize injection boundary✅ Accepted
ADR-0062026-06-28Informational perf bench + skippable ceiling✅ Accepted
ADR-0072026-06-28Monorepo (yarn + Turborepo), vitest, lockstep versions✅ Accepted
ADR-0082026-06-28Layout engine — build cell-native vs Yoga/Taffy🔬 Proposed
ADR-0092026-07-02First-class Bun runtime support (runtime + compile target only)🔬 Proposed
ADR-0102026-07-24Headless parser and document architecture for the code editor✅ Accepted

How to Read ADRs ​

Each ADR follows a standard format:

  • Context: What situation or problem triggered this decision?
  • Decision: What was decided?
  • Rationale: Why was this chosen over alternatives?
  • Consequences: What are the trade-offs and implications?

When to Create an ADR ​

Create a new ADR when choosing a technology/pattern, deciding between valid approaches, or making a decision that is hard to reverse or that future developers will question.