Minor changes
Fixes
- fix(config): show folder mappings whose folder name is not lowercase by @sdornan in #4676
- fix(router): re-read the rom on every entry to the details route by @sdornan in #4685
- fix(streaming): put every container in a pool, and reach later pools by key by @LoneAngelFayt in #4596
- fix(security): patch OS packages in the published image and scope workflow permissions by @gantoine in #4592
- fix(docker): move the bases to Alpine 3.24 and nginx 1.30.5 by @sdornan in #4602
- fix(frontend): eliminate import cycles and gate them with eslint by @andest01 in #4643
- fix(security): revoke the target account's sessions on a credential change by @sdornan in #4653
- fix(v2): declare color-scheme with the v2 theme palettes by @sdornan in #4701
- fix(tooling): repair mypy's exclude regex and align its version with CI by @sdornan in #4655
- fix(frontend): keep the page title across query-only navigations by @gantoine in #4657
- fix(frontend): tolerate null filter_value lists from the API by @andest01 in #4680
- fix(v2): restore gamepad navigation on the platforms grid and every player by @gantoine in #4681
- fix(v2): pad focus follow-ups to #4681 by @gantoine in #4707
- fix(backend): correct three small typing faults mypy now reports by @sdornan in #4709
- fix(v2): descenders in chips are displayed by @andest01 in #4682
- fix(v2): rebuild the gallery list view for phones by @zurdi15 in #4654
- fix(backend): make type ignores honest and replace mypy trunk-ignores with fixes by @sdornan in #4711
- fix(backend): type fastapi-pagination pages and params for mypy by @sdornan in #4713
- fix(hltb): send a browser user agent so HLTB's firewall lets requests through by @sdornan in #4717
- fix(backend): cap music page size at the largest page the jukebox asks for by @sdornan in #4716
- fix(backend): type DML row counts from Session.execute for mypy by @sdornan in #4718
- fix(backend): build streaming response schemas directly instead of dicts by @sdornan in #4719
- fix(backend): clear the remaining mypy errors outside roms_handler by @sdornan in #4723
- fix(security): check endpoint ownership and consume invites atomically by @sdornan in #4694
- fix(sigil): bump the pin so GameCube save targets name a .gci on disk by @tmgast in #4687
Other changes
- docs: add a draft-announcement skill by @gantoine in #4667
- chore(deps): update astral-sh/setup-uv action to v10.2.0 by @renovate[bot] in #4668
- chore: expand ts typecheck to
frontend/scripts/**/*.tsby @andest01 in #4575 - build(frontend): prefix CSS in dev as well as production by @sdornan in #4609
- chore(security): harden Actions and Renovate, credit Socket in the readme by @gantoine in #4660
- test: fix the type errors mypy can now see in the test suite by @sdornan in #4708
- test(backend): simulate the CHD permission error without chmod by @sdornan in #4712
- ci: scan the published images, and stop scanning the lockfiles twice by @gantoine in #4683
- chore(v2) storybook viewport mirrors vue installBreakpointAttribute by @andest01 in #4710
Full Changelog: 5.3.0...5.3.1