Personal video game collection manager — Windows MSI and macOS PKG installers.
.msi..pkg. It will say it's blocked — click Done (not "Move to Trash").ArtworkPathResolver (GameShelfServices) so the CLI, WPF, and the macOS app (via GameShelfApi) all consistently prefer already-cached/custom local artwork over remote IGDB CDN URLs once a game or platform is on the shelf, falling back to the CDN only when nothing's cached yet (issue #7)GameShelfApi's POST /api/shelf/POST /api/platforms now cache cover art/platform logos to disk on add (previously only the CLI cached covers, and only WPF cached logos), and its DTO mappers resolve local files the same way — no macOS client changes were needed, since it already consumed file:// URLs for custom artworkshelf games artwork recache --id and shelf platforms logo recache --id CLI commands to force a fresh IGDB download when a cached file is missing or corrupted, and taught shelf platforms add to cache the platform logo to disk (previously only cover art was cached on add)GameShelf:ArtworkCacheDir at startup, silently caching/resolving artwork against the default ~/Library/Application Support/GameShelf/artwork instead of the user's configured directoryshelf platforms refresh silently discarding a platform's version-specific logo in favor of the parent IGDB platform's logo, which broke local artwork resolution for any platform originally added under a specific hardware versionconfig igdb-client-id, replacing auth login/auth logout), WPF, and macOS Settings/first-run screens, with the resulting pair validated against Twitch immediately on save instead of only failing later at search time.pkg wizard (Introduction/Destination Select/Installation Type/Install/Summary) as an alternative to the drag-to-Applications .dmg, bundling both the GUI app and a gameshelf CLI binary installed to /usr/local/bin