All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
-
Empty Trash Command: Permanently remove expired deleted tasks with 30-day retention (GitHub Issue #52, Linear AIT-3, task#268)
- CLI:
ai-todo empty-trash(remove deleted tasks older than 30 days) - CLI:
ai-todo empty-trash --dry-run(preview what would be removed) - MCP:
empty_trash(dry_run=False)tool with same functionality - Auto-run on MCP server startup (silent, keeps Deleted Tasks section clean)
- Auto-run after
ai-todo deletecommand (silent, immediate cleanup) - Uses existing
expires_atfield for simple date comparison - No backup functionality (permanent deletion, true "Empty Trash" semantics)
- Dry-run mode for safe preview before removal
- CLI:
-
Prune Command: Remove old archived tasks from TODO.md based on retention period or task ID range (GitHub Issue #51, task#267)
- CLI:
ai-todo prune --days 30(remove tasks older than 30 days) - CLI:
ai-todo prune --from-task 100(remove tasks #1 to #100) - MCP:
prune_tasks(days=30)tool with same functionality - Automatic backup creation in
.ai-todo/archives/with complete TASK_METADATA - Git history analysis to determine accurate archive dates
- Dry-run mode for safe preview before pruning
- CLI:
- Stable: Production-ready releases (e.g.,
4.0.0) - Beta: Pre-release testing versions (e.g.,
4.0.0b1)
# Stable (recommended)
uv tool install todo-ai
# Beta (help us test)
uv tool install --prerelease=allow todo-ai4.0.0b1 - 2026-01-27 (Beta)
First beta for version 4.0.0 with breaking API changes and major new features.
This release standardizes API terminology to follow industry conventions (GitHub, Linear, Jira).
add_task(description)→add_task(title, description?, tags?)add_subtask(parent_id, description)→add_subtask(parent_id, title, description?, tags?)modify_task(task_id, description)→modify_task(task_id, title, description?, tags?)add_note,update_note,delete_note→ replaced byset_description(task_id, description)- New:
set_tags(task_id, tags)for idempotent tag management
add→add-taskmodify→modify-tasknote,update-note,delete-note→set-description- New:
set-tags
- Legacy shell scripts (todo.ai, todo.bash) are now frozen and no longer maintained
- MCP Resources:
tasks://open,tasks://active,tasks://{id},config://settingsfor IDE integration (GitHub Issue #48) - Task Metadata Persistence: Timestamps (
created_at,updated_at) persisted via hidden HTML comments - Batch Operations:
complete,delete,archive,restoreaccept multiple task IDs (GitHub Issue #31) - .cursorignore Protection: State files protected from AI agents (GitHub Issue #29)
- Self-update:
updatecommand with version pinning and constraints - Restart MCP Tool: Dev mode quick-reload capability
- TASK_METADATA being incorrectly captured as interleaved content
- Archive/delete task ordering bug (parent before subtasks)
- GitHub task number coordination posting
- Windows CI failure in test_default_path
3.0.2 - 2026-01-27 (Stable)
Patch release fixing malformed TODO.md files.
- Malformed TODO.md when adding subtasks via MCP on fresh repositories (GitHub Issue #47)
- Footer timestamps properly handled and regenerated cleanly
- Updated branding from "todo.ai" to "ai-todo" in default headers
- FastMCP 3.x compatibility testing in CI
- Cursor rule documentation for reverse chronological task ordering
3.0.1 - 2026-01-26 (Stable)
Patch release with bug fixes and improvements.
- Corrected task deletion order in archive command
- Fixed footer placement in TODO.md formatting
- Resolved coordinate auto-increment issues
- Improved error handling in MCP server
- Enhanced logging for debugging
3.0.0 - 2026-01-25 (Stable)
Major release: Python-based implementation with MCP server support.
- Full Python implementation with
uvpackage management - MCP server for AI agent integration (Cursor)
- CLI interface with
todo-aicommand - 150+ automated tests with comprehensive coverage
- Migration system for upgrading between versions
- GitHub Issues coordination support
- Beta/pre-release release strategy
- BREAKING: Requires Python 3.10+
- BREAKING: Install via
uv tool install todo-aiinstead of curl - Improved performance (10x faster for large TODO files)
- Enhanced error messages with clear remediation steps
- Legacy shell script (v2.x) - still available but not recommended
- Major (X.0.0): Breaking changes, significant rework
- Minor (X.Y.0): New features, backward compatible
- Patch (X.Y.Z): Bug fixes, backward compatible
- Format:
X.Y.ZbN(e.g.,4.0.0b1,4.0.0b2) - Numbering: Beta number increments for each iteration
- Duration: 7+ days for major releases, 2-3 days for minor
- Required: All major releases MUST have at least one beta first
- GitHub Repository: https://github.com/fxstein/ai-todo
- PyPI Package: https://pypi.org/project/todo-ai/
- Documentation: https://github.com/fxstein/ai-todo/tree/main/docs
- Issue Tracker: https://github.com/fxstein/ai-todo/issues
- Discussions: https://github.com/fxstein/ai-todo/discussions