• feat(storage): storage page — drive usage and removing games to free space
    release / Build Windows .zip (push) Canceled after 0s

    LastSkywalker released this 2026-10-04 14:33:30 +03:00 | 22 commits to main since this release

    Console-style storage screen, on the desktop and in shell mode (gamepad):
    every drive with total / used / free and how much of it is games (system
    drive highlighted), and a list of installed games with size, what removing
    each frees on which drive, last launch, playtime and saves. Filters by last
    launch / playtime / size, grouping by drive and launcher/standalone.

    Removal methods are decided and re-validated by the backend: Steam via
    steam://uninstall, other stores via their client, a registered uninstaller,
    deleting the folder (standalone/GOG), or archiving standalone games into an
    optional archive folder (zip, full CRC/size verification, only then delete).
    An optional strict save backup (trigger preRemove) runs first; any failure
    aborts with the game untouched. The folder is renamed aside first so files
    still in use stop the removal before anything is deleted, and deletion never
    follows junctions (migrated saves). Saves and snapshots are never deleted.

    Shell mode gets ShellStorageView (corner icon), sharing filters, grouping
    and the removal job with the desktop page via storage.tsx. Its removal
    dialog starts focus on the method, never on Confirm, so a stray A can't
    remove a game.

    See .claude/decisions/0033-storage-page-game-removal.md.

    Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com

    Downloads