Highlights since v0.2.7:
- Add MiMo-V2.6 Pro and Flash tool-call and reasoning structural tags (
mimo), aligned with the official chat templates and tokenizers. Fix empty root schemas in the shared Qwen XML parameter-list converter (#916). - Add
JSONSchemaFormat.excludesto forbid substrings in string values and property names, including nested JSON strings (#912), and enable control-marker exclusions in Kimi-K3 tool arguments by default (#915). Exclusions apply to strings withoutpatternorformat; theirminLength/maxLengthconstraints are dropped with a warning. - Improve DeepSeek V4.1 token-mask performance and fix root object literals, schema/reference cache isolation, and overlapping text exclusions (#900). Bind DeepSeek V4 XML
string="true|false"attributes to the parameter value type across unions and references (#908). - Reduce token-mask overhead with
max_charsso it no longer grows with the generated prefix length (#913), and mask overridden stop tokens until the grammar can complete (#905). - Fix Unicode character-class ranges, negated classes, and UTF-8 encoding boundaries (#909), plus start-state merging and nested unbounded repetitions (#911). Enforce FSM state limits (#906) and add
GrammarFSMBuilder::FromRegularGrammar(#910). - Warn when JSON Schema string
patternis combined with unsupportedminLength/maxLengthconstraints (#896). - Fix native binding discovery in installed packages (#893), and derive Python package versions from Git tags with
setuptools-scm(#891).
Full changelog: v0.2.7...v0.2.8