cli_fmt 0.9.2

CLI output formatting utilities for command-line applications
Documentation
# Changelog

## [v0.6.0 | 2026-06-06] Comprehensive test surface coverage

**Tests:** 17 new integration tests across `output.rs` and `help.rs`; total 58 integration tests + 4 doc tests.
- `output.rs`: 12 new tests covering unicode_aware, stderr trailing-newline, boundary values (head/tail/width=0/1), overlapping head+tail windows, Both mode with empty streams, custom suffix, combined streams+head+width, is_default() discriminants for tail and width (FT-13 through FT-25, FT-26 through FT-33).
- `help.rs`: 5 new tests covering color field defaults (T10), empty-groups edge case (T11), opt_name_width minimum-padding (T12), tty_detect=true non-TTY ANSI suppression (T13), data_fmt dependency absence regression guard (T14).

**Docs:** Full test surface documentation added in `tests/docs/` — 5 spec files (feature/001, feature/002, api/001, api/002, invariant/001) covering all FT, AP, and IN spec cases; all spec cases implemented and passing.

## [v0.5.0 | 2026-05-17] Add cli_help_template module

**Added:** `cli_help_template` feature — typed, configurable CLI help text renderer.
- `CliHelpStyle` — 13 style parameters (indents, column widths, ANSI color codes) with opinionated defaults
- `CliHelpData` — typed sections: binary name, tagline, command groups, options, examples
- `CliHelpTemplate::render() -> String` — column-aligned, ANSI-colored, TTY-conditional output
- `ExampleEntry.desc: Option<String>` — optional inline annotation rendered as `  # {text}` suffix

**Fixed:** `ExampleEntry.desc` silently dropped — `emit_examples()` ignored the field entirely (BUG-007).

**Tests:** 9 integration tests for help module (T01–T09); T09 is a bug reproducer for the desc silent-drop fix. 2 new output tests added to fill gaps identified in test surface audit: `width_exact_boundary` (FT-11 — exact-boundary non-truncation) and `process_output_head_lines_omitted` (FT-12 — accurate lines_omitted under head filtering). Total: 42 integration tests.

## [v0.4.0 | 2026-04-19] Dependency version bump

**Updated:** Dependency version alignment with workspace release.

## [v0.3.0 | 2025-12-19] Dependency version bump

**Updated:** Dependency version alignment with workspace release.

## [v0.2.0 | 2025-11-29] Renamed from cli_tools; stream ordering fix

**Renamed:** `cli_tools` → `cli_fmt` to reflect scope (CLI formatting utilities).

**Fixed:** Correct stream ordering in merged output — stderr now appears before stdout
as required by CLI convention.

## [v0.1.0 | 2025-11-29] Initial Release

**Created:** New crate for CLI-application-specific utilities.

**Rationale:** Separated from `strs_tools` to maintain clear architectural boundaries.
- `strs_tools`: General-purpose string/ANSI manipulation
- `cli_fmt`: CLI-specific application helpers

**Modules:**
- `output` - CLI output processing
  - Migrated from `strs_tools::output` (which replaced `unilang::output`)
  - Head/tail line filtering
  - ANSI-aware width truncation
  - Stream merging (stdout/stderr)
  - Builder pattern API

**Dependencies:**
- `strs_tools` - Uses general-purpose functions:
  - `ansi::truncate_lines()` - Multi-line ANSI truncation with boundary detection
  - `string::lines::{head, tail, head_and_tail}` - Line filtering

**Migration from strs_tools:**
- Change: `use strs_tools::output::*``use cli_fmt::output::*`
- API unchanged - drop-in replacement

**Tests:** 31 comprehensive tests