Repository navigation
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
FetchOptionsgaineddocument_conversionandcontent_processors. Add the fields or use..Default::default()in struct literals.DefaultFetchernow stores a processor registry. Replace the unit valueDefaultFetcherwithDefaultFetcher::new()orDefaultFetcher::default().- Default Office conversion now uses Markkit. Enable deprecated
docs-officeexplicitly 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
ContentProcessorInputmust 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
ContentProcessorregistry with a built-inHtmlProcessorand 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
ContentProcessorregistry. - Add pluggable document conversion:
DocumentProcessorruns an ordered,
per-format chain ofDocumentConverterbackends configured with
DocumentConversion(formats, chain order, 25 MB document cap, remote opt-in)
throughToolBuilder, the CLI/MCP flags--convert,--converter,
--allow-remote-conversion,--max-document-bytes, and Python keyword arguments. - Built-in converters behind Cargo features:
pdf-inspectorfor text-based PDFs
(docs-pdf, default) andofficefor 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 remoteCloudflareConverter(Workers AItoMarkdown,
docs-cloudflare) and genericHttpConverter(docs-http). Remote converters
run only when explicitly allowed and never underToolBuilder::hardened(). - Add
MarkkitConverter(markkit,docs-markkitfeature, 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_methodismarkkit_docx,markkit_xlsx,
markkit_xlsormarkkit_ods. ToolBuilder::content_processoradds custom processors ahead of the built-ins,
andFetchOptionscarriesdocument_conversionandcontent_processors.- Discover agent-facing resources from HTTP and HTML declarations plus bounded
conventional probes, includingllms.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-officefeature) is deprecated in favour of
MarkkitConverterand no longer a default feature or part ofdocs-all. It
still works whendocs-officeis 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/markdownfirst in theAcceptheader, so
sites that serve Markdown on request return it instead of HTML. ContentProcessorInputnow 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
DocumentConversionSettingsDebug 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