13 Commits

Author SHA1 Message Date
evan 9d461eccf3 fix: gc 2026-07-27 17:49:34 -04:00
evan 77d123ab1f feat(appstore): browse cached catalogs offline, drop Wi-Fi after use
Also mark Wordle 'present' tiles and keys with an inset ring, since gray
shades alone are hard to distinguish on e-ink.
2026-07-27 14:02:30 -04:00
evan c339a6161d feat(appstore): add app detail screen, cut catalog memory use
Selecting an app now opens a detail window (name, state, description)
with Back / Install-Update-Reinstall / Delete, where delete needs
confirmation and refuses to remove AppStore itself. Install progress
replaces the button hints in that window instead of a full-screen status.

Catalog entries are kept as raw lines and expanded only for drawn rows,
and the catalog is released before net.wifiConnect() then rebuilt from
the SD cache, which is what caused OOM when bringing up Wi-Fi. Status
screens use REFRESH_FAST between updates rather than REFRESH_HALF.
2026-07-27 09:03:24 -04:00
evan a7e57f3549 style(2048): center grid vertically and space out the header 2026-07-27 08:02:51 -04:00
evan 4f558bc75a feat(2048): add 2048 tile sliding game 2026-07-26 21:53:09 -04:00
evan 2af8d8fdae fix(binarykeyboard): split candidates by on-screen position 2026-07-26 21:01:26 -04:00
evan 7ba630a805 feat(binarykeyboard): show fixed QWERTY layout with shaded halves 2026-07-26 20:58:39 -04:00
evan 219795cc41 feat(appstore): support reinstalling apps as updates
Track the manifest hash in the installed tree so the catalog can mark apps
as installed or updatable, and swap trees via a backup on reinstall.

Drop the catalog cache: it doubled the failure paths for little gain now
that every open needs a fresh catalog to detect updates.

Use a FAST waveform when redrawing the same screen.
2026-07-26 20:08:33 -04:00
evan 39f51ccd48 feat(appstore): cache catalogs on the SD card
Select opens the cached catalog when its sidecar URL still matches, so
browsing costs no network or TLS memory; Refresh fetches. Caches are
replaced through a backup so an interrupted download cannot leave an
empty catalog behind.

Switch to structured log.debug/info/error milestones and add
BinaryKeyboard, a two-button recursive text entry experiment.
2026-07-26 12:40:51 -04:00
evan 4193c25120 fix: install apps under hidden SD directory 2026-07-25 23:09:42 -04:00
evan 4c939eb196 feat: add Lua AppStore 2026-07-25 22:34:38 -04:00
evan 3dcadd7702 refactor: move app packages under apps 2026-07-25 22:15:28 -04:00
evan 4326878282 feat: add initial AppStore catalog 2026-07-25 22:13:35 -04:00