26.7.0
Bump engine to 26.6.0, extract shared ToolError, patch NU1903
What changed
- Engine bump:
GroupDocs.Annotation25.11.0 → 26.6.0 (a ~7-minor jump). The
net10.0 build resolves theGroupDocs.Annotation.Net80sub-package. No public
API drift — all 10 tools compile unchanged against the new engine
(Annotator.Add/Get/Update/Remove/Save,ImportAnnotationsFromDocument,
ExportAnnotationsFromXMLFile,Document.GetDocumentInfo/GeneratePreview,
PreviewOptions, and the annotation model types are all stable). - MCP version: 26.5.0 → 26.7.0 (CalVer). Bumped in
dependencies.props,
.mcp/server.json(bothversionfields), README and llms.txt@-pins. - Shared
Tools/ToolError.csextracted. All 10 tools previously carried a
duplicated privateFormatExceptionhelper; they now route theircatch
throughToolError.Format(op, file, ex, subjectSuffix). Failure prefixes are
byte-identical to before (Annotation failed for,Annotation lookup failed for,Annotation removal failed for,Annotation update failed for,Reply add failed for,Reply removal failed for,Annotation import failed for,
Annotation export failed for,Document-info lookup failed for,Preview generation failed for), so integration tests that match the prefix are
unaffected. - NU1903 security fix. The 26.6.0 engine transitively pulls
Microsoft.NETCore.Jit1.0.2 (viaMicrosoft.NETCore.Portable.Compatibility),
flagged high-severity (GHSA-xcvr-qv8h-m7xw). Added a direct
<PackageReference Include="Microsoft.NETCore.Jit" Version="1.0.18" />override
to restore a 0-warning build. - SkiaSharp pin note. 26.6.0 (now backed by Aspose.Drawing) pulls a
consistent SkiaSharp 3.119.0 native-asset set (Linux/macOS/Win32), so the old
2.80.1 ABI mismatch that originally justified the manual pin is gone. The
3.119.4 pin is kept one patch higher for a patchedlibSkiaSharp.soand can be
dropped in a future pass; comments in the csproj / dependencies.props updated.
Why
Keep the server on the latest stable engine, remove ~130 lines of duplicated
error-formatting boilerplate behind one shared helper, and keep the build free
of known-vulnerable transitive packages.
Migration / impact
None for consumers — tool names, schemas, response shapes, and failure-text
prefixes are unchanged. Docker still installs libgdiplus + libfontconfig1 +
ttf-mscorefonts-installer for glyph rendering on Linux.
Full Changelog: 26.5.0...26.7.0