Commit Graph

8969 Commits

Author SHA1 Message Date
copilot-swe-agent[bot]
4c352284f5 Fix silent overwrite of manually-set statuses (RETIRED, NEVER_PLAYING) during RA sync
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
2026-03-12 23:20:42 +00:00
copilot-swe-agent[bot]
2112a9e5c3 Initial plan 2026-03-12 23:14:47 +00:00
Georges-Antoine Assi
405130c844 Merge pull request #3126 from HydroSulphide/feat-configurable-token-expiry-env
Make OAuth token expiry configurable via env vars
2026-03-12 19:00:30 -04:00
Georges-Antoine Assi
d5cb2356d2 ignore greptiles comments 2026-03-12 18:47:02 -04:00
Georges-Antoine Assi
57bef89e2a Merge pull request #3130 from milktoastrat/patch-1
Remove Non-Argosy Android app references from README
2026-03-12 16:18:48 -04:00
milktoastrat
6e8f4c39d6 Remove deprecated project links from README
Removed links to 'romm-mobile' and 'romm-android' from the README.
2026-03-12 16:05:46 -04:00
milktoastrat
3acf73630e Remove Non-Argosy Android app references from README
Removed references to Android and iOS apps from the Mobile section.
2026-03-12 15:52:40 -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
f9267715de Merge pull request #3124 from rommapp/copilot/feature-allow-partial-rom-update
Allow partial updates to ROM user props via typed payload schema
2026-03-11 22:55:40 -04: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
copilot-swe-agent[bot]
715f48e9aa Initial plan 2026-03-12 01:23:23 +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
94c8e6536a Merge pull request #3123 from rommapp/dependabot/uv/tornado-6.5.5
chore(deps): bump tornado from 6.5.1 to 6.5.5
2026-03-11 20:44:51 -04:00
dependabot[bot]
6e69898159 chore(deps): bump tornado from 6.5.1 to 6.5.5
Bumps [tornado](https://github.com/tornadoweb/tornado) from 6.5.1 to 6.5.5.
- [Changelog](https://github.com/tornadoweb/tornado/blob/master/docs/releases.rst)
- [Commits](https://github.com/tornadoweb/tornado/compare/v6.5.1...v6.5.5)

---
updated-dependencies:
- dependency-name: tornado
  dependency-version: 6.5.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-12 00:22:27 +00: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
8992a6f6a8 Merge pull request #3122 from camhorn/randoms
default to querying all roms
2026-03-11 22:44:19 +01:00
Cameron Horn
e987b532d7 default to querying all roms 2026-03-11 17:33:31 -04: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]
b8f4e3658a Initial plan 2026-03-11 02:20:08 +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
f8a9740e8f rejig styles 2026-03-10 21:52:33 -04: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
60f5c38c8c fix: polish platform card layout
- Add rom count as detail table row aligned with metadata/region chips
- Use standard chip style for fs_slug matching PlatformListItem
- Size and percentage on two lines for readability
- Adjust platform icon vertical alignment

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 19:52:14 -04:00
cc
837046d4c1 fix: use String() for numeric key lookups on string-keyed Records
JSON serializes object keys as strings, so explicitly convert platform
IDs to strings when accessing metadataCoverage and regionBreakdown maps.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 19:40:06 -04:00
cc
8e568780e8 chore: use existing locale keys for metadata/region labels
Reuse rom.metadata and platform.region instead of adding new keys.
Remove orphaned platforms-size key from all 16 locale files.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 19:39:13 -04:00