Commit Graph

9272 Commits

Author SHA1 Message Date
cc
60f5c38c8c fix: polish platform card layout
- Add rom count as detail table row aligned with metadata/region chips
- Use standard chip style for fs_slug matching PlatformListItem
- Size and percentage on two lines for readability
- Adjust platform icon vertical alignment

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 19:52:14 -04:00
cc
837046d4c1 fix: use String() for numeric key lookups on string-keyed Records
JSON serializes object keys as strings, so explicitly convert platform
IDs to strings when accessing metadataCoverage and regionBreakdown maps.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 19:40:06 -04:00
cc
8e568780e8 chore: use existing locale keys for metadata/region labels
Reuse rom.metadata and platform.region instead of adding new keys.
Remove orphaned platforms-size key from all 16 locale files.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 19:39:13 -04:00
cc
d0c33e31bc chore: remove unused platforms-size locale key
Fallback locale (en_US) covers the two new keys for other languages.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 19:32:18 -04:00
cc
52c53505a1 refactor: address review feedback
- Derive metadata source columns from Rom model instead of hardcoded list
- Replace getOrderedCoverage() function calls with a computed map to avoid
  redundant sorting on each render

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 19:27:50 -04:00
Georges-Antoine Assi
3ebeb10b1c Merge pull request #3116 from JamieeBond/feature/shared-logic-path-video
Add property for path_video and refactor places which use similar logic
2026-03-10 16:58:09 -04:00
Georges-Antoine Assi
478b7b970a run fmt 2026-03-10 16:53:36 -04:00
Georges-Antoine Assi
a4a4fd29c8 Merge pull request #3111 from rommapp/copilot/improve-firmware-detection-message
Show firmware count in scan results to improve BIOS detection discoverability
2026-03-10 16:37:03 -04:00
Georges-Antoine Assi
8e4c5114cc Merge pull request #3109 from rommapp/copilot/fix-cleanup-all-hangs-issue
Move "Clean up All" missing ROMs deletion to background task
2026-03-10 16:26:00 -04:00
Georges-Antoine Assi
2dd3c18562 fix tunk check 2026-03-10 16:21:40 -04:00
Georges-Antoine Assi
515be47d6d add cleanup dialog 2026-03-10 16:15:57 -04:00
Georges-Antoine Assi
8f8ef1f700 some changes from review 2026-03-10 16:13:21 -04:00
Jamie Bond
a72a370c86 Ran npm run generate 2026-03-10 20:48:49 +01:00
Jamie Bond
1e6f0d6000 Add property for path_video and refactor places which use similar logic to access video paths 2026-03-10 20:32:54 +01:00
Georges-Antoine Assi
332fca94c1 Merge pull request #3102 from HydroSulphide/fix-oauth-token-expiry-and-refresh-rotation
Fix OAuth token expiry and implement refresh token rotation
2026-03-10 09:35:32 -04:00
Georges-Antoine Assi
f0e5abadc9 fix tests again 2026-03-10 09:23:12 -04:00
Georges-Antoine Assi
f6eb686559 fix tests 2026-03-10 08:38:43 -04:00
Georges-Antoine Assi
e9ac44ce2c finish language translation 2026-03-10 08:24:29 -04:00
HydroSulphide
b9ea937373 Merge branch 'master' into fix-oauth-token-expiry-and-refresh-rotation 2026-03-10 08:51:44 +01:00
HydroSulphide
fd788684b9 fix: TOCTOU race condition allows duplicate refresh token use 2026-03-10 08:38:32 +01:00
HydroSulphide
02336974a6 Implemented greptile suggestions 2026-03-10 08:04:07 +01:00
HydroSulphide
8758cb31b7 Tried to fix everything the bot complained about and the failed pytests.
Three tests were also implemented to check initial implementation that now invalidates expired access and refresh tokens and also rotating refresh tokens.

Since I introduced wrapper functions for create_oauth_token to distinguish between access and refresh token there is no need to set the token type in the data dict, since the type is now enforced in the wrapper functions create_access_token and create_refresh_token.

