- markdown.lua: M.render now accepts an optional `t` 6th arg (ctx.t).
When present, the image-missing fallback string is looked up via the
new `image_missing_fmt` key in strings.lua. Callers without t (the
launcher-test bytecopy) get the hardcoded English string verbatim,
matching previous behavior.
- panels/detail.lua: both md.render call sites now thread ctx.t through.
- strings.lua: add image_missing_fmt = "[image missing: %s]".
- icons.lua: deleted. The v0.2.0 status-glyph helper was replaced by
dep_glyph_* string keys in v0.3.0; grep confirmed no remaining refs.
- manifest.module: bump 0.3.2 -> 0.3.3.
Solid-fill placeholders for the empty-state background (1920×1080) and
the zero-teaser hero fallback (800×450). Brand-refresh slice can drop
both files in without touching code. Loaded once on init via
engine.asset.load_texture (launcher's own sandbox).
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.
- 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.