v1.0.0
[1.0.0] - 2026-08-13
Added
- Added
document(op="preflight", pdf_path=...), a process-isolated PDF
inspection/router with a frozenpdf-preflight-v1schema, source SHA-256,
normalized 1-based/top-left page locators, native/sparse/image/scanned/hybrid
classification, per-page OCR reasons, engine recommendations, timeout and
input/layout/memory budgets, and source-change detection. - Added
document(op="export_assets", doc_id=...), which exports deterministic
agent-asset-bundle-v1manifests, agent-readable JSONL, text/table/figure
records, copied media, stable hashes/locators/citation refs, and a portable
Foamindex.mdplusnotes/**subtree using staged replacement. - Added weekly Dependabot coverage for uv, npm, and GitHub Actions plus a
read-only dependency security workflow that audits the universal Python lock
and the VSIX npm lock. - Added pinned uv 0.12.3 native vulnerability auditing, npm low-severity
gating, Bandit medium/high source scanning, and a pinned zizmor workflow
security gate to local, CI, and release paths. - Added idempotent GitHub metadata and label synchronization scripts, including
MCP/PDF/DOCX/wiki/VSIX/CI, provenance, security, breaking-change, release,
and superseded workflow labels.
Changed
- Breaking: migrated from MCP Python SDK v1/FastMCP to official
mcp>=2,<3
andMCPServer. SDK v1 imports, field names, clients, and compatibility
fallbacks are no longer supported. - MCP
Contextis now imported at runtime for every context-aware tool, so it
is injected by the SDK instead of leaking into model-visible input schemas.
Smoke tests use the MCP v2 in-memory and stdioClientAPIs. - Tool-surface filtering and diagnostics now use an Asset-Aware server registry
plus the SDK's publicremove_tool/list_toolsAPIs instead of reaching into
_tool_managerinternals. - Updated the universal Python lock, LightRAG floor to 1.5.6, GitHub Actions
majors, and the VSIX toolchain (ESLint 10, Sinon 22, test-electron 3, and
compatible Node typings); Python and npm audits report zero known
vulnerabilities without allowlists. Mocha is security-pinned to 11.3.0
because newer 11.x releases currently resolve an affecteddiffversion;
TypeScript remains on the latest release accepted bytypescript-eslint. - Default table and LightRAG stores now follow a relocated
DATA_DIRunless
explicitly overridden. Ollama embedding dimensions are probed and cached
instead of being hard-coded to 768. - Updated PyMuPDF imports to the supported
pymupdfmodule while preserving the
internalfitzalias, preventing deprecation text from corrupting MCP stdout.
Security
- Kept
pdf-inspectorbehind an internal adapter boundary because published
1.14.1 predates upstream content-stream/CID/Form expansion DoS hardening; the
built-in preflight applies process, time, file, page, layout, memory, and
source-identity guards without adding that dependency. - Put the MinerU extra on security hold because MinerU 3.4.4 pins
transformers<5while applicable fixes requiretransformers>=5.5. The
adapter remains available, but this package will not install that vulnerable
chain. Marker's existing Pillow security hold remains in place. - Agent bundle exports are traversal-safe, document-scoped, refuse to replace
non-bundle directories, never overwrite source documents, and preserve exact
citation/hash provenance. Bundle construction is bounded to 50,000 evidence
spans, 25,000 records, and 256 MiB of staged output by default. - Marker and MinerU are now rejected by the production extractor factory and
isolated worker even when their packages were installed manually. Stale
ETL_ENGINEsettings still allow the base PyMuPDF server and diagnostics to
start, but a structured request fails closed with the canonical security-hold
explanation.
Fixed
- Made the VSIX Mocha unit-test glob portable across POSIX shells and Windows
runners; a packaging regression test now locks the command contract. - Excluded generated root-level screenshots from VSIX archives and made both
package-content and release-artifact audits reject accidental root media. - Source-location lookup now preserves persisted line ranges and match strategy
and returns query-centered excerpts instead of unrelated block prefixes. - New document IDs use a 12-hex SHA-256 suffix instead of a 6-hex MD5 suffix,
reducing collision risk for large reusable-asset stores. Existing document
IDs remain readable; newly ingested copies receive the stronger stable ID. - Fixed a dead PPTX figure-title fallback exposed by the upgraded Ruff gate.
- Fixed concurrent first-use LightRAG initialization so one ready instance is
published only after storage initialization; transient failures remain
retryable instead of caching a partial instance. - Fixed figure-export hash/copy TOCTOU by hashing the same source stream that is
copied to an atomic staged snapshot, then verifying the copied bytes and
source stat before publishing the record. - Replaced the quadratic agent-asset evidence join with a stable linear index
and added explicit span, record, and output-size failure contracts. - Closed or superseded every stale open PR and removed all absorbed/diverged
remote branches after manually porting their still-valid regression semantics.
Full Changelog: v0.9.0...v1.0.0