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
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
Georges-Antoine Assi
1f64e8437b
Switch ACCESS_TOKEN_EXPIRE_MINUTES to SECONDS
2026-03-08 22:46:54 -04: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
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
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
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
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
Georges-Antoine Assi
7cc2097203
Merge branch 'master' into romm-2899
2026-02-04 09:52:45 -05:00
nendo
34f48e58a1
feat(devices): default to returning existing device on duplicate registration
...
Change allow_existing default to True so duplicate fingerprint matches
return the existing device (200) instead of 409 Conflict. Add model
validator to force allow_existing=False when allow_duplicate is set.
2026-02-04 11:10:40 +09:00
Georges-Antoine Assi
959c9ac0bf
refactor feeds file
2026-02-03 17:09:21 -05:00
Georges-Antoine Assi
4b4a34631d
bot created test file
2026-02-03 16:48:58 -05:00
nendo
8ae07d77f3
test: add device duplicate handling tests and fix saves hash import
...
Add tests for duplicate device registration scenarios (409 conflict,
allow_existing, allow_duplicate, reset_syncs). Fix compute_file_hash
function references after relocation to assets_handler.
2026-02-03 20:48:35 +09:00
nendo
a236123e4f
feat(saves): add slot-based save sync with content hash deduplication
...
- Add device registration and save synchronization
- Implement slot-based save organization with datetime tagging
- Add conflict detection for multi-device sync scenarios
- Add content hash computation for save deduplication
- Support ZIP inner-file hashing for consistent deduplication
- Add confirm_download endpoint for sync state management
- Add overwrite parameter to bypass conflict checks
2026-01-31 21:57:22 +09:00
nendo
36eec298d1
Add device-based save synchronization
...
Implement device registration and save sync tracking to enable
multi-device save management with conflict detection.
- Device CRUD endpoints (POST/GET/PUT/DELETE /api/devices)
- Save sync state tracking per device
- Conflict detection on upload (409 when device has stale sync)
- Download sync tracking (optimistic and confirmed modes)
- Track/untrack saves per device
- DEVICES_READ/WRITE scopes for authorization
2026-01-18 16:50:44 +09:00
DevOldSchool
bdc6fc5235
Trunk format fixes.
2026-01-05 13:05:13 +10:00
DevOldSchool
86a6804447
Added player count metadata from SS. Displays on game detail screen and added a filter under search for player counts.
2026-01-05 11:57:30 +10:00
zurdi
cc816822d8
Refactor library structure detection to use enum values and update related tests and frontend logic
2026-01-02 11:54:29 +00:00
zurdi
06a1598bcc
Merge remote-tracking branch 'origin/master' into romm-1371
2026-01-02 11:12:36 +00:00
zurdi
810b4d19fb
fix: remove unnecessary 'self' parameter from test function definitions in test_heartbeat.py
2025-12-23 16:36:14 +00:00
zurdi
cbe64ce29c
test: add tests for library structure detection in FSPlatformsHandler
2025-12-23 16:24:33 +00:00
zurdi
a147b61a76
test: add comprehensive tests for user UI settings updates
2025-12-17 00:23:54 +00:00
Georges-Antoine Assi
ec6bb24662
Add new redis-backed session middleware
2025-11-22 10:47:59 -05:00
zurdi
c7b5eea91e
Add skip_hash_calculation configuration and update related tests
2025-11-20 17:29:37 +00:00
Georges-Antoine Assi
eaf414435c
fix tests
2025-10-27 14:51:01 -04:00