Skip to content

v0.11.0

Latest

Choose a tag to compare

@github-actions github-actions released this 11 Sep 03:29

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. --explain and mant_explain return 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, and mant-render packages 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 independent roff, tui, pager, mcp, and update features, 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 all and the current protocol manual. Explanation responses use mant.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:... or id:... selectors (bare canonical paths remain accepted); request JSON and MCP use typed path/ID objects. Use --explain / mant_explain for 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 --ui with --display tui and --no-pager with --display direct. Choose --display auto|direct|pager|tui independently of --format and color. Scripts that need the previous Markdown full-document output must request --format markdown explicitly.
  • Rust API ownership and IR types change. Import parsing/Markdown encoding from mant-codec, acquisition from mant-loader, snapshot queries from mant-query, and report formatting from mant-render; removed engine forwarding exports are not compatibility shims. Entry facts, form bindings, headings, diagnostic impacts, layout fields, and typed references have changed. Native Node literals 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 | sh

Windows PowerShell:

irm https://raw.githubusercontent.com/BryanHeBY/ManT/main/scripts/install.ps1 | iex

The 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/ManT

The 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