|
| 1 | +# Changelog |
| 2 | + |
| 3 | +## Unreleased |
| 4 | + |
| 5 | +### 🛠️ Bug Fixes |
| 6 | + |
| 7 | +- **Fixed task assignment feature not working (Issue #48)**: |
| 8 | + - Fixed critical bug where task assignees were not being properly assigned despite successful API responses |
| 9 | + - Root cause: Missing assignee resolution logic in task creation and update handlers |
| 10 | + - Added comprehensive assignee resolution supporting multiple input formats: |
| 11 | + - Numeric user IDs (e.g., `96055451`) |
| 12 | + - Email addresses (e.g., `"[email protected]"`) |
| 13 | + - Usernames (e.g., `"John Doe"`) |
| 14 | + - Mixed format arrays (e.g., `[96055451, "[email protected]"]`) |
| 15 | + - Enhanced task handlers with automatic assignee resolution: |
| 16 | + - `create_task` - Now resolves assignees before task creation |
| 17 | + - `update_task` - Now resolves assignees during task updates |
| 18 | + - `create_bulk_tasks` - Now resolves assignees for each task in bulk operations |
| 19 | + - Added proper deduplication for duplicate assignees in mixed format requests |
| 20 | + - Added graceful error handling for unresolvable assignees (continues with resolved ones) |
| 21 | + - **Impact**: Task assignment now works correctly for all documented assignee formats |
| 22 | + - **Supported formats**: User IDs, email addresses, usernames, and mixed arrays |
| 23 | + |
| 24 | +- **Fixed task due date updates not working (Issue #49)**: |
| 25 | + - Fixed critical bug where `update_task` returned success but didn't actually update due dates |
| 26 | + - Root cause: `updateTaskHandler` was not calling `buildUpdateData()` to parse date strings into timestamps |
| 27 | + - Enhanced natural language date parsing to support complex formats: |
| 28 | + - Added support for day names: "Monday", "Friday", "Saturday", etc. |
| 29 | + - Added time parsing: "Monday at 3pm EST", "Friday at 2:30pm", etc. |
| 30 | + - Added "next" prefix handling: "next Friday", "next Monday", etc. |
| 31 | + - Improved fallback parsing with multiple strategies and validation |
| 32 | + - **Impact**: Due date updates now work correctly for all supported date formats |
| 33 | + - **Supported formats**: "tomorrow", "Monday at 3pm EST", "next Friday", Unix timestamps, "MM/DD/YYYY", relative times like "2 hours from now" |
| 34 | + |
| 35 | +- **Fixed subtask visibility in workspace tasks (Issue #56)**: |
| 36 | + - Added missing `subtasks` parameter to `get_workspace_tasks` tool |
| 37 | + - Added missing `include_subtasks`, `include_compact_time_entries`, and `custom_fields` parameters for completeness |
| 38 | + - Updated tool description to clarify how subtasks parameter works with filtering |
| 39 | + - **Impact**: Users can now access subtasks through workspace-wide queries when subtasks match filter criteria |
| 40 | + - **Note**: Subtasks must still match other filter criteria (tags, lists, etc.) to appear in results |
| 41 | + - **Alternative**: Use `get_task` tool with `subtasks=true` to see all subtasks of a specific task regardless of filters |
| 42 | + |
| 43 | +### 🔗 References |
| 44 | + |
| 45 | +- #48: [Task Assignment Feature Not Working through ClickUp MCP Integration API](https://github.com/taazkareem/clickup-mcp-server/issues/48) |
| 46 | +- #49: [update_task not updating due dates](https://github.com/taazkareem/clickup-mcp-server/issues/49) |
| 47 | +- #56: [Can't see sub-tasks](https://github.com/taazkareem/clickup-mcp-server/issues/56) |
| 48 | +## v0.8.1 (2025-06-12) |
| 49 | + |
| 50 | +### 🛠️ Critical Bug Fixes |
| 51 | + |
| 52 | +- **Fixed JSON Schema Validation Error**: |
| 53 | + - Resolved server startup failure with error: `Invalid schema for tool list_document_pages: strict mode: unknown keyword: "optional"` |
| 54 | + - Removed invalid `optional: true` keywords from document tool schemas |
| 55 | + - Fixed schemas for: `list_document_pages`, `get_document_pages`, `create_document_page`, `update_document_page` |
| 56 | + - **Technical Note**: In JSON Schema, optional properties are defined by omitting them from the `required` array, not by using an `optional` keyword |
| 57 | + - **Impact**: Server now starts correctly without schema validation errors |
| 58 | + |
| 59 | +### 🔄 Repository Updates |
| 60 | + |
| 61 | +- Updated document tool schemas to comply with strict JSON Schema validation |
| 62 | +- Ensured all tools load properly and are fully functional |
| 63 | +- Maintained zero breaking changes - all existing functionality preserved |
| 64 | + |
| 65 | +## v0.8.0 (2025-06-12) |
| 66 | + |
| 67 | +### 🚀 Major Features & Architectural Improvements |
| 68 | + |
| 69 | +- **HTTP Streamable Transport Support**: |
| 70 | + - Added HTTP Streamable transport implementation for modern web-based integrations |
| 71 | + - Dual transport support: can run both STDIO and HTTP/SSE simultaneously |
| 72 | + - New configuration options: |
| 73 | + - `ENABLE_SSE` - Enable HTTP/SSE transport (default: false) |
| 74 | + - `PORT` - HTTP server port (default: 3231) |
| 75 | + - `ENABLE_STDIO` - Enable STDIO transport (default: true) |
| 76 | + - HTTP server endpoints: |
| 77 | + - `/mcp` - HTTP Streamable endpoint for MCP protocol communication |
| 78 | + - `/sse` - Legacy SSE endpoint for backwards compatibility |
| 79 | + - Enhanced integration capabilities: |
| 80 | + - MCP Inspector compatibility |
| 81 | + - Web application compatibility |
| 82 | + - Multiple client connection support |
| 83 | + - Session management for stateful interactions |
| 84 | + |
| 85 | +- **Massive Codebase Refactor & Optimization**: |
| 86 | + - **70% total codebase reduction** (1,566 → 466 lines) |
| 87 | + - **Eliminated 1,100+ lines of duplicated tool definitions** (89% reduction in SSE server) |
| 88 | + - Unified server architecture eliminating code duplication |
| 89 | + - Single source of truth for server configuration |
| 90 | + - Clean separation between server logic and transport setup |
| 91 | + - Improved maintainability and extensibility |
| 92 | + |
| 93 | +- **Member Management Tools**: |
| 94 | + - Added `get_workspace_members` - Retrieve all workspace members with details |
| 95 | + - Added `find_member_by_name` - Find specific members by name or email |
| 96 | + - Added `resolve_assignees` - Resolve user IDs/emails to assignee objects |
| 97 | + - Enhanced task creation with `assignees` parameter for user assignment |
| 98 | + - **Enhanced task updating with `assignees` parameter** for both single and bulk operations |
| 99 | + - Support for assignees in create, update, and bulk operations (create/update) |
| 100 | + - Improved error handling and response formatting for member operations |
| 101 | + |
| 102 | +### 🔄 Repository Updates |
| 103 | + |
| 104 | +- Refactored transport architecture for unified server configuration |
| 105 | +- Enhanced configuration system for transport selection |
| 106 | +- Improved imports and code organization for maintainability |
| 107 | +- Updated tool schemas to support assignees parameter |
| 108 | +- Comprehensive testing across all transport types |
| 109 | + |
| 110 | +## v0.7.2 (2025-04-25) |
| 111 | + |
| 112 | +### 🛠️ Bug Fixes |
| 113 | + |
| 114 | +- Fixed time estimate support in task updates: |
| 115 | + - Removed redundant field-specific validation check in task update operations |
| 116 | + - Simplified validation to check only for the presence of update fields |
| 117 | + - Fixed "At least one field to update must be provided" error when using time_estimate |
| 118 | + - Added time string parsing for converting formats like "2h 30m" to minutes |
| 119 | + - Improved tool description for clear guidance on supported formats |
| 120 | + - Ensures compatibility with all fields defined in the UpdateTaskData type |
| 121 | + |
| 122 | +### 🔗 References |
| 123 | + |
| 124 | +- #45: [Bug: Time estimates not allowed when updating tasks](https://github.com/taazkareem/clickup-mcp-server/issues/45) |
| 125 | + |
| 126 | +## v0.7.1 (2025-04-24) |
| 127 | + |
| 128 | +### 🚀 New Features & Improvements |
| 129 | + |
| 130 | +- Added Documents Module with comprehensive document management: |
| 131 | + - Document listing and search across workspace |
| 132 | + - Document creation with customizable visibility |
| 133 | + - Document page management (create, list, get, update) |
| 134 | + - Optional module activation via `DOCUMENT_SUPPORT=true` environment variable |
| 135 | + - Support for both API V2 and V3 endpoints |
| 136 | +- Added comprehensive Time Tracking functionality: |
| 137 | + - View time entries for tasks with filtering options |
| 138 | + - Start/stop time tracking on tasks |
| 139 | + - Add manual time entries with flexible duration formats |
| 140 | + - Delete time entries |
| 141 | + - View currently running timer with elapsed time information |
| 142 | + - Track billable and non-billable time |
| 143 | +- Added command disabling capability: |
| 144 | + - New `DISABLED_TOOLS` environment variable |
| 145 | + - Disable specific commands via comma-separated list |
| 146 | + - Support for both environment variable and command line argument |
| 147 | + - Improved security through selective command access |
| 148 | + - Clear error messages for disabled command attempts |
| 149 | + |
| 150 | +### 🛠️ Bug Fixes & Improvements |
| 151 | + |
| 152 | +- Fixed custom task ID lookup in `getTaskByCustomId` method: |
| 153 | + - Corrected API endpoint from `/task/custom_task_ids` to `/task/{id}` with proper parameters |
| 154 | + - Added required `custom_task_ids=true` and `team_id` parameters for proper authentication |
| 155 | + - Fixed "Authorization failed" error when retrieving tasks by custom ID |
| 156 | + - Improved error handling and logging for custom ID operations |
| 157 | +- Fixed JSON schema type definitions in task tools for improved compatibility with third-party parsers: |
| 158 | + - Updated schema to use single string type with nullable property instead of array types |
| 159 | + - Ensures compatibility with Go-based parsers like windsurf that have strict type requirements |
| 160 | + - Affected tools: `update_task`, `update_bulk_tasks` |
| 161 | +- Enhanced custom field handling in task updates: |
| 162 | + - Fixed issue with custom field updates not being properly applied |
| 163 | + - Improved validation and processing of custom field values |
| 164 | + - Ensures consistent behavior across all task update operations |
| 165 | + |
| 166 | +### 🔄 Repository Updates |
| 167 | + |
| 168 | +- Updated documentation with new document module features |
| 169 | +- Added configuration guide for disabled commands |
| 170 | +- Enhanced API reference with document management examples |
| 171 | +- Added documentation for time tracking tools |
| 172 | +- Improved API reference accuracy for task update operations |
| 173 | + |
| 174 | +### 🔗 References |
| 175 | + |
| 176 | +- #37: [Fix authorization issue with custom task IDs](https://github.com/taazkareem/clickup-mcp-server/issues/37) |
| 177 | +- #36: [Fix types for windsurf compatibility](https://github.com/taazkareem/clickup-mcp-server/pull/36) |
| 178 | +- #38: [Add time tracking functionality](https://github.com/taazkareem/clickup-mcp-server/pull/38) |
| 179 | +- #39: [Add command disabling capability](https://github.com/taazkareem/clickup-mcp-server/pull/39) |
| 180 | +- #40: [Fix custom field updates](https://github.com/taazkareem/clickup-mcp-server/pull/40) |
| 181 | +- #41: [Add document module](https://github.com/taazkareem/clickup-mcp-server/pull/41) |
| 182 | + |
| 183 | +## v0.6.9 (2025-04-03) |
| 184 | + |
| 185 | +### 🚀 New Features & Improvements |
| 186 | + |
| 187 | +- Enhanced token limit protection for workspace tasks: |
| 188 | + - Added handler-level token limit validation (50,000 tokens) |
| 189 | + - Implemented smart response format switching |
| 190 | + - Automatic fallback to summary format for large responses |
| 191 | + - Improved token estimation for task responses |
| 192 | + - Added logging for format switching events |
| 193 | + - Double-layer protection at both service and handler levels |
| 194 | + |
| 195 | +### 🔄 Repository Updates |
| 196 | + |
| 197 | +- Updated task handler implementation with token limit checks |
| 198 | +- Added token estimation utilities for task responses |
| 199 | + |
| 200 | +## v0.6.6 (2025-04-03) |
| 201 | + |
| 202 | +### 🐛 Bug Fixes |
| 203 | + |
| 204 | +- Fixed task caching issue causing rate limits: |
| 205 | + - Task IDs from name lookups weren't being shared between sequential operations |
| 206 | + - Each tool operation was performing redundant global task searches |
| 207 | + - Added task name-to-ID mapping in cache to prevent duplicate lookups |
| 208 | + - Improved caching efficiency for sequential operations on same task |
| 209 | + |
| 210 | +## v0.6.5 (2025-03-28) |
| 211 | + |
| 212 | +- Added start date support for tasks: |
| 213 | + - Set task start dates with natural language expressions (e.g., "now", "tomorrow at 9am") |
| 214 | + - Support for both creation and updates via `startDate` parameter |
| 215 | + - Proper time handling with `start_date_time` flag |
| 216 | +- Added Global Task Lookup feature: |
| 217 | + - Find tasks by name across the entire workspace without specifying a list |
| 218 | + - Smart disambiguation when multiple tasks share the same name |
| 219 | + - Context-aware results showing list, folder, and space for each match |
| 220 | + - Default selection of most recently updated task when multiple matches exist |
| 221 | + - Backward compatible with list-specific lookups |
| 222 | + - Applied to all task operations: get_task, update_task, delete_task, etc. |
| 223 | + - Improved error messages with actionable information for disambiguation |
| 224 | + |
| 225 | +### 🚀 Performance Optimizations |
| 226 | + |
| 227 | +- Implemented parallel request optimization for task operations: |
| 228 | + - Parallel validation of tasks and lists in move operations |
| 229 | + - Concurrent processing of task and list data |
| 230 | +- Added task validation caching: |
| 231 | + - 5-minute TTL cache for task and list validations |
| 232 | + - Reduced redundant API calls in bulk operations |
| 233 | + - Optimized cache updates after successful operations |
| 234 | +- Enhanced workspace hierarchy fetching: |
| 235 | + - Implemented batched space processing (3 spaces at a time) |
| 236 | + - Added batched folder processing (5 folders at a time) |
| 237 | + - Improved rate limit compliance with controlled concurrency |
| 238 | + - Added detailed performance logging and metrics |
| 239 | + |
| 240 | +## v0.6.2 (2025-03-27) |
| 241 | + |
| 242 | +### 🛠️ Bug Fixes |
| 243 | + |
| 244 | +- Fixed binary execution issue by adding proper shebang line to the main executable |
| 245 | + |
| 246 | +### 🚀 New Features & Improvements |
| 247 | + |
| 248 | +- Added tag support with tools for: |
| 249 | + - Managing tags at the space level (get, create, update, delete) |
| 250 | + - Adding/removing tags from tasks |
| 251 | + - Support for tags when creating and updating tasks |
| 252 | +- Enhanced bulk task creation with tags support |
| 253 | +- Added natural language color processing for tags: |
| 254 | + - Create tags with color names (e.g., "blue", "red", "yellow") |
| 255 | + - Support for color variations (e.g., "dark blue", "light green") |
| 256 | + - Automatic generation of contrasting foreground colors |
| 257 | + - Color commands in both tag creation and updates |
| 258 | +- Added `get_workspace_tasks` tool for retrieving filtered workspace tasks by various criteria: |
| 259 | + - Requires at least one filter parameter (tags, list_ids, space_ids, etc.) |
| 260 | + - Supports filtering by tags, due dates, status, and more |
| 261 | + - Includes pagination and sorting options |
| 262 | + - Implements Adaptive Response Format with two detail levels: |
| 263 | + - `summary`: Lightweight response with essential task information |
| 264 | + - `detailed`: Complete task information with all fields (default) |
| 265 | + - Automatic format selection based on response size (50,000 token threshold) |
| 266 | + - Optimized for handling large datasets efficiently |
| 267 | + |
| 268 | +### 🔄 Repository Updates |
| 269 | + |
| 270 | +- Updated documentation to reflect new tool requirements and capabilities |
| 271 | +- Improved API reference with detailed examples and response formats |
| 272 | + |
| 273 | +## v0.6.0 (2025-03-26) |
| 274 | + |
| 275 | +### 🚀 New Features & Improvements |
| 276 | + |
| 277 | +- Added subtasks support with multi-level nesting capability |
| 278 | +- Implemented parent parameter for creating subtasks |
| 279 | +- Made logging level configurable via environment variable or command line |
| 280 | +- Fixed custom task ID handling across all operations |
| 281 | +- Default log level now set to ERROR for improved compatibility |
| 282 | + |
| 283 | +### 📦 Dependencies |
| 284 | + |
| 285 | +- No dependency changes in this release |
| 286 | + |
| 287 | +### 🔄 Repository Updates |
| 288 | + |
| 289 | +- Updated documentation for subtasks feature |
| 290 | +- Improved API reference with subtasks examples |
| 291 | +- Added Security Policy and Code of Conduct |
| 292 | + |
| 293 | +### 🔗 References |
| 294 | + |
| 295 | +- #18: [See pull request](https://github.com/taazkareem/clickup-mcp-server/pull/18) |
| 296 | +- #20: [See pull request](https://github.com/taazkareem/clickup-mcp-server/pull/20) |
| 297 | + |
| 298 | +## v0.5.1 (2025-03-23) |
| 299 | + |
| 300 | +### 🚀 New Features & Improvements |
| 301 | + |
| 302 | +- Added support for Custom IDs across all tools |
| 303 | +- New tools: |
| 304 | + - `attach_task_file`: Attach files to tasks using local paths, URLs, or base64 data |
| 305 | + - `create_task_comment`: Add comments to tasks |
| 306 | + - `get_task_comments`: Retrieve comments from tasks |
| 307 | +- Enhanced date parsing with support for "X minutes from now" expressions |
| 308 | +- Improved task name matching with greater flexibility: |
| 309 | + - Case-insensitive matching |
| 310 | + - Partial name matching |
| 311 | + - Matching without emojis |
| 312 | +- Fixed error response formatting in task comment retrieval |
| 313 | +- Improved workspace hierarchy display to correctly show lists directly in spaces |
| 314 | + |
| 315 | +### 📦 Dependencies |
| 316 | + |
| 317 | +- Updated dependencies to use semantic versioning |
| 318 | +- Upgraded: |
| 319 | + - @modelcontextprotocol/sdk: 0.6.0 → 0.6.1 |
| 320 | + - axios: 1.6.7 → 1.8.4 |
| 321 | + - dotenv: 16.4.1 → 16.4.7 |
| 322 | + |
| 323 | +### 🔄 Repository Updates |
| 324 | + |
| 325 | +- Added automated changelog generation |
| 326 | +- Updated documentation and README |
| 327 | +- Added funding options through GitHub Sponsors and Buy Me A Coffee |
| 328 | + |
| 329 | +## v0.5.0 (2025-03-22) |
| 330 | + |
| 331 | +### 🚀 Initial Release |
| 332 | + |
| 333 | +- First public version of ClickUp MCP Server |
| 334 | +- Core functionality for task, list, and folder management |
| 335 | +- Basic workspace hierarchy navigation |
| 336 | +- NPM and Smithery deployment options |
| 337 | + |
| 338 | +### 🔄 Repository Updates |
| 339 | + |
| 340 | +- Initial README and documentation |
| 341 | +- Added GitHub workflow for publishing |
| 342 | +- Created Funding options through GitHub Sponsors and Buy Me a Coffee |
| 343 | + |
| 344 | +### 🔗 References |
| 345 | + |
| 346 | +- #12: [See pull request](https://github.com/taazkareem/clickup-mcp-server/pull/12) |
0 commit comments