Commit Graph

258 Commits

Author SHA1 Message Date
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
Georges-Antoine Assi
37436fddb7 changes from self review 2026-02-06 10:31:08 -05:00
Georges-Antoine Assi
e36d7650e7 [ROMM-2989] Split search term by | 2026-02-06 10:20:14 -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
220d7531e7 refactor(saves): replace order_by_updated_at_desc with flexible order_by
Add order_by and order_dir parameters to get_saves() for flexible
sorting. Supports "updated_at" and "created_at" fields with "asc" or
"desc" direction (default: desc). Enables ascending order for pruning
scenarios.
2026-02-03 20:06:09 +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
Georges-Antoine Assi
24fef1139b Merge branch 'master' into feature/device-registration-save-sync 2026-01-28 19:42:57 -05:00
Georges-Antoine Assi
1602688d08 fix one more test 2026-01-19 12:48:54 -05:00
Georges-Antoine Assi
dd5935f50c fix tests 2026-01-19 12:20:11 -05: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
Georges-Antoine Assi
09aa6628f8 Merge pull request #2872 from DevOldSchool/feature/player-count
feat: Added player count metadata from SS with display and filter
2026-01-10 22:59:08 -05:00
Georges-Antoine Assi
38ce9897d4 [HOTFIX] Dont schedule tasks if already queued 2026-01-09 17:55:16 -05:00