Commit Graph

76 Commits

Author SHA1 Message Date
github-actions[bot]
4b51303844 Version Packages 2025-04-20 09:23:35 +00:00
Ralph Khreish
f9cbf3ad66 chore: improve changelog 2025-04-20 00:03:22 +02:00
Ralph Khreish
81198d9468 feat: Add --append flag to parsePRD command - Fixes #207 (#272)
* feat: Add --append flag to parsePRD command - Fixes #207

* chore: format

* chore: implement tests to core logic and commands

* feat: implement MCP for append flag of parse_prd tool

* fix: append not considering existing tasks

* chore: fix tests

---------

Co-authored-by: Kresna Sucandra <kresnasucandra@gmail.com>
2025-04-19 23:49:50 +02:00
Joe Danziger
b6d1d9c782 fix: MCP quotes for windsurf compatibility (#264)
* fix quoting

* add changeset
2025-04-19 15:42:16 +02:00
Ralph Khreish
ac75d4e5f3 feat: Enhance remove-task command to handle multiple comma-separated task IDs (#268)
* feat: Enhance remove-task command to handle multiple comma-separated task IDs

* chore: fix formatting issues

* fix: implement support for MCP

---------

Co-authored-by: Kresna Sucandra <kresnasucandra@gmail.com>
2025-04-19 10:55:59 +02:00
Ralph Khreish
f4a678af09 fix: remove the need for projectName, description, version in mcp and cli (#265)
* fix: remove the need for projectName, description, version in mcp and cli

* chore: add changeset
2025-04-19 00:36:05 +02:00
Ralph Khreish
078ce93a17 Prompt engineering prd breakdown (#267)
* prompt engineering prd breakdown

* chore: add back important elements of the parsePRD prompt

---------

Co-authored-by: chen kinnrot <chen.kinnrot@lemonade.com>
2025-04-19 00:05:20 +02:00
Ralph Khreish
dab92ea620 fix/211 linux container init (#266)
* fix: Improve error handling in task-master init for Linux containers - Fixes #211

* chore: improve changeset

---------

Co-authored-by: Kresna Sucandra <kresnasucandra@gmail.com>
2025-04-18 23:53:38 +02:00
Ralph Khreish
507cb919e9 feat: improve task-master init (#248)
* chore: fix weird bug where package.json is not upgrading its version based on current package version

* feat: improve `tm init`
2025-04-17 19:32:30 +02:00
Ralph Khreish
ec4e76ec3f feat: add new bin task-master-ai same name as package to allow npx -y task-master-ai to work (#253) 2025-04-17 19:30:30 +02:00
Ralph Khreish
ba99bd01f6 fix: shebang issues (#243)
Closes #241 #211 #184 #193
2025-04-16 11:06:18 +02:00
Eyal Toledano
9c6424264e fix(update/update-task/update-subtask): Updates the parameter descriptions for update, update-task and update-subtask to ensure the MCP server correctly reaches for the right update command based on what is being updated -- all tasks, one task, or a subtask. 2025-04-16 00:40:32 -04:00
github-actions[bot]
4e62dbac54 Version Packages 2025-04-11 19:34:07 +00:00
Eyal Toledano
30720b68ee chore: Adjusts changeset to a user-facing changelog. 2025-04-11 15:08:58 -04:00
Eyal Toledano
d11e637df0 Merge pull request #172 from eyaltoledano/adjust-context-window
chore(ai): Reduces context window back from 128k to 64k

We'll bump it back up when the better ai model management is implemented.
2025-04-11 14:42:25 -04:00
Ralph Khreish
c8b8da2969 chore: change changeset to minor instead of patch 2025-04-11 20:30:45 +02:00
Eyal Toledano
db5ebe93c3 chore(ai): Reduces context window back from 128k to 64k until we decouple context windows between main and research models. 2025-04-11 13:33:02 -04:00
Joe Danziger
533f5cdc25 Don't add task-master-mcp to mcp.json if it already exists (#169) 2025-04-11 18:07:58 +02:00
Eyal Toledano
571d7628f0 fix: threshold parameter validation in analyze-complexity
Change threshold parameter in analyze_project_complexity from union type to coerce.number with min/max validation. Fix Invalid type error that occurred with certain input formats. Add test implementation to avoid real API calls and proper tests for parameter validation.
2025-04-09 21:25:21 -04:00
Eyal Toledano
1bf31895c8 chore: changeset. 2025-04-09 21:18:50 -04:00
Eyal Toledano
93f075ec4b fix: Update fileValidator in parse-prd test to return boolean values 2025-04-09 19:49:51 -04:00
Eyal Toledano
828a4ec504 feat(mcp): Add next_step guidance to initialize-project and add tests
Added detailed next_step guidance to the initialize-project MCP tool response,
providing clear instructions about creating a PRD file and using parse-prd
after initialization. This helps users understand the workflow better after
project initialization.

Also added comprehensive unit tests for the initialize-project MCP tool that:
- Verify tool registration with correct parameters
- Test command construction with proper argument formatting
- Check special character escaping in command arguments
- Validate success response formatting including the new next_step field
- Test error handling and fallback mechanisms
- Verify logging behavior

The tests follow the same pattern as other MCP tool tests in the codebase.
2025-04-09 18:45:38 -04:00
Eyal Toledano
8ad1749036 fix(commands): implement manual creation mode for add-task command
- Add support for --title/-t and --description/-d flags in add-task command
- Fix validation for manual creation mode (title + description)
- Implement proper testing for both prompt and manual creation modes
- Update testing documentation with Commander.js testing best practices
- Add guidance on handling variable hoisting and module initialization issues

Changeset: brave-doors-open.md
2025-04-09 18:18:13 -04:00
Eyal Toledano
026e93ee97 fix(add-task): sets up test and new test rules for the fix for add-task to support flags for manually setting title and subtitle (stashed, next commit) 2025-04-09 16:29:24 -04:00
Eyal Toledano
b792471f94 chore(rules): Adjusts the taskmaster.mdc rules for init and parse-prd so the LLM correctly reaches for the next steps rather than trying to reinitialize or access tasks not yet created until PRD has been parsed. 2025-04-09 15:11:59 -04:00
Eyal Toledano
26f4beea31 fix(expand-all): resolve NaN errors and improve error reporting
- Fix expand-all command bugs that caused NaN errors with --all option and JSON formatting errors with research enabled

- Improve error handling to provide clear feedback when subtask generation fails

- Include task IDs and actionable suggestions in error messages
2025-04-09 01:24:14 -04:00
Eyal Toledano
ee1b674eb4 docs: update changeset with model config while preserving existing changes 2025-04-08 15:55:22 -04:00
Eyal Toledano
9a5d1de29c Recovers lost files and commits work from the past 5-6 days. Holy shit that was a close call. 2025-04-08 15:55:22 -04:00
Eyal Toledano
087fbf7952 chore: Adjusts the mcp server command from task-master-mcp-server to task-master-mcp. It cannot be simpler because global installations of the npm package would expose this as a globally available command. Calling it like 'mcp' could collide and also is lacking in branding and clarity of what command would be run. This is as good as we can make it. 2025-04-08 15:55:22 -04:00
Eyal Toledano
a908109cf7 chore: changeset + update rules. 2025-04-08 15:55:22 -04:00
Eyal Toledano
29759024e2 Changeset 2025-04-08 15:54:36 -04:00
Eyal Toledano
adbe38b3ba feat: adds remove-task command + MCP implementation. 2025-04-08 15:54:33 -04:00
Eyal Toledano
d77b999942 fix(mcp): optimize get_task response payload by removing allTasks data
- Add custom processTaskResponse function to get-task.js to filter response data
- Significantly reduce MCP response size by returning only the requested task
- Preserve allTasks in CLI/UI for dependency status formatting
- Update changeset with documentation of optimization

This change maintains backward compatibility while making MCP responses
more efficient, addressing potential context overflow issues in AI clients.
2025-04-08 15:54:06 -04:00
Eyal Toledano
179e69079b fix: Improve MCP server robustness and debugging
- Refactor  for more reliable project root detection, particularly when running within integrated environments like Cursor IDE. Includes deriving root from script path and avoiding fallback to '/'.
- Enhance error handling in :
    - Add detailed debug information (paths searched, CWD, etc.) to the error message when  is not found in the provided project root.
    - Improve clarity of error messages and potential solutions.
- Add verbose logging in  to trace session object content and the finally resolved project root path, aiding in debugging path-related issues.
- Add default values for  and  to the example  environment configuration.
2025-04-08 15:54:06 -04:00
Eyal Toledano
1f2da33c8c docs: Update rules for MCP/CLI workflow and project root handling
Updated several Cursor rules documentation files (`mcp.mdc`, `utilities.mdc`, `architecture.mdc`, `new_features.mdc`, `commands.mdc`) to accurately reflect recent refactoring and clarify best practices.

Key documentation updates include:

- Explicitly stating the preference for using MCP tools over CLI commands in integrated environments (`commands.mdc`, `dev_workflow.mdc`).

- Describing the new standard pattern for getting the project root using `getProjectRootFromSession` within MCP tool `execute` methods (`mcp.mdc`, `utilities.mdc`, `architecture.mdc`, `new_features.mdc`).

- Clarifying the simplified role of `findTasksJsonPath` in direct functions (`mcp.mdc`, `utilities.mdc`, `architecture.mdc`, `new_features.mdc`).

- Ensuring proper interlinking between related documentation files.
2025-04-08 15:54:06 -04:00
Eyal Toledano
bf22ecb15b feat(mcp): major MCP server improvements and documentation overhaul
- Enhance MCP server robustness and usability:
  - Implement smart project root detection with hierarchical fallbacks
  - Make projectRoot parameter optional across all MCP tools
  - Add comprehensive PROJECT_MARKERS for reliable project detection
  - Improve error messages and logging for better debugging
  - Split monolithic core into focused direct-function files

- Implement full suite of MCP commands:
  - Add task management: update-task, update-subtask, generate
  - Add task organization: expand-task, expand-all, clear-subtasks
  - Add dependency handling: add/remove/validate/fix dependencies
  - Add analysis tools: analyze-complexity, complexity-report
  - Rename commands for better API consistency (list-tasks → get-tasks)

- Enhance documentation and developer experience:
  - Create and bundle new taskmaster.mdc as comprehensive reference
  - Document all tools with natural language patterns and examples
  - Clarify project root auto-detection in documentation
  - Standardize naming conventions across MCP components
  - Add cross-references between related tools and commands

- Improve UI and progress tracking:
  - Add color-coded progress bars with status breakdown
  - Implement cancelled/deferred task status handling
  - Enhance status visualization and counting
  - Optimize display for various terminal sizes

This major update significantly improves the robustness and usability
of the MCP server while providing comprehensive documentation for both
users and developers. The changes make Task Master more intuitive to
use programmatically while maintaining full CLI functionality.
2025-04-08 15:54:06 -04:00
Eyal Toledano
d23442d36d fix(mcp): make projectRoot optional in all MCP tools
- Update all tool definitions to use z.string().optional() for projectRoot
- Fix direct function implementations to use findTasksJsonPath(args, log) pattern
- Enables consistent project root detection without requiring explicit params
- Update changeset to document these improvements

This change ensures MCP tools work properly with the smart project root
detection system, removing the need for explicit projectRoot parameters in
client applications. Improves usability and reduces integration friction.
2025-04-08 15:54:06 -04:00
Eyal Toledano
8ab6eaceca chore/doc: renames list-tasks to get-tasks and show-tasks to get-tasks in the mcp tools to follow api conventions and likely natural language used (get my tasks). also updates changeset. 2025-04-08 15:54:06 -04:00
Eyal Toledano
85c505e31a chore: changesett 2025-04-08 15:54:06 -04:00
Eyal Toledano
e607c5481c feat(paths): Implement robust project root detection and path utilities
Overhauls the project root detection system with a hierarchical precedence mechanism that intelligently locates tasks.json and identifies project roots. This improves user experience by reducing the need for explicit path parameters and enhances cross-platform compatibility.

Key Improvements:
- Implement hierarchical precedence for project root detection:
  * Environment variable override (TASK_MASTER_PROJECT_ROOT)
  * Explicitly provided --project-root parameter
  * Cached project root from previous successful operations
  * Current directory with project markers
  * Parent directory traversal to find tasks.json
  * Package directory as fallback

- Create comprehensive PROJECT_MARKERS detection system with 20+ common indicators:
  * Task Master specific files (tasks.json, tasks/tasks.json)
  * Version control directories (.git, .svn)
  * Package manifests (package.json, pyproject.toml, Gemfile, go.mod, Cargo.toml)
  * IDE/editor configurations (.cursor, .vscode, .idea)
  * Dependency directories (node_modules, venv, .venv)
  * Configuration files (.env, tsconfig.json, webpack.config.js)
  * CI/CD files (.github/workflows, .gitlab-ci.yml, .circleci/config.yml)

- DRY refactoring of path utilities:
  * Centralize path-related functions in core/utils/path-utils.js
  * Export PROJECT_MARKERS as a single source of truth
  * Add caching via lastFoundProjectRoot for performance optimization

- Enhanced user experience:
  * Improve error messages with specific troubleshooting guidance
  * Add detailed logging to indicate project root detection source
  * Update tool parameter descriptions for better clarity
  * Add recursive parent directory searching for tasks.json

Testing:
- Verified in local dev environment
- Added unit tests for the progress bar visualization
- Updated "automatically detected" description in MCP tools

This commit addresses Task #38: Implement robust project root handling for file paths.
2025-04-08 15:53:47 -04:00
Eyal Toledano
8ce7db99d9 Enhance progress bars with status breakdown, improve readability, optimize display width, and update changeset 2025-04-08 15:51:55 -04:00
Eyal Toledano
3abb0f181a feat(ui): add cancelled status and improve MCP resource docs
- Add cancelled status to UI module for marking tasks cancelled without deletion
- Improve MCP server resource documentation with implementation examples
- Update architecture.mdc with detailed resource management info
- Add comprehensive resource handling guide to mcp.mdc
- Update changeset to reflect new features and documentation
- Mark task 23.6 as cancelled (MCP SDK integration no longer needed)
- Complete task 23.12 (structured logging system)
2025-04-08 15:51:55 -04:00
Eyal Toledano
17b6ebef6b feat(mcp): Implement add-dependency MCP command for creating dependency relationships between tasks 2025-04-08 15:51:55 -04:00
Eyal Toledano
b05da39803 feat(mcp): Implement complexity-report MCP command for displaying task complexity analysis reports 2025-04-08 15:51:55 -04:00
Eyal Toledano
6657ca817c Implement fix-dependencies MCP command for automatically fixing invalid dependencies 2025-04-08 15:51:55 -04:00
Eyal Toledano
4d2db4d165 Implement validate-dependencies MCP command for checking dependency validity 2025-04-08 15:51:55 -04:00
Eyal Toledano
42907c522e Implement remove-dependency MCP command for removing dependencies from tasks 2025-04-08 15:51:55 -04:00
Eyal Toledano
998f6aaf72 feat(ui): add color-coded progress bar to task show view for visualizing subtask completion status 2025-04-08 15:51:55 -04:00
Eyal Toledano
3877341ac3 Implement expand-all MCP command for expanding all pending tasks with subtasks 2025-04-08 15:51:55 -04:00
Eyal Toledano
37c68a05c5 Implement clear-subtasks MCP command for clearing subtasks from parent tasks 2025-04-08 15:51:55 -04:00