stabilize architecture docs: address review findings and advance to stable

Critical fixes:
- Restructure pointers.md: move setNode prop-key writes section under
  its own heading (was incorrectly nested under selectNode)
- Add Context/Density/Direction/RenderContext documentation section
  to host-config.md (was only a brief constraint bullet)
- Advance all 5 ADRs from Status: Proposed → Accepted and frontmatter
  from status: draft → status: stable (decisions are driving implementation)
- Add error handling philosophy section to README

Warning/suggestion fixes:
- Add isUElement null check (node !== null) to schema.md discriminator table
- Add UjsxEnvelope convenience type documentation to events.md
- Add Direction Unicode arrow naming note to transforms.md
- Standardize all cross-references from absolute docs/research/ paths
  to relative ../research/ paths across all architecture docs
- Fix schema.md ADR references to use relative paths
- Reduce redundancy between transforms.md and host-config.md Direction notes
- Update all architecture doc frontmatter from draft → stable

Deferred:
- Performance model section (reconciler not yet built)
- Concepts/glossary document (low ROI at current scale)
- Line counts in source references (would date quickly)
This commit is contained in:
2026-05-18 16:10:24 +00:00
parent 23659233ca
commit 0d5b9d5ea8
16 changed files with 167 additions and 61 deletions

View File

@@ -1,11 +1,11 @@
---
status: draft
status: stable
last_updated: 2026-05-18
---
# ADR-001: HTML-agnostic core
**Status**: Proposed
**Status**: Accepted
## Context

View File

@@ -1,11 +1,11 @@
---
status: draft
status: stable
last_updated: 2026-05-18
---
# ADR-002: TypeBox Module as type registry
**Status**: Proposed
**Status**: Accepted
## Context

View File

@@ -1,11 +1,11 @@
---
status: draft
status: stable
last_updated: 2026-05-18
---
# ADR-003: Preact signals-core for reactivity
**Status**: Proposed
**Status**: Accepted
## Context

View File

@@ -1,11 +1,11 @@
---
status: draft
status: stable
last_updated: 2026-05-18
---
# ADR-004: `key` as a First-Class Field on `UElement`
**Status**: Proposed
**Status**: Accepted
## Context
@@ -70,7 +70,7 @@ The TypeBox schema uses `Type.Optional(Type.String())` for `key`, so validation
## References
- Key field design research: `docs/research/reconciler/00-KEY-FIELD-DESIGN.md`
- Key field design research: `../../research/reconciler/00-KEY-FIELD-DESIGN.md`
- Schema architecture: [schema.md](../schema.md)
- Element factory: [element-factory.md](../element-factory.md)
- Reconciler algorithm: [reconciler.md](../reconciler.md)

View File

@@ -1,11 +1,11 @@
---
status: draft
status: stable
last_updated: 2026-05-18
---
# ADR-005: Signal-Driven Updates Over Tree Diffing
**Status**: Proposed
**Status**: Accepted
## Context
@@ -58,8 +58,8 @@ This means 90% of updates (property changes) bypass tree diffing entirely. The r
## References
- Reactive → Host bridge research: `docs/research/reconciler/01-reactive-host-bridge.md`
- Key-based children reconciliation: `docs/research/reconciler/02-key-based-children-reconciliation.md`
- Reactive → Host bridge research: `../../research/reconciler/01-reactive-host-bridge.md`
- Key-based children reconciliation: `../../research/reconciler/02-key-based-children-reconciliation.md`
- Reconciler architecture: [reconciler.md](../reconciler.md)
- Reactive layer: [reactive-layer.md](../reactive-layer.md)
- HostConfig interface: [host-config.md](../host-config.md)