By convention I renamed create_oauth_token to _create_oauth_token as it is considered a private helper function now.
2026-03-10 07:22:02 +01:00
Georges-Antoine Assi
bbb257b68a style to my liking 2026-03-09 23:37:35 -04:00
Georges-Antoine Assi
fae1e120c2 Merge pull request #3107 from rommapp/copilot/add-oidc-rp-initiated-logout
Implement OIDC RP-Initiated Logout (end-session endpoint)
2026-03-09 23:12:37 -04:00
Georges-Antoine Assi
b9e3ae6be3 add perm to job itself 2026-03-09 23:09:05 -04:00
Georges-Antoine Assi
30db3725f4 add comment at the beginnig 2026-03-09 23:02:52 -04:00
Georges-Antoine Assi
bdd5f4b078 add PR label to trigger preview build 2026-03-09 22:59:31 -04:00
Georges-Antoine Assi
11c16e92bd run fmt 2026-03-09 22:53:30 -04:00
Georges-Antoine Assi
99d93d95c7 run fmt 2026-03-09 22:49:30 -04:00
copilot-swe-agent[bot]
54fdc62e8e refactor: aggregate firmware socket event to fire once per platform with a count
Instead of emitting scan:scanning_firmware once per firmware file, emit
a single event per platform after all firmware is processed, carrying
only the firmware_count. Frontend tracks firmware_count (int) on each
ScanningPlatform instead of a full firmware list.

Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-03-10 02:45:50 +00:00
copilot-swe-agent[bot]
41a9a2106d Use existing /tasks/run endpoint instead of custom cleanup-missing endpoint
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-03-10 02:40:47 +00:00
copilot-swe-agent[bot]
980360805b Fix test: use async_cache instead of sync_cache to inject OIDC session data
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-03-10 02:39:36 +00:00
Georges-Antoine Assi
9e31430c88 run fmt 2026-03-09 22:32:54 -04:00
copilot-swe-agent[bot]
09ff700e9a feat: show firmware files in scan results to improve discoverability
- Backend: emit scan:scanning_firmware socket event per firmware
- Frontend: track and display firmware per platform in scan results
- Frontend: add firmware stats chip to scan stats bar
- Frontend: update empty state message to mention firmware
- i18n: add firmware-related translation keys

Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-03-10 02:31:15 +00:00
copilot-swe-agent[bot]
f938e627b4 Move cleanup-all missing ROMs to background task to prevent browser hang
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-03-10 02:25:58 +00:00
cc
c8fd7fedde fix: section header, card spacing polish
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 22:25:40 -04:00
copilot-swe-agent[bot]
98a5f6657b Initial plan 2026-03-10 02:23:30 +00:00
cc
778097f4a0 feat: add per-platform metadata coverage and region breakdown to server stats
Enhances the server stats page with two new per-platform statistics:
- Metadata coverage: shows which sources matched ROMs (ordered by user's scan priority config)
- Region breakdown: shows ROM counts per region with flag emojis

Backend adds two new efficient queries (single GROUP BY for metadata, Python-side aggregation for regions).
Frontend redesigns platform cards with a tabular detail layout, size bar visualization, and expandable region chips.

> This PR was developed with AI assistance (Claude Code) per CONTRIBUTING.md disclosure requirements.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 22:15:08 -04:00
copilot-swe-agent[bot]
3748365b35 Initial plan 2026-03-10 02:15:07 +00:00
Georges-Antoine Assi
b7ef28632c Merge pull request #3106 from rommapp/copilot/fix-auto-library-scan-issue
Fix: filesystem watcher and scheduled scan skip when no metadata sources configured
2026-03-09 22:13:32 -04:00
Georges-Antoine Assi
0c1ea31856 retrun still 2026-03-09 22:06:29 -04:00
copilot-swe-agent[bot]
4992731265 Address code review feedback: log OIDC metadata errors, remove redundant import
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-03-10 02:01:59 +00:00
copilot-swe-agent[bot]
5e1a4bf35e Fix: automatic library scan blocked when no metadata sources configured
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-03-10 01:56:47 +00:00
copilot-swe-agent[bot]
dda77737af Implement OIDC RP-Initiated Logout (end-session endpoint)
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-03-10 01:56:47 +00:00
copilot-swe-agent[bot]
6d7dd9905d Initial plan 2026-03-10 01:49:44 +00:00
copilot-swe-agent[bot]
abc7138974 Initial plan 2026-03-10 01:49:33 +00:00
Georges-Antoine Assi
fa94e959b4 Merge pull request #3104 from cciollaro/fix/scan-deep-watch-performance
perf(scan): replace deep watch with computed to reduce reactivity overhead
2026-03-09 21:45:19 -04:00
cc
6936a089b8 perf(scan): replace deep watch with computed to reduce reactivity overhead
During a scan with large collections, the scan page becomes slow or
unresponsive. The watch on scanningPlatforms with { deep: true } was
firing on every ROM addition, causing Vue to deeply traverse all nested
platform and ROM data each time.

The watch's only job is deciding which panels are open. A panel should
open when a platform first receives ROMs — after that, its open/closed
state doesn't need to change regardless of how many more ROMs arrive.

Replace with a computed that maps each platform to a boolean
(roms.length > 0), so the watch only fires on that one meaningful
transition per platform. The ROM list inside each panel continues to
update reactively as normal — this change only affects the panel
open/close logic.

Note: This PR was written with AI assistance (Claude Code).
2026-03-09 20:38:54 -04:00
Georges-Antoine Assi
da09f6c81c Merge pull request #3100 from rommapp/copilot/fix-multifile-download-m3u
Fix M3U generation to exclude raw .bin tracks when .cue files are present
2026-03-09 18:44:47 -04:00
Georges-Antoine Assi
fe0191dab7 Merge pull request #3103 from pacnpal/master
Fix OIDC login role downgrading for users without claims
2026-03-09 18:21:57 -04:00