Skip to content

Release v0.6.0

Latest

Choose a tag to compare

@github-actions github-actions released this 23 Oct 21:54
4712567

Highlights

  • Fetch and convert PDF and Office documents with bounded, pluggable local converters.
  • Discover agent-facing resources and preserve richer HTML semantics through replaceable content processors.
  • Update PDF/TLS dependencies, require published Markkit 0.1.1 and Tokio 1.54.1, and publish from the tested lockfile.

Breaking Changes

  • FetchOptions gained document_conversion and content_processors. Add the fields or use ..Default::default() in struct literals.
  • DefaultFetcher now stores a processor registry. Replace the unit value DefaultFetcher with DefaultFetcher::new() or DefaultFetcher::default().
  • Default Office conversion now uses Markkit. Enable deprecated docs-office explicitly if PPTX/XLSB conversion is required; those formats are not converted by the default backend.
  • HTML conversion now uses the content processor registry and may produce richer Markdown. Custom processors constructing ContentProcessorInput must populate its output-format and content-focus fields.

Added

  • Replace the specification directory with an indexed OKF v0.2 knowledge
    bundle, maintenance contract, update log, and CI conformance checks.
  • Route HTML extraction and Markdown/text conversion through the pluggable
    ContentProcessor registry with a built-in HtmlProcessor and replaceable
    HtmlToMarkdownConverter.
  • Preserve richer HTML semantics in Markdown, including collision-safe code
    fences, footnotes, math, callouts, highlights, strikethrough, image sources,
    figure captions, task checkboxes, and valid tables with formatted cells.
  • Add a pluggable post-download ContentProcessor registry.
  • Add pluggable document conversion: DocumentProcessor runs an ordered,
    per-format chain of DocumentConverter backends configured with
    DocumentConversion (formats, chain order, 25 MB document cap, remote opt-in)
    through ToolBuilder, the CLI/MCP flags --convert, --converter,
    --allow-remote-conversion, --max-document-bytes, and Python keyword arguments.
  • Built-in converters behind Cargo features: pdf-inspector for text-based PDFs
    (docs-pdf, default) and office for Word (DOCX), PowerPoint (PPTX) and
    spreadsheets (XLSX, XLSM, XLSB, XLS, ODS) with zip-bomb limits (docs-office,
    now deprecated and off by default; see Deprecated), plus opt-in remote CloudflareConverter (Workers AI toMarkdown,
    docs-cloudflare) and generic HttpConverter (docs-http). Remote converters
    run only when explicitly allowed and never under ToolBuilder::hardened().
  • Add MarkkitConverter (markkit, docs-markkit feature, default): local
    DOCX, XLSX/XLSM, XLS and ODS conversion through the
    markkit crate, with configurable limits via
    MarkkitConverter::with_markkit (fetchkit::documents::Markkit). It is the
    default Office backend; extraction_method is markkit_docx, markkit_xlsx,
    markkit_xls or markkit_ods.
  • ToolBuilder::content_processor adds custom processors ahead of the built-ins,
    and FetchOptions carries document_conversion and content_processors.
  • Discover agent-facing resources from HTTP and HTML declarations plus bounded
    conventional probes, including llms.txt, auth.md, OAuth metadata, MCP
    server cards, A2A agent cards, and Agent Skills indexes. Markdown responses
    include a compact navigation appendix.

Deprecated

  • OfficeConverter (office, docs-office feature) is deprecated in favour of
    MarkkitConverter and no longer a default feature or part of docs-all. It
    still works when docs-office is enabled explicitly and remains the only
    built-in PPTX and XLSB converter for this release; PPTX and XLSB responses are
    rejected as unconverted binaries under default features.

Changed

  • Markdown requests now ask for text/markdown first in the Accept header, so
    sites that serve Markdown on request return it instead of HTML.
  • ContentProcessorInput now includes the requested output format and HTML
    content focus. Custom processors constructing this public input must populate
    the new fields.

Fixed

  • Use the patched PDF parser and TLS dependency graph for untrusted document fetching; require registry Markkit 0.1.1 and Tokio 1.54.1 (RUSTSEC-2026-0386).

  • Redact Cloudflare API tokens in DocumentConversionSettings Debug output,
    including pretty formatting, cloned settings and settings retained after build,
    independently of enabled document backends.

  • Bound DOCX table dimensions and padded cell work before local conversion,
    including the default markkit backend. The deprecated Office renderer admits
    Markdown bytes before escaping or padding into one capped buffer.

What's Changed

  • chore(release): prepare v0.6.0 (#186)
  • fix(documents): redact credentials in settings debug (#185)
  • fix(documents): bound DOCX table rendering (#184)
  • feat(documents): markkit as default Office converter, deprecate office (#183)
  • feat(documents): pluggable document conversion with converter chain (#182)
  • feat(content): convert Office documents to Markdown locally (#181)
  • fix(fetch): retain PDF permits until parsing completes (#180)
  • fix(fetch): enforce URL policy on agent probes (#179)
  • feat(convert)!: add pluggable HTML content processing (#178)
  • chore(knowledge): migrate specs to OKF (#177)
  • feat(fetch): process PDF content as markdown (#176)
  • chore(ship): prompt for PR evidence in the ship skill (#175)
  • feat(fetch): discover agent resources (#174)
  • fix(fetchers): enforce release API URL policy (#173)
  • fix(fetchers): enforce GitLab API URL policy (#172)
  • fix(fetchers): validate notebook raw URLs (#171)
  • fix(fetchers): enforce policy on PubMed API requests (#170)
  • fix(fetchers): validate Crossref API policy (#169)
  • fix(fetchers): enforce policy for RFC source URLs (#168)
  • fix(fetchers): enforce policy for API subrequests (#167)
  • fix(fetchers): enforce GitHub commit API URL policy (#166)

Full Changelog: v0.5.0...v0.6.0