Releases: RetroAchievements/RAWeb
Releases · RetroAchievements/RAWeb
Release list
2026.07.18-B
What's Changed
- fix: add BackfillMissingPlayerGames command by @wescopeland in #5039
Full Changelog: 2026.07.18...2026.07.18-B
2026.07.18
What's Changed
- chore: overhaul dev setup and remove dead tooling by @wescopeland in #5068
- chore: upgrade to Tailwind 4 by @wescopeland in #4914
Full Changelog: 2026.07.17...2026.07.18
2026.07.17
What's Changed
- feat(api): add progression stat fields to several resources by @wescopeland in #5054
- chore: add (leaderboard_id, deleted_at, score) index to leaderboard_entries by @wescopeland in #5043
- feat(api): add V2 JSON:API relationship endpoint for user leaderboard entries by @wescopeland in #5045
- perf(api/v2): optimize api_logs writes by @wescopeland in #5058
- fix(set-requests): split set request table persistence between general and user pages by @angelol-git in #5059
- feat(api): add V2 JSON:API relationship endpoint for user game list entry resources by @wescopeland in #5041
- feat(api): add filter[ranked] to users resource by @wescopeland in #5046
- fix(api/v2): treat date-only upper bounds as end-of-day in date filters by @wescopeland in #5047
- perf(api/v2): fix filesorts and N+1s on the achievements and users indexes by @wescopeland in #5049
- perf(claim): avoid fetching entire claim history to see if user has a claim on a game by @Jamiras in #5064
- fix: extend CONNECT_TOKEN_EXPIRY_DAYS to 365 by @wescopeland in #5040
- feat(connect): pass avatar_updated_at to client by @Jamiras in #5070
- feat(manage/media): change 'Other pending for this game' to 'All pending for this game' by @wescopeland in #5071
- feat(api): add awardKind filter and multi-game filtering to player-games by @wescopeland in #5042
- feat(api): add V2 event achievements resource and relationship endpoint by @wescopeland in #5057
- feat(api): add V2 JSON:API index endpoint for the user awards resource by @wescopeland in #5048
- feat(manage/media): add Prev/Next to zoom dialog for current in-game gallery by @wescopeland in #5072
- feat(settings): switch to a tab-driven layout by @wescopeland in #5066
- fix(messages): use team inbox owner name for delegated inbox participant selection by @angelol-git in #5067
- chore: sync translations from Crowdin by @github-actions[bot] in #5075
- feat(api): add V2 achievement distribution endpoint for games resource by @wescopeland in #5065
- feat(api/UserResource): add lastGame relationship by @wescopeland in #5073
- fix(api/v2): remediate event achievement disclosure bypass by @wescopeland in #5076
- fix: remediate stale message recipient issue by @wescopeland in #5051
- perf: use cache/flush pattern for users.web_api_calls writes by @wescopeland in #5030
- feat: support browser-based user profile picture caching by @wescopeland in #5037
Full Changelog: 2026.07.10...2026.07.17
2026.07.10
What's Changed
- fix: correct zeebo icon resolution by @FIareon in #5038
- fix(user): use media contribution tooltip for actual earned tier by @wescopeland in #5032
- feat(event): allow game hash to specify system returned in patch data by @Jamiras in #5061
- fix(event): inherit active range from event if not specified on achievement by @Jamiras in #5060
Full Changelog: 2026.07.01...2026.07.10
2026.07.01
What's Changed
- feat(connect): include system name in warning message by @Jamiras in #5024
- perf(ResumePlayerSessionAction): skip a mariadb filesort by @wescopeland in #5022
- perf: cache developer ticket counts by @wescopeland in #5014
- feat(api): add V2 JSON:API tickets resource by @wescopeland in #5012
- feat(api): add V2 JSON:API relationship endpoints for user follow resources by @wescopeland in #5011
- fix(GameScreenshotModerationResource): apply conditional CSS image rendering filter by @wescopeland in #5027
- feat(api): add V2 JSON:API endpoints for the AchievementSetVersion resource by @Chew in #4979
- feat: rebrand 'Softcore' to 'Casual' by @wescopeland in #5015
- fix: don't allow direct unlocking of event achievements outside of hardcore by @Jamiras in #5033
- feat: add an icon to the Zeebo console by @FIareon in #5013
- chore: sync translations from Crowdin by @github-actions[bot] in #5034
New Contributors
Full Changelog: 2026.06.25...2026.07.01
2026.06.25
What's Changed
- fix(GameScreenshotPolicy): block Z'd games from player-submitted screenshot uploads by @wescopeland in #5004
- refactor: backfill user_game_list_entries.created_at and enforce NOT NULL by @wescopeland in #5009
- feat(user): allow customization of the displayed media contrib award tier by @wescopeland in #5023
- fix(connect): remediate potential DoS by @wescopeland in #5018
- fix(IncrementDeveloperContributionYieldAction): make yet another deadlock mitigation by @wescopeland in #5026
- feat(connect): include system name in warning message by @Jamiras in #5024
Full Changelog: 2026.06.22...2026.06.25
2026.06.22
What's Changed
New Features
- Notifications: show screenshot rejection notes in daily digest mails by @wescopeland in #4995
- Tickets: make it safe to render leaderboard tickets by @wescopeland in #4913
Bug Fixes
- Achievement Pages: add
titleproperty for proximity achievement description label tooltips on desktop by @Chew in #5005 - Badges: update mediaContrib-0.png by @wescopeland in #5007
- Game Pages: remove artificial min height from XL breakpoint by @wescopeland in #4998
- Game Pages: use a smarter image rendering filter by @wescopeland in #5003
- Tickets: allow reassigning tickets to reporter without a new comment by @wescopeland in #4950
Management App Changes
- Games: log primary screenshot changes by @wescopeland in #4994
- Games: prevent self-linking similar games / data corruption by @wescopeland in #5021
- Media: add some enhancements to the review tool based on user feedback by @wescopeland in #5006
- Media: update 'Inappropriate Content' label by @wescopeland in #4997
API Changes
none
Other Changes
- Database: drop unused sync_status table by @wescopeland in #5010
- Denormalized Data: collapse 2 queries into 1 by @wescopeland in #4999 and #5017
- Dependencies: resolve numerous CVEs by @wescopeland in #5000
- Misc: dispatch UserGameListEntryPolicy::view by list kind by @wescopeland in #5008
- Tickets: cache game page ticket counts by @wescopeland in #5001 and #5016
- Testing: add case for daily digest with only screenshot notifications by @wescopeland in #4996
- Testing: remediate some flake from package updates by @wescopeland in #5002
Full Changelog: 2026.06.17...2026.06.22
2026.06.17
What's Changed
- feat(connect): add SubmitCodeNotesAction by @Jamiras in #4987
- perf(UpdateAchievementMetricsAction): use faster/cheaper aggregate queries by @wescopeland in #4985
- perf(UpdateGamePlayerCountAction): force mariadb to use table indexes by @wescopeland in #4986
- feat(manage/games): cap to the max number of similar games to 6 per game ID by @wescopeland in #4978
Full Changelog: 2026.06.16...2026.06.17
2026.06.16
What's Changed
- feat(ticket): allow user to create did not trigger ticket even if they unlocked the achievement by @Jamiras in #4973
- feature(connect): add pending loss-of-hardcore-support warning by @Jamiras in #4969
- chore(api/v2): don't report OAuth2 exceptions by @wescopeland in #4977
- chore: update hash labels by @televandalist in #4988
- chore: sync translations from Crowdin by @github-actions[bot] in #4991
- chore(deps): resolve numerous CVEs by @wescopeland in #4992
- fix: migrate media from screenshots-pending when approved from the review tool by @wescopeland in #4990
Full Changelog: 2026.06.14...2026.06.16
2026.06.14
What's Changed
- bugfix(connect): allow unlocks from separate games as long as they are all authored by the same user by @Jamiras in #4970
- fix(manage/media): properly double-width player-submitted Atari 2600 screenshots by @wescopeland in #4958
- fix(game): add screenshot max size validation, bump max size to 6MB by @wescopeland in #4959
- feat(GameScreenshotValidationService): adjust duplicate images validation rule by @wescopeland in #4966
- chore: sync translations from Crowdin by @github-actions[bot] in #4971
- refactor(connect): add UploadBadgeImageAction by @Jamiras in #4953
- feat(GameScreenshotUploadDialog): adjust copy based on user behavior by @wescopeland in #4967
- fix(CreateDoubledScreenshotAction): remediate orphaned file leak by @wescopeland in #4974
- feat(manage/media): rewrite the screenshot review tool based on the initial test outcome by @wescopeland in #4963
- perf: optimize unlock median session queries by @wescopeland in #4982
- fix(manage/usernames): don't crash on soft-deleted users by @wescopeland in #4983
- chore(GameScreenshotUploadDialog): add screenshot guidelines url by @wescopeland in #4984
Full Changelog: 2026.06.07...2026.06.14