Repository navigation
First patch release on the public repository.
Fixed
- Interrupted runs no longer leave the target module mutated (#1).
sm map/plan/verifymutate the target in place and previously restored it only on normal completion or on the next run's self-heal. A SIGTERM (harness timeout, killed CI step) could leave the module rewritten on disk unnoticed. The engine now restores the original in-process, before exit, via window-scoped SIGINT/SIGTERM handlers (chaining to the prior disposition — host processes keep their signal handling) plus an atexit hook. The.sm-recoverysidecar remains the SIGKILL backstop. Reported by a downstream consumer — thank you. pip install 'shadow-mirror[mcp]'works again (#3). mcp 2.0.0 removed the vendored FastMCP thesm-mcpserver is written against; the extra is now bounded tomcp>=1.0,<2. Migration to the 2.x API is tracked in #4.
CI / project
- Fork PRs no longer fail on the unreadable C4-denylist secret — the gate skips there and stays loud-fail on trusted builds.
- ruff pinned (
0.16.0) with the lint bar declared explicitly inpyproject.toml, so linter-default drift can't move it. - Community-health files added (#2): code of conduct, contributing guide, security policy (with private vulnerability reporting enabled), issue forms, PR template.
Full changelog: v0.2.0...v0.2.1