Skip to content

Release architecture: separate Linux image, TrainerOS software and OddCrate game updates #153

Description

@EriArk

Product decision

TrainerOS is no longer tied to one flashed Linux image. It is a portable, self-contained gaming environment distributed both in a prepared image and via the convergence installer on existing SteamOS/Bazzite Linux hosts (#70/#118).

Separate the release/update ownership boundaries instead of using 'OS update' for everything:

Release layer Content Update owner
System Image / Host OS Linux base, kernel/drivers, boot, vendor host components, system recovery Prepared-image OTA #71 for an owned image; SteamOS/Bazzite's own native updater on those hosts
TrainerOS Software TrainerOS executable/UI/resources, session integration, TrainerOS-owned services, tested emulator/core/patch bundles, adapter packages, signed guest-ROM policy A single cross-host TrainerOS software updater (#154), independent of image update
OddCrate games/content Owner-curated downloaded homebrew ROMs, native game packages, game media OddCrate own install/update pipeline #148; never silently treated as TrainerOS software or OS base

Image and software have distinct version numbers and manifests. A new image carries a pinned compatible software snapshot for clean first boot, but later TrainerOS software updates can proceed without reflashing, rebuilding or updating the Linux base. A Linux image update must not downgrade already newer compatible TrainerOS software accidentally.

ROM Policy Studio's signed encrypted data is a TrainerOS-software release component: an urgent policy-only software update can change only policy files/signatures/manifest, without rebuilding application/emulators/images (#140/#142/#143). This remains the ordinary TrainerOS software update channel, never an independent policy downloader.

User journeys

  1. Prepared image device: optional System image update for the managed Linux base; frequent TrainerOS software update for shell/features/runtime/policies; OddCrate game updates separately.
  2. SteamOS/Bazzite install: host OS updates in normal host tools, TrainerOS software updates from TrainerOS, and OddCrate games update separately. TrainerOS never replaces/rolls back the host OS.
  3. Hotfix: release a tiny signed policy-only TrainerOS software update; no image rebuild, emulator reinstall, download of unchanged files or independent list updater.

Safety and compatibility

  • Shared software manifest describes architecture, device capability, compatible host OS interface range, runtime/core/adapter bundle identity, own paths/services, policy version and data migrations.
  • Host-image and TrainerOS software updater must coordinate compatibility and live-session safety, avoiding updates during protected game/save activity.
  • Signed integrity, atomic stage/apply, repair and last-known-good software rollback are distinct from OS A/B rollback.
  • Persist game ROMs, BIOS, saves, play history, Trainer data, OddCrate installs and user-owned host files across both update types.
  • Host update/drift detection uses Maintenance: audit and repair TrainerOS after host OS updates #123 and never resolves incompatibility by taking over SteamOS/Bazzite.

Related issues

Acceptance

  • Image can remain at base version I while software advances S→S+1 and features become available without reimaging.
  • SteamOS/Bazzite software update uses same S+1 artifacts and TrainerOS-owned runtime compatibility, with unchanged host boot/OS.
  • Image base I→I+1 update does not reinstall/downgrade unrelated already-compatible user/game/software state.
  • Signed policy-only S+2 update installs no changed binary, emulator/core or OS base.
  • Three distinct version identities and update histories/statuses are understandable in settings.
  • Interrupted/failed updates recover at the correct ownership layer.
  • OddCrate game updates and ordinary host OS updates remain fully independent.

Implementation checklist

Existing issues corrected

Implementation order

  1. Distribution: independent image and TrainerOS software release manifests and ownership #119 release ownership, TrainerOS Software: signed cross-distro updater independent of system image #154 software update and Settings UX: show separate System Image, TrainerOS Software and game updates #155 Settings presentation in parallel with TV UI foundation: introduce a real ten-foot responsive layout system, not 960x540 stretching #156 responsive layout tokens.
  2. TV UX: redesign Home, libraries, OddCrate, Social and game overlays for couch viewing #157/TV input UX: reliable D-pad/remote focus, text entry and accessibility at ten feet #158 UI and focus reflow; TV display profiles: external screen, docked mode and safe transition without host takeover #159 external display handling.
  3. Acceptance: independent image/software updates and true handheld/TV parity across install modes #160 verifies actual devices, distinct-version update flows and preservation.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions