ManT 0.11.0
ManT 0.11.0 makes documentation easier to explain, navigate, and embed. Semantic entries retain their original content, explanation queries return independently classified evidence, and typed links connect outlines to exact document locations. A new set of focused Rust crates separates memory codecs, local loading, queries, and rendering while the default ManT installation keeps native manuals, Markdown, the terminal reader, and read-only MCP together.
Highlights
- Evidence-based explanations.
--explainandmant_explainreturn direct declarations, explicitly related entries, entry mentions, and contextual mentions instead of guessing one winner. Results include matched spellings, previews, source positions, shared declaration context, and explicit coverage and omission information. Global result paging and content budgets remain separate from MCP character paging. - Semantic information without rewriting the document. Ordinary list items and native definitions share entry facts while preserving their content, numbering, layout, and ownership. Documented names are distinct from declared aliases. Markdown annotations support explicit entry IDs, alias groups, alias relationships, linked documents, and value domains; semantic Markdown export falls back to portable content when metadata cannot be represented faithfully.
- Links that remain usable throughout the reader. Outlines expose bounded reference inventories and associated heading/entry references. The TUI provides source-aware reference groups and explicit open/copy choosers. Copied targets retain reusable URI syntax, exact fragments, and Markdown destinations; ambiguous or missing destinations do not silently change the current document or navigation history.
- More faithful native manual layout. Man/mdoc lowering preserves independent declarations, relative and hanging indentation, literal blank rows, display spacing, table boundaries, and authored targets. Numbered prose no longer becomes spurious semantic entries. Shared geometry keeps CLI and TUI wrapping, narrow views, anchor positions, and list placement aligned; linked headings retain combining marks and joined emoji.
- Consistent command-line presentation. Text is the default document output, display selection is independent of format and color, and help uses the embedded self-manual TLDR. Public CLI options are addressable in the self manual. TLDR commands/options receive semantic emphasis while placeholders remain visually distinct through ordinary foreground styling.
- Focused embedding crates. New
mant-codec,mant-loader,mant-query, andmant-renderpackages expose memory-only codecs, read-only local loading, snapshot queries, and presentation independently. The reader accepts shared immutable snapshots and host services. The CLI offers independentroff,tui,pager,mcp, andupdatefeatures, all enabled in the default product. - Stronger native and source boundaries. Native syntax-depth and renderer checks, iterative tree cleanup, malformed-input recovery, nonblocking configuration reads, portable archive-name validation, and complete compressed-transport validation strengthen existing bounded, local-first behavior.
Breaking changes
- Process contracts advance from v0.10 to v0.11. Regenerate request/response models using
mant --schema alland the current protocol manual. Explanation responses usemant.explanation/v0.11; consumers must inspect outcomes, evidence classes, coverage, and truncation rather than assume a unique excerpt. Published v0.10 schema snapshots are retained unchanged as historical contracts. - Content selection is distinct from explanation. CLI reads and outline roots use
path:...orid:...selectors (bare canonical paths remain accepted); request JSON and MCP use typed path/ID objects. Use--explain/mant_explainfor names and aliases, and use returned content coordinates to read exact owners. Coordinates are snapshot-local, not cross-revision identities. Readable zero/multiple explanation results now exit successfully; strict content reads still report ambiguity. - Display flags change. Replace
--uiwith--display tuiand--no-pagerwith--display direct. Choose--display auto|direct|pager|tuiindependently of--formatand color. Scripts that need the previous Markdown full-document output must request--format markdownexplicitly. - Rust API ownership and IR types change. Import parsing/Markdown encoding from
mant-codec, acquisition frommant-loader, snapshot queries frommant-query, and report formatting frommant-render; removed engine forwarding exports are not compatibility shims. Entry facts, form bindings, headings, diagnostic impacts, layout fields, and typed references have changed. NativeNodeliterals must initialize the new definition-list subtype field. See the crate compatibility changelog for field-level migration details.
Versions remain independent: the product and eight related component crates are 0.11.0, libmandoc-rs is 0.10.0, and mant-sources is 0.9.3. Existing crates.io package names are unchanged.
Install or update
Unix:
curl --proto '=https' --tlsv1.2 -LsSf https://raw.githubusercontent.com/BryanHeBY/ManT/main/scripts/install.sh | shWindows PowerShell:
irm https://raw.githubusercontent.com/BryanHeBY/ManT/main/scripts/install.ps1 | iexThe installers register the bundled self-hosted manuals. Public binary archives cover Linux x64, Linux arm64, and Windows x64; macOS continues to use Cargo/source installation pending signed and notarized archives.
Verify a release artifact
gh attestation verify mant-0.11.0-linux-x64.tar.gz --repo BryanHeBY/ManTThe release includes native archives, a platform-independent bundled-manuals archive, SHA-256 checksums, target-specific CycloneDX SBOMs, portable Sigstore bundles, and complete license notices. Tagged-build provenance and SBOM attestations are generated by GitHub Actions.
Full changelog: v0.10.0...v0.11.0