v0.10.0 — 626 opens on your library now
The launcher gets a home: a Game Library landing page with real cover art, every game's mod state at a glance, and one-click Play — and games modded by loose files in the game root (Death Stranding 2 and friends) go from "No mods" to detected, categorized, and reversibly toggleable without moving a single file.
What's new
- 626 now opens on a Game Library home. Every registered game as a rich row — cover, store badge, last played, mod state (N mods · M on), engine tier, ban-risk flag, detected-loader chips — with one-click Play and Manage. A Jump back in strip of big covers up top orders by real recency: 626's own launches plus Steam's last-played, best-available-wins. Unknown shows as unknown — never a faked timestamp.
- Real cover art, no icon blur. Covers are shape-aware — portrait art picked over stretched icons — and games Steam hasn't cached locally get fetched from Steam's public CDN, with a second store-API tier for brand-new titles. That's how Death Stranding 2 gets a real portrait on day one.
- A discovery lane for games you haven't added yet. Installed-but-unadded games from your store scan sit at the bottom of the library, one click to add. Search covers the whole wall.
- The title bar got out of the way. The game dropdown is retired — the library is the switcher now — and the Settings gear is always visible.
- Loose-root mods are managed now. Games modded by loose files dropped straight into the game root — Death Stranding 2 and other Decima titles: ASI plugins, ReShade addons, proxy loaders — are detected by nature, categorized (Plugins / Shaders / Loaders), and toggleable in place. Files never move while a mod is enabled; disabling moves them to a holding folder, re-enabling restores them byte-for-byte.
- Loose intake, with guardrails. Drop an .asi / .addon64 / archive and it installs into the root through the same validate-then-extract discipline as everything else. Disabling a proxy loader warns you it takes every ASI plugin down with it — warn-and-proceed, never a hard block. Vanilla launch steps loose mods aside and puts them back. Game files, standalone configs, and generic DLLs are never claimed.
- Identify loose mods on Nexus — review-first. One action proposes Nexus matches by name for your loose-root rows; you check the ones that are right, and only what you approve attaches — then endorsement hearts and update checks light up on those rows. GitHub build only: it needs the updated Nexus plugin (releasing alongside this cut), and the Store SKU doesn't ship the plugin surface.
Already live (no update needed)
- The game-definition feed grew to 150 supported games — including MECCHA CHAMELEON, and Death Stranding 2 re-curated onto the new decima engine. Feed-delivered, so it's already reached existing installs; no app update required.
- The feed repo now has a public supported-games page — a human-readable list, a machine-readable supported-games.json, and a live count badge, regenerated by CI in the same commit as the signed manifest so they can never drift.
Under the hood
- Game Library home (#168).
GameLibraryBuilder+RecencyLadderare pure Core (TDD'd); the recency readers (626's own launch log, Steamappmanifest.LastPlayed) are App-side adapters behindILastPlayedSource, the same pattern asIStoreLibrary— so Phase 2 (GOG DB + the UserAssist fallback that lights up Epic/Xbox) drops in with no rework.GameEntrygainsstoreSource+lastLaunchedUtc; launches append to an atomic camelCase launch log. Review caught a lying home "Play vanilla" item that silently launched modded — dropped; home Play launches current state, and vanilla stays the game-view mode toggle where its effect is visible. Spec:docs/superpowers/specs/2026-07-01-game-library-home-design.md· Plan:docs/superpowers/plans/2026-07-01-game-library-home-phase1.md. - Covers.
SteamArt(Core) picks shape-aware portrait art from the local library cache;SteamCdn(Core, tested) builds the two public-CDN URL tiers —library_600x900first, the hashed store-item-assets path for titles too new to have it;CoverCache(App) fetches and caches to disk. - Loose-root mods (#169).
LooseModScanis a pure-Core, by-nature detector — ASI plugins grouped with same-stem configs, each ReShade addon its own mod, exact-name proxy loaders only — tested against a fixture of the real DS2 game root. The feature widensDirectInjectrather than inventing a new mechanism: the proven detect / toggle-to-holding / sidecar / intake plumbing is reused wholesale. Newdecimaengine preset +Form="loose-root"mod location; Vortex/MO2-owned roots stay read-only until takeover. Spec:docs/superpowers/specs/2026-07-01-loose-root-mods-design.md· Plan:docs/superpowers/plans/2026-07-01-loose-root-mods-phase1.md. - Nexus loose identify (#171). New optional
IModTextSearchcapability in the plugin Abstractions — a separate interface, not anIModSourceextension, so already-installed plugins keep loading unchanged (no ABI break).LooseIdentify(pure Core) selects candidates (loaders, manual matches, and already-identified rows excluded), cleans stems viaNameMatch, and gates proposals on the established Jaccard threshold; approved hits attach withsourceConfidence: "nameSearch"through the existingWriteManyMetapath, so a manual match is never clobbered by a later identify run. Companion plugin PR: 626-mod-plugins #1. Spec:docs/superpowers/specs/2026-07-01-nexus-loose-identify-design.md· Plan:docs/superpowers/plans/2026-07-01-nexus-loose-identify.md. - Supported-games surface (#172, #173). Spec + plan live here; the generator + CI wiring landed in the feed repo — stdlib-only Python with a self-test gate that fails the build before anything publishes. Spec:
docs/superpowers/specs/2026-07-03-supported-games-surface-design.md. - Gate: Core suite 1381/0; FULL + STORE builds clean; STORE seal holds; CorePurity green. #174 bumps the Store package to 0.10.0.0.
Not yet
- Recency for GOG / Epic / Xbox — Phase 2. The readers slot in behind
ILastPlayedSource; until then those games rank by 626's own launches. - Active-profile display on library rows — deferred until a persisted active-profile concept exists (documented, not invented).
- Vanilla-diff loose detection — the Phase 2 seam is already in the signal list. Ambiguous root DLLs (e.g.
DeathStranding2Core.dll) stay deliberately untouched until then.