diff --git a/CHANGELOG.md b/CHANGELOG.md index ec24001..4eb2829 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,39 @@ released together. No changelog was kept before 0.2.0; for 0.1.x see the git history. +## [0.2.1] - 2026-09-09 + +A maintenance release. No format change: `manifest_version` stays `0.2.0` and +every 0.2.0 manifest reads the same way it did. + +### Added + +- **CI.** `cargo test --workspace --locked` now runs on Linux and Windows for + every pull request and every push to `main`, with a `rustfmt` + `clippy` job + beside it that reports but does not yet gate. `--locked` on purpose: the + `simplicityhl` git dependency is pinned to an exact rev in the lock file, and + a run that silently updated it would not be testing what a release builds. +- **Tests for the change/fee split.** The rule that an L-BTC surplus with no + declared change output and no `allow_change` is an error — the rule that keeps + an oversized input from being handed to a miner — shipped in 0.2.0 with no + test of its own. It now has eight, covering the strict default, the + one-satoshi case, both paths where change is permitted, and the two internal + passes that deliberately do not enforce it. Nothing about the rule changed; + what changed is that it can no longer be removed in silence. +- **`.gitattributes`**, so a Windows checkout keeps LF endings on the checked-in + JSON, Rust and YAML. The schema test compares the file byte-for-byte against + the string the Rust model emits, which is always LF, and a CRLF checkout + failed on that alone. The test also normalizes line endings before comparing, + so it no longer depends on the checkout's configuration. + +### Changed + +- The L-BTC change/fee decision moved out of `build_inner` into + `resolve_lbtc_balance`, a pure function. Behaviour and error text are + unchanged. Reaching the rule through `build_pset` needs a funded wallet, and + this is the one calculation in the builder whose silent wrong answer is + measured in the user's satoshis, so it is worth being able to test on its own. + ## [0.2.0] - 2026-08-20 **Breaking:** a manifest that sets `utxo_type.confidential` no longer parses. diff --git a/Cargo.lock b/Cargo.lock index 83d1447..912c54a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3371,7 +3371,7 @@ dependencies = [ [[package]] name = "tx-manifest-wallet" -version = "0.2.0" +version = "0.2.2" dependencies = [ "anyhow", "clap", diff --git a/txmanifest_wallet/Cargo.toml b/txmanifest_wallet/Cargo.toml index d02b392..e13bb54 100644 --- a/txmanifest_wallet/Cargo.toml +++ b/txmanifest_wallet/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tx-manifest-wallet" -version = "0.2.0" +version = "0.2.2" edition = "2021" license = "MIT OR Apache-2.0" description = "Wallet CLI for executing transaction manifests on Liquid/Elements with SimplicityHL covenants."