Zurdi
4f8232e6ae
Merge pull request #3171 from tmgast/fix/mod-zip-utf8
...
Fix mod_zip UTF-8 filename handling for non-ASCII downloads
2026-03-26 15:59:10 +01:00
nendo
e21ea088ed
Revert double-encoding in ZipResponse Content-Disposition
2026-03-25 06:51:24 +09:00
nendo
2bad483a84
Fix mod_zip UTF-8 filename handling for non-ASCII downloads
...
Add X-Archive-Charset: UTF-8 header so mod_zip sets the EFS flag on ZIP
entries, ensuring extractors interpret filenames as UTF-8 instead of
CP437. Also URL-encode the Content-Disposition filename to match
FileRedirectResponse behavior.
2026-03-25 06:26:59 +09:00
Georges-Antoine Assi
a3ebe16a39
run fmt
2026-03-24 15:32:48 -04:00
copilot-swe-agent[bot]
a5954590ec
Fix IntegrityError when updating favourites with stale ROM IDs
...
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com >
Agent-Logs-Url: https://github.com/rommapp/romm/sessions/8a6fd3fe-77ab-4f7b-a0e9-1c55e7096e88
2026-03-23 22:19:06 +00:00
zurdi
f1729b15ab
fix: update mock_proc.wait return value to 0 for successful hash calculations
2026-03-20 13:33:31 +00:00
zurdi
56bc8c58dd
feat: update RAHasher to version 1.8.3 and add Wii platform support
2026-03-20 13:24:19 +00:00
Georges-Antoine Assi
3e65534d6e
remove unnceserray upload checks
2026-03-13 17:40:45 -04:00
Georges-Antoine Assi
ffbd997940
remove unused test
2026-03-12 23:14:17 -04:00
Georges-Antoine Assi
997e2c44aa
start pre-4.8 cleanup
2026-03-12 23:02:12 -04:00
Georges-Antoine Assi
a2be62154b
Merge pull request #3118 from rommapp/copilot/update-game-status-retroachievements
...
feat: Auto-update game status from RetroAchievements award kind during progress sync
2026-03-12 20:31:35 -04:00
Georges-Antoine Assi
7146081d75
dont update user set statutuses
2026-03-12 20:26:30 -04:00
Georges-Antoine Assi
72e884a83c
run fmt
2026-03-12 19:02:24 -04:00
copilot-swe-agent[bot]
4234ca3953
fix: always update rom_user status from RA award on each sync run
...
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com >
2026-03-12 22:59:47 +00:00
Georges-Antoine Assi
d5cb2356d2
ignore greptiles comments
2026-03-12 18:47:02 -04:00
HydroSulphide
6a1c1597ce
Fix: directly import constants from config and preventing silent fallback on wrong user input for env variable
2026-03-12 20:18:48 +01:00
HydroSulphide
48091225c7
Fix: imports in all test files with renamed constants
2026-03-12 20:04:19 +01:00
HydroSulphide
61c0d401d4
Fix: conftest.py now using the renamed constants
2026-03-12 19:55:50 +01:00
HydroSulphide
0f6e849b16
Implemented startup validation for positive values
2026-03-12 08:48:59 +01:00
HydroSulphide
fe4d42e192
removed unused import "Final"
2026-03-12 06:55:45 +01:00
HydroSulphide
8293c7ba9b
Make OAuth token expiry configurable via env vars
2026-03-12 06:48:48 +01:00
Georges-Antoine Assi
b1cd003625
run fmt
2026-03-11 22:27:33 -04:00
Georges-Antoine Assi
6900f91f54
run fmt
2026-03-11 22:03:16 -04:00
copilot-swe-agent[bot]
d45530cd8b
Add typed RomUserData model for documented partial ROM user props update
...
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com >
2026-03-12 01:41:10 +00:00
Georges-Antoine Assi
fcfb74a8a2
Merge pull request #3119 from rommapp/copilot/use-pico-8-cover-art
...
feat: use PICO-8 built-in cover art from .p8.png cartridge files
2026-03-11 21:22:36 -04:00
Georges-Antoine Assi
744d92d6d1
lower fs name
2026-03-11 21:05:01 -04:00
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
Zurdi
4c680f4919
Merge pull request #3121 from Bergbok/playable-filter-fix
...
fix: add missing platforms to playable game filter
2026-03-11 16:24:00 +01:00
Bergbok
99e41cecc2
refactor: create list for playable platforms that don't use EJS
2026-03-11 17:18:13 +02:00
Bergbok
ed61158aee
fix: include DOS, Game Boy Color and Sega 32X games in playable filter
2026-03-11 16:40:39 +02:00
Bergbok
cad510a0b0
refactor: remove duplicate C64 entry from EJS_SUPPORTED_PLATFORMS
2026-03-11 16:37:49 +02:00
Bergbok
8517fb9aca
fix: include browser games in playable filter
2026-03-11 16:11:08 +02: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
copilot-swe-agent[bot]
da30e4daf1
feat: auto-update game status from RetroAchievements award kind
...
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com >
2026-03-11 02:27:38 +00:00
Georges-Antoine Assi
6f02a4beff
Merge pull request #3114 from tmgast/feature/client-api-tokens
...
Add client API tokens with QR pairing flow
2026-03-10 22:17:05 -04:00
nendo
fb37c5cafe
fix fork to match upstream changes and verify tests
2026-03-11 11:01:23 +09:00
Georges-Antoine Assi
9b95e85dee
Merge pull request #3110 from cciollaro/feat/stats-metadata-coverage-regions
...
Per-platform metadata coverage and region breakdown to server stats
2026-03-10 21:58:32 -04:00
nendo
6de2a478f3
fix: remove dead code and add missing validation
...
- Consolidate PAIR_CODE_TTL_SECONDS to single source in utils
- Add min_length=1 validation on scopes field
- Remove unused pairExpiresIn ref, rawToken ref, dead emitter listener
- Fix formattedCode fallback to return normalized value
2026-03-11 10:56:35 +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
d97791f1d4
fix: address PR review feedback
...
- Add back_populates="client_tokens" to ClientToken.user relationship
- Fix rate limit race condition: increment-first pattern instead of
read-then-write
- Remove unused User import from tests
- Add i18n keys to all non-en_US locales
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
0c18c2588c
run fmt
2026-03-10 21:47:27 -04:00
cc
0db3be7d83
fix: revert TypedDict keys to int (Pydantic validates at runtime)
...
Pydantic enforces response types before JSON serialization, so the
Python dict must use int keys to match the actual data. JSON handles
the int-to-string conversion automatically.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-10 20:14:03 -04:00
cc
a4e8d9df49
fix: sort without mutating store, move constants to module scope
...
- Spread allPlatforms before sorting to avoid mutating Pinia store
- Move _METADATA_SOURCE_COLUMNS to module level
- Add optional chain on sourceInfo v-img src
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-10 20:09:19 -04:00
cc
f82a4e15f5
fix: address remaining review feedback
...
- Use i18n key for "games" label instead of hardcoded "Roms"
- Remove min-width on size bar fill so zero-size platforms show no bar
- Align Python TypedDict keys to str to match JSON wire format
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-10 19:58:14 -04:00
cc
52c53505a1
refactor: address review feedback
...
- Derive metadata source columns from Rom model instead of hardcoded list
- Replace getOrderedCoverage() function calls with a computed map to avoid
redundant sorting on each render
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-10 19:27:50 -04:00
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