romm-mcp: restore library scans via POST /api/tasks/scan
NixOS Configuration CI / Nix Flake Check (pull_request) Successful in 25s

romm_system action=scan threw client-side:

  Scan endpoint removed in RomM 5.0. Use the RomM web UI to trigger library scans.

That note is stale. The comment above the stub says RomM 5.0 removed POST
/api/tasks/run -- true -- but 5.4 serves POST /api/tasks/scan with a ScanPayload
(type, platforms, platform_fs_slugs, roms_ids, apis). Verified against the running
instance: /api/tasks/scan is in the 5.4.1 OpenAPI (226 paths), and a call with a
bad key answers 401 from that exact endpoint rather than 404.

So the stub was blocking a working endpoint, and scans still needed a human in the
UI. Patch restores runScan() defaulting to type=quick, which indexes new and
changed files without re-hashing the whole library (a full scan hashes 229 GB).

The patch targets dist/client.js: the npm tarball ships only dist/ plus a .d.ts, so
there is no .ts to patch without dragging in typescript. Keep it small and delete
it when upstream restores runScan().
This commit is contained in:
hermes-agent committed 2026-11-02 13:50:58 +01:00
1 parent b55c7af097
commit 106bf1014e
2 files changed
+25

No files matched your search

+6
View File
@@ -22,6 +22,12 @@ buildNpmPackage rec {
postPatch = ''
cp ${./package-lock.json} package-lock.json
# romm_system action=scan was stubbed out client-side ("Scan endpoint removed in
# RomM 5.0"), but RomM 5.4 restored POST /api/tasks/scan, so the stub only blocks a
# working endpoint. Upstream publishes no sources in the npm tarball, so this patches
# the compiled dist/ directly; drop it once upstream restores runScan().
patch -p1 < ${./romm-mcp-scan.patch}
'';
# dist/*.js (tsc output) ships inside the npm tarball, so there is nothing to