0.48.0 (2026-09-05)
Features
- add global lockout screen for website-banned users (17f0651)
- add human verification modal for anti-scraping Ban-Reference flow (737b1f9)
- migrate frontend from deprecated /users/get/token to /users/me (4dfa39a)
- replace scanning-paused banners with scanning-resumed notice (ca7f00e)
- replace subtle focus-search with a New Conversation modal on /messages (e87edb6)
- restructure gift-confirm modal layout and link recipient to their profile (753639a)
- show posting-as roblox identity in suggestion confirm modal (e14aa44)
- ui: improve site ban lockout screen (4f70a0d)
Bug Fixes
- add minimal contents:read permission to purge-assets-json-cache workflow (c76688a)
- clarify dupes autofill empty state and make it actionable (308956e)
- correct CEO mansion pity math and modernize hyperchrome calculator (1fa0840)
- delay cache purge until old deployment fully drains (850a369)
- drop cross-app deployment status check causing 403 in cache purge workflow (2af15ac)
- drop deployment API lookup, revert to plain HEAD~1 diff (6bf0aae)
- hide XP progress bar for scans outside the current season (03b83d6)
- keep season and changelog metadata in sync with client-side navigation (500bed9)
- make settings section links copy only (4c50529)
- match previous deployment lookup against actual Railway environment name (78f967a)
- match Railway production deploys by environment, not deployment ref (4007003)
- prefill custom avatar settings from /me avatar field (7f8c178)
- prevent tag reappearance in FAQ HTML stripping via repeated replace (4f5fdde)
- purge json cache against last successful deploy, not immediate git parent (ece614e)
- redact bot operational data (7032a8c)
- restore deployment status check using PAT to bypass cross-app restriction (9b89cb6)
- retry user fetch after Roblox OAuth link until roblox_id lands (82a6cf3)
- revalidate assets/json via ETag instead of query-string versioning (0afcd7c)
- revert to no-auth deployment lookup after PAT org access blocked (c0f0f7c)
- scale mansion wildcard pity by current hyperchrome level (6fd887d)
- scale mansion wildcard pity per level instead of a flat level-5 total (f9c73f1)
- use warning color for vote rate-limit banner instead of neutral gray (7c738e2)
- wrap reply comment badge row on mobile (7480edd)
Reverts
- drop website-ban flashing workarounds, fix is backend-side (19afef7)
