Skip to content

Replace component reconciliation with a projectional core - #1810

Open
merryman wants to merge 4 commits into
mainfrom
robin/reconciliation-refactor
Open

Replace component reconciliation with a projectional core#1810
merryman wants to merge 4 commits into
mainfrom
robin/reconciliation-refactor

Conversation

@merryman

Copy link
Copy Markdown
Member

Summary

  • replace the legacy component reconciler with a semantic component document, reducers, and explicit source/runtime projectors
  • coordinate source, runtime, policy-cache, derived-component, and undo/redo updates as reversible transactions
  • support scalar properties, rich text and embedded morphs, structural edits, parts, typed morphs, inherited state, layouts, masters, and cross-module derived propagation
  • add deterministic fuzzing, invariants, regression coverage, and projection performance benchmarks
  • remove the legacy reconciliation implementation, fallbacks, and now-unreachable helper code

Why

The former reconciliation path had accumulated overlapping mutation logic and recurring edge-case failures. The new projectional core gives every direct manipulation an explicit semantic command and validates the projected source and runtime state at transaction boundaries.

Impact

Direct component manipulation now uses one projectional path with exact undo/redo and derived-component propagation. Rich-text attribute edits use a fast path, while embedded submorphs and structural changes remain transactionally synchronized with source.

Validation

  • complete branch suite before the final dead-code cleanup: 2,114 passed, 32 skipped, 0 failed
  • ./scripts/test.sh lively.ide lively.halos
  • deterministic reconciliation fuzz tests and projection invariants
  • staged diff and whitespace validation

Supersedes #1807 after renaming the head branch to the required robin/ prefix.

merryman added 4 commits July 20, 2026 13:59
Replace the legacy reconciler with a semantic component document,
reducers, and explicit source and runtime projectors.

Coordinate reconciliation, policy caches, derived components, and
undo/redo through reversible transactions. Cover text, embedded morphs,
structural edits, layouts, masters, inheritance, and cross-module
propagation.

Add deterministic fuzzing, regression coverage, invariants, and
performance benchmarks. Remove the legacy implementation, fallbacks,
and stranded helper code, and rebuild the Flatn bundle.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant