Skip to content

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

  1. Centralized frame update — single update entry point owns the full update pass (2026-04-15)
  2. Signal lifecycle hardening — signals disconnect when owners drop; graph views explicitly cleaned up before rebuild (2026-04-16)
  3. Double-drop fix — composite view children teardown clarified (2026-04-16)
  4. UnitManager — explicit unit registry, SourceUnit, and runtime unit lifecycle (2026-05-08)
  5. 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

See also