v1.1.0-beta.051 - fix(automation): stop wrong-series indexer grabs + restore GetComics direct downloads
๐ฏ GetComics regression (why direct downloads silently failed)
- The hoster-enabled gate re-parsed the raw
hoster_prioritysetting and defaulted to the obsoletegetcomicstoken, so thegetcomics_main/getcomics_directhosters scrapeDeepLink returns were never recognized โ every direct download was rejected as "unsupported" and dumped onto the indexers - Now resolves the enabled list through enabledHostersFromSetting (the same parser + migration getcomics.ts uses), so direct downloads are accepted again
๐งญ Wrong-series grabs (why "X-Men: Outback #1" pulled "X-Men 031")
- search-engine: a colon/dash name was split into a bare title query ("X Men") that ran FIRST and dropped the issue number โ disabling the indexer's issue filter and letting any X-Men issue win. Specific full-name variants now search first; the broad title query is kept only as a fallback
- automation: added a relevance guard that discards off-target Prowlarr releases, anchored on the AUTHORITATIVE ComicVine series name (via volumeId) + requested issue, with all delimiters (":" "-" " - " "/") normalized to spaces so the FULL series name is required โ "X-Men 031" (no "outback") is rejected. Also closes a retry-pollution hole where a prior bad grab's activeDownloadName could "confirm" itself
๐ก๏ธ Importer safety net (why the bad grab broke the Discover/request modal)
- Single-file imports now refuse a download when BOTH signals agree it's wrong โ the requested series' name words are absent AND the parsed issue isn't one the volume has โ STALLED + "download_failed" alert, instead of fabricating a bogus "X-Men 031 โฆ" issue that left the Discover badge pointing at a record the request modal couldn't resolve
- The double condition keeps a legitimately new, not-yet-synced issue of the CORRECT series importable
๐งน Lint
- admin-request-management: converted two ternary-as-statement checkbox handlers to if/else (no-unused-expressions, behavior identical) โ restores
eslint .to 0 errors
๐งช Tests
- automation: query ordering, off-target release rejection, canonical-name anchoring under a polluted activeDownloadName
- search-engine: specific-before-broad ordering for colon/dash names
โ Verification
- tsc clean; eslint . 0 errors; vitest 234 passed