Repository navigation
Release v2.0.0
v2.0.0 — AppleScript-First Writes & ThingsId
Breaking changes: ThingsId replaces Uuid throughout the public API;
MutationBackend trait signatures updated. AppleScriptBackend is now the default on macOS; direct SQLite writes require --unsafe-direct-db. SqlxBackend deprecated. Full AppleScript coverage for tasks, projects, areas, and tags (Phases C–E). Public API hardened with explicit pub use re-exports, #[non_exhaustive], and pub(crate) audit.
What's Changed
- feat(mutations): introduce MutationBackend trait and SqlxBackend by @GarthDB in #131
- feat(mutations): promote bulk_create_tasks to MutationBackend trait by @GarthDB in #132
- feat(mutations): AppleScriptBackend Phase A — escape, runner, error variant by @GarthDB in #138
- feat(mutations): AppleScriptBackend Phase B — task ops + trait skeleton by @GarthDB in #140
- feat(models)!: replace Uuid with ThingsId for all entity identifiers by @GarthDB in #141
- feat(mutations): AppleScriptBackend Phase C — projects, areas, bulk ops by @GarthDB in #142
- fix(applescript): #142 review followups by @GarthDB in #143
- feat(mutations): AppleScriptBackend Phase D — tag operations by @GarthDB in #144
- feat(mutations): AppleScriptBackend Phase E — live integration tests + docs (#137) by @GarthDB in #145
- feat(mutations): default to AppleScriptBackend; gate restore_database (#125, #126) by @GarthDB in #146
- docs(skills): document AppleScript backend + add things3-inbox-triage skill by @GarthDB in #147
- fix(mcp): recover from handler errors instead of dropping the connection (#148) by @GarthDB in #149
- fix(applescript): reject hyphenated UUIDs at boundary, generate native IDs (#148) by @GarthDB in #150
- fix(core): align TMTag schema with real Things 3 + dynamic DB path discovery (#151, #152) by @GarthDB in #153
- fix(mutations): use TMTaskTag JOIN in list_tasks_with_tag_title (#159, #160) by @GarthDB in #169
- fix(mcp): rename get_tag_completions parameter partial_input → prefix (#163) by @GarthDB in #170
- fix(applescript): fix create_task project assignment, heading validation, and logbook delete (#158, #161, #162) by @GarthDB in #171
- fix(applescript): make bulk_create_tasks atomic with rollback on failure (#157) by @GarthDB in #172
- docs: add stale binary warning and upgrade notes to README (#168) by @GarthDB in #174
- fix(core): logbook_search offset, get_recent_tags empty, available_memory_mb=0 (#165, #166, #167) by @GarthDB in #173
- fix(mcp): implement export_data output_path, CSV, and Markdown (#164) by @GarthDB in #175
- fix(mcp): implement export_data output_path, CSV, Markdown, and RFC 4180 CSV fix (#164, #176) by @GarthDB in #177
- refactor(core): extract standalone modules from database/core.rs by @GarthDB in #178
- refactor: reduce context burn by splitting large monolithic files by @GarthDB in #184
- refactor(cli): split events.rs into per-concern submodules by @GarthDB in #185
- refactor(core): split cache.rs and export.rs into per-concern submodules by @GarthDB in #186
- refactor(xtask): split main.rs into commands submodules and tests by @GarthDB in #187
- chore(tooling): add rustfmt, clippy, deny configs and workspace lints (Phase 1) by @GarthDB in #188
- feat(api): public-API hardening — explicit re-exports, #[non_exhaustive], pub→pub(crate) audit (Phase 2) by @GarthDB in #191
- docs: update docs to reflect AppleScriptBackend as default by @GarthDB in #192
Full Changelog: v1.4.0...v2.0.0