Lifecycle ownership centralization
Summary
The April 2026 push to replace implicit, signal-driven ownership with explicit, centralized lifecycle management. A prerequisite for hot-reload, activities, and reliable teardown.
What was done
- Centralized frame update — single update entry point owns the full update pass (
2026-04-15) - Signal lifecycle hardening — signals disconnect when owners drop; graph views explicitly cleaned up before rebuild (
2026-04-16) - Double-drop fix — composite view children teardown clarified (
2026-04-16) - UnitManager — explicit unit registry, SourceUnit, and runtime unit lifecycle (
2026-05-08) - Activity lifecycle centralization — workspace shell owns activate/deactivate lifecycle (
2026-04-30, migrated from canvas modes in July 2026)
Results
- Eliminated the most common runtime crash class (stale callbacks after drop)
- Enabled hot-reload: units can be safely unloaded and reloaded
- Enabled activity switching: activities activate/deactivate with clean transitions
- Enabled panel transfer: panels move between surfaces with transaction safety
Related
- Lifecycle Ownership — the bugs this fixed
- Lifecycle Hardening Plan — the full plan and strategy options
- Lifecycle Invariants — the finalized rules
- Widget Ownership — teardown ownership model
- Hot Reload Units — dependent on lifecycle safety
- Activities Architecture — dependent on lifecycle safety
See also
- Goal: Core Platform
