# Changelog — vcs-cli-support
All notable changes to the `vcs-cli-support` crate are documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this crate adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
This crate is versioned and published independently of the other workspace
crates; tag releases as `vcs-cli-support-v<version>`.
## [Unreleased]
### Added
-
### Changed
-
### Fixed
-
## [0.1.0] - 2026-06-08
### Added
- Initial release: the `processkit`-coupled plumbing the CLI wrappers share —
`reject_flag_like` (the argv injection guard, parameterized by program name),
the `FETCH_ATTEMPTS`/`FETCH_BACKOFF` fetch-retry policy, and the error
classifiers `is_merge_conflict` / `is_nothing_to_commit` /
`is_transient_fetch_error`. Extracted from the copies previously duplicated
across `vcs-git` and `vcs-jj` so the transient-failure marker list and the
classifiers can no longer drift between backends.
### Changed
- Bumped `processkit` to **0.8** — `Error` (taken by the classifiers) stays
`#[non_exhaustive]`; an unfamiliar variant classifies as "no" on every
classifier (covered by a test). Breaking for consumers matching
`processkit::Error` exhaustively.
- New off-by-default **`cancellation`** feature (forwards to
`processkit/cancellation`): the classifiers only match `Exit`/`Timeout`, so
`Error::Cancelled` already falls through every one to "no"; the feature only lets
a test construct the variant to pin that (not transient, not a conflict, not
nothing-to-commit) as a first-class assertion.
- `reject_flag_like` also refuses whitespace-only values (as meaning-changing as
empty ones), not just empty and leading-`-`.
### Fixed
-
[Unreleased]: https://github.com/ZelAnton/vcs-toolkit-rs/compare/vcs-cli-support-v0.1.0...HEAD
[0.1.0]: https://github.com/ZelAnton/vcs-toolkit-rs/releases/tag/vcs-cli-support-v0.1.0