Repository navigation
v1.5.0 — MiNERVA as a plugin; torrent-only sources grabbable
ROMarr v1.5.0 — MiNERVA as a plugin; torrent-only sources become grabbable.
MiNERVA moves to the ROM Hub plugin layer (#64). The v1.4.0 indexer driver — a class welded into indexers.py — is gone. MiNERVA Archive now lives in its own repo, BlizzHacker/rom-hub-minerva: a sandboxed ROM Hub plugin declaring search + torrent capabilities, network-allowlisted by manifest, installed like the 23 plugins already on a live box. Zero lines of MiNERVA-specific code remain in ROMarr's core.
What ROMarr gains instead is general infrastructure, not source-specific:
- Torrent-only plugin results are now grabbable. The
hub://fetch lane is HTTP-only by design (the Hub is deliberately not a torrent client), so a source that distributes magnets only — MiNERVA is one — could be searched but never grabbed.hub.resolve_torrents()now runs a plugin'storrentcapability over magnet-bearing rows (grouped per plugin, one sandboxed subprocess each), producing a host-gated, tracker-augmented magnet that goes to your torrent client like any indexer magnet. Failures degrade to the bare magnet, never raise out of a search. - Slow sources stop masquerading as broken ones.
hub.searchgives its HTTP fetcher the call's timeout budget (min 60s, default 90s). MiNERVA measures 21–25s per query live; the old 30s httpx default inside a 30s RPC turned "slow" into "plugin error".
Proven live end-to-end through the production sandbox on the release box: sandboxed search returned 11 real results from minerva-archive.org, resolve_torrent produced a magnet that passed the Hub's own check_magnet gate with all 12 declared trackers. The plugin carries 16 tests against the real rom_hub_sdk; ROMarr carries 8 new tests pinning both release lanes and every resolve failure path. Full suite: 2282 passed, 3 skipped.
Kept from 1.4.x (never source-specific): the recursive collections presence scan and size=0-means-unknown scoring.
One thing to know: a MiNERVA torrent is a whole dump group ("TOSEC – Nintendo"), not one game — that's the archive's distribution model, and the result carries the exact file path so you can see what you're grabbing.