Release history

Changelog

A build-generated view of the repository changelog. Subscribe via Atom feed.

# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Fixed

- **allowlist-token**: `pause` now blocks `add_to_allowlist`,
  `add_to_allowlist_delegated`, and `remove_from_allowlist`, matching the
  doc comment "Pause all mutating operations". Previously only `transfer`
  checked the pause flag, so a compromised key could keep mutating the
  allowlist while the contract appeared paused. Admin rotation
  (`propose_admin` / `accept_admin` / `transfer_admin`) and `unpause`
  remain available while paused so an operator can always recover
  (fixes #583, matching the behaviour of `denylist-gate`).

### Added

- **circuit-breaker**: Guardian set for faster incident response. Admin-managed
  `add_guardian` / `remove_guardian` / `is_guardian`; guardians can call
  `freeze`, while `unfreeze` remains admin-only. `Frozen` event topic renamed
  from `admin` to `caller`.
- **compliance-aggregator**: Admin-gated `upgrade(admin, new_wasm_hash)`
  entrypoint with an `UpgradePerformed` event, a migration test that
  deploys, writes state, upgrades, and verifies state is intact and callable,
  and module-level upgrade documentation (#195)
- **compliance-aggregator**: `check_address` budget-regression benchmark
  with a `[compliance-aggregator.check_address]` entry in
  `budget-baselines.toml` (#196)
- **multisig-admin**: Expanded module-level docs covering purpose, callers,
  and composition with the other contracts in the repo (#197)
- **multisig-admin**: Instance TTL is extended on every write path
  (`INSTANCE_TTL_THRESHOLD` / `INSTANCE_TTL_EXTEND_TO`), with tests that
  advance the ledger past the original TTL (#198)
- **multisig-admin**: `upgrade(new_wasm_hash)` entrypoint, gated by the M-of-N
  threshold, with a migration test confirming state survives the upgrade
- **multisig-admin**: `__check_auth` resource-fee benchmark and
  `[multisig-admin.__check_auth]` baseline in `budget-baselines.toml`
- **policy-engine**: Instance-storage TTL extension on every write path
  (threshold ~7 days, extend-to ~90 days)

### Changed

- **policy-engine**: Expanded module-level docs covering purpose, callers,
  composition with the other contracts, and the TTL policy

## [0.1.0] — 2026-08-27

### Added

- **multisig-admin**: Proposal workflow with ledger-sequence-based expiry
  - `propose()` — Create a new governance proposal with an expiry ledger
  - `approve()` — Approve a proposal (restricted to registered signers)
  - `execute()` — Execute a proposal once threshold is met
  - `get_proposal()` — Query proposal details and current approvals
  - `ExpiredProposal` error variant — Rejects approval/execution after expiry

- **multisig-audit-trail**: New example demonstrating governance audit trail
  - Shows how to integrate `multisig-admin` proposals with `audit-log`
  - Pattern for recording proposal creation, approvals, execution, and expiry
  - Test suite covering successful proposal flow, expiry handling, and approval history

- **CI**: Changelog version sync check
  - `scripts/check-changelog.sh` enforces CHANGELOG.md updates alongside version bumps
  - New GitHub Actions job `changelog-version-sync` validates in CI

- **Documentation**: QUICKSTART.md
  - Step-by-step guide from clone → build → test → example → testnet → web playground
  - Linked prominently from README.md
  - Includes troubleshooting and key file reference

### Changed

- README.md: Added prominent link to QUICKSTART.md for new contributors
- CONTRIBUTING.md: Documented CHANGELOG.md requirement for version bumps