26.7.0
26.7.0 — descriptive error handling + Dockerfile MS core fonts
What changed
- Added a shared
Tools/ToolError.cs(ToolError.Format(op, file, ex)) that renders engine failures as descriptive text —"<op> failed for '<file>': <ExceptionType>: <message>[ | inner(n): …]"— instead of MCP's opaque"An error occurred invoking '<tool>'". AI agents and integration tests can now read the actual cause. GetViewInfonow wraps the engine call intry/catch; on failure it returns text starting withView-info lookup failed for '<file>':.RenderPagenow catches engine exceptions and returns aCallToolResultwithIsError = trueand aTextContentBlockstarting withRendering failed for '<file>':(previously an engine throw surfaced as MCP's generic wrapper, hiding the native-deps / font-resolution cause).- Tool
[Description]s now document the failure prefix. docker/Dockerfilenow installsttf-mscorefonts-installer(with EULA acceptance viadebconf-set-selections+fc-cacherefresh) alongsidelibgdiplus/libfontconfig1. The integration Tests repo already installed MS core fonts on its Linux runners; the server image was missing them, so glyph-heavy rendering (Arial / Times New Roman) could fail font resolution inside the container.- Version bumped to
26.7.0(MCP CalVer). EngineGroupDocs.Viewerstays at26.4.0(already the latest stable on NuGet); SkiaSharp pin unchanged at3.119.1.
Why
Both tools historically lacked a try/catch wrapper, so any engine-side failure (missing native deps, unsupported format, font resolution) surfaced as MCP's opaque invocation error — undiagnosable by an AI agent or a CI log. Routing every tool through the shared ToolError.Format matches the contract already used by the Metadata / Conversion MCP servers and lets the integration suite match a stable per-tool prefix.
Migration / impact
Drop-in replacement for 26.5.1. No public-API or wire-name changes; success-path responses are byte-for-byte identical. Only failure responses change shape — they now carry descriptive text (and, for RenderPage, IsError = true).
Full Changelog: 26.5.1...26.7.0