332a37e1555a4a3a0a3f22e40c958b86475e6e87
Replaces the centered-button list with a 1/3 list + 2/3 detail split driven by panels/list.lua and panels/detail.lua. The shared ctx_panels table threads UI state (selected_entry, scroll_y, modal_open, etc.) through both panels. Existing dep + update checks remain on the module entries; FSM and ESC-quit flow unchanged. Detail-panel content is still a stub until L.4-L.7.
lib-management.launcher
Module-discovery and module-switch entry. Lists available modules from the configured modules-dir and launches the selected one via engine.switch_module. Typical entry point: --module=lib-management.launcher boots into a chooser screen rather than directly into a game.
Version: 0.1.0
Module-ID: lib-management.launcher
Requires: lib-core.input v>=0.4.0
Tags: launcher, menu, system, navigation
Topology
graph LR
this["lib-management.launcher"]
lib_core_input["lib-core.input"]
this --> lib_core_input
engine["engine.*"]
this --> engine
Controls
- Mouse-Left: Click a module-button to launch it; click confirm/cancel in the quit-modal.
- Enter: Confirm quit when the modal is open.
- Escape: Open the quit-modal from the chooser; cancel the modal when open.
Demonstrates
engine.module.listdiscovery of installed modules from the modules-dir.engine.switch_moduleruntime swap from the launcher to the selected module.- Simple text + rect rendering via
engine.renderfor the chooser UI. - Input-action binding through
lib-core.input(ui_click,ui_back,ui_confirm). - Modal-state FSM (chooser <-> quit-modal) factored into a sibling
fsm.lualoaded viaengine.module.dir_of.
References
- meta/docs/architecture/module-lifecycle.md
- meta/docs/architecture/host-app.md
- meta/docs/superpowers/specs/2026-05-14-launcher-design.md
Description
Languages
Lua
99.2%
Shell
0.8%