Phase 2: transitioning reconciler research into architecture documents.
New docs:
- reconciler.md: fiber tree, reconciliation algorithm (signal-driven
props + key-based children), update scheduling, commit order,
TypeBox optimization layer, file structure, consumer impact
- lifecycle.md: mount/update/dispose phases, fiber tree disposal,
partial tree removal, ReactiveRoot.dispose(), finalizeInstance,
idempotent disposal, computed vs effect cleanup
- ADR-004: key as first-class field on UElement (not a prop)
- ADR-005: signal-driven updates for props, reconciliation for
structure (hybrid approach, not full tree diffing)
Updated docs:
- README.md: add reconciler.md, lifecycle.md, ADRs 004/005 to
index; update reconciler roadmap with architecture doc links
- schema.md: add key?: string to UElement type with TODO comment;
update known gaps to reference ADR-004 and reconciler.md;
rephrase key constraint as temporary
- element-factory.md: update key extraction gap to reference
ADR-004 and reconciler.md
- host-config.md: reference reconciler.md and lifecycle.md
for the reconciler bridge and disposal gaps
- reactive-layer.md: reference reconciler.md and lifecycle.md
for the signal-host bridge and disposal gaps
- events.md: reference lifecycle.md for unmount/dispose gap
Phase 1 of SDD process: syncing docs/architecture/ to reflect the
existing source code. Eight component documents describe WHAT and WHY
(not HOW) for each module: schema, element factory, reactive layer,
host config, transforms, events, pointers, and build distribution.
Three ADRs capture key decisions (HTML-agnostic core, TypeBox Module
as type registry, Preact signals-core for reactivity). Each doc
documents known reconciler gaps and references the research in
docs/research/reconciler/.
Also adds docs/sdd_process.md (process reference shared across
alkdev projects) matching the taskgraph_ts pattern.