V4.8.0.0#179
Merged
Merged
Conversation
Currently, all artifacts path from ss_metadata are wrong, because of the missing `/assets/romm/resources` prefix
…in platforms api response
feat: introduce tools menu in settings for this new artwork sync and for kid mode
Add support for RomM client API tokens as an alternative to username/password authentication. Includes QR-less pairing code exchange, token validation, and a settings option to switch existing credential-based connections to token auth. Refactors the HTTP client to use a generic auth header instead of hardcoded basic auth, supporting both Bearer tokens and Basic auth transparently via Host.AuthHeader().
Adds 37 new translation keys covering pairing code auth, token management, tools settings, sync history columns, save mappings, and server address validation. Removes 4 unused keys. Non-English locales use English fallback values.
Split the login section into Server Connection and Authentication phases. Document the pairing code flow with required token scopes. Add new screenshots for server info, pairing code, and credentials screens. Update quick start guide with new auth steps.
Add Directory Mappings, Tools, and Switch to API Token sections. Document Server Address, Download Missing Art, and Save Sync Mappings settings. Rename Kids Mode to Kid Mode throughout.
Restructure FAQ using collapsible questions. Simplify save sync ROM matching documentation and remove verbose implementation details.
Call gaba.Close() before os.Exit/log.Fatalf during login to properly shut down SDL. Without this, the display freezes on some CFWs when quitting from the server connection screen. Also use exit code 0 for user-initiated quit (pressing B) instead of 1.
Add Onion OS (Miyoo Mini/Mini+) support with platform mappings, save directory mappings, Miyoo input mappings, and packaging config. Save path uses Onion's CurrentProfile structure. Shares the ARM32 build pipeline with Allium.
Bump gabagool v2.13.0 -> v2.13.7, sqlite v1.46.1 -> v1.47.0, klauspost/compress v1.18.4 -> v1.18.5. Drop unused golang.org/x/tools.
- Package tasks now output to dist/ instead of build64/, keeping build folders for raw binaries/libs only - Release workflow updated to reference dist/ for zip creation and uploads - Allium and Onion now copy libs from vendored/miyoo/ instead of the build container - Add app icons for Allium and Onion - Update Spruce and Trimui config descriptions
…bytes Write the embedded splash.png to .cache/splash.png on first use and load from disk on subsequent launches. Avoids passing large byte slices through the UI framework.
Add DurationSeconds type that marshals to JSON as whole seconds instead of nanoseconds. Old configs with nanosecond values are auto-detected on load (values > 1M are treated as nanoseconds). API timeout is clamped to the valid picker range (max 300s) to prevent silent corruption when saving from the advanced settings screen. Default API timeout corrected from 30 minutes to 30 seconds to match the UI options.
Remap SDL keycode 9 (L2) to virtual button Menu on Allium and Onion since L2 is unused and there is no dedicated Menu button on Miyoo. Add IS_MIYOO env var to launch scripts and show "L2" instead of "Menu" in the BIOS footer label on Miyoo devices.
Add installation guides for Onion (Miyoo Mini Plus) and Allium (Miyoo Mini Flip). Update README, getting-started index, and mkdocs nav with the new platforms.
Add docs/_includes/cfw-links.md as shared link definitions included via pymdownx.snippets in all doc pages. README uses markdown reference-style links defined at the bottom. Update Allium URL to goweiwen/Allium, Onion to onionui.github.io, TrimUI to github.com/trimui.
…ility Added bare minimum instructions to manually set time with recommended and option instructions to enable NTP and set the system to wait for NTP before boot.
These were being excluded by the global config.json gitignore rule. Add an exception for scripts/**/config.json.
Upload the ARM32 binary as grout-arm32 alongside the ARM64 grout binary. GetAssetName now returns grout-arm32 for Allium and Onion so the in-app updater downloads the correct architecture binary.
Generate platform.md docs from existing JSON mappings. Add both to mkdocs nav and gen-platforms tool.
the url.JoinPath method on go encode the '?' charater to a %3F html unicode. So we basically split from that point
Sync up with Main
…ually there. addresses #170
Add CPS1/CPS2/CPS3, Ports, Satellaview, ScummVM, SGB, Sufami Turbo, and VideoPac mappings. Fix Neo Geo Pocket Color, WonderSwan Color, and PICO-8 folder paths to match actual Onion directory structure.
Batocera runs on both ARM64 and x86_64 PCs. The release was only shipping an ARM64 binary, causing "Exec format error" on x86_64. - Add package-batocera-amd64 task and build AMD64 in release workflow - Ship separate Grout-Batocera-arm64.zip and Grout-Batocera-amd64.zip - Upload grout-amd64 standalone binary for the in-app updater - Use runtime.GOARCH in updater to download correct binary for arch
Instead of hardcoding asset names per-CFW, derive them from the compiled architecture. Release now uploads grout-arm64, grout-amd64, and grout-arm32 instead of a bare "grout" binary.
- Add build-x86, extract-x86, and package-batocera-x86 tasks - Add x86 (386) to updater asset name resolution - Split release workflow into parallel jobs per architecture: build-arm64, build-amd64, build-x86, build-arm32 - Each job uploads artifacts, final release job collects and publishes - Release now ships grout-arm64, grout-amd64, grout-x86, grout-arm32 and Batocera zips for arm64, amd64, and x86
Older versions of the updater look for a bare "grout" asset. Upload the arm64 binary under both names so existing installs can still update to this release.
…tegration feat: Continue integration and download of more artifacts
Prerelease segments like beta.6 vs beta.10 were compared as strings, causing beta.10 to appear older than beta.6. Split on '.' and compare numeric segments as integers per the semver spec.
Fetch update metadata from a static versions.json hosted on GitHub Pages instead of querying the GitHub releases API. Eliminates rate limits, pagination issues, and the stable-channel-falling-back-to- prerelease bug. The versions file is updated by CI on each release.
Replace bare binary swap with full distribution zip update. Downloads the CFW-specific zip, verifies its SHA256 hash, and extracts to a staging directory. The launch script applies the update on next start, keeping the running binary untouched. Adds per-CFW install root and asset name resolution for all 13 distribution targets.
Each launch script now checks for a .update staging directory after cd'ing to the binary dir. If present, it copies the contents over the install and removes the staging dir before starting grout. Also cleans up leftover update artifacts on startup.
Use atomic.Pointer for updateInfo and a mutex for releaseChannel to eliminate a data race between the background check goroutine and the UI thread. Add update-versions job to the release workflow that hashes build artifacts, verifies uploaded assets match, and commits the versions.json with all distribution zip metadata.
Use atomic.Pointer for updateInfo and a mutex for releaseChannel to eliminate a data race between the background check goroutine and the UI thread. Add update-versions job to the release workflow that hashes build artifacts, verifies uploaded assets match, and commits the versions.json with all distribution zip metadata.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.