v0.22.0
What's New in v0.22.0
🩺 Diagnostic file logging
New opt-in log_to_file setting writes a rotating log to user_files/ankimcp.log (~1 MB × 3 backups) with secrets — the http_api_key, OAuth tokens, and any Bearer token — redacted before anything reaches disk. The settings dialog gains Open log folder and Copy diagnostics buttons. When the add-on can't start (for example a blocked pydantic_core download), you can now capture and share the real cause instead of a cryptic error. Off by default.
🔁 More resilient first-run dependency download
The runtime pydantic_core download is hardened: it retries transient native-library file locks, uses an atomic cache swap so a flaky re-download never destroys a working install, and reports the real failure reason (network, DNS, SSL, …) instead of a generic "not available".
🔎 Clearer dependency-conflict diagnostics
When another add-on has already loaded a shared library, the startup warning now reports the actual version and file path of the conflicting copy — making cross-add-on issues far easier to pin down.
Under the hood
- Packaging: exclude the runtime
_cache/directory from the.ankiaddon, so a local build can never ship a stray platform-specific native binary. - CI: per-tag concurrency guard on the release workflow.
Validated on macOS (arm64), Windows 11 (arm64), Ubuntu/snap (aarch64), and NixOS.
Full Changelog: v0.21.2...v0.22.0