Calic 8b833bbb35 launcher 0.2.0: inline status icons + classified update-check + token auth wire
- Async update-check per module on init (git.start_ls_remote_tags),
  polled per frame. Result classified into available / no-update /
  fail / local-only via the new kind field from lib-core.git 0.2.0.
- Pre-emptive dep-check per module (depf.ensure_for_module) on init
  populates a dep_check_result whose ok/conflicts/warnings/errors
  drive the icon strip.
- Inline icon strip per module-row (icons.lua): rotating ASCII
  spinner while pending, yellow warn for auth/network failures or
  dirty deps, blue update-badge with target version (clickable to
  trigger fetch+checkout), red error for dep-check conflicts, gray
  L for repos that genuinely don't exist on the server. Tooltip on
  hover shows the specific reason per icon.
- Click handler splits launch-vs-update by hit-testing the badge
  rect before the row rect. Launch is blocked when dep-check failed.
- On init, reads engine.config("gitea_token") and forwards via
  git.set_token so users can persist their token in their user-data
  engine.json layer instead of using an env var.
- New deps: lib-core.git 0.1.0, lib-management.dep-fetcher 0.1.2.
2026-05-31 14:09:39 +02:00

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.list discovery of installed modules from the modules-dir.
  • engine.switch_module runtime swap from the launcher to the selected module.
  • Simple text + rect rendering via engine.render for 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.lua loaded via engine.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
P.3.4 UI launcher module � module picker + quit-confirm dialog
Readme 185 KiB
Languages
Lua 99.2%
Shell 0.8%