Releases: r3bl-org/r3bl-open-core
v0.0.5-build-infra
Cargo subcommands that automate the tedious parts of Rust development and speed up the slow parts - documentation formatting, toolchain management, and build optimization. Install with cargo install r3bl-build-infra.
- 📝 cargo-rustdoc-fmt - Format markdown tables and convert inline links to reference-style in rustdoc comments.
v0.0.5 (2026-02-17)
Handle deleted files gracefully in cargo rustdoc-fmt.
Fixed:
- Files reported by
git diffthat no longer exist on disk (e.g., deleted or renamed files) caused errors. Now filters them out before processing and reports skipped files to the user.
Coming Soon 🚀
cargo-monitor- Unified development workflow automation (Rust port ofcheck.fishandrust-toolchain*.fish)
Full Changelog
v0.0.4-build-infra
Cargo subcommands that automate the tedious parts of Rust development and speed up the slow parts - documentation formatting, toolchain management, and build optimization. Install with cargo install r3bl-build-infra.
- 📝 cargo-rustdoc-fmt - Format markdown tables and convert inline links to reference-style in rustdoc comments.
v0.0.4 (2026-02-16)
Multi-line reference-style link definition support for cargo rustdoc-fmt.
Fixed:
- Multi-line reference link definitions (where
[name]:is on one line and the URL on the next) were broken: the label line was extracted as a reference but the URL line was orphaned as content. Added look-ahead parsing inseparate_references()to recognize multi-line refs as a unit and preserve their two-line format (which rustfmt creates to respect line length limits).
Added:
- 4 unit tests for multi-line reference handling
- Updated
sample_rrt_mod.rsandsample_html_comments.rsreal-world test fixtures for multi-line ref preservation
Coming Soon 🚀
cargo-monitor- Unified development workflow automation (Rust port ofcheck.fishandrust-toolchain*.fish)
Full Changelog
r3bl-build-infra v0.0.2
Cargo subcommands that automate the tedious parts of Rust development and speed up the slow parts—documentation formatting, toolchain management, and build optimization. Install with cargo install r3bl-build-infra.
- 📝 cargo rustdoc-fmt - Format markdown tables and convert inline links to reference-style in rustdoc comments. Workspace-aware, git-integrated, CI-ready.
v0.0.2 (2026-01-27)
Bug fixes for cargo rustdoc-fmt to preserve ASCII diagrams and protected content.
Fixed:
- Content protector placeholder corruption: Changed from
___PROTECTED_CONTENT___to Unicode arrows (◄◄◄PROTECTED_CONTENT►) to preventpulldown_cmarkfrom interpreting triple underscores as bold+italic formatting - Link converter ASCII diagram corruption: Rewrote to use regex replacement instead of
pulldown_cmarkparsing, which was destroying ASCII diagrams, numbered lists, indentation, and other formatting
Added:
- Real-world test case using the Resilient Reactor Thread module (ASCII diagrams that were getting clobbered + extensive intra-doc links)
Coming Soon 🚀
- cargo-monitor - Unified development workflow automation (Rust port of
check.fishandrust-toolchain*.fish):- Watch mode with continuous compilation, testing, and doc building on file changes
- tmpfs target directory for ~2-3x faster builds in RAM
- Automated nightly toolchain validation and corruption recovery
- ICE (Internal Compiler Error) detection and auto-recovery
- Two-stage doc builds (quick blocking + full background)
- Cross-platform support (Linux/macOS)
- See the cargo-monitor implementation plan for details
Full Changelog
r3bl_tui v0.7.8
A fully async modern TUI framework for Rust (nothing blocks the main thread). Features include flexbox-like layouts, CSS-like styling, reactive state management, async readline (non-blocking alternative to POSIX readline), VT100 input/output parsers, and a double-buffered compositor optimized for SSH (paints only diffs), and much more. Works on Linux, macOS, and Windows. Add to your project with cargo add r3bl_tui.
v0.7.8 (2026-01-23)
Fixed:
-
VSCode terminal color rendering: Changed ANSI escape sequence format from colon-separated (
ESC[38:2:r:g:bm) to semicolon-separated (ESC[38;2;r;g;bm) for universal terminal compatibility. The colon format (ITU-T T.416) is technically correct but not supported by VSCode's xterm.js terminal emulator and many other terminals. The semicolon format (xterm de-facto standard) works everywhere. Our VT100 parser still accepts both formats for maximum compatibility when parsing output from other applications. -
Glyph font compatibility: Replaced exotic Unicode glyphs with more universally-supported characters that render correctly across more terminal fonts. Affected glyphs: check marks, fail indicator, pointer, game character, and terminal icon.
Full Changelog
r3bl_tui v0.7.7
A fully async modern TUI framework for Rust (nothing blocks the main thread). Features include flexbox-like layouts, CSS-like styling, reactive state management, async readline (non-blocking alternative to POSIX readline), VT100 input/output parsers, and a double-buffered compositor optimized for SSH (paints only diffs), and much more. Works on Linux, macOS, and Windows. Add to your project with cargo add r3bl_tui.
v0.7.7 (2026-01-23)
This release introduces major architectural additions including the DirectToAnsi backend for Linux-native terminal I/O, the Resilient Reactor Thread (RRT) pattern for blocking I/O handling, comprehensive VT100 parser upgrades enabling in-memory terminal emulation, and PTY-based integration testing infrastructure. It also includes a PTY multiplexer with terminal multiplexing functionality similar to tmux.
Major Infrastructure Additions:
-
DirectToAnsi Backend (Linux-Native): A custom terminal I/O implementation bypassing Crossterm on Linux for lower latency and reduced overhead. See the DirectToAnsiInputDevice docs for architecture details.
- Direct ANSI escape sequence handling with full VT100 compliance
- Input device using
mio(epoll) for async I/O multiplexing - Output device with
PixelCharRendererand smart attribute diffing (~30% output reduction) - Zero-latency ESC key detection and full keyboard modifier support
- Mouse event handling with bracketed paste support
- SIGWINCH signal integration for terminal resize
- Crossterm still used on macOS/Windows where platform APIs differ
-
Resilient Reactor Thread (RRT) Pattern: A reusable pattern for bridging blocking I/O with async Rust—spawn a dedicated thread, broadcast events to async consumers, and handle graceful shutdown automatically. The module documentation provides a comprehensive architecture overview.
ThreadSafeGlobalState<W, E>- Thread-safe singleton pattern for RRT instancesThreadLiveness- Running state + generation tracking for safe thread reuseSubscriberGuard<W, E>- Manages subscriber lifecycle with waker access- Broadcasts events to async consumers via broadcast channels
- Handles graceful shutdown when all consumers disconnect
-
VT100/ANSI Output Parser & In-Memory Terminal Emulation: Complete VT100 ANSI implementation enabling snapshot testing. See the ansi module for the parser and
OffscreenBufferfor the in-memory terminal.- VTE parser integration with custom
Performerimplementation - Full support for cursor movement, erase operations, scroll regions, SGR (colors/styles)
- Enables snapshot testing: compare expected vs actual terminal state without a real terminal
- VTE parser integration with custom
-
PTY Testing Infrastructure: Real-world testing in pseudo-terminals instead of mocks. See the
generate_pty_test!macro documentation for usage and the Controller/Controlled pattern.- Controller/Controlled pattern for test isolation
generate_pty_test!macro for single-feature testsspawn_controlled_in_ptyfor multi-backend comparison tests- Backend compatibility tests verifying DirectToAnsi vs Crossterm produce identical results
- Test coverage: bracketed paste, keyboard modifiers, mouse events, SIGWINCH, UTF-8
-
Enhanced readline_async API: Expanded keyboard support makes building CLI apps easier—Tab completion, arrow key navigation, and function keys now work out of the box. See the readline_async module for the full API.
- Tab and BackTab (Shift+Tab) key support
- Navigation keys support (arrow keys, Home, End, PageUp, PageDown)
- FnKey support (F1-F12)
- Type-safe editor state methods via
ReadlineAsyncContext - Extended
ReadlineEventenum with new variants
-
PTY Multiplexer: Terminal multiplexing functionality similar to tmux. See the pty_mux module for the complete API.
- Enhanced support for truecolor and TUI apps that frequently re-render their UI
pty_mux_example.rsdemonstrating multiplexer capabilities with multiple TUI processes- Support for spawning and switching between multiple TUI processes using Ctrl+1 through Ctrl+9
- Live status bar showing process states (🟢 running, 🔴 stopped) and keyboard shortcuts
- OSC sequence integration for dynamic terminal title updates
- Fake resize technique for proper TUI app repainting when switching processes
- Support for configurable TUI processes: less, htop, claude, gitui
pty_simple_example.rsfor basic PTY functionality demonstrationpty_rw_echo_example.rsfor PTY echo testing and validationansi/terminal_output.rsmodule with high-level terminal operations- PTY integration tests that spawn real TUI apps (eg: htop) to validate VT100 parsing
Internal Improvements:
- Changed:
- Refactored mio_poller module for improved clarity and thread reuse semantics
- Reduced DirectToAnsi input device complexity
- Thread liveness tracking integrated with mio_poller for restart capability
- Enhanced PTY read-write session with comprehensive cursor mode support
- Improved PTY input/output event handling with extensive terminal input event mapping
- Enhanced color conversion in
crossterm_color_converter.rs - Improved styling in readline components (
apply_style_macro.rs) - Enhanced spinner rendering with better visual feedback (
spinner_render.rs) - Improved crossterm backend rendering operations (
render_op_impl.rs) - Integrated with r3bl_tui's TuiColor system for consistent styling
- Cleaned up read-only session to remove read-write specific code
Development Tooling
This section documents the build infrastructure we use internally to develop r3bl_tui. While these fish scripts are specific to this repo, we're converting them into Rust binaries over time and shipping them as r3bl-build-infra—starting with cargo rustdoc-fmt, with more tools coming soon.
Rust Development Power Tools (2026-01-23)
This release focuses on developer productivity: faster builds with the nightly parallel compiler, smarter toolchain management, and a streamlined bootstrap experience. We've also removed legacy dependencies in favor of Claude Code's built-in capabilities.
Also see r3bl-build-infra—it provides cargo rustdoc-fmt for formatting rustdoc comments, which is used extensively by Claude Code skills in this repo to maintain consistent documentation style.
Changed:
- Build system migration: Migrated from nushell to fish shell for all build scripts -
run.fishreplacesrun.nuthroughout the project for improved maintainability and readability - Copyright headers: Shrunk copyright headers in all files for better readability
- Claude Code configuration: Updated Claude Code configuration files and VS Code settings for improved development experience
- Updated project bootstrap experience:
fzfandfishare now required for thebootstrap.shscript to work correctly, ensuring a smoother setup process - Documentation: Updated README.md with comprehensive Claude Code integration section documenting
.claude/directory structure, available skills, and slash commands - Documentation: Fixed script name inconsistencies (
rust-toolchain-validate.fishnotrust-toolchain-install-validate.fish) - Documentation: Added tmux-r3bl-dev.fish development dashboard documentation
- Documentation: Clarified VSCode extensions installation workflow
Added:
-
check.fishdevelopment workflow script: Comprehensive build automation with significant performance optimizations:- Nightly parallel frontend compiler (
-Z threads=N) for ~30-40% faster builds - Shared tmpfs target (
$CARGO_TARGET_DIR=/tmp/roc/target/check) — all tools (Claude, VSCode, check.fish) share one RAM-based cache, so builds are always warm - Watch modes (
--watch,--watch-doc,--watch-tests) keep the cache perpetually warm—sophisticated debounce waits for a 2-second quiet period, so rapid file changes (from typing, Claude Code, linters, etc.) don't trigger frenzied rebuilds - Two-stage doc builds: Quick blocking (~3-5s) + full background (~90s) with staging directories that prevent the docs folder from going empty during slow rustdoc rebuilds
- ICE detection and auto-recovery for Internal Compiler Errors
- Single-instance enforcement kills orphaned watchers automatically
- Nightly parallel frontend compiler (
-
Smart rust-toolchain management (
rust-toolchain-update.fish,rust-toolchain-sync-to-toml.fish): Nightly Rust is powerful but unstable—these scripts automatically find stable nightlies, validate them against your code, and remove the hassle of toolchain management entirely.- Automated stable nightly discovery: Tests nightlies from ~1 month ago for ICE errors before committing—you get nightly features without nightly instability
- Aggressive cleanup: Removes old nightlies while preserving known-good toolchains
- Corruption recovery: Detects "Missing manifest" errors and force-removes broken toolchains
- Desktop notifications for success/failure via
notify-send - Comprehensive logging to
~/Downloads/rust-toolchain-*.log
-
Coming soon: [`c...
r3bl-cmdr v0.0.26
r3bl-cmdr provides two fully async TUI applications (built on r3bl_tui) for developers. Both are currently available as early access preview 🐣. Install with cargo install r3bl-cmdr.
-
😺 giti - An interactive git CLI app designed to give you more confidence and a better experience when working with git. Fully async—never blocks the main thread. Features visual branch selection and streamlined commit workflows.
-
🦜 edi - A TUI Markdown editor that lets you edit Markdown files in your terminal in style. Fully async—never blocks the main thread. Features gradient colors, smart terminal capability detection (gracefully degrades), smart list formatting, full emoji support, language-specific syntax highlighting inside fenced code blocks, SSH optimized (only repaints what's changed), and a zero-copy gap buffer for responsive editing even in large files.
v0.0.26 (2026-01-23)
Fixed:
- VSCode terminal color rendering: Colors now display correctly in VSCode's integrated terminal (via updated r3bl_tui v0.7.8 dependency). Previously, colors appeared washed out or missing because VSCode's xterm.js terminal emulator doesn't support the colon-separated ANSI escape sequence format.
Full Changelog
r3bl-cmdr v0.0.25
r3bl-cmdr provides two fully async TUI applications (built on r3bl_tui) for developers. Both are currently available as early access preview 🐣. Install with cargo install r3bl-cmdr.
-
😺 giti - An interactive git CLI app designed to give you more confidence and a better experience when working with git. Fully async—never blocks the main thread. Features visual branch selection and streamlined commit workflows.
-
🦜 edi - A TUI Markdown editor that lets you edit Markdown files in your terminal in style. Fully async—never blocks the main thread. Features gradient colors, smart terminal capability detection (gracefully degrades), smart list formatting, full emoji support, language-specific syntax highlighting inside fenced code blocks, SSH optimized (only repaints what's changed), and a zero-copy gap buffer for responsive editing even in large files.
v0.0.25 (2026-01-23)
Streamlined the crate by removing the experimental ch binary to focus on the core tools: giti (interactive git) and edi (markdown editor).
Removed:
chbinary and all associated code (Claude Code prompt history recall tool)chmodule from library exports
Changed:
- Updated documentation to reflect only
gitiandedias the main binaries
Full Changelog
r3bl-build-infra v0.0.1
Cargo subcommands that automate the tedious parts of Rust development and speed up the slow parts—documentation formatting, toolchain management, and build optimization. Install with cargo install r3bl-build-infra.
- 📝 cargo rustdoc-fmt - Format markdown tables and convert inline links to reference-style in rustdoc comments. Workspace-aware, git-integrated, CI-ready.
v0.0.1 (2026-01-23)
Initial release with cargo rustdoc-fmt—a cargo subcommand that formats markdown tables and converts inline links to reference-style in rustdoc comments.
Added:
cargo-rustdoc-fmtbinary - Cargo subcommand for formatting rustdoc comments- Markdown table alignment in
///and//!doc comments - Inline-to-reference link conversion for cleaner documentation
- Workspace-aware processing (specific files, directories, or entire workspace)
- Git integration (auto-detect changed files, staged/unstaged, from latest commit)
- Check mode for CI verification (
--checkflag) - Selective formatting (tables only, links only, or both)
- Markdown table alignment in
- Modular library API for programmatic use
Coming Soon 🚀
- cargo-monitor - Unified development workflow automation (Rust port of
check.fishandrust-toolchain*.fish):- Watch mode with continuous compilation, testing, and doc building on file changes
- tmpfs target directory for ~2-3x faster builds in RAM
- Automated nightly toolchain validation and corruption recovery
- ICE (Internal Compiler Error) detection and auto-recovery
- Two-stage doc builds (quick blocking + full background)
- Cross-platform support (Linux/macOS)
- See the cargo-monitor implementation plan for details
Full Changelog
r3bl_tui v0.7.6 (2025-08-16)
Refactor and reorganize the pty module to improve ergonomics and usability.
- Changed:
- Refactor the
ptymodule to be more ergonomic. - Move the
osc_seq.rsinto a top leveloscmodule.
- Refactor the
More info: https://github.com/r3bl-org/r3bl-open-core/blob/main/CHANGELOG.md#v076-2025-08-16
r3bl_tui v0.7.5 (2025-08-15)
Fixed Windows compatibility issues with PTY exit status handling.
- Fixed:
- Windows compatibility for PTY exit status handling by properly using Windows-specific exit code encoding instead of Unix signal-based encoding
More info: https://github.com/r3bl-org/r3bl-open-core/blob/main/CHANGELOG.md#v075-2025-08-15