Extract scanSavesInDir and createBackup as testable helpers. Add
filesystem-based tests for save scanning, extension filtering,
hidden file skipping, slug resolution, backup creation, and
read-only directory handling. Includes env-capture script for
collecting device filesystem layouts.
Add install-minui.md with tested devices, installation steps, and
update instructions. Add MinUI to mkdocs nav and cfw-links. Set
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 on both workflows ahead of the
June 2026 deprecation of Node.js 20 runners.
Ship both grout32 and grout64 in a single MinUI zip. The launch
script detects arch via uname and picks the right binary and libs.
Device detection (Miyoo/Anbernic/TrimUI) uses runtime.GOARCH and
/proc/bus/input/devices, following the same pattern as muOS. Adds
Anbernic joystick mapping reused from muOS.
Fix unmapped devices (TrimUI, Miyoo Flip) returning errors instead of
nil. Uppercase device constants to match env var values. Add fallback
case to launch script. Fix artifact download paths in CI universal
packaging job. Remove debug comments and cosmetic issues.
Split the 330-line setup() into named phases: setupInputMapping,
initFramework, loadOrCreateConfig, handleFirstLaunch, applyConfig,
connectAndLoadPlatforms, and handleAuthFailure. Logic is unchanged.
Protect Start() with mutex and remove unused done channel to prevent
a potential double-close panic. Add warning logs when CompareVersions
fails to parse version strings so silent update skips are diagnosable.
Remove switchProtocol, tryAlternateProtocol, tryAlternateProtocolForLogin,
ProtocolError type, and ErrWrongProtocol. The user already selects HTTP
or HTTPS on the login screen. Protocol mismatches now fall through to
the unclassified error path with debug logging. Removes 4 i18n keys
from all locale files.
Remove unused DownloadRoms, DownloadRomsQuery, fetchAllGames, and
endpointRomsDownload. ROM downloads are handled by gabagool's
DownloadManager which streams to disk. fetchAllGames was replaced
by per-platform streaming in the memory optimization PR.
fetchPlatformGames now returns the count of games actually fetched
instead of using the server's total ROMCount, which was incorrect for
incremental syncs. Removed deprecated platform_id query param in favor
of platform_ids. Applied gofmt.
Rename build/extract tasks to include architecture (build-arm64,
build-arm32, etc.) for clarity. Add Onion CFW quirks to docs.
Reorganize auth.go and add response debug logging for connection
validation and login failures. Use RELEASE_PAT for versions.json push.
upload-artifact@v4 strips common path prefixes, so artifacts from
single-directory uploads (arm32, amd64, x86) lose their dist/ prefix.
Use ** globs in the release step and find in the versions job to
locate files regardless of path.
Pass GROUT_VERSION build arg from the release workflow into Docker
builds so beta releases get the correct version number. Falls back
to pak.json for local dev builds when the arg is not set.