Skip to content

fix: resolve Steam artwork through anonymous PICS - #97

Merged
fraa2a merged 4 commits into
mainfrom
fix/steam-pics-assets
Oct 2, 2026
Merged

fraa2a merged 4 commits into
mainfrom
fix/steam-pics-assets

Conversation

@fraa2a

@fraa2a fraa2a commented Oct 1, 2026 •

Copy link
Copy Markdown
Owner

Modern Steam library artwork includes a hash in its asset path, so App ID-only logo and hero URLs fail for newer games. Resolve library and community artwork through steam-client-rs with anonymous CM login, get_product_info, and ProductInfoResponse, then build CDN URLs from validated PICS paths. Use blurred library heroes for card backgrounds and center title logos.

Keep header, capsule and screenshot loading on the existing cached Store-details path. Encapsulate PICS metadata loading and persistence in steam_pics; fresh cache reads bypass the CM lookup lock, and waiting lookups recheck the cache before connecting. Refresh metadata after 24 hours and retain stale metadata when Steam is unreachable. Reuse the existing image cache, legacy URL fallbacks, size limits, atomic writes and user-facing cache warnings.

Validation:

  • Rust formatting and Clippy with all targets/features and warnings denied passed.
  • Full Rust suite: 291 passed, 5 ignored; doc tests passed.
  • Regression tests cover Store images while PICS is locked, fresh metadata without network or locking, hash refresh and stale metadata fallback while offline, plus legacy/blurred-hero selection.
  • Both optional live tests passed against App ID 4656000: all 12 asset URLs resolved, and the modern logo downloaded and matched its local cache entry.
  • Svelte/TypeScript check, ESLint, production frontend build and release-manifest test passed.

CM cache misses remain serialized; cached metadata for other games can be read immediately. No additional dependencies or application version change in the optimization commit.

@fraa2a
fraa2a merged commit 21b40f3 into main Oct 2, 2026
4 checks passed
@fraa2a
fraa2a deleted the fix/steam-pics-assets branch October 2, 2026 18:00
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.

2 participants