|
1 | | -# v0.8.4 Release Notes |
2 | | - |
3 | | -### � Security Features |
4 | | - |
5 | | -- **Comprehensive MCP Streamable HTTPS Transport Security Implementation**: |
6 | | - - **HTTPS/TLS Support**: Added optional HTTPS server alongside HTTP for encrypted communication |
7 | | - - Environment variables: `ENABLE_HTTPS`, `SSL_KEY_PATH`, `SSL_CERT_PATH`, `SSL_CA_PATH`, `HTTPS_PORT` |
8 | | - - Dual protocol support: HTTP (3231) and HTTPS (3443) run simultaneously for backwards compatibility |
9 | | - - Self-signed certificate generation script: `./scripts/generate-ssl-cert.sh` |
10 | | - - Production-ready with CA-issued certificates |
11 | | - - **Origin Header Validation**: Prevents cross-site attacks by validating Origin header against whitelist |
12 | | - - Environment variable: `ENABLE_ORIGIN_VALIDATION=true` |
13 | | - - Default allowed origins: `127.0.0.1:3231`, `localhost:3231`, plus HTTPS variants |
14 | | - - Smart handling: Allows non-browser clients (n8n, MCP Inspector) while blocking unauthorized origins |
15 | | - - **Rate Limiting Protection**: Protects against DoS attacks with configurable request limits |
16 | | - - Environment variable: `ENABLE_RATE_LIMIT=true` |
17 | | - - Default: 100 requests per minute per IP address |
18 | | - - Configurable via: `RATE_LIMIT_MAX`, `RATE_LIMIT_WINDOW_MS` |
19 | | - - **CORS Configuration**: Secure cross-origin resource sharing for web applications |
20 | | - - Environment variable: `ENABLE_CORS=true` |
21 | | - - Supports GET, POST, DELETE, OPTIONS methods |
22 | | - - Headers: Content-Type, mcp-session-id, Authorization |
23 | | - - **Security Headers**: Web security best practices when `ENABLE_SECURITY_FEATURES=true` |
24 | | - - X-Content-Type-Options, X-Frame-Options, X-XSS-Protection |
25 | | - - Referrer-Policy, Strict-Transport-Security (HTTPS only) |
26 | | - - **Request Size Limits**: Prevents memory exhaustion attacks |
27 | | - - Configurable limit: `MAX_REQUEST_SIZE=10mb` (default) |
28 | | - - Hard limit: 50MB maximum |
29 | | - - **Security Monitoring**: Comprehensive logging and health endpoint |
30 | | - - Health endpoint: `/health` shows security status |
31 | | - - Security event logging: origin validation, rate limits, violations |
32 | | - - Log levels: DEBUG, INFO, WARN, ERROR for security events |
33 | | - - **Zero Breaking Changes**: All security features are opt-in and disabled by default |
34 | | - - Existing clients (Claude Desktop, n8n, MCP Inspector) work unchanged |
35 | | - - No configuration changes required for current users |
36 | | - - Backwards compatibility thoroughly tested and verified |
| 1 | +# v0.8.5 Release Notes |
| 2 | + |
| 3 | +### 🚀 New Features & Improvements |
| 4 | + |
| 5 | +- **Major Enhancement: Advanced Date Parsing System**: |
| 6 | + - **Smart Preprocessing Layer**: Automatically corrects typos and normalizes natural language expressions |
| 7 | + - Typo correction: `"tommorow"` → `"tomorrow"`, `"yesterady"` → `"yesterday"` |
| 8 | + - Natural language enhancement: `"tomorrow morning"` → `"tomorrow 9am"`, `"yesterday evening"` → `"yesterday 6pm"` |
| 9 | + - Complex expression normalization: `"day after tomorrow"` → `"+2 days"`, `"day before yesterday"` → `"-2 days"` |
| 10 | + - Time format normalization: Handles `"@"`, `"at"`, and various am/pm formats |
| 11 | + - **Enhanced Pattern Matching**: Consolidated regex patterns with improved flexibility |
| 12 | + - Relative days with time: `"+3 days 2pm"`, `"-2 days 9:30am"` |
| 13 | + - Relative weeks with time: `"+2 weeks 1pm"`, `"-1 weeks 5pm"` |
| 14 | + - Enhanced yesterday/tomorrow: `"tomorrow 8am"`, `"yesterday 7:30pm"` |
| 15 | + - **Expanded Format Support**: Added support for multiple new date formats |
| 16 | + - US dates with time: `"7/4/2025 5pm"`, `"11/11/2030 11:11pm"` |
| 17 | + - Text month formats: `"march 10 2025 6:30pm"` |
| 18 | + - Dates without year: `"10/10 6:00pm"` (assumes current year) |
| 19 | + - Timestamp boundary fix: Now accepts Year 2000 boundary (`946684800000`) |
| 20 | + - **Improved Date Clearing**: Fixed date clearing functionality to properly set `null` values |
| 21 | + - **Code Optimization**: Reduced code duplication by 40% with helper functions and consolidated patterns |
| 22 | + - **Performance**: Maintains sub-millisecond parsing speed (~0.188ms average) |
| 23 | + - **Comprehensive Testing**: Achieves 100% success rate on 50-test comprehensive suite |
| 24 | + - **Backward Compatibility**: All existing functionality preserved while adding significant new capabilities |
37 | 25 |
|
38 | 26 | ### 🐛 Bug Fixes |
39 | 27 |
|
40 | | -- **Fixed Gemini compatibility (Issue #79)**: |
41 | | - - **Root cause**: Priority enum values were defined as numbers `[1, 2, 3, 4, null]` but Gemini API expects strings |
42 | | - - **Solution**: Updated priority enum to use string values `["1", "2", "3", "4", null]` in `update_task` and `update_bulk_tasks` tools |
43 | | - - **Schema changes**: Changed type from `"number"` to `"string"` for priority field in affected tools |
44 | | - - **Backward compatibility**: Maintained via existing `toTaskPriority()` function that handles string-to-number conversion |
45 | | - - **Impact**: Resolves schema validation errors in Cursor IDE and other Gemini-based MCP clients |
46 | | - - **Affected tools**: `update_task_ClickUp__Local_` and `update_bulk_tasks_ClickUp__Local_` |
47 | | - - **Testing**: Verified priority setting and removal functionality works correctly |
48 | | - |
49 | | -- **Fixed priority null handling in task updates (Issue #23)**: |
50 | | - - Fixed `update_task` tool failing when setting priority to `null` to clear/remove priority |
51 | | - - Modified `buildUpdateData` function to use `toTaskPriority` helper for proper null value conversion |
52 | | - - Priority updates now work correctly for both setting valid values (1-4) and clearing priority (null) |
53 | | - - Bulk task updates (`update_bulk_tasks`) already worked correctly and continue to function properly |
54 | | - |
55 | | -- **Fixed subtasks not being retrieved (Issue #69)**: |
56 | | - - Fixed `getSubtasks` method in `task-core.ts` to include required query parameters |
57 | | - - Added `subtasks=true` and `include_subtasks=true` parameters to ClickUp API call |
58 | | - - Subtasks are now properly retrieved and displayed when using `get_task` tool with `subtasks=true` |
59 | | - - Resolves issue where subtasks arrays were always empty despite subtasks existing in ClickUp |
60 | | - |
61 | | -### 🔧 Compatibility Improvements |
62 | | - |
63 | | -- **Enhanced MCP Client Support**: Improved compatibility with Cursor IDE and Gemini-based MCP clients |
64 | | -- **Schema Standardization**: Aligned tool schemas with MCP protocol best practices for broader client support |
65 | | -- **Testing Coverage**: Verified functionality across multiple MCP client implementations |
| 28 | +- **Fixed Task Assignment Functionality**: |
| 29 | + - **Root Cause**: ClickUp API uses different formats for assignees in task creation vs updates |
| 30 | + - Creation: `"assignees": [user_id1, user_id2]` (simple array) |
| 31 | + - Updates: `"assignees": { "add": [user_id1], "rem": [user_id2] }` (object with add/rem arrays) |
| 32 | + - **Parameter Parsing**: Fixed MCP serialization issue where assignee arrays were received as strings |
| 33 | + - **Smart Assignment Logic**: Implemented intelligent add/remove calculation by comparing current vs desired assignees |
| 34 | + - **Complete Functionality**: Now supports adding, removing, and updating task assignees |
| 35 | + - **Multiple Formats**: Supports user IDs, emails, and usernames for assignee resolution |
| 36 | + - **TypeScript Types**: Updated interfaces to support both array and object assignee formats |
| 37 | + - **Testing**: Verified full assignment cycle (add → remove → re-add) works correctly |
| 38 | + |
| 39 | +- **Fixed Track Time tool response formatting issue**: |
| 40 | + - Fixed issue where Track Time tools (start/stop time tracking, get time entries, etc.) were executing successfully but returning no output to users |
| 41 | + - **Root cause**: Time tracking handlers were returning raw JavaScript objects instead of using proper MCP server response formatting |
| 42 | + - **Solution**: Updated all 6 time tracking handlers to use `sponsorService.createResponse()` method for consistent response formatting |
| 43 | + - **Handlers fixed**: `handleStartTimeTracking`, `handleStopTimeTracking`, `handleGetTaskTimeEntries`, `handleAddTimeEntry`, `handleDeleteTimeEntry`, `handleGetCurrentTimeEntry` |
| 44 | + - **Enhanced error handling**: All error responses now use `sponsorService.createErrorResponse()` for consistent error formatting |
| 45 | + - **Added null safety**: Fixed potential undefined property access in time entries data with proper null checks |
| 46 | + - **Improved user experience**: Added helpful success messages and proper data structure formatting |
| 47 | + - **Impact**: Track Time tools now provide clear, formatted JSON responses instead of appearing to run silently |
0 commit comments