⚠️ Breaking — read before upgrading
Mutating commands now fail closed. kyzn quick, kyzn improve, kyzn fix / analyze --fix, and kyzn doctor --install refuse to run unless that invocation passes --allow-unsafe-host-execution. Existing scripts and cron entries will stop working until the flag is added. No config setting or environment variable can grant it — the acknowledgement is per invocation, by design.
Why: KyZN has no container/VM isolation — a mutating run executes repository-controlled build/test commands and AI-generated changes with your user permissions. See SECURITY.md for the threat model.
Scheduling and autopilot are disabled. Creating a recurring mutating schedule is refused (kyzn schedule off still removes an existing one); autopilot no longer auto-merges — every generated PR waits for human review.
kyzn analyze and kyzn measure still run without the flag and change nothing; language-specific measurers skip with a warning.
Also in this release
Rename-aware test-deletion guard, bounded Git path batching, portable timeout() for macOS, NUL-safe Git path handling in safety checks, generated repository facts verified in CI, self-tests on macOS + Linux.
Validation
812 tests passing (full selftest), ShellCheck clean, toolchain matrix + macOS CI green.
Shipped one day after v2.0.0 (the verification gate) — one arc, split by review timing.