v0.10.16
Bug-fix release from a full-codebase audit (2 critical, 6 high, plus medium/low). No new features.
Highlights
- Rollback no longer reports a failed reversal as applied (and no longer double-records it).
- Credentials file is never wiped on a corrupt read (backup + refuse instead of resetting to {}).
- Meta access-token auto-refresh now actually runs (was silently expiring at ~60 days).
- Google Ads campaign listing no longer crashes on budgeted campaigns; Meta insights are no longer truncated to the first page.
- Anomaly detection uses a non-overlapping prior window; the native MCP server no longer leaks HTTP connections.
- SSRF-guarded outbound fetches, durable STATE.json writes, and assorted robustness fixes.
See CHANGELOG.md for the full list. PRs #354, #355.