chore: bump version to 2026.1.0 and write changelog

This commit is contained in:
2026-05-16 17:40:42 +08:00
parent 8e88d6f759
commit 3363b9161d
4 changed files with 58 additions and 3 deletions
+26
View File
@@ -2,6 +2,32 @@
All notable changes to DeckyVault will be documented in this file. All notable changes to DeckyVault will be documented in this file.
## [2026.1.0] - 2026-05-16
### Added
- **Moderator role** with content moderation permissions (verify entries, handle reports, review suggestions, manage comments) — sits between contributor and admin
- **Moderation analytics tab** with ECharts time-series: benchmark submissions, user registrations, device distribution, and genre popularity over 90 days
- **Ban reason and expiry UI** in user management — modal with optional reason and duration, plus active/banned filter tabs
- **Steam Sale section** on landing page showing discounted games with ≥3 benchmarks, sorted by performance — includes discount badges, pricing, and review scores
- Database performance indexes: `perf_removed_created_idx`, `perf_upvotes_idx`, `reports_status_idx`, `suggestions_status_idx`, `games_sync_status_idx`, `perf_game_lookup_idx`
- In-memory 5-minute cache for manage dashboard stats endpoint
- Auto-pin unit tests covering threshold edge cases
### Changed
- **Performance tags (Raw Performer/Poor Performance/best FPS) now scoped to handheld devices** (Steam Deck OLED/LCD) by default — console (Steam Machine) data no longer influences the badges shown on game cards, listings, and search results
- **Public dashboard** now uses full-width layout matching game details page styling (no `max-w` constraint)
- Moderator role added between contributor and admin; manage sidebar adapts to show role-appropriate navigation (hides Users, Storage for moderators)
- Manage panel now requires moderator or admin role for access (previously contributor+)
- Content moderation endpoints (reports, suggestions, comments, benchmark removal) gated to moderator+
### Fixed
- **Submit wizard drag-and-drop** no longer triggers text selection or touch-scroll interference on settings and screenshot reorder handles
- **Editing entries with screenshots** now shows existing screenshots in the Review step with remove capability; supports hybrid existing + new screenshot management
### Security
- Manage panel access restricted to moderator+ (up from contributor+)
- Destructive benchmark operations (remove, hard-delete, restore) now require moderator+ (up from admin-only — wider moderation capability with proper role separation)
## [2026.0.101] - 2026-05-14 ## [2026.0.101] - 2026-05-14
### Added ### Added
+28
View File
@@ -0,0 +1,28 @@
---
title: "Moderator Role, Performance Tag Fix, and Steam Sale Section"
date: "2026-05-16"
version: "2026.1.0"
summary: "New moderator role for community management, handheld-scoped performance tags for more accurate badges, Steam sale discovery on the landing page, and submit wizard fixes."
---
### New Moderator Role
A new **moderator** role sits between contributor and admin, giving trusted community members the ability to:
- Verify benchmarks, handle reports, and review community suggestions
- Moderate comments and remove problematic entries
- Access the manage panel with role-appropriate navigation
Admins retain full control over user management, storage, and hardware creation. Existing contributors keep their permissions unchanged.
### Handheld-Scoped Performance Tags
Performance badges (Raw Performer, Poor Performance, best FPS) are now calculated using **Steam Deck data only** — console performance no longer masks handheld reality. A game running at 90 FPS on Steam Machine but 25 FPS on Steam Deck will correctly show as "Poor Performance" rather than displaying both badges confusingly.
### Steam Sale Discovery
The landing page now features an **On Sale & Performing Well** section showing discounted Steam games from the DeckyVault database. Each card displays the discount percentage, sale price, performance badges, and Steam review score — helping you spot great deals on games that actually run well.
### Submit Wizard Improvements
- **Drag-and-drop** in the settings editor and screenshot uploader no longer triggers accidental text selection
- **Editing entries with screenshots** now shows your existing screenshots in the Review step — remove individual ones or add new ones before re-submitting
+2 -2
View File
@@ -73,7 +73,7 @@ export const app = new Elysia({ prefix: "/api" })
documentation: { documentation: {
info: { info: {
title: "DeckyVault API", title: "DeckyVault API",
version: "2026.0.101", version: "2026.1.0",
description: description:
"API for DeckyVault — Steam Deck game compatibility, performance reports, and community features.", "API for DeckyVault — Steam Deck game compatibility, performance reports, and community features.",
}, },
@@ -214,7 +214,7 @@ export const app = new Elysia({ prefix: "/api" })
.use(rateLimit("default")) .use(rateLimit("default"))
.get("/", () => ({ .get("/", () => ({
name: "DeckyVault API", name: "DeckyVault API",
version: "2026.0.101", version: "2026.1.0",
})) }))
export type App = typeof app export type App = typeof app
+2 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "deckyvault", "name": "deckyvault",
"version": "2026.0.101", "version": "2026.1.0",
"private": true, "private": true,
"scripts": { "scripts": {
"dev": "next dev --experimental-https --webpack", "dev": "next dev --experimental-https --webpack",
@@ -18,6 +18,7 @@
"dependencies": { "dependencies": {
"@aws-sdk/client-s3": "^3.1036.0", "@aws-sdk/client-s3": "^3.1036.0",
"@better-auth/drizzle-adapter": "^1.6.9", "@better-auth/drizzle-adapter": "^1.6.9",
"@better-auth/expo": "^1.6.11",
"@better-auth/passkey": "^1.6.9", "@better-auth/passkey": "^1.6.9",
"@elysia/cron": "^1.4.2", "@elysia/cron": "^1.4.2",
"@elysia/eden": "^1.4.10", "@elysia/eden": "^1.4.10",