Skip to content

v1.3.0

Choose a tag to compare

@mbmccormick mbmccormick released this 11 Aug 13:50
· 14 commits to main since this release
c6486fb

What's Changed

This is a major architecture release that migrates from AppleScript to JavaScript for Automation (JXA) with a modular, security-first design.

🏗️ Architecture Overhaul

  • Complete JXA Migration: Replaced AppleScript with modular ES6 JavaScript sources compiled to JXA
  • Security-First Design: Uses execFile with JSON parameters instead of shell execution
  • Modular Architecture: 21 bundled JXA scripts from shared ES6 modules
  • Zero String Escaping: Parameters passed as JSON, eliminating injection vulnerabilities

🔧 Bug Fixes

  • Fixed: Date localization on non-English macOS systems (#13)
  • Fixed: Tag removal now works correctly with empty arrays
  • Fixed: Built-in list IDs corrected (Anytime: TMNextListSource, Upcoming: TMCalendarListSource)
  • Fixed: Timezone-aware date parsing using local timezone

📈 Performance & Reliability

  • Faster Execution: Direct JXA execution with pre-built scripts
  • Better Error Handling: Comprehensive error reporting with stack traces
  • Robust API: Full Things 3 SDEF compliance
  • Automatic Building: Scripts auto-compile on server start

🔒 Security Improvements

  • No Shell Injection: Secure parameter passing via JSON
  • Input Validation: Dangerous pattern detection and type checking
  • Timeout Protection: 30s execution limits with buffer protection

📚 Developer Experience

  • Modern JavaScript: ES6 modules with esbuild compilation
  • Better Debugging: DEBUG mode with detailed logging
  • Comprehensive Testing: Unit, integration, and regression test suites
  • Clear Documentation: Updated architecture guides and examples

🛠️ Tools & Compatibility

  • 21 MCP Tools: Complete toolset matching things-mcp
  • Backward Compatible: Same API surface with enhanced reliability
  • Version Auto-Detection: Reads version from package.json automatically

This release represents a complete rewrite of the underlying architecture while maintaining API compatibility. All existing integrations should continue working with improved performance and security.

Full technical details available in CLAUDE.md and README.md.

Installation

Download things-dxt.dxt and install via Claude Desktop Extensions.