# stegcrypt — Changelog

## v1.1.0 — 2026-06-25

Audio carrier (`#11` in the 2026-06-23 productivity queue). The WAV
embedding path was already wired into the carrier trait at v1.0.x —
v1.1.0 formalises it as a first-class carrier with end-to-end tests,
a CLI surface that documents the audio path, and a tagline /
description that names it.

### What's new

- **WAV LSB carrier (16-bit PCM)** — embed an AEAD-encrypted secret
  into the low byte of every 16-bit PCM sample. Stereo / mono /
  44.1 kHz / 48 kHz all preserved. AES-256-GCM and ChaCha20-Poly1305
  both supported on the WAV path.
- Five new integration tests: AES round-trip, ChaCha round-trip,
  capacity report, inspect report, and rejection of unsupported bit
  depths (24-bit / 32-bit float exit 3 with a clear message — LSB
  embedding in non-16-bit audio is audibly noticeable, so we refuse
  rather than silently degrade).
- Updated `--help` description + tool-meta tagline + Cargo.toml
  description to surface the audio carrier.

### What's NOT new

- The `embed` / `extract` / `capacity` / `inspect` / `detect` flags
  are unchanged. Pass `--carrier path/to/audio.wav` (or `--in`) and
  the carrier kind is detected from the extension. No new
  subcommands.
- AEAD ciphers, threshold-split format, header layout, password
  flow — all identical to v1.0.x. Stego artefacts written with
  v1.0.x extract cleanly with v1.1, and vice versa.

### Fixed

- Two stale integration tests that still expected exit 2 for runtime
  failures (`wrong_password_exits_2`, `threshold_fails_with_too_few_shares`).
  Updated to match the v1.0.2 exit-code contract (3 = runtime).

## v1.0.2 — 2026-06-22

- Add mandatory tagline footer to `--help` (`[ stegcrypt ] ─ an independent project by johlem.net`) per SUITE_STANDARDS.md §2.
- Standardise exit codes per SUITE_STANDARDS.md §1 — clap usage errors and missing-subcommand now exit 2 (was 3); runtime / dispatch failures now exit 3 (was 2). The two codes were inverted relative to the rest of the suite.
