Supervises the editor runtime: parser, renderer server, and Editor generation.
Uses rest_for_one to enforce the dependency chain:
MingaEditor.Supervisor (rest_for_one)
├── Minga.Parser.Manager Tree-sitter parser Port
├── MingaEditor.Frontend.Manager Zig/Metal frontend Port
├── MingaEditor.Renderer.Server Async render pipeline
├── MingaEditor.GenerationSupervisor (one_for_all)
│ ├── MingaEditor.EffectTaskSupervisor
│ ├── MingaEditor.EffectScheduler
│ └── MingaEditor Editor orchestration GenServer
└── MingaEditor.NativeIPC.Supervisor bundled macOS control socket (GUI only)If Parser.Manager crashes, everything below restarts. If Frontend.Manager crashes, Renderer.Server and the Editor generation restart. If Renderer.Server crashes, the generation restarts because the Editor holds a resolved renderer pid. An Editor crash tears down its scheduler and every old effect worker before replacement authority starts.
This supervisor is conditionally started: it only appears in the supervision tree when the editor UI is active (not in test mode or headless operation).
Summary
Types
Options for starting the editor supervisor.
Functions
Returns a specification to start this module under a supervisor.
Types
@type start_opt() :: {:name, GenServer.name()} | {:backend, MingaEditor.Frontend.Manager.backend()}
Options for starting the editor supervisor.
Functions
Returns a specification to start this module under a supervisor.
See Supervisor.
@spec start_link([start_opt()]) :: Supervisor.on_start()