Supervises foundational infrastructure that the rest of the application depends on.
Uses rest_for_one because Events (an Elixir Registry) is the pub/sub
bus for the entire application. If Events crashes under one_for_one,
every subscriber silently loses its registration with no error and no
crash. rest_for_one ensures all children after Events re-initialize
and re-subscribe.
Children
Foundation.Supervisor (rest_for_one)
├── Minga.Language.Registry ETS, language definitions
├── Minga.Events Registry(:duplicate), pub/sub bus
├── Minga.Config.Options GenServer, typed options
├── Minga.Keymap.Active Active keymap state
├── Minga.Config.Hooks Lifecycle hooks
├── Minga.Config.Advice Before/after command advice (ETS)
├── MingaAgent.Tool.Registry Agent tool specs (ETS)
└── Minga.Language.Filetype.Registry Filetype detectionLanguage.Registry is first because it has no dependencies and nothing depends on it within this group. Events is second so that everything after it re-subscribes on Events restart.
Summary
Functions
Returns a specification to start this module under a supervisor.
Functions
Returns a specification to start this module under a supervisor.
See Supervisor.
@spec start_link(keyword()) :: Supervisor.on_start()