26.7.0
26.7.0 — Shared ToolError formatter + version alignment
What changed
- Extracted the per-tool
FormatExceptionhelper duplicated acrossMergeTool,SplitTool, andGetDocumentInfoToolinto a single sharedTools/ToolError.cs(ToolError.Format(op, file, ex, subjectSuffix = null)). Every tool'scatchblock now calls it, so the descriptive-failure contract is defined once.Merge→ToolError.Format("Merge", names, ex).Split→ToolError.Format("Split", file, ex, " (pages='<pages>')")— the optionalsubjectSuffixpreserves the(pages='…')context that Split reported before.GetDocumentInfo→ToolError.Format("Document-info lookup", file, ex).
- Bumped the MCP package version
26.5.1 → 26.7.0(CalVer) acrossbuild/dependencies.props,.mcp/server.json(bothversionfields),README.md, andllms.txt.
Why
Three tools carried byte-identical inner-exception-chain formatting loops. A single shared formatter removes the duplication, guarantees the "<op> failed for '<file>': …" prefix stays consistent, and matches the cross-product convention already used by the Metadata / Conversion MCPs.
Migration / impact
No behaviour change. The failure-text prefixes (Merge failed for, Split failed for, Document-info lookup failed for) and the (pages='…') suffix on Split are byte-for-byte identical to 26.5.1, so integration tests that pattern-match those prefixes keep passing. The engine (GroupDocs.Merger 26.4.0) is unchanged. No tool-name or input-schema changes.
Full Changelog: 26.5.1...26.7.0