From 8da0dce7233dfa1d09bd4370f2d2b11d588f9530 Mon Sep 17 00:00:00 2001 From: Adrian Bonpin Date: Wed, 20 May 2026 02:25:04 +0800 Subject: [PATCH] chore: bump version to 2026.2.0 with CHANGELOG and update news --- CHANGELOG.md | 16 ++++++++++++++++ content/updates/2026-05-20-v2026.2.0.md | 23 +++++++++++++++++++++++ package.json | 2 +- 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 content/updates/2026-05-20-v2026.2.0.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f14593..5a060e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,22 @@ All notable changes to DeckyVault will be documented in this file. +## [2026.2.0] - 2026-05-20 + +### Added +- **ProtonDB URL compatibility:** `/app/[steamid]` permanently redirects to `/game/[steamid]` — replace `protondb.com` with `deckyvault.xyz` in any ProtonDB URL to land on the matching DeckyVault game page +- **Human-readable share URLs:** share button now copies clean URLs with numeric Steam App IDs for Steam games and title-based slugs for non-Steam games, instead of opaque UUIDs +- **Auto-generated slugs for non-Steam games:** new `slug` column on `games` table, populated on creation from the game title with automatic deduplication + +### Changed +- Share URLs now use `steamAppId` (Steam) or `slug` (non-Steam) instead of the internal UUID + +### Technical +- Added `slug` column to `games` table with partial unique index +- Extended `resolveGame()` to support slug-based lookups as a fallback resolution path +- Added `lib/utils/slug.ts` for slug generation utility +- Backfilled slugs for all existing non-Steam games + ## [2026.1.0] - 2026-05-16 ### Added diff --git a/content/updates/2026-05-20-v2026.2.0.md b/content/updates/2026-05-20-v2026.2.0.md new file mode 100644 index 0000000..d25fd40 --- /dev/null +++ b/content/updates/2026-05-20-v2026.2.0.md @@ -0,0 +1,23 @@ +--- +title: "ProtonDB Redirects, Smart Sharing & Clean URLs" +date: "2026-05-20" +version: "2026.2.0" +summary: "Fast redirects for ProtonDB users, clean game slugs for non-Steam game sharing, and share URLs now use human-readable identifiers instead of UUIDs." +--- + +### ProtonDB URL Compatibility + +You can now replace `protondb.com` with `deckyvault.xyz` in any ProtonDB URL to land on the matching DeckyVault game page. Visiting `deckyvault.xyz/app/730` automatically redirects you to the Counter-Strike 2 benchmarks page. This works for any Steam App ID in the DeckyVault database. + +### Smart Share URLs + +The share button on benchmark presets now produces clean, readable URLs: + +- **Steam games:** `deckyvault.xyz/game/730?preset=...` (numeric Steam App ID) +- **Non-Steam games:** `deckyvault.xyz/game/the-witcher-3-wild-hunt?preset=...` (title-based slug) + +No more long UUID strings when you share a benchmark with friends. Existing UUID links continue to work — this is purely additive. + +### Non-Steam Game Slugs + +All non-Steam games (manual entries, GOG, Epic Games Store) now receive auto-generated URL-friendly slugs based on their title. Slugs are unique, deduplicated automatically, and remain stable even if the game title is later edited. \ No newline at end of file diff --git a/package.json b/package.json index ddb3653..a3b43be 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "deckyvault", - "version": "2026.1.102", + "version": "2026.2.0", "private": true, "scripts": { "dev": "next dev --experimental-https --webpack",