Skip to content

Choose the game platform and clean completed download staging - #1

Merged
Brekit merged 3 commits into
mainfrom
feat/install-platform-picker
Oct 15, 2026
Merged

Brekit merged 3 commits into
mainfrom
feat/install-platform-picker

Conversation

@Brekit

@Brekit Brekit commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Problem and resulting behavior

Installing a game could silently follow an old compatibility preference instead of letting the user choose its platform. The install sheet now offers the supported macOS and Windows versions, preselects macOS when available, and requires explicit confirmation. The selected version is recorded in the download queue and installation metadata; pause, retry, restart and updates retain it. Launch and game settings use the version actually installed. Existing installations still require removal before changing platform.

Completed installations could also leave obsolete .skinos-APPID-BUILD.partial directories behind. Cleanup now runs after a persisted successful installation and on startup for completed queue entries. It removes only older staging builds after verifying installation metadata and acquiring operation locks. Any unfinished, paused, cancelled or failed intent for that game in another account prevents cleanup; symlink targets, current/newer builds and installed game files are preserved.

Validation

  • Local full Rust workspace tests, formatting and strict Clippy passed.
  • Swift frontend/model suite passed: 76 tests, including platform selection and cancellation coverage.
  • The running macOS app was checked for macOS default selection, Windows switching and cancellation without starting a download.
  • The real core cleanup command removed one obsolete staging directory after verifying a completed installation; a second call removed nothing.
  • Regression tests cover queue restart/update retention, legacy platform detection, cleanup lifecycle, interrupted states, metadata mismatch, operation locks and symlink targets.
  • Native Dota 2 reaching its menu is not fixed or claimed by this PR. Experimental runtime changes are excluded.

Review fixes

Cache cleanup now runs as supervised background work with AppID/destination reservations. Unrelated downloads, progress and pause/cancel commands remain responsive during large cleanups. Regression coverage includes a stalled cleanup, destination protection, correlated manual responses and shutdown draining.

Review notes

Queue and installation platform fields are optional for legacy data and resolved from existing metadata/files. Cleanup failures are reported separately and cannot turn a successful installation into a failed download. No credential storage, runtime permissions or external dependencies are changed. Version is 0.1.4, build 5.

UI verification contains account/library data, so no unredacted screenshot is attached.

  • The diff contains no credentials, personal account data, game files or generated app bundles.
  • Third-party source retains its license and upstream attribution.
  • Documentation and regression coverage reflect the behavior changed, where applicable.

@Brekit
Brekit merged commit 86b53cf into main Oct 15, 2026
2 checks passed
@Brekit
Brekit deleted the feat/install-platform-picker branch October 15, 2026 16:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant