You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
OddCrate acceptance: real game discovery, self-hosted release, donation and qualified reviews #152
Deliver the whole user experience, not just separate server/client smoke tests. Validate that OddCrate feels like a built-in, curated extension of TrainerOS and existing Adventures.
Test fixture games
Choose one genuinely redistributable homebrew ROM and one open-source native Linux game with redistributable bundled assets. Use their real maintainer sources and tested version records, not arbitrary copyrighted commercial files. Test ARM64 and x86-64 targets where actually supported.
Walkthrough A — discover and play
Multiverse → OddCrate → handpicked category → game info → Install → download progress → My Collection → Play → Home → Exit → play history
Then update the game through the same server release and verify saved progress, launch identity, downloaded art and user files are retained. Remove only OddCrate-owned content, leaving unrelated saves/files intact.
Walkthrough B — upstream change and curation
owner approves source/recipe → upstream releases new tag → isolated build → automated validation → candidate → owner promotes → server catalog updates → client sees Update
A broken build/test or invalid permission should leave the current release available. Verify build jobs cannot access the owner's Nextcloud, private data or signing keys.
Walkthrough C — creator support
game detail → Donate → select author-approved destination → QR code → scan using a phone → open exactly that creator's destination
No payment is handled in TrainerOS. Missing/malicious URLs do not appear.
With 7199 seconds of valid cumulative game time and no verified completion: writing/rating remains locked.
With 7200 seconds: rating unlocks (even without completion).
With a verified short-game completion before 7200 seconds and genuine play: rating unlocks.
Without trustworthy completion evidence, merely opening/exiting a game or importing an unverified marker is insufficient.
Write 1–5 stars with or without optional text; edit/delete, spoiler/report, cross-device read, cache/offline behave consistently.
Top Rated uses qualified votes and does not place a one-vote game above a heavily rated favorite by naive average.
Multiplayer relationship
OddCrate-installed content joins current Friend/Together GameParty if its runtime supports it. If a friend lacks an eligible OddCrate game, offer an explicit normal installation from the catalog and then resume joining, distinct from temporary guest ROM transfer (#136).
Failure / quality gates
Controller-only screenshots on a handheld and a real TV profile (#156/#157) for catalog, game details, downloads, QR, reviews and Top Rated. Test corrupt signatures, server offline, canceled update, disk full, wrong architecture, permissions withdrawal and account switching. Verify TV donation QR phone scanning, safe areas and focus from sofa distance. Do not count a browser mockup or upscaled handheld composition as deployed TV functionality.
Acceptance
Physical handheld and TV-mode flow confirms install → normal launch → exit → review eligibility → donation → remove without destroying saves.
Parent: #144
Goal
Deliver the whole user experience, not just separate server/client smoke tests. Validate that OddCrate feels like a built-in, curated extension of TrainerOS and existing Adventures.
Test fixture games
Choose one genuinely redistributable homebrew ROM and one open-source native Linux game with redistributable bundled assets. Use their real maintainer sources and tested version records, not arbitrary copyrighted commercial files. Test ARM64 and x86-64 targets where actually supported.
Walkthrough A — discover and play
Multiverse → OddCrate → handpicked category → game info → Install → download progress → My Collection → Play → Home → Exit → play historyThen update the game through the same server release and verify saved progress, launch identity, downloaded art and user files are retained. Remove only OddCrate-owned content, leaving unrelated saves/files intact.
Walkthrough B — upstream change and curation
owner approves source/recipe → upstream releases new tag → isolated build → automated validation → candidate → owner promotes → server catalog updates → client sees UpdateA broken build/test or invalid permission should leave the current release available. Verify build jobs cannot access the owner's Nextcloud, private data or signing keys.
Walkthrough C — creator support
game detail → Donate → select author-approved destination → QR code → scan using a phone → open exactly that creator's destinationNo payment is handled in TrainerOS. Missing/malicious URLs do not appear.
Walkthrough D — shared reviews across ALL games
Multiplayer relationship
OddCrate-installed content joins current Friend/Together GameParty if its runtime supports it. If a friend lacks an eligible OddCrate game, offer an explicit normal installation from the catalog and then resume joining, distinct from temporary guest ROM transfer (#136).
Failure / quality gates
Controller-only screenshots on a handheld and a real TV profile (#156/#157) for catalog, game details, downloads, QR, reviews and Top Rated. Test corrupt signatures, server offline, canceled update, disk full, wrong architecture, permissions withdrawal and account switching. Verify TV donation QR phone scanning, safe areas and focus from sofa distance. Do not count a browser mockup or upscaled handheld composition as deployed TV functionality.
Acceptance