CLI 0.0.9 / art 0.0.7 preparation notes¶
Published 2026-09-22 together with core 0.0.5 and ext 0.0.7; see the expanded release notes for the workflow runs and evidence.
Independent package versions¶
| Package | Version | Release role |
|---|---|---|
rs-rich-cli |
0.0.9 | Themes, batch progress/cancellation, selected demos, doctor and image flags |
rs-rich-art |
0.0.7 | Public colour-mode and dithering builders |
rs-rich-ext |
0.0.7 | Expanded scope: targets, layout, events, diagnostics, Live regions |
rs-rich |
0.0.5 | Expanded scope: optional rendering-environment seam only |
The expanded scope (#192) moved core and ext into the cohort. See the expanded release notes for its evidence and release test.
The previous CLI 0.0.8 / art 0.0.6 release is published, with successful independent workflows and exact-version registry consumers. Its completion does not establish publication readiness for these new versions.
Prepared scope¶
- Named
[themes.NAME]TOML definitions map validated style names to Rich style strings. Defaults/profile/--theme NAMEselect a theme; repeated--theme-style NAME=STYLEbindings override configured styles. All definitions and references are validated, including inactive profiles. Workers receive the resolved theme snapshot. Rendering and HTML/SVG exports use public theme APIs. - Batch progress reports completed, failed and total counts on human-report
stderr terminals only.
--no-progresssuppresses it; neither redirected stderr nor JSON reports contain progress. Ctrl+C stops scheduling, terminates and reaps started workers, returns 130 and produces one interrupted machine report when requested. Completed exports may remain; cancellation is not a transaction or rollback. --demo-listlistscore,workflows,artwithout playback.--demo --demo-section NAMEselects a group. The full tour remains the default, redirected output stays finite and cleanup remains interruptible. Lean builds explain unavailable art support.rich doctorprovides read-only human diagnostics;--report jsonwrites a diagnostics document to stdout. It reports build features, terminal and colour policy, inferred Sixel support, image mode, selected config/profile and pager choice. It never probes a terminal, fetches a URL, launches a pager or dumps the environment. Invalid config retains actionable usage/error reporting.- Art exposes
ImageColorMode::{TrueColor,Ansi256},Dither::{None,FloydSteinberg}, andImageArt::color_mode/ImageArt::ditherbuilders, preserving the publicImageOptionsstruct shape. CLI flags are--image-color truecolor|ansi256and--image-dither none|floyd-steinberg.
Image-quality boundaries¶
ANSI256 and optional Floyd–Steinberg diffusion apply to ASCII/half-block still images after fitting, compositing and sampling, before glyph selection. Dithering requires ANSI256. Unsupported combinations are errors; GIF, diff, Braille and Sixel are outside this bounded #125 slice. The default remains truecolor with no dithering.
Quantisation chooses fixed palette entries 16–255 using squared encoded-RGB distance, breaking ties toward the lowest index. The first 16 colours are excluded because terminals may redefine them. Diffusion scans left-to-right, top-to-bottom and drops error at boundaries. This deterministic policy does not claim perceptual colour matching or terminal colour calibration.
The CLI additions compose existing public APIs; reusable image preprocessing lives in art. No core renderer behavior, theme-stack API, graphics protocol or new extension API is introduced. See workflow recipes, CLI guide and porting boundaries.
Validation and release handoff¶
- [x] Accepted scope, copyable recipes, public API and ownership boundaries documented
- [x] Prior CLI 0.0.8/art 0.0.6 publication evidence recorded
Local evidence is recorded in .github/evidence/0.0.9/verification.json and
demos.json. The combined suite passes 597 tests; the lean CLI passes 151.
Independent review findings were fixed and re-reviewed. The PR and deployment
checks remain separate gates:
- [x] Formatting, Clippy, full workspace and lean CLI tests
- [x] Rust 1.90, golden parity and focused CLI/PTY regressions
- [x] Theme exports/worker propagation and cancellation cleanup verification
- [x] Deterministic image preprocessing and default-output parity
- [x] Fresh optimized-build recordings, provenance and strict docs build
- [x] Registry identity, staged package verification and tag-selection checks
- [x] Independent combined review; both findings fixed and confirmed
- [ ] Main-target PR and required CI checks
- [ ] Merge/main ancestry and documentation deployment verification
Publication requires a separate authorized handoff after preparation gates pass.
Release rs-rich-v0.0.5 first, then rs-rich-ext-v0.0.7 and rs-rich-art-v0.0.7,
then rs-rich-cli-v0.0.9, verifying an exact-version registry consumer before each
dependent tag. Staged sibling package success is not registry readiness. Do not
create a coordinated workspace tag or move existing published tags.
Track the accepted scope in the 0.0.9 plan.