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
8f8ef1f700
some changes from review
2026-03-10 16:13:21 -04: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
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
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
11c16e92bd
run fmt
2026-03-09 22:53: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
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
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
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
Georges-Antoine Assi
8a76391935
do code once
2026-03-09 18:21:01 -04:00
copilot-swe-agent[bot]
2a7c86e304
Fix OIDC login downgrading existing user roles when no claims provided
...
Co-authored-by: pacnpal <183241239+pacnpal@users.noreply.github.com >
2026-03-09 18:26:49 +00:00
copilot-swe-agent[bot]
b07e647c40
Fix M3U generation to only include .cue files when present in bin/cue ROM packages
...
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com >
2026-03-09 17:42:32 +00:00
copilot-swe-agent[bot]
ff1c8b680e
Fix OIDC login with Google by adding OIDC_SERVER_METADATA_URL config option
...
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com >
2026-03-09 17:39:43 +00:00
HydroSulphide
ad09babce8
fix: catch http exception on code 401 so api call with expired access token doesn't lead to internal server error
2026-03-09 18:29:28 +01:00
HydroSulphide
41f64eb42b
fix: oauth token invalidation on expiration date and rotating refresh token
2026-03-09 17:03:29 +01:00
Georges-Antoine Assi
b7d6edc756
Merge pull request #3094 from rommapp/copilot/feature-configurable-invite-token-expiration
...
Make invite token expiration configurable
2026-03-08 23:01:30 -04:00
Georges-Antoine Assi
e2ece6b938
run fmt
2026-03-08 22:54:58 -04:00
copilot-swe-agent[bot]
53b0b9021b
Switch invite token expiration unit from minutes to seconds
...
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com >
2026-03-09 02:48:21 +00:00
Georges-Antoine Assi
1f64e8437b
Switch ACCESS_TOKEN_EXPIRE_MINUTES to SECONDS
2026-03-08 22:46:54 -04:00
copilot-swe-agent[bot]
5f309639af
Make invite token expiration configurable via env var and UI
...
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com >
2026-03-09 01:43:53 +00:00
Georges-Antoine Assi
e3d9bfe9fa
fix migration
2026-03-08 20:14:14 -04:00
copilot-swe-agent[bot]
ae73da7c27
Fix 500 error from empty fs_name_no_tags causing mass sibling matching and incorrect ROM grouping
...
- Add migration 0071 to fix sibling_roms view: add guard against empty string matching for fs_name_no_tags
- Fix group_by_meta_id in filter_roms: use func.nullif to treat empty fs_name_no_tags as NULL in grouping key
- Add group_by_meta_id support to get_roms_scalar
- Add tests for sibling matching behavior with empty/non-empty fs_name_no_tags
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com >
2026-03-08 23:17:51 +00:00
Georges-Antoine Assi
38b311d1ca
Merge pull request #3089 from rommapp/copilot/scrape-age-rating-data
...
Scrape and store age rating data from ScreenScraper.fr
2026-03-08 18:44:42 -04:00
Georges-Antoine Assi
80e78a8fe3
fix literally everything about age ratings
2026-03-08 18:34:58 -04:00
Georges-Antoine Assi
207f8a3c85
[ROMM-3067] Always sub dash with colon for launchbox matching
2026-03-08 17:26:53 -04:00
copilot-swe-agent[bot]
7d103f48a8
Add age rating support from ScreenScraper classifications
...
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com >
2026-03-08 21:20:14 +00:00
copilot-swe-agent[bot]
7f88923dee
Add video-normalized support for ScreenScraper scan.media config
...
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com >
2026-03-08 20:30:16 +00:00
Georges-Antoine Assi
a977b39192
update famicom ID in launchbox
2026-03-08 16:22:15 -04:00
Georges-Antoine Assi
cefcd4852d
simplify endpoint a bit
2026-03-08 15:50:56 -04:00
Georges-Antoine Assi
e81659ab0f
cleanup and add tests
2026-03-08 15:32:49 -04:00