# Changelog — klieo-spec

All notable changes to this crate are documented here.
Format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
This crate adheres to [Semantic Versioning](https://semver.org/).

## [Unreleased]

### Added

- `SpecError::Downstream { message, source }` variant — canonical wrap
  for failures produced by downstream `Decomposer`/`Critic`/`Refiner`
  impls. Carries an optional
  `Box<dyn std::error::Error + Send + Sync + 'static>` as `#[source]`
  so cause-chain traversal via `e.source()` is preserved. Use this for
  new code.
- `#[non_exhaustive]` on `SpecError` so future variant additions are
  SemVer-safe.

### Deprecated

- `SpecError::Impl(String)` — renamed to `SpecError::Downstream`. The
  old variant still compiles with a deprecation warning. Removal
  planned for 0.8.0.
