Release notes
Security
- Zip-bomb defense: decompressed byte totals are re-checked against the actual output; documents exceeding 256 MB are rejected (
FILE_TOO_LARGE). - Secret redaction extended to six previously missed forms: PGP/OpenSSH private-key PEM blocks,
_authToken/authToken,stripe_key/openai_key,DATABASE_URL,export KEY=valuelines, andpasswordHash(camelCase).
Encoding
- GB18030/GBK decoding for Chinese text files, including 4-byte sequences (¥ etc.); random high-byte streams are rejected by a byte-level heuristic.
- ZIP entry names decode as UTF-8 when GPB bit 11 is set, else GB18030 with CP437 fallback.
Performance
- pdfjs-dist loaded on demand (
legacy/pdf.min.mjs, 512 KB); non-PDF operations no longer pay PDF module startup cost. - Parse results cached (LRU, 16 entries / 8 MB) with in-flight deduplication; cache keys are safe because storage is content-addressed.
Windows
install.ps1one-click installer (parameterized, idempotent; detects Node.js ≥ 20 and pnpm/npm).TAR_NOT_FOUNDerror with install guidance whenbsdtaris absent; ZIP archives fall back to in-process parsing.- Filename sanitization rejects Windows reserved characters and device names (
CON,PRN,COM1-9, …). .gitattributesenforces CRLF checkout for.bat/.cmd/.ps1.- Walkthrough:
docs/WINDOWS-INSTALL.zh.md.
Quality
- Tests: 173 → 194 (
vitest),tsc --noEmitclean. - Formats: PDF, DOCX, XLSX, PPTX, legacy
.doc/.xls, RTF, ODF, EPUB, ZIP/7z/RAR listing, HTML/XML/SVG, and plain text.
Assets
install.ps1— Windows installer.SHA256SUMS.txt— checksums.- Source archives are GitHub-generated (below the asset list).
References
Security policy: SECURITY.md. Third-party notices: THIRD_PARTY_NOTICES.md.