Latest Results
feat: résolution Premium → Debrid → Free et plugins Real-Debrid / AllDebrid (MAT-142) (#183)
* feat(resolution): walk Premium → Debrid → Free before contacting a hoster
Link resolution used to pick the first plugin that claimed a URL. It now
walks the resolution tiers in the order set under Settings → Downloads and
records why each rung declined, so an exhausted cascade names every tier it
tried instead of failing as a bare "no source".
A hand-edited config can no longer disable a rung: an unknown tier fails the
load loudly, and a partial or duplicated list is normalised back to the full
three-tier order.
Refs MAT-142
* feat(registry): list vortex-mod-realdebrid and vortex-mod-alldebrid
Checksums come from each plugin's CI release SHA256SUMS, not a local build:
the WASM artefacts are not byte-reproducible off the runner.
Both entries require Vortex 0.3.0, the release that introduces the
Premium → Debrid → Free cascade. On an older host a debrid plugin is just
another URL claimant and would outrank the hoster plugin that owns the
domain.
Refs MAT-142
* fix(download): fall through to free when a debrid fails at download time
The link check picks a debrid while it is healthy and persists the module
and account, but resolution at download time only rotates within that
module and HosterNoFile is not rotatable. A quota spent since the check, a
hoster dropped from coverage, or an outage therefore left the download in
error instead of trying the next configured tier (MAT-142 R-04).
Only the free rung is retried, and only for Debrid modules. Premium is
deliberately not: any premium account for the hoster was already offered
this link at check time and lost to the debrid. CaptchaRequired stays
unwrapped so the engine can still answer the challenge; anything else
reports both reasons through ResolutionExhausted.
Also bounds resolution tier identifiers arriving over IPC, since the parse
error quotes what it rejected, and drops the per-call Vec allocation in
normalize_resolution_order.
* fix(download): only fall through to a hoster, never to a second debrid
resolve_url keeps debrid candidates and merely orders them last, so for a
URL no hoster claims the runner-up is another debrid. The same-module
guard let that through: the fall-through called it without credentials and
labelled the refusal "free", naming a rung that was never tried.
Requires PluginCategory::Hoster on the resolved plugin, so the debrid's own
error stands when no free rung covers the URL. Latest Branches
-17%
dependabot/npm_and_yarn/react-router-8.3.0 -8%
feat/mat-142-debrid-services -19%
feat/mat-141-captcha-solvers © 2026 CodSpeed Technology