Commit Graph

4361 Commits

Author SHA1 Message Date
copilot-swe-agent[bot]
ce7ffaf552 fix: add ios fullscreen shim for emulatorjs
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-05-25 12:02:08 +00:00
Georges-Antoine Assi
fb13f54f48 cleanup 2026-05-24 17:43:01 -04:00
Claude
5adffeca71 perf(roms): skip rom_files load on gallery list endpoint
The gallery list endpoint was eager-loading every rom_file row for each
paginated ROM via selectinload, then re-joining each row back to its
parent rom for the is_top_level computation. For platforms with extracted
multi-file ROMs (Xbox 360 ~1394 files/ROM, Switch ~199 files/ROM), this
made /api/roms time out at 120s even with a rom_id index.

Cards never displayed individual files — only the has_simple_single_file
/ has_nested_single_file / has_multiple_files booleans that derive from
the file list. Denormalize the underlying state onto roms as multi_file
(folder-based vs single-file) and top_level_file_count, recompute the
booleans from those columns, drop the selectinload from filter_roms, and
move the files field from SimpleRomSchema to DetailedRomSchema so the
gallery payload no longer ships file rows.

Also drop the redundant joinedload(RomFile.rom) and switch the relation
to lazy="select" so subsequent file.rom accesses resolve from the
session identity map instead of re-JOINing the parent rom per file row.

