Skip to content

Releases: Wolfsblvt/shelfbound-steam

Shelfbound libraries 0.8.1 (snapshot schema 0.6.0)

Choose a tag to compare

@Wolfsblvt Wolfsblvt released this 21 Jul 15:08

Shelfbound 0.8.1 is a patch release of Shelfbound.Core, Shelfbound.Query, and Shelfbound.Steam. The snapshot schema remains 0.6.0.

Changes

  • Preserve the newest known LastPlayed event when local and Steam Web observations are merged. Missing Web recency can no longer clear a known local timestamp; equal instants preserve the local offset representation while Web playtime keeps its existing precedence.
  • Harden API-compatibility validation for patch releases. A patch must compare cleanly with its immediate published baseline and cannot reuse historical compatibility suppressions; intentional pre-1.0 API breaks still require a minor version bump and reviewed suppressions.

Verification

  • Exact source: 05dae2ed390f143f7aa191b44306add20d5b4261
  • Package set: Shelfbound.Core, Shelfbound.Query, Shelfbound.Steam
  • Package/schema mapping: 0.8.1 / 0.6.0
  • Release preflight verified package identity, SourceLink/source commit, symbols, API compatibility, and exact downstream restore/contract behavior.

Shelfbound libraries 0.8.0 (snapshot schema 0.6.0)

Choose a tag to compare

@Wolfsblvt Wolfsblvt released this 18 Jul 02:25

The open-core library set — Shelfbound.Core, Shelfbound.Query, and Shelfbound.Steam — at immutable version
0.8.0, producing snapshot schema 0.6.0. AGPL-3.0-or-later.

Why this release

0.8.0 makes partial Steam observations honest instead of treating visibility-gated Web API output as a complete owned
library. It also introduces QueryPlan v1: one deterministic, portable search-intent contract that hosted and local
consumers can adopt without inventing incompatible grammars.

What's in it

  • Schema 0.6.0 observation semantics — adds observedSubset beside installedOnly and explicitly contracted
    fullLibrary. Absence from either partial scope proves nothing about ownership or access; published enum identities
    remain compatible and comparisons go through LibraryScopeSemantics.
  • Structured Steam Web outcomesISteamWebApiClient now returns usable, missing-list, empty-list, or malformed
    evidence with an observation timestamp. Empty or unavailable visibility-gated responses no longer masquerade as a
    successful complete library.
  • QueryPlan v1 — adds the versioned plan, C# text parser/canonical serializer, structured diagnostics, capability
    validation, defensive bounds, and the executable G1–G25 conformance corpus. This is a contract/parser seam; the existing
    LibraryFilter engine and local MCP behavior are unchanged.
  • Local-source hardening — tightens bounded Steam/VDF/manifest/collection parsing and authenticated client input
    handling, improves modern collection decoding, and adds Windows registry-based Steam installation discovery.
  • Release integrity — package/schema/source identity, API compatibility, symbols/Source Link, duplicate-version
    rejection, and the exact producer→package→cloud-consumer contract remain fail-closed.

Compatibility

Snapshot 0.6.0 is additive on the wire. The ISteamWebApiClient raw-list→structured-result API change is the intentional
pre-1.0 package break recorded and checked for 0.8.0. QueryPlan v1 is additive; current query execution remains on
LibraryFilter until a later migration.

Consumers

The hosted API packs this exact producer commit into an isolated local feed and tests old/current/unsupported-next
snapshot negotiation plus byte-identical QueryPlan corpus parity before release. Packages: Shelfbound.Core,
Shelfbound.Query, and Shelfbound.Steam 0.8.0 on nuget.org.

Shelfbound libraries 0.7.0 (snapshot schema 0.5.0)

Choose a tag to compare

@Wolfsblvt Wolfsblvt released this 11 Jul 21:40

The open-core library set — Shelfbound.Core, Shelfbound.Query, Shelfbound.Steam — at an immutable 0.7.0, producing snapshot schema 0.5.0. AGPL-3.0-or-later.

Why this release

0.7.0 re-establishes a clean, immutable version ↔ schema ↔ commit identity after the published 0.6.0 had drifted from source (published 0.6.0 shipped schema 0.4.0; source 0.6.0 had already moved to 0.5.0 under the same string). 0.7.0 is the first correctly-published version carrying the 0.5.0 schema.

What's in it

  • Schema 0.5.0 — adds optional libraries[].storage (kind + free/total), additive over 0.4.0; RecordFirstSeen takes the library scope.
  • Immutable package contract — SourceLink + embedded schema/commit in every package; a public-API compatibility baseline; the publish now fails on a duplicate version instead of silently no-op'ing.
  • Release gates — CI rejects a reused version, a schema change without a package bump, a breaking public-API change without a version-policy bump, and a stale downstream consumer pin.
  • Shelfbound.Storage stays local (non-packable); the portable SnapshotStorage DTO lives in Core.

Consumers

The hosted API negotiates supported snapshot versions (0.4.x / 0.5.x) at /ingest and rejects newer/unknown versions with a typed error. A cross-repo pack→restore→consume contract test (T-16) with golden old/current/next fixtures gates the boundary.

Packages: Shelfbound.Core, Shelfbound.Query, Shelfbound.Steam 0.7.0 on nuget.org.

v0.5.0 — device specs + recommendations

Choose a tag to compare

@Wolfsblvt Wolfsblvt released this 29 Jun 17:24

Device intelligence groundwork in the open core.

  • Device hardware specs on the snapshot (DeviceSpecs): CPU, cores, RAM, GPU, OS, architecture (best-effort, cross-platform; GPU via Hardware.Info).
  • RecommendationEngine (Shelfbound.Query): deterministic "what to play / uninstall next?" cards — device-aware (only frames "play on your Deck" when the device is a Deck). Exposed via the local MCP get_recommendations tool.
  • Tray shows the captured specs in a transparency card.

Packages (AGPL-3.0-or-later): Shelfbound.Core, Shelfbound.Query, Shelfbound.Steam at 0.5.0.

v0.4.0 — first published libraries

Choose a tag to compare

@Wolfsblvt Wolfsblvt released this 28 Jun 21:36

First NuGet release of the reusable Shelfbound libraries, consumed by the hosted product.

Packages (AGPL-3.0-or-later): Shelfbound.Core, Shelfbound.Query, Shelfbound.Steam.

  • Snapshot contract + serializer, merged library view, query/filter engine
  • User-data model (ratings, statuses, completion, memories, category meanings)
  • Steam Web API enrichment + recency (relative-time phrases, first-seen inference)

Published via Trusted Publishing (OIDC) on the nuget environment.