Commit Graph
286 Commits
Author SHA1 Message Date
Georges-Antoine Assi 3e86e55994 changes from bot review 2026-02-07 22:02:15 -05:00
Georges-Antoine Assi 2d678ef19f [ROMM-2976] Fix no games displayed for status filter 2026-02-07 21:27:24 -05:00
Georges-Antoine Assi 4733a86302 [ROMM-2983] Fix negative filter by verified 2026-02-07 15:44:03 -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 0da88e4727 Merge pull request #2984 from zeroSteiner/fix/issue/2451
Fix #2451: Group games with same name but different tags as versionsr
2026-02-03 23:27:41 -05:00
Spencer McIntyre 624f4ce14d Update the romm view to group by fs no tag 2026-02-03 20:22:59 -05: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 a6ecfb738c feat(devices): add duplicate device registration handling
Add fingerprint-based detection for duplicate device registration with
configurable behavior via new body params:
- allow_existing: return existing device if fingerprint matches
- allow_duplicate: skip fingerprint check, always create new device
- reset_syncs: clear tracked saves when reclaiming existing device

Fingerprint matching uses mac_address (primary) or hostname+platform
(fallback). Returns 409 Conflict with device_id when duplicate detected
without flags, 200 OK for existing device, 201 Created for new.
2026-02-03 20:03:50 +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 67efe62935 Merge branch 'master' into only-ids-param 2026-01-28 14:47:10 -05:00
Georges-Antoine Assi b49522e3e8 changes from bot review 2026-01-22 15:27:18 -05:00
Georges-Antoine Assi 7f5130c9b8 Add NONE support for filter logic operators 2026-01-22 13:47:55 -05:00
Georges-Antoine Assi e9b6fa202b tweak some db code 2026-01-19 09:47:55 -05:00
Georges-Antoine Assi 6eb888416f final manual clenaup 2026-01-18 22:51:43 -05:00
Georges-Antoine Assi bddb7bd9f5 manual cleanup 2026-01-18 22:27:46 -05:00
Georges-Antoine Assi 3ccc14d4a2 add endpoints for identifiers 2026-01-18 22:17:37 -05:00
Georges-Antoine Assi 54bfb3fec5 DB functions accept list of params 2026-01-18 21:26:48 -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
Brandon T. Kowalski 5cb71c920f Added updated_after query parameter for normal and smart collections and migration to add corresponding indexes to each table. 2026-01-17 23:25:02 -05:00
Georges-Antoine Assi b34117591a Merge pull request #2904 from rommapp/roms-filter-endpoint
ROMs filter endpoint + refactor
2026-01-16 19:14:37 -05:00
Georges-Antoine Assi bc564fd1c1 Merge pull request #2898 from BrandonKowalski/feature/updated-after-query-param
[ROMM-2874] Feature/updated-after-query-param
2026-01-16 17:24:11 -05:00
Georges-Antoine Assi c1bd666641 add comments to backend code 2026-01-16 13:28:46 -05:00
Georges-Antoine Assi 5240bb2f71 more changes from bot review 2026-01-15 13:15:29 -05:00
Georges-Antoine Assi 2c0325cae1 changes form bot review 2026-01-15 12:53:01 -05:00
Georges-Antoine Assi 354922cf41 correct set platforms in roms fetch 2026-01-15 12:43:35 -05:00
Georges-Antoine Assi b0cf2e9338 set filter platforms on platforms fetch 2026-01-15 12:10:13 -05:00
Georges-Antoine Assi 81b9eff8c7 Add filter values to roms query 2026-01-15 11:51:59 -05:00
Georges-Antoine Assi 96240a86e9 Add endpoint to fetch rom filters independent of query 2026-01-15 11:18:51 -05:00
Georges-Antoine Assi 3965a89860 convert legacy selected_status 2026-01-14 11:05:43 -05:00
Georges-Antoine Assi 2d8444d60b [HOTFIX] Rename selected_statuses to statuses 2026-01-14 10:07:57 -05:00
Brandon T. Kowalski 5b5dc68f58 Added updated_after query parameter for platform and rom endpoints. 2026-01-12 19:37:36 -05: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
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
Georges-Antoine Assi 8078941bd1 [ROMM-2856] Use platform slug to fetch feed games 2026-01-03 12:38:26 -05:00
Zurdi 6295d5b8cd Merge pull request #2411 from rommapp/feat/rom-filter-multivalue
feat: Support for multi-value filters
2025-12-31 16:19:04 +01:00
zurdi 006cf2e2eb Refactor last played filter logic and clean up unused API helper 2025-12-31 15:17:41 +00:00
Georges-Antoine Assi e723664505 cleanup has_notes field 2025-12-30 19:12:11 -05:00
zurdi 647e99fca7 Add last played filter to ROMs retrieval and update related tests 2025-12-30 12:53:12 +00:00
zurdi a9dc83a8bd Merge branch 'master' into feat/rom-filter-multivalue 2025-12-30 12:39:38 +00:00
zurdi 2c3397893f Refactor note retrieval in get_rom_notes and update comment for notes loading in roms_handler 2025-12-30 11:12:32 +00:00
zurdi 65efa5856f Refactor has_notes calculation and optimize note loading in ROM handling 2025-12-30 11:08:02 +00:00
Michon van Dooren dfd8840f97 Improve join on platforms in queries on roms table
The old variant added subqueries that query the entire rom table which
were evaluated for each rom, absolutely tanking the performance on
larger collections.
2025-12-29 21:25:55 +01:00
zurdi a956008259 feat: update ROM filtering to support multi-value statuses and logic operators 2025-12-25 11:52:00 +00:00
zurdi 48d6df9cc0 feat: add logic operators for multi-value filters in collections and roms handlers 2025-12-24 15:23:44 +00:00
Georges-Antoine Assi ace8ed3679 [ROMM-2791] Stop filtering out None values in order_by filter 2025-12-24 10:03:42 -05:00
zurdi ab637203ac Merge branch 'master' into feat/rom-filter-multivalue 2025-12-24 12:39:45 +00:00
Georges-Antoine Assi be3615b51a outer join romfile on by_hash call 2025-12-18 11:40:44 -05:00