ShowQRCode.vue's folder-based DS/3DS fallback now fetches the detailed
rom on demand, since SimpleRom no longer carries files.
2026-05-24 15:02:02 +00:00
Georges-Antoine Assi
715ec658bd changes from bot review 2026-05-23 07:37:23 -04:00
Georges-Antoine Assi
d806676d12 add to setup 2026-05-22 22:36:21 -04:00
Georges-Antoine Assi
4a89dadb55 update scna pages 2026-05-22 22:32:33 -04:00
Georges-Antoine Assi
aed926ac9e Add playmatch as explicit metadata source 2026-05-22 21:44:33 -04:00
dependabot[bot]
83fb6193e3 chore(deps): bump js-cookie from 3.0.5 to 3.0.7 in /frontend
Bumps [js-cookie](https://github.com/js-cookie/js-cookie) from 3.0.5 to 3.0.7.
- [Release notes](https://github.com/js-cookie/js-cookie/releases)
- [Commits](https://github.com/js-cookie/js-cookie/compare/v3.0.5...v3.0.7)

---
updated-dependencies:
- dependency-name: js-cookie
  dependency-version: 3.0.7
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-21 21:35:37 +00:00
Georges-Antoine Assi
fe5af3ef9c fix(screenscraper): respect region priority for multi-region ROMs
For ROMs tagged with multiple regions (e.g. "(Japan, USA)"), filename order
previously decided which region's name and box art won. Now reorder the rom's
filename-tagged regions by SCAN_REGION_PRIORITY before prepending, so the
user's configured preference wins among the regions the file is actually
tagged as. Untagged priority regions still cannot outrank a filename-tagged
region.

Also tweak the Total Rescan → Complete Rescan label in en_GB/en_US scan
locales.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 17:20:54 -04:00
Georges-Antoine Assi
f84796da08 Merge pull request #3385 from Spinnich/pr/chd-raw-hashing
feat(hashing): compute raw CHD hashes and route disc-data SHA1 to Hasheous
2026-05-18 14:52:54 -04:00
Georges-Antoine Assi
e6d4ede939 cleanup 2026-05-18 07:40:59 -04:00
Georges-Antoine Assi
c97ec449e2 drop more aspect ratrio 2026-05-17 14:07:46 -04:00
Georges-Antoine Assi
90945685e4 Stuff 2026-05-17 12:43:33 -04:00
Georges-Antoine Assi
18a271b653 fix(home): center-align recently added cards vertically
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 12:42:59 -04:00
Spinnich
01f0b1d2b5 feat(hashing): compute raw CHD hashes and route disc-data SHA1 to Hasheous
CHD files now follow the same hash logic as all other file types — CRC32,
MD5, and SHA1 are computed from raw container bytes. This allows
ScreenScraper to log KO entries for unrecognised CHD files, which it
could not do when only the disc-data SHA1 was being computed.

The CHD header SHA1 (disc-data SHA1) is separately extracted and stored
in a new chd_sha1_hash field on RomFile, with a migration adding the
column to rom_files. Hasheous receives only this disc-data SHA1 (no
CRC/MD5) since it indexes disc-based games by disc-data SHA1, not raw
file hashes.

The RAHasher multi-file path now passes the largest CHD directly instead
of a /* wildcard, which RAHasher cannot expand. Hash computations are
wrapped in asyncio.to_thread to avoid blocking the event loop during
large reads.

Hash-lookup metadata handlers (ScreenScraper, Hasheous, Playmatch) now
fall back to rom.files (stored DB hashes) when fs_rom files are not
rehashed, fixing hash-based matching for UNMATCHED and UPDATE scan types.

The Disc SHA-1 is displayed in the ROM detail view for both single-file
(FileInfo.vue) and multi-file (FileSelectItem.vue) CHD games.
2026-05-17 08:01:05 -04:00
Georges-Antoine Assi
6df37f50cf run fmt 2026-05-16 20:05:18 -04:00
Georges-Antoine Assi
d72e645049 use bowser 2026-05-16 19:17:38 -04:00
copilot-swe-agent[bot]
5c82044bdb fix: avoid safari chunk upload progress stalls
Agent-Logs-Url: https://github.com/rommapp/romm/sessions/41c15553-6e97-45ca-be3d-589c2f07589e

Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-05-16 21:55:12 +00:00
Georges-Antoine Assi
32cdfb1547 Merge pull request #3374 from rommapp/copilot/fix-file-id-issue-api-call
Fix stale disc file ID in localStorage causing 404 on ROM play after rescan
2026-05-14 20:29:07 -04:00
Georges-Antoine Assi
5b02d6b377 run fmt 2026-05-14 15:44:42 -04:00
copilot-swe-agent[bot]
4ee310b0da fix(console): honor DISABLE_EMULATOR_JS in console mode
Agent-Logs-Url: https://github.com/rommapp/romm/sessions/67bb960a-e5ec-4569-bdeb-d8c90028c004

Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-05-14 18:40:25 +00:00
copilot-swe-agent[bot]
d1696cd047 Fix stale disc file_id causing 404 when playing ROMs after rescan
When a ROM is rescanned and its file IDs change, disc IDs stored in
localStorage become stale. This caused file_ids query params with invalid
IDs to be sent to /api/roms/{id}/content/{name}, resulting in 404 errors.

Validate the stored disc ID against the actual ROM files before use. If
stale, clear localStorage and fall back to the first available file.

Agent-Logs-Url: https://github.com/rommapp/romm/sessions/3579d577-13ff-4288-9a9c-909b6f891c9e

Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-05-14 18:38:23 +00:00
Georges-Antoine Assi
8e009dffc0 render covers at their natural aspect ratio and drop the cover-style setting
Covers now use object-fit: contain inside a fixed slot, so each image
keeps its own aspect ratio (letterboxed where needed) instead of being
cropped to the platform's configured ratio. The slot itself still uses
a single default aspect ratio for grid stability, so cards don't reflow
as images load.

With per-platform aspect ratio no longer doing anything visible, remove
the Cover style picker from the platform info drawer and clean up dead
plumbing: galleryViewStore.getAspectRatio no longer reads
platform.aspect_ratio, platformId is dropped from Skeleton / SearchCover
/ MatchRom / showSearchCoverDialog, and the orphaned i18n keys
(cover-style, settings, old-squared-cases, old-horizontal-cases) are
stripped from all platform.json locale files.

Backend aspect_ratio column is left in place; no client sends it anymore.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 11:11:09 -04:00
Georges-Antoine Assi
fe4546c8c1 fix(frontend): use static auth background on firefox
The animated SVG background causes lag on Firefox. Swap in the static
variant via @-moz-document url-prefix() so other engines keep the
animation.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-09 09:05:58 -04:00
Georges-Antoine Assi
a5d13b1707 Merge pull request #3341 from rommapp/copilot/fix-checkbox-toggle-on-click
Setup wizard: make platform row click toggle selection checkbox
2026-05-09 08:47:47 -04:00
dependabot[bot]
913021b5af chore(deps-dev): bump @babel/plugin-transform-modules-systemjs
Bumps [@babel/plugin-transform-modules-systemjs](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-modules-systemjs) from 7.29.0 to 7.29.4.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.29.4/packages/babel-plugin-transform-modules-systemjs)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-modules-systemjs"
  dependency-version: 7.29.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-09 12:26:25 +00:00
Georges-Antoine Assi
7b2ea00d94 Merge pull request #3346 from rommapp/dependabot/npm_and_yarn/frontend/multi-a4987b4d91
chore(deps): bump serialize-javascript and workbox-build in /frontend
2026-05-09 08:26:00 -04:00
dependabot[bot]
d3a394db85 chore(deps): bump serialize-javascript and workbox-build in /frontend
Bumps [serialize-javascript](https://github.com/yahoo/serialize-javascript) and [workbox-build](https://github.com/googlechrome/workbox). These dependencies needed to be updated together.

Updates `serialize-javascript` from 6.0.2 to 7.0.5
- [Release notes](https://github.com/yahoo/serialize-javascript/releases)
- [Commits](https://github.com/yahoo/serialize-javascript/compare/v6.0.2...v7.0.5)

Updates `workbox-build` from 7.4.0 to 7.4.1
- [Release notes](https://github.com/googlechrome/workbox/releases)
- [Commits](https://github.com/googlechrome/workbox/compare/v7.4.0...v7.4.1)

---
updated-dependencies:
- dependency-name: serialize-javascript
  dependency-version: 7.0.5
  dependency-type: indirect
- dependency-name: workbox-build
  dependency-version: 7.4.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-08 21:28:20 +00:00
dependabot[bot]
2cea8efe8a chore(deps-dev): bump fast-uri from 3.1.0 to 3.1.2 in /frontend
Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.0 to 3.1.2.
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.0...v3.1.2)

---
updated-dependencies:
- dependency-name: fast-uri
  dependency-version: 3.1.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-08 20:28:44 +00:00
copilot-swe-agent[bot]
2bb86e4836 Make setup platform rows toggle checkbox selection on click
Agent-Logs-Url: https://github.com/rommapp/romm/sessions/00a7f2a2-cabf-470b-a73e-a127ffcdccd5

Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-05-08 13:55:00 +00:00
dependabot[bot]
d0b2c89e60 chore(deps): bump axios from 1.15.0 to 1.16.0 in /frontend
Bumps [axios](https://github.com/axios/axios) from 1.15.0 to 1.16.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.15.0...v1.16.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.16.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-08 09:10:01 +00:00
sabuswai
228c640f18 Add credentialless attribute to YouTube iframe
add credentialless attribute to YouTube iframe for COEP compatibility
2026-05-07 01:13:07 -05:00
Georges-Antoine Assi
9fe025806e Allow bypassing OIDC autologin via bypass_autologin URL param
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 15:06:29 -04:00
dependabot[bot]
339c008375 chore(deps): bump postcss from 8.5.8 to 8.5.12 in /frontend
Bumps [postcss](https://github.com/postcss/postcss) from 8.5.8 to 8.5.12.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.5.8...8.5.12)

---
updated-dependencies:
- dependency-name: postcss
  dependency-version: 8.5.12
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-29 20:25:31 +00:00
Georges-Antoine Assi
ece33c4bea Merge pull request #3317 from Namaneo/fixes
Fix: UI settings not woking after switching pages back and forth
2026-04-29 15:40:50 -04:00
Julien Loir
eb842bd952 Fix: UI settings not woking after switching pages back and forth 2026-04-29 15:08:30 +02:00
copilot-swe-agent[bot]
2498ecf729 fix: store chunk uploads under ROMM_BASE_PATH and show upload speed in UI
Agent-Logs-Url: https://github.com/rommapp/romm/sessions/2f626cb9-e564-4764-b9e9-3de396e3e7ca

Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-04-29 12:39:47 +00:00
zurdi
28484e7d8d fix(UserBtn): add transparent class to avatar for improved styling 2026-04-21 13:20:37 +00:00
Georges-Antoine Assi
c2d6b08a6b Merge pull request #3293 from rommapp/copilot/fix-update-tags-metadata
feat: open refresh metadata dialog with scan type and metadata source selection
2026-04-20 21:57:29 -04:00
Georges-Antoine Assi
72c668289d changes from bot review 2026-04-20 21:41:42 -04:00
Georges-Antoine Assi
98f1d65a7c fixes 2026-04-20 21:36:59 -04:00
copilot-swe-agent[bot]
681efc6a46 fix: enable COEP/COOP headers for console play route to fix MSDOS games
Agent-Logs-Url: https://github.com/rommapp/romm/sessions/487d4506-1203-499e-afc4-a45ee1f2438b

Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-04-20 18:08:38 +00:00
copilot-swe-agent[bot]
042ddf16e1 fix: address code review comments in RefreshMetadataDialog
Agent-Logs-Url: https://github.com/rommapp/romm/sessions/fec651c3-d741-4c7d-a79f-bd469343602e

Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-04-20 18:00:08 +00:00
copilot-swe-agent[bot]
b9d784d3b4 feat: add RefreshMetadataDialog with scan type and metadata source selection
Agent-Logs-Url: https://github.com/rommapp/romm/sessions/fec651c3-d741-4c7d-a79f-bd469343602e

Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-04-20 17:58:06 +00:00
Georges-Antoine Assi
7b20101d50 Merge pull request #3270 from Namaneo/home-boxarts
A bunch of minor bug fixes
2026-04-16 11:16:16 -04:00
Georges-Antoine Assi
ed15fa13d4 fix type errors 2026-04-16 10:37:12 -04:00
Julien Loir
a3cc1daada Check for computed large cover instead of ROM property 2026-04-16 12:43:08 +02:00
Julien Loir
98185a309b Make home boxarts respect gallery configuration 2026-04-16 12:14:21 +02:00
dependabot[bot]
d501799bba chore(deps): bump follow-redirects from 1.15.11 to 1.16.0 in /frontend
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.11 to 1.16.0.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.11...v1.16.0)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-version: 1.16.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-15 19:14:20 +00:00
Spinnich
e8ec8a0b18 fix(linting): fix import order in AddRoms.vue and RemoveRoms.vue
Move @/__generated__ import after third-party modules to satisfy
trunk's @trivago/prettier-plugin-sort-imports ordering rules.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-15 06:56:07 -04:00