# 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.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] — v0.1.0 (alpha) The stdlib-only core, built test-first (TDD) per `docs/PLAN.md`. ### Added - `report` — shared `Finding` / `Report` / `Severity` / `Source` types. - `sanitize` — carrier stripping (zero-width, BIDI, Unicode-tag, HTML comment, `data:`); byte-identical on clean input. - `entropy` — Shannon / base64-like / hex-blob detection; base64 decode-and-rescan. - `lexicon` — JSON pattern data + loader; raw/normalized/homoglyph/rot13 variants; ReDoS-bounded, size-capped. - `fence` — randomized per-call spotlight delimiter; attacker marker-strip. - `neutralize` — opt-in defang of active-content output (byte-identical when clean). - `output` — compose lexicon + entropy + decode-rescan over emitted text; secret egress patterns (OWASP LLM02); report-only, never mutates. - `disposition` — WARN | QUARANTINE_REVIEW | FAIL_SECURE under a source-trust policy; compound-signal escalation; fail-**closed** when the scanner errors. - `contract` — write-time asserters that raise: `assert_tool_less`, `assert_credential_allowlist`, `scoped_env`. - `grounding` — the `SourceGroundingCheck` seam for semantic poisoning (interface only; `[judge]` implementation plugs in behind an extra). - Top-level wiring — the `prepare_input` / `screen_output` §6 bookends plus the full public surface; end-to-end showcase and adversarial + false-positive corpora.