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.Extensions.LanguagePacks Bundled language catalog loader
├── Minga.Extensions.ThemePacks Bundled theme pack loader
├── Minga.Tool.Recipe.Registry ETS, tool install recipes
├── Minga.Extensions.RecipePacks Bundled recipe pack loader
├── 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)
├── Minga.Config.ModelineSegments Custom modeline segments (ETS)
├── Minga.Extension.Overlay Extension overlay registry (ETS)
├── Minga.Extension.Panel Extension panel registry (ETS)
├── Minga.Extension.Badge Extension badge registry (ETS)
├── MingaAgent.Tool.Registry Agent tool specs (ETS)
├── MingaAgent.ToolPacks.ReadOnly Bundled read-only agent tools
├── MingaAgent.ToolPacks.LSP Bundled LSP agent tools
└── Minga.Language.Filetype.Registry Filetype detectionLanguage.Registry is first because it owns the ETS table. Bundled packs (language, theme, recipe) start next so consumers see the default catalogs before services, LSP, syntax highlighting, or filetype detection query them. Recipe.Registry precedes RecipePacks and Tool.Registry precedes ToolPacks so the ETS tables exist before packs register into them. Events follows so 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()