What's Changed
New Features
- Achievement Changelogs: add 'Logic updated' deep links by @wescopeland in #5139
- Database Metadata: add a whitespace normalizer to games, achievements, and leaderboards by @wescopeland in #5126
- Email Notifications: notify Want to Play users when a game's set is released by @wescopeland in #5136
- Game Pages: add marker for event achievements to achievements list by @Jamiras in #5154
- Game Pages: sort achievements by the selected key only by @wescopeland in #5148
- Tickets: prevent most untracked users from creating tickets by @wescopeland in #5137
Bug Fixes
- Achievements: keep unsubmitted comment drafts by @mariobob in #5130
- Achievements: preserve trigger authorship when promoting an achievement by @wescopeland in #5150
- Forums: track edited_at separately from updated_at by @wescopeland in #5161
- Game Lists: keep the set type filter stable against page refreshes by @wescopeland in #5135
- Game Lists: restore deferred props lost to the bfcache by @wescopeland in #5147
- Game Page: skip quick completion warning on sole author revisions by @wescopeland in #5138
- SEO: format meta description numbers with an explicit locale by @mariobob in #5141
- Tickets: quarantine by the reported emulator by @wescopeland in #5151
Management App Changes
- Game Hashes: set associated user when creating new hash by @Jamiras in #5144
- Moderation: support watched term alerts for the mod team by @wescopeland in #5145
- Trigger Logic: normalize decoded hex so equivalent logic stops showing as modified by @wescopeland in #5149
- V2 API: add an OAuthClientResource class by @wescopeland in #5134
API Changes
- V2: adjust CORS by @wescopeland in #5157
- V2: discriminate between 'integer' and 'number' by @wescopeland in #5169
- V2: generate and publish an OpenAPI spec by @wescopeland in #5158
- V2: stop registering phantom achievement-sets.index route by @wescopeland in #5155
Other Changes
- Beaten Games: bulk write beaten games player stats by @wescopeland in #5153
- DB: add more deadlock resiliency by @wescopeland in #5127
- DB: remove foreign keys from materialized tables by @wescopeland in #5170
- CI: pin en_US locale for vitest by @wescopeland in #5140
- Misc: remove some orphaned legacy request routes by @wescopeland in #5171
- User Profiles: eliminate unnecessary model hydration on profile page by @Jamiras in #5180
New Contributors
Full Changelog: 2026.07.31...2026.08.26