MingaEditor.Supervisor (Minga v0.1.0)

Copy Markdown View Source

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

start_opt()

@type start_opt() ::
  {:name, GenServer.name()} | {:backend, MingaEditor.Frontend.Manager.backend()}

Options for starting the editor supervisor.

Functions

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

start_link(opts \\ [])

@spec start_link([start_opt()]) :: Supervisor.on_start()