v3.21 - Reliable argument descriptions & better legal-document rendering
Highlights
This release fixes an issue where AI assistants could receive no descriptions for optional
template arguments, and improves Word rendering for documents with complex layouts and
numbered paragraphs (e.g. legal filings).
🔧 Optional template arguments now always reach the AI with their descriptions
If you define custom DOCX or email templates in YAML, arguments marked required: false
previously lost their description in some MCP clients — the AI saw the argument but had
no idea what to put in it, which led to wrongly filled documents. Descriptions of all
arguments (required and optional) now survive in every client. No configuration changes
are needed; your existing YAML works as-is.
Note on behavior: an optional argument should now be omitted when unused — explicitly
sending null is rejected. AI models do this naturally, so no template changes are expected.
📝 Word rendering fixes for structured documents
- Placeholders inside nested tables are now filled in. If your template uses a table
inside a table cell (a common letterhead layout), its{{placeholders}}previously
leaked into the generated document as literal text. - Numbered paragraphs keep counting across interposed blocks. A block quote or a
<!-- style: … -->styled block (e.g. an evidence note or citation between numbered
paragraphs of a court filing) no longer resets the numbering — a following3.continues
the list instead of turning into plain text. Ordinary paragraphs still reset numbering,
so dates like "23. června 2026" keep rendering as prose.
Upgrade
Pull the new image and restart — no changes to templates or configuration required.
What's Changed
- Emit flat schemas for optional dynamic-tool args so descriptions survive in #82
- Fix nested-table placeholders and numbering continuation in docx renderer in #83
Full Changelog: v3.20...v3.21