Georges-Antoine Assi
122cdf072d
fix tests
2026-03-11 20:52:23 -04:00
Georges-Antoine Assi
7961af6525
run fmt
2026-03-11 19:13:19 -04:00
copilot-swe-agent[bot]
24fe5b941f
refactor: move get_pico8_cover_url to FSRomsHandler, use validate_path for safe path construction
...
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com >
2026-03-11 22:17:22 +00:00
copilot-swe-agent[bot]
2958e6f12b
feat: use PICO-8 built-in cover art from .p8.png cartridge files
...
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com >
2026-03-11 02:35:18 +00:00
nendo
fb37c5cafe
fix fork to match upstream changes and verify tests
2026-03-11 11:01:23 +09:00
nendo
ea5b7546aa
refactor: address PR #3114 review feedback
...
- Use atomic getdel for pairing code exchange
- Add cascade="all, delete-orphan" to User.client_tokens
- Move generate/hash_client_token into AuthHandler as static methods
- Extract endpoint helpers to utils/client_tokens.py
2026-03-11 10:56:35 +09:00
nendo
bd5b3375f0
fix: remove unused User import and add i18n keys to all locales
...
Fixes trunk_check (unused import) and check-translations (missing
keys in non-en_US locales) CI failures.
2026-03-11 10:56:35 +09:00
nendo
e0b25fbc6c
feat(client-tokens): add client API tokens with QR pairing flow
...
Long-lived, revocable, scope-restricted tokens for external clients
(mobile apps, retro handhelds, third-party tools). Includes:
- Backend: model, migration, DB handler, auth integration (rmm_ prefix
routing in HybridAuthBackend), CRUD + pairing + exchange endpoints,
rate limiting, scope intersection enforcement, admin oversight
- Frontend: settings page with token management table, stepped
create/deliver dialog (config -> copy/pair), QR code with RomM logo,
admin token table, standalone /pair page for QR scan landing
- /pair page supports custom-scheme callbacks for app deep linking,
falls back to displaying code for manual entry
- 33 backend tests across 5 classes (CRUD, auth, isolation, pairing,
admin)
2026-03-11 10:56:35 +09:00
Georges-Antoine Assi
f0e5abadc9
fix tests again
2026-03-10 09:23:12 -04:00
HydroSulphide
b9ea937373
Merge branch 'master' into fix-oauth-token-expiry-and-refresh-rotation
2026-03-10 08:51:44 +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
11c16e92bd
run fmt
2026-03-09 22:53:30 -04: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
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]
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
Georges-Antoine Assi
1f64e8437b
Switch ACCESS_TOKEN_EXPIRE_MINUTES to SECONDS
2026-03-08 22:46:54 -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
e81659ab0f
cleanup and add tests
2026-03-08 15:32:49 -04:00
Georges-Antoine Assi
9ebfe2df50
always use chunk upload endpoint
2026-03-08 14:56:56 -04:00
Georges-Antoine Assi
14f59d8963
Merge pull request #3086 from rommapp/natural-sorting-hack
...
Hack for natural sorting of ROMs
2026-03-08 11:00:05 -04:00
Georges-Antoine Assi
29a09d3787
fix tests
2026-03-08 10:52:56 -04:00
Georges-Antoine Assi
75d38cc937
add tests
2026-03-08 10:27:01 -04:00
Georges-Antoine Assi
27fb339243
run fmt
2026-03-08 09:52:19 -04:00
copilot-swe-agent[bot]
aac4614f5c
Fix ID persistence for all metadata sources when handler is disabled or game not found
...
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com >
2026-03-08 13:40:54 +00:00
copilot-swe-agent[bot]
e0c05e804f
Fix LaunchBox game ID not persisting in DB when handler is disabled or game not found
...
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com >
2026-03-08 13:31:35 +00:00
Georges-Antoine Assi
aa4abe6b7c
end me
2026-03-07 23:43:58 -05:00
Georges-Antoine Assi
2feb43571b
my brain is bumb
2026-03-07 23:32:04 -05:00
Georges-Antoine Assi
a14babc0da
my brain is numb
2026-03-07 23:08:54 -05:00
Georges-Antoine Assi
b4f3df57b3
get tests to finish
2026-03-07 22:37:06 -05:00
Georges-Antoine Assi
606799e19c
my own cleanup
2026-03-07 21:34:45 -05:00
Georges-Antoine Assi
61aface9ae
cleanup
2026-03-07 19:04:14 -05:00
Georges-Antoine Assi
92ef2cf676
some fixes
2026-03-07 18:37:29 -05:00
Georges-Antoine Assi
5f2c1a6b3b
fix tests
2026-03-07 18:24:31 -05:00
Georges-Antoine Assi
b21aa662b5
add test file
2026-03-07 16:24:22 -05:00
Georges-Antoine Assi
eda88b70d1
get claude to refactor launchbox_handler
2026-03-07 16:02:39 -05:00
Georges-Antoine Assi
b72b6a410e
fix heartbeat tests
2026-03-07 10:03:41 -05:00
Georges-Antoine Assi
b030b98062
attempt to fix vuln reported in PR
2026-03-06 19:42:56 -05:00
Georges-Antoine Assi
4bfd050a57
Merge branch 'master' into api-form-fields
2026-03-06 17:12:18 -05:00
Georges-Antoine Assi
d80ac3ea77
1 more bot change
2026-02-19 09:36:38 -05:00
Georges-Antoine Assi
bbb1ba3ec0
cahanges from bot review
2026-02-19 09:36:12 -05:00
Georges-Antoine Assi
5b1dfe2ba1
[ROMM-3031] Fix screenshot property on save/state
2026-02-18 23:23:35 -05:00
Georges-Antoine Assi
cef0ab0422
Update endpoints that use form data
2026-02-18 16:10:45 -05:00
Georges-Antoine Assi
98bced02c7
fix tests
2026-02-16 16:50:18 -05:00
Georges-Antoine Assi
7ed25d4e63
fix tests
2026-02-16 16:34:13 -05:00
Georges-Antoine Assi
c1a8a059a9
Merge pull request #2986 from rommapp/romm-2899
...
[ROMM-2899] PKGJ feed endpoints
2026-02-10 10:43:30 -05:00
Georges-Antoine Assi
527f144c1f
trunk check fix
2026-02-09 23:52:45 -05:00
Georges-Antoine Assi
661a5504d7
find a couple more uses
2026-02-09 17:26:21 -05:00
Georges-Antoine Assi
df4a4e3645
move imports up
2026-02-09 15:08:21 -05:00
Georges-Antoine Assi
acfc189798
[ROMM-2927] Add default folders to config manager
2026-02-09 14:55:29 -05:00