# Changelog
All notable changes to ripgrab are documented here. The format is based on
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Added
- `--color=auto|always|never` now accepts `auto` explicitly; previously only
the absence of the flag meant "auto-detect".
## [0.5.2] - 2025-07-12
### Added
- Honor the `NO_COLOR` environment variable in the renderer; passing
`--color=always` still overrides it.
### Fixed
- Fix a small leak of a `tokio::fs::File` handle on rotation when the new
file could not be opened immediately.
## [0.5.1] - 2025-06-28
### Changed
- Polling fallback in `tail` now runs at 200 ms (down from 500 ms). The
extra wakeups are negligible on modern kernels and the latency reduction
is visible when watching CI output.
## [0.5.0] - 2025-06-09
### Changed
- **Breaking**: `FilterSet::compile` now requires named capture groups in
`--extract` patterns. Passing a bare `\d+` returns an error instead of
silently producing unnamed fields. Migration: wrap the group in
`(?P<name>...)`.
- The regex set behind `--match` is compiled once per session and reused
across lines, avoiding per-line allocation overhead.
## [0.4.3] - 2025-05-14
### Added
- `--since <duration>` bounds the initial preload to records newer than the
given relative duration (e.g. `--since 10m`). Uses `humantime` parsing.
## [0.4.2] - 2025-04-30
### Changed
- Long extracted field values are truncated to the terminal width with an
ellipsis. Previously these would wrap, breaking the tabular alignment.
## [0.4.1] - 2025-03-22
### Fixed
- Rotation detection correctly handles the case where the watched file is
truncated in place (`length < previous_length`) in addition to the
inode-change case.
## [0.4.0] - 2025-02-08
### Added
- Structured extraction mode. Pass `--extract '<regex>'` with at least one
named capture group to render matching lines as ordered key/value pairs.
## [0.3.2] - 2024-12-15
### Changed
- Bumped `regex` to 1.10 and `tokio` to 1.38. MSRV is now pinned to Rust
1.76; earlier toolchains will see a clear error at build time.
## [0.3.1] - 2024-09-04
### Added
- Integration tests using `assert_cmd` against a small fixture directory.
## [0.3.0] - 2024-05-19
### Added
- First public release on crates.io. Library API (`FilterSet`, `Renderer`,
`TailHandle`) is considered stable within 0.x; CLI flags are not yet.
[Unreleased]: https://mercemay.top/src/ripgrab/
[0.5.2]: https://mercemay.top/src/ripgrab/
[0.5.1]: https://mercemay.top/src/ripgrab/
[0.5.0]: https://mercemay.top/src/ripgrab/
[0.4.3]: https://mercemay.top/src/ripgrab/
[0.4.2]: https://mercemay.top/src/ripgrab/
[0.4.1]: https://mercemay.top/src/ripgrab/
[0.4.0]: https://mercemay.top/src/ripgrab/
[0.3.2]: https://mercemay.top/src/ripgrab/
[0.3.1]: https://mercemay.top/src/ripgrab/
[0.3.0]: https://mercemay.top/src/ripgrab/