Commit Graph

9272 Commits

Author SHA1 Message Date
copilot-swe-agent[bot]
3e73e363e0 Auto-select firmware when only one option is available in EmulatorJS player
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
Agent-Logs-Url: https://github.com/rommapp/romm/sessions/943d91e5-db70-4bf4-8771-c96f32258cda
2026-03-21 12:34:29 +00:00
copilot-swe-agent[bot]
e3b1d552e8 Initial plan 2026-03-21 12:32:26 +00:00
Denislav Denev
bb4744346b added translation for settings 2026-03-21 12:47:20 +02:00
Denislav Denev
47383146d5 feat(i18n): add Bulgarian (bg_BG) translations for scan, library management, and metadata source strings 2026-03-21 01:55:16 +02:00
zurdi
7fce50a3c5 fix: update ThemeOption component to bind value correctly and simplify vuetify theme logic 2026-03-20 17:57:45 +00:00
Georges-Antoine Assi
aeae781883 Merge pull request #3146 from rommapp/dependabot/npm_and_yarn/frontend/flatted-3.4.2
chore(deps-dev): bump flatted from 3.3.4 to 3.4.2 in /frontend
2026-03-20 11:25:34 -04:00
dependabot[bot]
94e348cd0c chore(deps-dev): bump flatted from 3.3.4 to 3.4.2 in /frontend
Bumps [flatted](https://github.com/WebReflection/flatted) from 3.3.4 to 3.4.2.
- [Commits](https://github.com/WebReflection/flatted/compare/v3.3.4...v3.4.2)

---
updated-dependencies:
- dependency-name: flatted
  dependency-version: 3.4.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-20 14:35:58 +00:00
Zurdi
522452e7d0 Merge pull request #3145 from rommapp/feature/ra-wii-support
feat: update RAHasher to version 1.8.3 and add Wii platform support
2026-03-20 15:34:45 +01:00
zurdi
a18fd9c459 fix: remove conditional check for mariadb connectors installation 2026-03-20 13:43:47 +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
46e270e811 Merge pull request #3144 from rommapp/dependabot/npm_and_yarn/frontend/socket.io-parser-4.2.6
chore(deps): bump socket.io-parser from 4.2.5 to 4.2.6 in /frontend
2026-03-19 11:49:39 -04:00
dependabot[bot]
47949fc42a chore(deps): bump socket.io-parser from 4.2.5 to 4.2.6 in /frontend
Bumps [socket.io-parser](https://github.com/socketio/socket.io) from 4.2.5 to 4.2.6.
- [Release notes](https://github.com/socketio/socket.io/releases)
- [Changelog](https://github.com/socketio/socket.io/blob/main/CHANGELOG.md)
- [Commits](https://github.com/socketio/socket.io/compare/socket.io-parser@4.2.5...socket.io-parser@4.2.6)

---
updated-dependencies:
- dependency-name: socket.io-parser
  dependency-version: 4.2.6
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-19 03:51:00 +00:00
Denislav Denev
df054017a3 feat(i18n): add partial Bulgarian (bg_BG) translation
Translated: collection, common, emptyStates, gallery, home, login
Remaining: console, patcher, platform, play, rom, scan, settings
2026-03-19 00:09:58 +02:00
Denislav Denev
5203341da1 Add bg_BG locale scaffold 2026-03-18 23:11:57 +02:00
Georges-Antoine Assi
66e21bb2bf Merge pull request #3141 from rommapp/dependabot/uv/memray-1.19.2
chore(deps): bump memray from 1.17.2 to 1.19.2
2026-03-16 14:41:58 -04:00
dependabot[bot]
877c19fdb1 chore(deps): bump memray from 1.17.2 to 1.19.2
Bumps [memray](https://github.com/bloomberg/memray) from 1.17.2 to 1.19.2.
- [Release notes](https://github.com/bloomberg/memray/releases)
- [Changelog](https://github.com/bloomberg/memray/blob/main/NEWS.rst)
- [Commits](https://github.com/bloomberg/memray/compare/v1.17.2...v1.19.2)

---
updated-dependencies:
- dependency-name: memray
  dependency-version: 1.19.2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-16 16:50:50 +00:00
Zurdi
01c825b77d Merge pull request #3138 from rommapp/dependabot/uv/authlib-1.6.9
chore(deps): bump authlib from 1.6.7 to 1.6.9
2026-03-16 17:17:50 +01:00
dependabot[bot]
3187deede7 chore(deps): bump authlib from 1.6.7 to 1.6.9
Bumps [authlib](https://github.com/authlib/authlib) from 1.6.7 to 1.6.9.
- [Release notes](https://github.com/authlib/authlib/releases)
- [Changelog](https://github.com/authlib/authlib/blob/main/docs/changelog.rst)
- [Commits](https://github.com/authlib/authlib/compare/v1.6.7...v1.6.9)

---
updated-dependencies:
- dependency-name: authlib
  dependency-version: 1.6.9
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-16 15:44:38 +00:00
Georges-Antoine Assi
22e273f0f5 add sync to task type item 2026-03-16 08:54:40 -04:00
Georges-Antoine Assi
318d5c8cd6 Merge pull request #3135 from tmgast/save-sync-cleanup
fix: address bugs and add test coverage for save-sync
2026-03-16 08:51:19 -04:00
nendo
933dcf0443 fix: reuse enum variable in create_table to prevent duplicate type on PostgreSQL
The sa.Enum() inline in create_table tried to CREATE TYPE again after
the explicit ENUM.create() call. Use the pre-created enum variable
with create_type=False for PostgreSQL to avoid DuplicateObject error.

Verified locally: upgrade, downgrade, re-upgrade all clean on PostgreSQL.
2026-03-16 11:55:12 +09:00
nendo
269d492e62 fix: use checkfirst=True for PostgreSQL enum creation in migration
The syncsessionstatus enum creation used checkfirst=False which fails
with DuplicateObject if the type already exists (e.g., test reruns or
partial migrations). Matches the pattern used in the downgrade.
2026-03-16 11:49:05 +09:00
nendo
51c990dcba fix(ci): install mariadb connectors on all runners
uv sync installs sqlalchemy[mariadb-connector] regardless of which
database is being tested, so libmariadb-dev must be present on all
runners. The postgres migration job and pytest postgresql matrix were
missing this step.
2026-03-16 11:40:39 +09:00
nendo
c59ea7790c test: add coverage for sync session handler, sync watcher, device masking, and auth utils
- test_sync_sessions_handler: increment_operations_completed (atomic
  counter, no-op on missing), NoResultFound on update/complete/fail
  with nonexistent session
- test_sync_watcher: _extract_device_and_platform path parsing (valid,
  non-incoming, too few parts, nested, outside base), _ensure_conflicts_dir
  creation and idempotency, process_sync_changes empty/disabled
- test_sync (endpoints): negotiate with untracked saves (no_op),
  server saves not mentioned by client (download), deleted-by-client
  detection (skip), complete on FAILED/CANCELLED session (400),
  trigger_push_pull passes session_id in enqueue kwargs
- test_device (endpoints): sync_config SSH credential masking
  (ssh_password/ssh_key_path -> "********"), null config passthrough,
  config without sensitive fields
- test_utils_auth: _get_device_name UA parsing (browser+OS, browser
  only, OS only, neither), create_or_find_web_device (creates new,
  returns existing on fingerprint match, updates last_seen)
2026-03-16 11:19:30 +09:00
nendo
4edb1710a5 fix: address review feedback on session handler and counter
- Restore NoResultFound behavior on update_session, complete_session,
  fail_session when row is missing (scalar returns None, old .one()
  raised -- silent None is a semantic regression)
- Remove redundant get_session call from _increment_session_counter;
  the atomic SQL increment is already a no-op on missing rows
- Log warning when passed session_id is not found in _sync_device
  instead of silently creating an orphan session
2026-03-16 10:59:49 +09:00
nendo
55638d15dc fix: address bugs, security issues, and convention violations in save-sync
- Fix broken path construction in FSSyncHandler: build_* methods now
  return relative paths; sync_watcher uses paths relative to sync base
  instead of CWD (was completely non-functional in production)
- Fix SSH connection leak in push-pull task: conn.close() now in finally
- Add log.warning for disabled SSH host key verification
- Fix race condition in session operation counter: use atomic SQL
  increment instead of read-then-write
- Extract _increment_session_counter helper, add exc_info to warnings
- Replace legacy session.query() with select() in sync_sessions_handler
- Fix orphaned session: trigger_push_pull now passes session_id to job
- Fix wasteful SSH download when no matched_save exists
- Fix BaseModel import collision in sync.py (pydantic -> project base)
- Fix ORM mutation in UserSchema.from_orm_with_request: set field on
  schema instance instead of mutating live ORM object
- Mask ssh_password and ssh_key_path in DeviceSchema API response
- Fix migration PostgreSQL compatibility: condition ON UPDATE clause
  on MySQL, drop enum in downgrade
- Rename copy-paste artifact rom_user_status_enum
2026-03-16 10:56:43 +09:00
Georges-Antoine Assi
c61f52ebed clean create web device 2026-03-15 20:25:38 -04:00
Georges-Antoine Assi
e1b07cacfc make devices actually unique 2026-03-15 20:09:33 -04:00
Georges-Antoine Assi
29112b4ddc create device on login web 2026-03-15 11:25:39 -04:00
Georges-Antoine Assi
3f7953b020 update responses 2026-03-15 09:48:31 -04:00
Georges-Antoine Assi
87800ffd5e run generate 2026-03-15 09:35:12 -04:00
Georges-Antoine Assi
55ca39cacb fix deprecations in pydantic 2026-03-15 09:34:48 -04:00
Georges-Antoine Assi
7013cf9e73 remove plan 2026-03-14 23:58:28 -04:00
Georges-Antoine Assi
ed6f9f5907 cleanup endpoint tests 2026-03-14 23:56:46 -04:00
Georges-Antoine Assi
b3fbbf59fb add tests 2026-03-14 23:35:04 -04:00
Georges-Antoine Assi
f13f929d7d tweaks based on self review 2026-03-14 22:26:53 -04:00
Georges-Antoine Assi
e6ddc5da11 bot attempt at save sync 2026-03-14 22:13:38 -04:00
Georges-Antoine Assi
3e65534d6e remove unnceserray upload checks 4.8.0-alpha.1 2026-03-13 17:40:45 -04:00
Georges-Antoine Assi
68ead66c9b Merge pull request #3133 from rommapp/pre-4.8-cleanup
Pre-4.8 cleanup
2026-03-12 23:19:13 -04:00
Georges-Antoine Assi
ffbd997940 remove unused test 2026-03-12 23:14:17 -04:00
Georges-Antoine Assi
4db997d69f update env.template 2026-03-12 23:11:42 -04:00
Georges-Antoine Assi
997e2c44aa start pre-4.8 cleanup 2026-03-12 23:02:12 -04:00
Georges-Antoine Assi
2beba3d141 move to corrrect folder 2026-03-12 21:15:08 -04:00
Georges-Antoine Assi
7c0e5400f7 add more tools to setup copilot 2026-03-12 21:14:31 -04:00
Georges-Antoine Assi
78ff3c1e54 add copilot setup steps 2026-03-12 20:58:46 -04:00
Georges-Antoine Assi
8b335886c5 Merge pull request #3131 from rommapp/copilot/ui-ux-optional-cover-image-bevel
Remove cover image card bevel
2026-03-12 20:34:04 -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