# Changelog of SiteVerdict — Office Docs to Markdown for AI (DOCX, PPTX, XLSX) (`siteverdict/siteverdict-doc-to-markdown`) Actor

- **URL**: https://apify.com/siteverdict/siteverdict-doc-to-markdown/changelog.md
- **Full Actor documentation**: https://apify.com/siteverdict/siteverdict-doc-to-markdown.md

## Changelog

### 1.1 — 2026-11-02

- Billing/UX: when the run budget (maximum total charge) no longer covers a document, that document and every document still queued now get a `skipped_budget` row (`charged: false`) instead of disappearing silently. The status message counts them.
- A large document (`large-document-converted`) that does not fit the remaining budget no longer stops the run: it is skipped with a `skipped_budget` row and smaller documents that still fit are converted.
- Tables (DATA-1): merged cells no longer shift data under the wrong column. Vertically merged cells (DOCX `w:vMerge`, HTML/EPUB `rowspan`) and rows that start part-way across the grid (DOCX `w:gridBefore`) were dropped, so the cells after them moved one column left. Now a merged value is written once, in its first (top-left) cell, and every position it covers is an empty cell, so each column stays under its own header (same convention already used for horizontal merges, PPTX, XLSX and ODF). DOCX results with merged cells or nested tables get an explicit note in `warnings`.
- Contact address in the User-Agent and README changed to hello@webrevenuescan.com.
- Supply-chain note: `xlsx` (SheetJS CE 0.20.3) comes from the cdn.sheetjs.com tarball, outside npm advisories; check SheetJS advisories manually.

### 1.0.0 — 2026-10-11

First release.

- Formats: DOCX (mammoth), PPTX (own OOXML parser: slide order, titles, bullets with levels, tables, picture descriptions, speaker notes), XLSX/XLS/ODS/CSV (SheetJS CE: one table per sheet, hidden sheets, row cap, optional JSON rows), ODT/ODP (headings, lists, tables, footnotes, links, slides, notes), EPUB (spine order, metadata), HTML (main-content extraction), Markdown/text.
- Detection by content (magic bytes + archive contents), not by extension.
- Output: Markdown, optional plain text, outline, word/token counts, hash, heading-aware RAG chunks, `.md` files in the key-value store.
- Security: zip-bomb guards, no XML entity expansion, SSRF guard + robots.txt for URL downloads, size/time limits.
- Pay-per-event: `document-converted`, `large-document-converted`; failures never charged.
