Verify timeout, disconnect and shutdown never send POST cancellation requests. Document explicit upstream cancellation while preserving the file_parse response contract.
Generate server-owned file IDs shared by Tasks and result resources. Separate creation, detail, cancellation and upload responses, omitting null fields.
Use POST /v1/tasks/{task_id}/cancel and remove public DELETE endpoints. Update Router, SDK, file_parse recovery, examples and documentation.
Converge the SDK, Gradio, remote CLI, Doclib and Router on Tasks with hash-based uploads, per-file result URLs, task listing and optional model output. Preserve Files and the synchronous file_parse wrapper while removing standalone Uploads/Jobs and local-path HTTP inputs.
Migrate contract, lifecycle, transport and real-document regression coverage; update documentation and HTTP examples. Validation: 1452 passed, 3 conditional skips, plus targeted final PDF checks.
BREAKING CHANGE: clients and workers must use Tasks; standalone Uploads/Jobs endpoints and local-source/inline HTTP options have been removed.
Reuse platform ONNX decisions when no discrete GPU is available. Bind and verify the actual Vulkan devices before applying the legacy Intel submission workaround in engine and server paths.
Preserve explicit device settings and offline behavior, and include regression coverage and hardware validation records.
Accept form manifests and per-file uploads with resumable task state and optional source hashes. Publish result URLs only after final ZIP artifacts are ready, and align Router handling with the same protocol.
Remove synchronous parsing and task result routes, drop fixed local upload limits, and update the HTTP client, documentation, and regression coverage.
Add auto/cpu/gpu configuration, Windows adapter discovery, isolated rec calibration, atomic preference persistence, and vendor session presets. Route layout, rec, and full MFR batches through DirectML with CPU fallback.
Use mutually exclusive Windows x64 DirectML dependencies and guard ORT/Magika distribution identity. Include calibration fixtures, three-machine results, the 0.8 threshold with ten UHD 770 repeats, and installation documentation.
Validation: 762 MinerU tests and 71 DocVortex tests passed; dependency checks and Windows Python 3.10-3.14 resolution passed. The 19-page OCR result matches the CPU baseline. DocVortex PyPI acceptance remains pending a compatible release; pinned source acceptance passed.
Apply filename prefix matching to the final query token and paginate the
complete filtered candidate set with stable ordering and accurate totals.
Reuse input page-range syntax in read locators, including rN and all, and
preserve selected-page boundaries during block and character continuation.
Update CLI/SDK/HTTP contracts, bilingual help, documentation, and regressions.
Validation: 667 Doclib/CLI tests passed; Ruff and formatting checks passed.
Refs #5366, #5337, #5365.
Use DocVortex generated-space evidence in Python span filling and rotated-line paths, while keeping the Rust fast path aligned. Document list-tail continuation semantics and add spacing, code protection, rotation, and Python/Rust parity regressions.
--log-level previously flowed into configure_global_log_level(), lowering the
process-wide Loguru stderr sink (and the LOGURU_LEVEL inherited by spawned
render workers) alongside the uvicorn/server stdlib loggers. Managed
api-server children spawned by Gradio/Router/Doclib hardcode --log-level
warning, which also silenced model INFO/DEBUG logs and made MINERU_LOG_LEVEL
ineffective in the webui scenario.
The Loguru default sink now always follows the global log.level
(MINERU_LOG_LEVEL > mineru.json > info), while --log-level controls only
Uvicorn startup, HTTP access, ASGI logs and the api-server service logger.
Explicit --log-level debug/error no longer affects Loguru; use
MINERU_LOG_LEVEL to tune model logs.
- Remove backend_for_tier / CANONICAL_HYBRID_ENGINE and the backend
field from ParserRuntimeOptions: the string had no runtime consumer
(doc_analyze takes effort + vlm_config, not a backend name) and
returned the retired hybrid-engine value
- Drop the write-only application.state.backend storage
- Flip the as_kwargs/state.backend assertions to effort-based ones and
remove the locked hybrid-backend mapping test
- Point the PARSER_BACKENDS changelog note at model.small_backend and
model.vlm.engine instead of the removed helper
Co-Authored-By: Claude Code <noreply@anthropic.com>
Remove fetch_remote_images=True from the API server HTML job and the
SDK default source context so remote images are never downloaded
server-side, closing the SSRF path on untrusted uploads. Bump docvortex
to >=0.4.12, which removes the fetch capability and lets saved bundles
keep external image links instead of requiring materialized assets.
Add a regression test covering parse, API-server zip output and link
retention with zero network requests.
Refs #5524