feat(extension): implement simple solution to --package flag#1090
feat(extension): implement simple solution to --package flag#1090Crunchyman-ralph merged 5 commits intonextfrom
Conversation
🦋 Changeset detectedLatest commit: 3eae155 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
Warning Rate limit exceeded@Crunchyman-ralph has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 3 minutes and 12 seconds before requesting another review. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. 📒 Files selected for processing (1)
WalkthroughThe changes update the MCP server connection logic and configuration in the extension. The default command and arguments for launching the MCP server are adjusted to prefer a bundled server using Changes
Sequence Diagram(s)sequenceDiagram
participant Extension
participant MCPClientManager
participant MCP Server
Extension->>MCPClientManager: Initialize connection
MCPClientManager->>MCPClientManager: Check config (command/args)
alt Command is "node" and args are empty
MCPClientManager->>MCPClientManager: Try to resolve bundled server path
alt Bundled server found
MCPClientManager->>MCP Server: Start bundled server
else Bundled server missing
MCPClientManager->>MCPClientManager: Fallback to "npx" with "task-master-ai"
MCPClientManager->>MCP Server: Start via npx
end
else
MCPClientManager->>MCP Server: Start with configured command/args
end
MCPClientManager->>MCP Server: Connect
MCPClientManager->>MCP Server: Call 'get_tasks' for version info
MCP Server-->>MCPClientManager: Return version/package/tag info
MCPClientManager->>Extension: Log version info
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Possibly related PRs
Suggested reviewers
✨ Finishing Touches
🧪 Generate unit tests
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
There was a problem hiding this comment.
Actionable comments posted: 1
🔭 Outside diff range comments (2)
apps/extension/package.publish.json (1)
88-100: Configuration inconsistency with development package.json.The default configuration in this publication manifest still shows the old values (
"npx"command with["-y", "--package=task-master-ai", "task-master-ai"]args), while the developmentpackage.jsonhas been updated to use"node"with empty args. This inconsistency could confuse users about the actual default behavior.Apply this diff to align with the development configuration:
- "default": "npx", - "description": "The command or absolute path to execute for the MCP server (e.g., 'npx' or '/usr/local/bin/task-master-ai')." + "default": "node", + "description": "The command to execute for the MCP server (e.g., 'node' for bundled server or 'npx' for remote)."- "default": ["-y", "--package=task-master-ai", "task-master-ai"], - "description": "An array of arguments to pass to the MCP server command." + "default": [], + "description": "Arguments for the MCP server (leave empty to use bundled server)."apps/extension/package.json (1)
227-240: Missing required test scripts per coding guidelines.The coding guidelines require package.json files to include comprehensive test scripts: test, test:watch, test:coverage, test:unit, test:integration, test:e2e, and test:ci.
Add the missing test scripts:
"scripts": { "vscode:prepublish": "npm run build", + "test": "npm run test:unit", + "test:unit": "mocha --require tsx/cjs out/test/**/*.test.js", + "test:watch": "npm run test:unit -- --watch", + "test:coverage": "c8 npm run test:unit", + "test:integration": "vscode-test", + "test:e2e": "vscode-test --extensionDevelopmentPath=. --extensionTestsPath=./out/test/e2e", + "test:ci": "npm run test:coverage && npm run test:integration", "build": "npm run build:js && npm run build:css",
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (1)
package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (4)
apps/extension/package.json(2 hunks)apps/extension/package.publish.json(1 hunks)apps/extension/src/utils/mcpClient.ts(1 hunks)package.json(1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
package.json
📄 CodeRabbit Inference Engine (.cursor/rules/test_workflow.mdc)
Add and update test scripts in package.json to include test, test:watch, test:coverage, test:unit, test:integration, test:e2e, and test:ci
Files:
package.json
🧠 Learnings (42)
📓 Common learnings
Learnt from: eyaltoledano
PR: eyaltoledano/claude-task-master#1069
File: .changeset/floppy-news-buy.md:7-38
Timestamp: 2025-08-02T14:54:52.216Z
Learning: For major feature additions like new CLI commands, eyaltoledano prefers detailed changesets with comprehensive descriptions, usage examples, and feature explanations rather than minimal single-line summaries.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/git_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:31.810Z
Learning: Pull Request descriptions must use the provided template, including Task Overview, Subtasks Completed, Implementation Details, Testing, Breaking Changes, and Related Tasks
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#997
File: apps/extension/package.publish.json:2-8
Timestamp: 2025-07-31T20:49:04.638Z
Learning: In the eyaltoledano/claude-task-master repository, the VS Code extension uses a 3-file packaging system where package.json (with name "extension") is for development within the monorepo, while package.publish.json (with name "task-master-hamster") contains the clean manifest for VS Code marketplace publishing. The different names are intentional and serve distinct purposes in the build and publishing workflow.
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1069
File: .changeset/fix-tag-complexity-detection.md:0-0
Timestamp: 2025-08-02T15:33:22.656Z
Learning: For changeset files (.changeset/*.md), Crunchyman-ralph prefers to ignore formatting nitpicks about blank lines between frontmatter and descriptions, as he doesn't mind having them and wants to avoid such comments in future reviews.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/changeset.mdc:0-0
Timestamp: 2025-07-18T17:07:53.100Z
Learning: Applies to .changeset/*.md : The changeset summary should be user-facing, describing what changed in the released version that is relevant to users or consumers of the package.
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1002
File: .changeset/puny-friends-give.md:2-3
Timestamp: 2025-07-17T21:33:57.585Z
Learning: In the eyaltoledano/claude-task-master repository, the MCP server code in mcp-server/src/ is part of the main "task-master-ai" package, not a separate "mcp-server" package. When creating changesets for MCP server changes, use "task-master-ai" as the package name.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/taskmaster.mdc:0-0
Timestamp: 2025-07-31T22:08:16.039Z
Learning: Applies to .taskmaster/config.json : Do not manually edit the .taskmaster/config.json file. Use the included commands either in the MCP or CLI format as needed. Always prioritize MCP tools when available and use the CLI as a fallback.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : MCP tools must follow a specific structure: use server.addTool with snake_case tool names, define parameters using Zod, and implement the execute function as an async function.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/taskmaster.mdc:0-0
Timestamp: 2025-07-31T22:08:16.039Z
Learning: Applies to .taskmaster/config.json : Do not manually edit the .taskmaster/config.json file; always use the provided CLI or MCP tools for configuration changes.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/{tools,core/direct-functions}/*.js : Use helpers from mcp-server/src/tools/utils.js, mcp-server/src/core/utils/path-utils.js, and mcp-server/src/core/utils/ai-client-utils.js for centralized utilities.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : MCP tools should always call *Direct wrappers instead of executeTaskMasterCommand, except as a fallback if a direct function is not yet implemented.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : Use snake_case for tool names exposed to MCP clients in server.addTool definitions.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: Use the Taskmaster command set (`task-master` CLI or MCP tools) for all task management operations: listing, expanding, updating, tagging, and status changes.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/new_features.mdc:0-0
Timestamp: 2025-07-18T17:12:57.903Z
Learning: Applies to scripts/modules/*.js : When implementing project initialization commands, support both CLI and MCP, support non-interactive modes with sensible defaults, handle project metadata, and create necessary files and directories.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/glossary.mdc:0-0
Timestamp: 2025-07-18T17:10:53.657Z
Learning: Guidelines for implementing and interacting with the Task Master MCP Server (mcp.mdc).
📚 Learning: in the eyaltoledano/claude-task-master repository, the vs code extension uses a 3-file packaging sys...
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#997
File: apps/extension/package.publish.json:2-8
Timestamp: 2025-07-31T20:49:04.638Z
Learning: In the eyaltoledano/claude-task-master repository, the VS Code extension uses a 3-file packaging system where package.json (with name "extension") is for development within the monorepo, while package.publish.json (with name "task-master-hamster") contains the clean manifest for VS Code marketplace publishing. The different names are intentional and serve distinct purposes in the build and publishing workflow.
Applied to files:
apps/extension/package.publish.jsonpackage.jsonapps/extension/package.json
📚 Learning: applies to .changeset/*.md : the changeset summary should be user-facing, describing what changed in...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/changeset.mdc:0-0
Timestamp: 2025-07-18T17:07:53.100Z
Learning: Applies to .changeset/*.md : The changeset summary should be user-facing, describing what changed in the released version that is relevant to users or consumers of the package.
Applied to files:
apps/extension/package.publish.json
📚 Learning: document breaking changes...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/self_improve.mdc:0-0
Timestamp: 2025-07-18T17:13:11.229Z
Learning: Document breaking changes
Applied to files:
apps/extension/package.publish.jsonpackage.json
📚 Learning: use `task-master add-task` to add a new task to tasks.json using ai....
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Use `task-master add-task` to add a new task to tasks.json using AI.
Applied to files:
apps/extension/package.publish.jsonpackage.jsonapps/extension/package.json
📚 Learning: for cli usage, install taskmaster globally with `npm install -g task-master-ai` or use locally via `...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: For CLI usage, install Taskmaster globally with `npm install -g task-master-ai` or use locally via `npx task-master-ai ...`.
Applied to files:
apps/extension/package.publish.jsonpackage.jsonapps/extension/src/utils/mcpClient.tsapps/extension/package.json
📚 Learning: applies to tasks.json : use the `tasks.json` file (generated by taskmaster) to store the project's t...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: Applies to tasks.json : Use the `tasks.json` file (generated by Taskmaster) to store the project's task list, including tags and task structures.
Applied to files:
apps/extension/package.publish.json
📚 Learning: applies to scripts/modules/task-manager.js : use consistent formatting for task files, include all t...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/tasks.mdc:0-0
Timestamp: 2025-07-18T17:14:29.399Z
Learning: Applies to scripts/modules/task-manager.js : Use consistent formatting for task files, include all task properties in text files, and format dependencies with status indicators.
Applied to files:
apps/extension/package.publish.jsonpackage.jsonapps/extension/package.json
📚 Learning: applies to .taskmaster/config.json : store taskmaster configuration settings (ai model selections, p...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:02.683Z
Learning: Applies to .taskmaster/config.json : Store Taskmaster configuration settings (AI model selections, parameters, logging level, default subtasks/priority, project name, tag management) in `.taskmaster/config.json` in the project root. Do not configure these via environment variables.
Applied to files:
apps/extension/package.publish.jsonpackage.jsonapps/extension/package.json
📚 Learning: generate task files with `task-master generate` after updating tasks.json....
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Generate task files with `task-master generate` after updating tasks.json.
Applied to files:
apps/extension/package.publish.jsonapps/extension/package.json
📚 Learning: applies to scripts/modules/task-manager.js : the default tag 'master' must be used for all existing ...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/tasks.mdc:0-0
Timestamp: 2025-07-18T17:14:29.399Z
Learning: Applies to scripts/modules/task-manager.js : The default tag 'master' must be used for all existing and new tasks unless otherwise specified.
Applied to files:
apps/extension/package.publish.jsonpackage.json
📚 Learning: applies to scripts/modules/task-manager.js : tasks must be organized into separate contexts (tags) w...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/tasks.mdc:0-0
Timestamp: 2025-07-18T17:14:29.399Z
Learning: Applies to scripts/modules/task-manager.js : Tasks must be organized into separate contexts (tags) within tasks.json, using the tagged format: {"master": {"tasks": [...]}, "feature-branch": {"tasks": [...]}}. Legacy format {"tasks": [...]} must be silently migrated to the tagged format on first use.
Applied to files:
apps/extension/package.publish.json
📚 Learning: start new projects by running `task-master init` or `node scripts/dev.js parse-prd --input=
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Start new projects by running `task-master init` or `node scripts/dev.js parse-prd --input=<prd-file.txt>` to generate the initial tasks.json.
Applied to files:
apps/extension/package.publish.json
package.json
apps/extension/package.json
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Start new projects by running `task-master init` or `node scripts/dev.js parse-prd --input=<prd-file.txt>` to generate the initial tasks.json.
apps/extension/package.publish.jsonpackage.jsonapps/extension/package.json📚 Learning: guidelines for using changesets (npm run changeset) to manage versioning and changelogs (changeset.m...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/glossary.mdc:0-0
Timestamp: 2025-07-18T17:10:53.657Z
Learning: Guidelines for using Changesets (npm run changeset) to manage versioning and changelogs (changeset.mdc).
Applied to files:
package.json
📚 Learning: applies to package.json : add and update test scripts in package.json to include test, test:watch, t...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/test_workflow.mdc:0-0
Timestamp: 2025-08-03T12:13:33.875Z
Learning: Applies to package.json : Add and update test scripts in package.json to include test, test:watch, test:coverage, test:unit, test:integration, test:e2e, and test:ci
Applied to files:
package.jsonapps/extension/package.json
📚 Learning: use the global `task-master` cli command instead of directly invoking `node scripts/dev.js` for all ...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Use the global `task-master` CLI command instead of directly invoking `node scripts/dev.js` for all task management operations.
Applied to files:
package.jsonapps/extension/src/utils/mcpClient.tsapps/extension/package.json
📚 Learning: applies to scripts/modules/task-manager.js : extract tasks from prd documents using ai, create them ...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/tasks.mdc:0-0
Timestamp: 2025-07-18T17:14:29.399Z
Learning: Applies to scripts/modules/task-manager.js : Extract tasks from PRD documents using AI, create them in the current tag context (defaulting to 'master'), provide clear prompts to guide AI task generation, and validate/clean up AI-generated tasks.
Applied to files:
package.json
📚 Learning: in the eyaltoledano/claude-task-master repository, the mcp server code in mcp-server/src/ is part of...
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1002
File: .changeset/puny-friends-give.md:2-3
Timestamp: 2025-07-17T21:33:57.585Z
Learning: In the eyaltoledano/claude-task-master repository, the MCP server code in mcp-server/src/ is part of the main "task-master-ai" package, not a separate "mcp-server" package. When creating changesets for MCP server changes, use "task-master-ai" as the package name.
Applied to files:
package.jsonapps/extension/src/utils/mcpClient.tsapps/extension/package.json
📚 Learning: applies to mcp-server/src/{tools,core/direct-functions}/*.js : use helpers from mcp-server/src/tools...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/{tools,core/direct-functions}/*.js : Use helpers from mcp-server/src/tools/utils.js, mcp-server/src/core/utils/path-utils.js, and mcp-server/src/core/utils/ai-client-utils.js for centralized utilities.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/*.js : use snake_case for tool names exposed to mcp clients in serve...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : Use snake_case for tool names exposed to MCP clients in server.addTool definitions.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/*.js : mcp tools should always call *direct wrappers instead of exec...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : MCP tools should always call *Direct wrappers instead of executeTaskMasterCommand, except as a fallback if a direct function is not yet implemented.
Applied to files:
apps/extension/src/utils/mcpClient.tsapps/extension/package.json
📚 Learning: applies to mcp-server/src/tools/*.js : mcp tools must follow a specific structure: use server.addtoo...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : MCP tools must follow a specific structure: use server.addTool with snake_case tool names, define parameters using Zod, and implement the execute function as an async function.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/{core/utils,tools}/**/*.js : place utilities specifically designed to supp...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/utilities.mdc:0-0
Timestamp: 2025-07-18T17:18:17.759Z
Learning: Applies to mcp-server/src/{core/utils,tools}/**/*.js : Place utilities specifically designed to support the MCP server implementation into the appropriate subdirectories within `mcp-server/src/` (e.g., path/core logic helpers in `mcp-server/src/core/utils/`, tool execution/response helpers in `mcp-server/src/tools/utils.js`).
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/*.js : use camelcase with tool suffix for tool registration function...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : Use camelCase with Tool suffix for tool registration functions in mcp-server/src/tools/.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/utils.js : use `handleapiresult`, `createcontentresponse`, `createer...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/utilities.mdc:0-0
Timestamp: 2025-07-18T17:18:17.759Z
Learning: Applies to mcp-server/src/tools/utils.js : Use `handleApiResult`, `createContentResponse`, `createErrorResponse`, `getCachedOrExecute`, and `processMCPResponseData` in `mcp-server/src/tools/utils.js` to standardize MCP tool responses and caching.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/*.js : mcp server tools in mcp-server/src/tools/*.js must have their...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/architecture.mdc:0-0
Timestamp: 2025-07-18T17:07:39.336Z
Learning: Applies to mcp-server/src/tools/*.js : MCP server tools in mcp-server/src/tools/*.js must have their execute methods wrapped with the withNormalizedProjectRoot higher-order function from tools/utils.js to ensure consistent path handling.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to .taskmaster/config.json : do not manually edit the .taskmaster/config.json file. use the ...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/taskmaster.mdc:0-0
Timestamp: 2025-07-31T22:08:16.039Z
Learning: Applies to .taskmaster/config.json : Do not manually edit the .taskmaster/config.json file. Use the included commands either in the MCP or CLI format as needed. Always prioritize MCP tools when available and use the CLI as a fallback.
Applied to files:
apps/extension/src/utils/mcpClient.tsapps/extension/package.json
📚 Learning: applies to mcp-server/src/core/utils/path-utils.js : call `findtasksjsonpath(args, log)` from within...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/utilities.mdc:0-0
Timestamp: 2025-07-18T17:18:17.759Z
Learning: Applies to mcp-server/src/core/utils/path-utils.js : Call `findTasksJsonPath(args, log)` from within direct function wrappers in `mcp-server/src/core/direct-functions/` to get the absolute path to the relevant `tasks.json`.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: use the taskmaster command set (`task-master` cli or mcp tools) for all task management operations: ...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: Use the Taskmaster command set (`task-master` CLI or MCP tools) for all task management operations: listing, expanding, updating, tagging, and status changes.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: if an mcp tool fails with unclear errors (like json parsing failures), run the equivalent task-maste...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: If an MCP tool fails with unclear errors (like JSON parsing failures), run the equivalent task-master CLI command in the terminal to get more detailed error messages.
Applied to files:
apps/extension/src/utils/mcpClient.tsapps/extension/package.json
📚 Learning: applies to mcp-server/src/core/direct-functions/*.js : the *direct function is responsible for findi...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/core/direct-functions/*.js : The *Direct function is responsible for finding the exact tasks.json path using findTasksJsonPath, relying on the projectRoot passed in args.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to scripts/modules/*.js : when implementing project initialization commands, support both cl...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/new_features.mdc:0-0
Timestamp: 2025-07-18T17:12:57.903Z
Learning: Applies to scripts/modules/*.js : When implementing project initialization commands, support both CLI and MCP, support non-interactive modes with sensible defaults, handle project metadata, and create necessary files and directories.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to .taskmaster/config.json : all other taskmaster settings (model choice, max tokens, temper...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/taskmaster.mdc:0-0
Timestamp: 2025-07-31T22:08:16.039Z
Learning: Applies to .taskmaster/config.json : All other Taskmaster settings (model choice, max tokens, temperature, log level, custom endpoints) are managed in .taskmaster/config.json via the task-master models command or models MCP tool.
Applied to files:
apps/extension/src/utils/mcpClient.tsapps/extension/package.json
📚 Learning: applies to .taskmaster/config.json : do not manually edit the .taskmaster/config.json file; always u...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/taskmaster.mdc:0-0
Timestamp: 2025-07-31T22:08:16.039Z
Learning: Applies to .taskmaster/config.json : Do not manually edit the .taskmaster/config.json file; always use the provided CLI or MCP tools for configuration changes.
Applied to files:
apps/extension/package.json
📚 Learning: applies to .taskmaster/config.json : do not manually edit `.taskmaster/config.json` unless you are c...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: Applies to .taskmaster/config.json : Do not manually edit `.taskmaster/config.json` unless you are certain of the changes; use the `task-master models` command or `models` MCP tool for configuration.
Applied to files:
apps/extension/package.json
📚 Learning: applies to .taskmaster/config.json : store taskmaster configuration settings (ai model selections, p...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: Applies to .taskmaster/config.json : Store Taskmaster configuration settings (AI model selections, parameters, logging level, default subtasks/priority, project name, etc.) in the `.taskmaster/config.json` file located in the project root directory. Do not configure non-API key settings via environment variables.
Applied to files:
apps/extension/package.json
📚 Learning: comprehensive reference for taskmaster mcp tools and cli commands with tagged task lists information...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/glossary.mdc:0-0
Timestamp: 2025-07-18T17:10:53.657Z
Learning: Comprehensive reference for Taskmaster MCP tools and CLI commands with tagged task lists information (taskmaster.mdc).
Applied to files:
apps/extension/package.json
📚 Learning: applies to .taskmasterconfig : use `.taskmasterconfig` (json) in the project root for storing taskma...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/utilities.mdc:0-0
Timestamp: 2025-07-18T17:18:17.759Z
Learning: Applies to .taskmasterconfig : Use `.taskmasterconfig` (JSON) in the project root for storing Taskmaster configuration (excluding API keys), and manage it via the `task-master models --setup` CLI command or the `models` MCP tool.
Applied to files:
apps/extension/package.json
📚 Learning: guidelines for implementing and interacting with the task master mcp server (mcp.mdc)....
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/glossary.mdc:0-0
Timestamp: 2025-07-18T17:10:53.657Z
Learning: Guidelines for implementing and interacting with the Task Master MCP Server (mcp.mdc).
Applied to files:
apps/extension/package.json
📚 Learning: use `task-master fix-dependencies` to find and fix all invalid dependencies in tasks.json and task f...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Use `task-master fix-dependencies` to find and fix all invalid dependencies in tasks.json and task files.
Applied to files:
apps/extension/package.json
📚 Learning: use `task-master validate-dependencies` to check for and identify invalid dependencies in tasks.json...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Use `task-master validate-dependencies` to check for and identify invalid dependencies in tasks.json and task files.
Applied to files:
apps/extension/package.json
📚 Learning: maintain valid dependency structure with `task-master fix-dependencies` when needed....
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Maintain valid dependency structure with `task-master fix-dependencies` when needed.
Applied to files:
apps/extension/package.json
🔇 Additional comments (5)
package.json (1)
3-3: LGTM - Version bump aligns with coordinated release.The version update from "0.23.1-rc.0" to "0.24" is consistent with the extension version updates and reflects a coordinated release.
apps/extension/package.publish.json (1)
5-5: LGTM - Version increment is appropriate.Version update to "0.23.0" aligns with the feature changes in this release.
apps/extension/package.json (2)
67-76: LGTM - Configuration changes align with bundled server implementation.The changes to default MCP command (
"node") and empty args array, along with updated descriptions, properly support the new bundled server preference with fallback to npx execution.
241-243: LGTM - Dependency addition enables bundled server functionality.Adding
"task-master-ai": "*"as a dependency enables the bundled MCP server resolution logic implemented inmcpClient.ts.apps/extension/src/utils/mcpClient.ts (1)
348-366: LGTM - Bundled server resolution with proper fallback logic.The implementation correctly attempts to resolve the bundled MCP server path and falls back to npx execution when the bundled server is unavailable. Error handling and logging are appropriate.
98ae6ec to
6e76130
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
🔭 Outside diff range comments (2)
package.json (1)
14-19: Test scripts mostly comply with coding guidelines but could be enhanced.The existing test scripts cover most requirements, but according to coding guidelines, package.json should include
test:unitandtest:integrationscripts explicitly.Consider adding explicit unit and integration test scripts for better clarity:
"test": "node --experimental-vm-modules node_modules/.bin/jest", "test:fails": "node --experimental-vm-modules node_modules/.bin/jest --onlyFailures", "test:watch": "node --experimental-vm-modules node_modules/.bin/jest --watch", "test:coverage": "node --experimental-vm-modules node_modules/.bin/jest --coverage", + "test:unit": "node --experimental-vm-modules node_modules/.bin/jest --testPathPattern=unit", + "test:integration": "node --experimental-vm-modules node_modules/.bin/jest --testPathPattern=integration", + "test:ci": "npm run test:unit && npm run test:integration && npm run test:e2e", "test:e2e": "./tests/e2e/run_e2e.sh",apps/extension/package.json (1)
227-240: Missing required test scripts.According to the coding guidelines, package.json files should include comprehensive test scripts (test, test:watch, test:coverage, test:unit, test:integration, test:e2e, and test:ci).
Add the required test scripts:
"scripts": { "vscode:prepublish": "npm run build", "build": "npm run build:js && npm run build:css", "build:js": "node ./esbuild.js --production", "build:css": "npx @tailwindcss/cli -i ./src/webview/index.css -o ./dist/index.css --minify", "package": "npm exec node ./package.mjs", "package:direct": "node ./package.mjs", "debug:env": "node ./debug-env.mjs", "compile": "node ./esbuild.js", "watch": "npm run watch:js & npm run watch:css", "watch:js": "node ./esbuild.js --watch", "watch:css": "npx @tailwindcss/cli -i ./src/webview/index.css -o ./dist/index.css --watch", - "check-types": "tsc --noEmit" + "check-types": "tsc --noEmit", + "test": "jest", + "test:watch": "jest --watch", + "test:coverage": "jest --coverage", + "test:unit": "jest --testPathPattern=unit", + "test:integration": "jest --testPathPattern=integration", + "test:e2e": "jest --testPathPattern=e2e", + "test:ci": "npm run test:unit && npm run test:integration && npm run test:e2e" },
♻️ Duplicate comments (1)
apps/extension/src/utils/mcpClient.ts (1)
354-357: Consider more robust path resolution.The current
require.resolve()approach works but could be more explicit about the expected module structure, as noted in previous review.The existing approach using
require.resolve()is functional, but consider usingpath.resolve()combined with explicit path construction for more clarity and robustness in path resolution.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (1)
package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (4)
apps/extension/package.json(2 hunks)apps/extension/package.publish.json(1 hunks)apps/extension/src/utils/mcpClient.ts(1 hunks)package.json(1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
package.json
📄 CodeRabbit Inference Engine (.cursor/rules/test_workflow.mdc)
Add and update test scripts in package.json to include test, test:watch, test:coverage, test:unit, test:integration, test:e2e, and test:ci
Files:
package.json
🧠 Learnings (51)
📓 Common learnings
Learnt from: eyaltoledano
PR: eyaltoledano/claude-task-master#1069
File: .changeset/floppy-news-buy.md:7-38
Timestamp: 2025-08-02T14:54:52.216Z
Learning: For major feature additions like new CLI commands, eyaltoledano prefers detailed changesets with comprehensive descriptions, usage examples, and feature explanations rather than minimal single-line summaries.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/git_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:31.810Z
Learning: Pull Request descriptions must use the provided template, including Task Overview, Subtasks Completed, Implementation Details, Testing, Breaking Changes, and Related Tasks
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#997
File: apps/extension/package.publish.json:2-8
Timestamp: 2025-07-31T20:49:04.638Z
Learning: In the eyaltoledano/claude-task-master repository, the VS Code extension uses a 3-file packaging system where package.json (with name "extension") is for development within the monorepo, while package.publish.json (with name "task-master-hamster") contains the clean manifest for VS Code marketplace publishing. The different names are intentional and serve distinct purposes in the build and publishing workflow.
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1069
File: .changeset/fix-tag-complexity-detection.md:0-0
Timestamp: 2025-08-02T15:33:22.656Z
Learning: For changeset files (.changeset/*.md), Crunchyman-ralph prefers to ignore formatting nitpicks about blank lines between frontmatter and descriptions, as he doesn't mind having them and wants to avoid such comments in future reviews.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/changeset.mdc:0-0
Timestamp: 2025-07-18T17:07:53.100Z
Learning: Applies to .changeset/*.md : The changeset summary should be user-facing, describing what changed in the released version that is relevant to users or consumers of the package.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/glossary.mdc:0-0
Timestamp: 2025-07-18T17:10:53.657Z
Learning: Guidelines for integrating new features into the Task Master CLI with tagged system considerations (new_features.mdc).
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1002
File: .changeset/puny-friends-give.md:2-3
Timestamp: 2025-07-17T21:33:57.585Z
Learning: In the eyaltoledano/claude-task-master repository, the MCP server code in mcp-server/src/ is part of the main "task-master-ai" package, not a separate "mcp-server" package. When creating changesets for MCP server changes, use "task-master-ai" as the package name.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/taskmaster.mdc:0-0
Timestamp: 2025-07-31T22:08:16.039Z
Learning: Applies to .taskmaster/config.json : Do not manually edit the .taskmaster/config.json file. Use the included commands either in the MCP or CLI format as needed. Always prioritize MCP tools when available and use the CLI as a fallback.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : MCP tools must follow a specific structure: use server.addTool with snake_case tool names, define parameters using Zod, and implement the execute function as an async function.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/taskmaster.mdc:0-0
Timestamp: 2025-07-31T22:08:16.039Z
Learning: Applies to .taskmaster/config.json : Do not manually edit the .taskmaster/config.json file; always use the provided CLI or MCP tools for configuration changes.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/{tools,core/direct-functions}/*.js : Use helpers from mcp-server/src/tools/utils.js, mcp-server/src/core/utils/path-utils.js, and mcp-server/src/core/utils/ai-client-utils.js for centralized utilities.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : MCP tools should always call *Direct wrappers instead of executeTaskMasterCommand, except as a fallback if a direct function is not yet implemented.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : Use snake_case for tool names exposed to MCP clients in server.addTool definitions.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: Use the Taskmaster command set (`task-master` CLI or MCP tools) for all task management operations: listing, expanding, updating, tagging, and status changes.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/new_features.mdc:0-0
Timestamp: 2025-07-18T17:12:57.903Z
Learning: Applies to scripts/modules/*.js : When implementing project initialization commands, support both CLI and MCP, support non-interactive modes with sensible defaults, handle project metadata, and create necessary files and directories.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/glossary.mdc:0-0
Timestamp: 2025-07-18T17:10:53.657Z
Learning: Guidelines for implementing and interacting with the Task Master MCP Server (mcp.mdc).
📚 Learning: in the eyaltoledano/claude-task-master repository, the vs code extension uses a 3-file packaging sys...
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#997
File: apps/extension/package.publish.json:2-8
Timestamp: 2025-07-31T20:49:04.638Z
Learning: In the eyaltoledano/claude-task-master repository, the VS Code extension uses a 3-file packaging system where package.json (with name "extension") is for development within the monorepo, while package.publish.json (with name "task-master-hamster") contains the clean manifest for VS Code marketplace publishing. The different names are intentional and serve distinct purposes in the build and publishing workflow.
Applied to files:
apps/extension/package.publish.jsonpackage.jsonapps/extension/package.json
📚 Learning: applies to .changeset/*.md : the changeset summary should be user-facing, describing what changed in...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/changeset.mdc:0-0
Timestamp: 2025-07-18T17:07:53.100Z
Learning: Applies to .changeset/*.md : The changeset summary should be user-facing, describing what changed in the released version that is relevant to users or consumers of the package.
Applied to files:
apps/extension/package.publish.jsonpackage.json
📚 Learning: document breaking changes...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/self_improve.mdc:0-0
Timestamp: 2025-07-18T17:13:11.229Z
Learning: Document breaking changes
Applied to files:
apps/extension/package.publish.jsonpackage.json
📚 Learning: every pull request containing new features, bug fixes, breaking changes, performance improvements, s...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/changeset.mdc:0-0
Timestamp: 2025-07-18T17:07:53.100Z
Learning: Every pull request containing new features, bug fixes, breaking changes, performance improvements, significant refactoring, user-facing documentation updates, dependency updates, or impactful build/tooling changes should include a changeset file.
Applied to files:
apps/extension/package.publish.jsonpackage.json
📚 Learning: use `task-master add-task` to add a new task to tasks.json using ai....
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Use `task-master add-task` to add a new task to tasks.json using AI.
Applied to files:
apps/extension/package.publish.jsonpackage.jsonapps/extension/package.json
📚 Learning: for cli usage, install taskmaster globally with `npm install -g task-master-ai` or use locally via `...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: For CLI usage, install Taskmaster globally with `npm install -g task-master-ai` or use locally via `npx task-master-ai ...`.
Applied to files:
apps/extension/package.publish.jsonpackage.jsonapps/extension/src/utils/mcpClient.tsapps/extension/package.json
📚 Learning: applies to tasks.json : use the `tasks.json` file (generated by taskmaster) to store the project's t...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: Applies to tasks.json : Use the `tasks.json` file (generated by Taskmaster) to store the project's task list, including tags and task structures.
Applied to files:
apps/extension/package.publish.json
📚 Learning: applies to scripts/modules/task-manager.js : use consistent formatting for task files, include all t...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/tasks.mdc:0-0
Timestamp: 2025-07-18T17:14:29.399Z
Learning: Applies to scripts/modules/task-manager.js : Use consistent formatting for task files, include all task properties in text files, and format dependencies with status indicators.
Applied to files:
apps/extension/package.publish.jsonpackage.jsonapps/extension/package.json
📚 Learning: applies to .taskmaster/config.json : store taskmaster configuration settings (ai model selections, p...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:02.683Z
Learning: Applies to .taskmaster/config.json : Store Taskmaster configuration settings (AI model selections, parameters, logging level, default subtasks/priority, project name, tag management) in `.taskmaster/config.json` in the project root. Do not configure these via environment variables.
Applied to files:
apps/extension/package.publish.jsonpackage.jsonapps/extension/package.json
📚 Learning: generate task files with `task-master generate` after updating tasks.json....
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Generate task files with `task-master generate` after updating tasks.json.
Applied to files:
apps/extension/package.publish.jsonapps/extension/package.json
📚 Learning: applies to scripts/modules/task-manager.js : the default tag 'master' must be used for all existing ...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/tasks.mdc:0-0
Timestamp: 2025-07-18T17:14:29.399Z
Learning: Applies to scripts/modules/task-manager.js : The default tag 'master' must be used for all existing and new tasks unless otherwise specified.
Applied to files:
apps/extension/package.publish.jsonpackage.json
📚 Learning: applies to scripts/modules/task-manager.js : tasks must be organized into separate contexts (tags) w...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/tasks.mdc:0-0
Timestamp: 2025-07-18T17:14:29.399Z
Learning: Applies to scripts/modules/task-manager.js : Tasks must be organized into separate contexts (tags) within tasks.json, using the tagged format: {"master": {"tasks": [...]}, "feature-branch": {"tasks": [...]}}. Legacy format {"tasks": [...]} must be silently migrated to the tagged format on first use.
Applied to files:
apps/extension/package.publish.json
📚 Learning: start new projects by running `task-master init` or `node scripts/dev.js parse-prd --input=
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Start new projects by running `task-master init` or `node scripts/dev.js parse-prd --input=<prd-file.txt>` to generate the initial tasks.json.
Applied to files:
apps/extension/package.publish.json
package.json
apps/extension/package.json
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Start new projects by running `task-master init` or `node scripts/dev.js parse-prd --input=<prd-file.txt>` to generate the initial tasks.json.
apps/extension/package.publish.jsonpackage.jsonapps/extension/package.json📚 Learning: guidelines for using changesets (npm run changeset) to manage versioning and changelogs (changeset.m...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/glossary.mdc:0-0
Timestamp: 2025-07-18T17:10:53.657Z
Learning: Guidelines for using Changesets (npm run changeset) to manage versioning and changelogs (changeset.mdc).
Applied to files:
package.json
📚 Learning: applies to package.json : add and update test scripts in package.json to include test, test:watch, t...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/test_workflow.mdc:0-0
Timestamp: 2025-08-03T12:13:33.875Z
Learning: Applies to package.json : Add and update test scripts in package.json to include test, test:watch, test:coverage, test:unit, test:integration, test:e2e, and test:ci
Applied to files:
package.jsonapps/extension/package.json
📚 Learning: applies to .changeset/*.md : when running `npm run changeset` or `npx changeset add`, provide a conc...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/changeset.mdc:0-0
Timestamp: 2025-07-18T17:07:53.100Z
Learning: Applies to .changeset/*.md : When running `npm run changeset` or `npx changeset add`, provide a concise summary of the changes for the `CHANGELOG.md` in imperative mood, typically a single line, and not a detailed Git commit message.
Applied to files:
package.json
📚 Learning: use the global `task-master` cli command instead of directly invoking `node scripts/dev.js` for all ...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Use the global `task-master` CLI command instead of directly invoking `node scripts/dev.js` for all task management operations.
Applied to files:
package.jsonapps/extension/src/utils/mcpClient.tsapps/extension/package.json
📚 Learning: applies to scripts/modules/task-manager.js : extract tasks from prd documents using ai, create them ...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/tasks.mdc:0-0
Timestamp: 2025-07-18T17:14:29.399Z
Learning: Applies to scripts/modules/task-manager.js : Extract tasks from PRD documents using AI, create them in the current tag context (defaulting to 'master'), provide clear prompts to guide AI task generation, and validate/clean up AI-generated tasks.
Applied to files:
package.json
📚 Learning: in the eyaltoledano/claude-task-master repository, the mcp server code in mcp-server/src/ is part of...
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1002
File: .changeset/puny-friends-give.md:2-3
Timestamp: 2025-07-17T21:33:57.585Z
Learning: In the eyaltoledano/claude-task-master repository, the MCP server code in mcp-server/src/ is part of the main "task-master-ai" package, not a separate "mcp-server" package. When creating changesets for MCP server changes, use "task-master-ai" as the package name.
Applied to files:
package.jsonapps/extension/src/utils/mcpClient.tsapps/extension/package.json
📚 Learning: applies to mcp-server/src/{tools,core/direct-functions}/*.js : use helpers from mcp-server/src/tools...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/{tools,core/direct-functions}/*.js : Use helpers from mcp-server/src/tools/utils.js, mcp-server/src/core/utils/path-utils.js, and mcp-server/src/core/utils/ai-client-utils.js for centralized utilities.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/*.js : use snake_case for tool names exposed to mcp clients in serve...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : Use snake_case for tool names exposed to MCP clients in server.addTool definitions.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/*.js : mcp tools should always call *direct wrappers instead of exec...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : MCP tools should always call *Direct wrappers instead of executeTaskMasterCommand, except as a fallback if a direct function is not yet implemented.
Applied to files:
apps/extension/src/utils/mcpClient.tsapps/extension/package.json
📚 Learning: applies to mcp-server/src/tools/*.js : mcp tools must follow a specific structure: use server.addtoo...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : MCP tools must follow a specific structure: use server.addTool with snake_case tool names, define parameters using Zod, and implement the execute function as an async function.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/{core/utils,tools}/**/*.js : place utilities specifically designed to supp...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/utilities.mdc:0-0
Timestamp: 2025-07-18T17:18:17.759Z
Learning: Applies to mcp-server/src/{core/utils,tools}/**/*.js : Place utilities specifically designed to support the MCP server implementation into the appropriate subdirectories within `mcp-server/src/` (e.g., path/core logic helpers in `mcp-server/src/core/utils/`, tool execution/response helpers in `mcp-server/src/tools/utils.js`).
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/*.js : use camelcase with tool suffix for tool registration function...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : Use camelCase with Tool suffix for tool registration functions in mcp-server/src/tools/.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/utils.js : use `handleapiresult`, `createcontentresponse`, `createer...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/utilities.mdc:0-0
Timestamp: 2025-07-18T17:18:17.759Z
Learning: Applies to mcp-server/src/tools/utils.js : Use `handleApiResult`, `createContentResponse`, `createErrorResponse`, `getCachedOrExecute`, and `processMCPResponseData` in `mcp-server/src/tools/utils.js` to standardize MCP tool responses and caching.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/*.js : mcp server tools in mcp-server/src/tools/*.js must have their...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/architecture.mdc:0-0
Timestamp: 2025-07-18T17:07:39.336Z
Learning: Applies to mcp-server/src/tools/*.js : MCP server tools in mcp-server/src/tools/*.js must have their execute methods wrapped with the withNormalizedProjectRoot higher-order function from tools/utils.js to ensure consistent path handling.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to .taskmaster/config.json : do not manually edit the .taskmaster/config.json file. use the ...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/taskmaster.mdc:0-0
Timestamp: 2025-07-31T22:08:16.039Z
Learning: Applies to .taskmaster/config.json : Do not manually edit the .taskmaster/config.json file. Use the included commands either in the MCP or CLI format as needed. Always prioritize MCP tools when available and use the CLI as a fallback.
Applied to files:
apps/extension/src/utils/mcpClient.tsapps/extension/package.json
📚 Learning: applies to mcp-server/src/core/direct-functions/*.js : use path.join() instead of string concatenati...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/core/direct-functions/*.js : Use path.join() instead of string concatenation for file paths, and follow established file naming conventions (e.g., 'task_001.txt') in direct functions.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/core/direct-functions/*.js : create direct function wrappers in 'mcp-serve...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/new_features.mdc:0-0
Timestamp: 2025-07-18T17:12:57.903Z
Learning: Applies to mcp-server/src/core/direct-functions/*.js : Create direct function wrappers in 'mcp-server/src/core/direct-functions/' for MCP tool implementation, following silent mode patterns and using findTasksJsonPath for consistent path resolution.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to scripts/modules/*.js : use consistent file naming conventions: 'task_${id.tostring().pads...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/new_features.mdc:0-0
Timestamp: 2025-07-18T17:12:57.903Z
Learning: Applies to scripts/modules/*.js : Use consistent file naming conventions: 'task_${id.toString().padStart(3, '0')}.txt', use path.join for composing file paths, and use appropriate file extensions (.txt for tasks, .json for data).
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to scripts/modules/commands.js : use path.join() to construct file paths, follow established...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/commands.mdc:0-0
Timestamp: 2025-07-18T17:08:48.695Z
Learning: Applies to scripts/modules/commands.js : Use path.join() to construct file paths, follow established naming conventions (like task_001.txt), check file existence before deletion, and handle file deletion errors gracefully.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to **/*.test.js : verify file operations use the correct paths in expect statements....
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/tests.mdc:0-0
Timestamp: 2025-07-18T17:16:13.793Z
Learning: Applies to **/*.test.js : Verify file operations use the correct paths in expect statements.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to scripts/modules/utils.js : use `path.join()` for cross-platform path construction, `path....
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/utilities.mdc:0-0
Timestamp: 2025-07-18T17:18:17.759Z
Learning: Applies to scripts/modules/utils.js : Use `path.join()` for cross-platform path construction, `path.resolve()` for absolute paths, and validate paths before file operations.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/**/*.js : mcp tool files in mcp-server/src/tools/ must call the corr...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/telemetry.mdc:0-0
Timestamp: 2025-07-18T17:14:54.131Z
Learning: Applies to mcp-server/src/tools/**/*.js : MCP tool files in mcp-server/src/tools/ must call the corresponding direct function wrapper and pass the result to handleApiResult(result, log) from mcp-server/src/tools/utils.js, ensuring telemetryData is included in the final MCP response.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/core/utils/path-utils.js : call `findtasksjsonpath(args, log)` from within...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/utilities.mdc:0-0
Timestamp: 2025-07-18T17:18:17.759Z
Learning: Applies to mcp-server/src/core/utils/path-utils.js : Call `findTasksJsonPath(args, log)` from within direct function wrappers in `mcp-server/src/core/direct-functions/` to get the absolute path to the relevant `tasks.json`.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: use the taskmaster command set (`task-master` cli or mcp tools) for all task management operations: ...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: Use the Taskmaster command set (`task-master` CLI or MCP tools) for all task management operations: listing, expanding, updating, tagging, and status changes.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: if an mcp tool fails with unclear errors (like json parsing failures), run the equivalent task-maste...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: If an MCP tool fails with unclear errors (like JSON parsing failures), run the equivalent task-master CLI command in the terminal to get more detailed error messages.
Applied to files:
apps/extension/src/utils/mcpClient.tsapps/extension/package.json
📚 Learning: applies to mcp-server/src/core/direct-functions/*.js : the *direct function is responsible for findi...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/core/direct-functions/*.js : The *Direct function is responsible for finding the exact tasks.json path using findTasksJsonPath, relying on the projectRoot passed in args.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to scripts/modules/*.js : when implementing project initialization commands, support both cl...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/new_features.mdc:0-0
Timestamp: 2025-07-18T17:12:57.903Z
Learning: Applies to scripts/modules/*.js : When implementing project initialization commands, support both CLI and MCP, support non-interactive modes with sensible defaults, handle project metadata, and create necessary files and directories.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to .taskmaster/config.json : all other taskmaster settings (model choice, max tokens, temper...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/taskmaster.mdc:0-0
Timestamp: 2025-07-31T22:08:16.039Z
Learning: Applies to .taskmaster/config.json : All other Taskmaster settings (model choice, max tokens, temperature, log level, custom endpoints) are managed in .taskmaster/config.json via the task-master models command or models MCP tool.
Applied to files:
apps/extension/src/utils/mcpClient.tsapps/extension/package.json
📚 Learning: applies to .taskmaster/config.json : do not manually edit the .taskmaster/config.json file; always u...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/taskmaster.mdc:0-0
Timestamp: 2025-07-31T22:08:16.039Z
Learning: Applies to .taskmaster/config.json : Do not manually edit the .taskmaster/config.json file; always use the provided CLI or MCP tools for configuration changes.
Applied to files:
apps/extension/package.json
📚 Learning: applies to .taskmaster/config.json : do not manually edit `.taskmaster/config.json` unless you are c...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: Applies to .taskmaster/config.json : Do not manually edit `.taskmaster/config.json` unless you are certain of the changes; use the `task-master models` command or `models` MCP tool for configuration.
Applied to files:
apps/extension/package.json
📚 Learning: applies to .taskmaster/config.json : store taskmaster configuration settings (ai model selections, p...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: Applies to .taskmaster/config.json : Store Taskmaster configuration settings (AI model selections, parameters, logging level, default subtasks/priority, project name, etc.) in the `.taskmaster/config.json` file located in the project root directory. Do not configure non-API key settings via environment variables.
Applied to files:
apps/extension/package.json
📚 Learning: comprehensive reference for taskmaster mcp tools and cli commands with tagged task lists information...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/glossary.mdc:0-0
Timestamp: 2025-07-18T17:10:53.657Z
Learning: Comprehensive reference for Taskmaster MCP tools and CLI commands with tagged task lists information (taskmaster.mdc).
Applied to files:
apps/extension/package.json
📚 Learning: applies to .taskmasterconfig : use `.taskmasterconfig` (json) in the project root for storing taskma...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/utilities.mdc:0-0
Timestamp: 2025-07-18T17:18:17.759Z
Learning: Applies to .taskmasterconfig : Use `.taskmasterconfig` (JSON) in the project root for storing Taskmaster configuration (excluding API keys), and manage it via the `task-master models --setup` CLI command or the `models` MCP tool.
Applied to files:
apps/extension/package.json
📚 Learning: guidelines for implementing and interacting with the task master mcp server (mcp.mdc)....
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/glossary.mdc:0-0
Timestamp: 2025-07-18T17:10:53.657Z
Learning: Guidelines for implementing and interacting with the Task Master MCP Server (mcp.mdc).
Applied to files:
apps/extension/package.json
📚 Learning: use `task-master fix-dependencies` to find and fix all invalid dependencies in tasks.json and task f...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Use `task-master fix-dependencies` to find and fix all invalid dependencies in tasks.json and task files.
Applied to files:
apps/extension/package.json
📚 Learning: use `task-master validate-dependencies` to check for and identify invalid dependencies in tasks.json...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Use `task-master validate-dependencies` to check for and identify invalid dependencies in tasks.json and task files.
Applied to files:
apps/extension/package.json
📚 Learning: maintain valid dependency structure with `task-master fix-dependencies` when needed....
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Maintain valid dependency structure with `task-master fix-dependencies` when needed.
Applied to files:
apps/extension/package.json
🔇 Additional comments (4)
package.json (1)
3-3: Version bump looks appropriate for this feature addition.The version increment from "0.23.1-rc.0" to "0.24" aligns with the extension version updates and reflects the bundled MCP server functionality being added.
apps/extension/package.publish.json (1)
5-5: Version bump is appropriate and consistent.The version increment to "0.23.0" correctly reflects the new bundled MCP server feature and aligns with the coordinated version updates across the project.
apps/extension/package.json (1)
67-76: Configuration changes align well with bundled server approach.The updated defaults and descriptions clearly distinguish between bundled server ("node" with empty args) and remote execution ("npx"). This provides a good user experience with sensible defaults.
apps/extension/src/utils/mcpClient.ts (1)
348-366: Well-implemented bundled server detection with proper fallback.The logic correctly implements the shift from npx to bundled server usage, with appropriate error handling and fallback mechanism. The logging provides good visibility into the resolution process.
| "dependencies": { | ||
| "task-master-ai": "*" | ||
| }, |
There was a problem hiding this comment.
🛠️ Refactor suggestion
Consider specifying a more precise version constraint.
Using a wildcard version "*" for the task-master-ai dependency could lead to unpredictable behavior if breaking changes are introduced in future versions.
Consider using a more specific version range:
"dependencies": {
- "task-master-ai": "*"
+ "task-master-ai": "^0.24.0"
},📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "dependencies": { | |
| "task-master-ai": "*" | |
| }, | |
| "dependencies": { | |
| "task-master-ai": "^0.24.0" | |
| }, |
🤖 Prompt for AI Agents
In apps/extension/package.json around lines 241 to 243, the dependency
"task-master-ai" is specified with a wildcard version "*", which can cause
unpredictable behavior due to potential breaking changes in future releases.
Update the version constraint to a more precise range, such as a specific
version number or a semantic version range (e.g., "^1.2.3" or "~1.2.3"), to
ensure stability and controlled updates.
There was a problem hiding this comment.
- is what npm recommends when using a monorepo and the task-master-ai is a package stored locally, which is our case.
There was a problem hiding this comment.
@Crunchyman-ralph Thank you for the clarification! You're absolutely right. In monorepos with local packages, using "*" is indeed the recommended approach as it ensures the extension always uses the local version of task-master-ai from within the same workspace. My suggestion to use a specific version constraint was inappropriate for this monorepo setup.
✏️ Learnings added
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1090
File: apps/extension/package.json:241-243
Timestamp: 2025-08-07T13:00:22.923Z
Learning: In monorepos, local packages should use "*" as the version constraint in package.json dependencies, as recommended by npm. This ensures the local version from within the same workspace is always used, rather than attempting to resolve from external registries. This applies to packages like task-master-ai within the eyaltoledano/claude-task-master monorepo.
Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.
🧠 Learnings used
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#997
File: apps/extension/package.publish.json:2-8
Timestamp: 2025-07-31T20:49:04.638Z
Learning: In the eyaltoledano/claude-task-master repository, the VS Code extension uses a 3-file packaging system where package.json (with name "extension") is for development within the monorepo, while package.publish.json (with name "task-master-hamster") contains the clean manifest for VS Code marketplace publishing. The different names are intentional and serve distinct purposes in the build and publishing workflow.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: For CLI usage, install Taskmaster globally with `npm install -g task-master-ai` or use locally via `npx task-master-ai ...`.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Use `task-master add-task` to add a new task to tasks.json using AI.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Use `task-master fix-dependencies` to find and fix all invalid dependencies in tasks.json and task files.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/test_workflow.mdc:0-0
Timestamp: 2025-08-03T12:13:33.875Z
Learning: Applies to package.json : Add and update test scripts in package.json to include test, test:watch, test:coverage, test:unit, test:integration, test:e2e, and test:ci
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Use `task-master validate-dependencies` to check for and identify invalid dependencies in tasks.json and task files.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Start new projects by running `task-master init` or `node scripts/dev.js parse-prd --input=<prd-file.txt>` to generate the initial tasks.json.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:02.683Z
Learning: Applies to .taskmaster/config.json : Store Taskmaster configuration settings (AI model selections, parameters, logging level, default subtasks/priority, project name, tag management) in `.taskmaster/config.json` in the project root. Do not configure these via environment variables.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Use the global `task-master` CLI command instead of directly invoking `node scripts/dev.js` for all task management operations.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/tasks.mdc:0-0
Timestamp: 2025-07-18T17:14:29.399Z
Learning: Applies to scripts/modules/task-manager.js : Use consistent formatting for task files, include all task properties in text files, and format dependencies with status indicators.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/utilities.mdc:0-0
Timestamp: 2025-07-18T17:18:17.759Z
Learning: Applies to scripts/modules/task-manager/**/*.js : Do not call AI-specific getters (like `getMainModelId`, `getMainMaxTokens`) from core logic functions in `scripts/modules/task-manager/*`; instead, pass the `role` to the unified AI service.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/ai_services.mdc:0-0
Timestamp: 2025-07-18T17:06:57.833Z
Learning: Applies to scripts/modules/task-manager/*.js : Do not implement fallback or retry logic outside `ai-services-unified.js`.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dependencies.mdc:0-0
Timestamp: 2025-07-18T17:09:45.690Z
Learning: Applies to scripts/modules/dependency-manager.js : Use string IDs with dot notation (e.g., "1.2") for subtask references
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dependencies.mdc:0-0
Timestamp: 2025-07-18T17:09:40.548Z
Learning: Applies to scripts/modules/dependency-manager.js : Use string IDs with dot notation (e.g., "1.2") for subtask references
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/ai_services.mdc:0-0
Timestamp: 2025-07-18T17:06:57.833Z
Learning: Applies to scripts/modules/task-manager/*.js : Do not import or call anything from the old `ai-services.js`, `ai-client-factory.js`, or `ai-client-utils.js` files.
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1002
File: .changeset/puny-friends-give.md:2-3
Timestamp: 2025-07-17T21:33:57.585Z
Learning: In the eyaltoledano/claude-task-master repository, the MCP server code in mcp-server/src/ is part of the main "task-master-ai" package, not a separate "mcp-server" package. When creating changesets for MCP server changes, use "task-master-ai" as the package name.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: Applies to .taskmaster/config.json : Store Taskmaster configuration settings (AI model selections, parameters, logging level, default subtasks/priority, project name, etc.) in the `.taskmaster/config.json` file located in the project root directory. Do not configure non-API key settings via environment variables.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Maintain valid dependency structure with `task-master fix-dependencies` when needed.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/taskmaster.mdc:0-0
Timestamp: 2025-07-31T22:08:16.039Z
Learning: Applies to .taskmaster/config.json : Do not manually edit the .taskmaster/config.json file; always use the provided CLI or MCP tools for configuration changes.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/taskmaster.mdc:0-0
Timestamp: 2025-07-31T22:08:16.039Z
Learning: Applies to .taskmaster/config.json : Do not manually edit the .taskmaster/config.json file. Use the included commands either in the MCP or CLI format as needed. Always prioritize MCP tools when available and use the CLI as a fallback.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: Applies to .taskmaster/config.json : Do not manually edit `.taskmaster/config.json` unless you are certain of the changes; use the `task-master models` command or `models` MCP tool for configuration.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/taskmaster.mdc:0-0
Timestamp: 2025-07-31T22:08:16.039Z
Learning: Applies to .taskmaster/config.json : All other Taskmaster settings (model choice, max tokens, temperature, log level, custom endpoints) are managed in .taskmaster/config.json via the task-master models command or models MCP tool.
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1069
File: .changeset/fix-tag-complexity-detection.md:0-0
Timestamp: 2025-08-02T15:33:22.656Z
Learning: For changeset files (.changeset/*.md), Crunchyman-ralph prefers to ignore formatting nitpicks about blank lines between frontmatter and descriptions, as he doesn't mind having them and wants to avoid such comments in future reviews.
Learnt from: eyaltoledano
PR: eyaltoledano/claude-task-master#1069
File: .changeset/floppy-news-buy.md:7-38
Timestamp: 2025-08-02T14:54:52.216Z
Learning: For major feature additions like new CLI commands, eyaltoledano prefers detailed changesets with comprehensive descriptions, usage examples, and feature explanations rather than minimal single-line summaries.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/git_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:31.810Z
Learning: Pull Request descriptions must use the provided template, including Task Overview, Subtasks Completed, Implementation Details, Testing, Breaking Changes, and Related Tasks
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/changeset.mdc:0-0
Timestamp: 2025-07-18T17:07:53.100Z
Learning: Applies to .changeset/*.md : The changeset summary should be user-facing, describing what changed in the released version that is relevant to users or consumers of the package.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/glossary.mdc:0-0
Timestamp: 2025-07-18T17:10:53.657Z
Learning: Guidelines for integrating new features into the Task Master CLI with tagged system considerations (new_features.mdc).
| } catch (error) { | ||
| logger.error('❌ Could not find bundled task-master-ai server:', error); | ||
| // Fallback to npx | ||
| command = 'npx'; | ||
| args = ['-y', 'task-master-ai']; | ||
| } |
There was a problem hiding this comment.
🧹 Nitpick (assertive)
Consider more specific error handling.
The current catch-all error handling works, but could be more informative about different failure scenarios.
Consider more specific error handling:
} catch (error) {
- logger.error('❌ Could not find bundled task-master-ai server:', error);
+ if (error instanceof Error && error.code === 'MODULE_NOT_FOUND') {
+ logger.log('📦 Bundled task-master-ai server not found, falling back to npx');
+ } else {
+ logger.error('❌ Error resolving bundled task-master-ai server:', error);
+ }
// Fallback to npx
command = 'npx';
args = ['-y', 'task-master-ai'];
}📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| } catch (error) { | |
| logger.error('❌ Could not find bundled task-master-ai server:', error); | |
| // Fallback to npx | |
| command = 'npx'; | |
| args = ['-y', 'task-master-ai']; | |
| } | |
| } catch (error) { | |
| if (error instanceof Error && error.code === 'MODULE_NOT_FOUND') { | |
| logger.log('📦 Bundled task-master-ai server not found, falling back to npx'); | |
| } else { | |
| logger.error('❌ Error resolving bundled task-master-ai server:', error); | |
| } | |
| // Fallback to npx | |
| command = 'npx'; | |
| args = ['-y', 'task-master-ai']; | |
| } |
🤖 Prompt for AI Agents
In apps/extension/src/utils/mcpClient.ts around lines 360 to 365, the catch
block uses a generic error handler that logs all errors the same way. Improve
this by distinguishing different error types or failure scenarios, such as
checking if the error is due to a missing executable or permission issues, and
log more specific messages accordingly. Adjust the catch block to handle these
cases separately before falling back to the generic npx command.
- add package.json back - add mcp server version for debugging sake
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (2)
apps/extension/src/utils/mcpClient.ts (2)
340-365: Code duplication identified.This version information logging logic is duplicated from the connection method (lines 215-237). See previous comment for refactoring suggestion.
400-418: Consider implementing previous review suggestions for robustness.The bundled server resolution logic works correctly and provides a good fallback mechanism. However, the previous review comments on this code segment remain valid and should be addressed for improved robustness.
The suggestions from previous reviews about:
- More explicit path resolution using
path.resolve()instead ofrequire.resolve()- More specific error handling to distinguish different failure scenarios
would still improve the code quality and debugging experience.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (2)
.changeset/upset-ants-return.md(1 hunks)apps/extension/src/utils/mcpClient.ts(4 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
.changeset/*.md
📄 CodeRabbit Inference Engine (.cursor/rules/changeset.mdc)
.changeset/*.md: When runningnpm run changesetornpx changeset add, provide a concise summary of the changes for theCHANGELOG.mdin imperative mood, typically a single line, and not a detailed Git commit message.
The changeset summary should be user-facing, describing what changed in the released version that is relevant to users or consumers of the package.
Do not use your detailed Git commit message body as the changeset summary.
Files:
.changeset/upset-ants-return.md
.changeset/*
📄 CodeRabbit Inference Engine (.cursor/rules/new_features.mdc)
Create appropriate changesets for new features, use semantic versioning, include tagged system information in release notes, and document breaking changes if any.
Files:
.changeset/upset-ants-return.md
🧠 Learnings (49)
📓 Common learnings
Learnt from: eyaltoledano
PR: eyaltoledano/claude-task-master#1069
File: .changeset/floppy-news-buy.md:7-38
Timestamp: 2025-08-02T14:54:52.216Z
Learning: For major feature additions like new CLI commands, eyaltoledano prefers detailed changesets with comprehensive descriptions, usage examples, and feature explanations rather than minimal single-line summaries.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/git_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:31.810Z
Learning: Pull Request descriptions must use the provided template, including Task Overview, Subtasks Completed, Implementation Details, Testing, Breaking Changes, and Related Tasks
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#997
File: apps/extension/package.publish.json:2-8
Timestamp: 2025-07-31T20:49:04.638Z
Learning: In the eyaltoledano/claude-task-master repository, the VS Code extension uses a 3-file packaging system where package.json (with name "extension") is for development within the monorepo, while package.publish.json (with name "task-master-hamster") contains the clean manifest for VS Code marketplace publishing. The different names are intentional and serve distinct purposes in the build and publishing workflow.
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1069
File: .changeset/fix-tag-complexity-detection.md:0-0
Timestamp: 2025-08-02T15:33:22.656Z
Learning: For changeset files (.changeset/*.md), Crunchyman-ralph prefers to ignore formatting nitpicks about blank lines between frontmatter and descriptions, as he doesn't mind having them and wants to avoid such comments in future reviews.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/changeset.mdc:0-0
Timestamp: 2025-07-18T17:07:53.100Z
Learning: Applies to .changeset/*.md : The changeset summary should be user-facing, describing what changed in the released version that is relevant to users or consumers of the package.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/glossary.mdc:0-0
Timestamp: 2025-07-18T17:10:53.657Z
Learning: Guidelines for integrating new features into the Task Master CLI with tagged system considerations (new_features.mdc).
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : Use snake_case for tool names exposed to MCP clients in server.addTool definitions.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : MCP tools must follow a specific structure: use server.addTool with snake_case tool names, define parameters using Zod, and implement the execute function as an async function.
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1002
File: .changeset/puny-friends-give.md:2-3
Timestamp: 2025-07-17T21:33:57.585Z
Learning: In the eyaltoledano/claude-task-master repository, the MCP server code in mcp-server/src/ is part of the main "task-master-ai" package, not a separate "mcp-server" package. When creating changesets for MCP server changes, use "task-master-ai" as the package name.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: Applies to scripts/modules/** : When using the MCP server, restart it if core logic in `scripts/modules` or MCP tool/direct function definitions change.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/{tools,core/direct-functions}/*.js : Use helpers from mcp-server/src/tools/utils.js, mcp-server/src/core/utils/path-utils.js, and mcp-server/src/core/utils/ai-client-utils.js for centralized utilities.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : Log the start of execution with arguments (sanitized if sensitive), log successful completion with result summary, log all error conditions with appropriate log levels, and include the cache status in result logs in MCP tool files.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : Use camelCase with Tool suffix for tool registration functions in mcp-server/src/tools/.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/utilities.mdc:0-0
Timestamp: 2025-07-18T17:18:17.759Z
Learning: Applies to mcp-server/src/{core/utils,tools}/**/*.js : Place utilities specifically designed to support the MCP server implementation into the appropriate subdirectories within `mcp-server/src/` (e.g., path/core logic helpers in `mcp-server/src/core/utils/`, tool execution/response helpers in `mcp-server/src/tools/utils.js`).
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/utilities.mdc:0-0
Timestamp: 2025-07-18T17:18:17.759Z
Learning: Applies to mcp-server/src/tools/utils.js : Use `handleApiResult`, `createContentResponse`, `createErrorResponse`, `getCachedOrExecute`, and `processMCPResponseData` in `mcp-server/src/tools/utils.js` to standardize MCP tool responses and caching.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/{tools,core/direct-functions}/*.js : Use kebab-case for all file names in mcp-server/src/tools/ and mcp-server/src/core/direct-functions/.
📚 Learning: applies to .changeset/*.md : the changeset summary should be user-facing, describing what changed in...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/changeset.mdc:0-0
Timestamp: 2025-07-18T17:07:53.100Z
Learning: Applies to .changeset/*.md : The changeset summary should be user-facing, describing what changed in the released version that is relevant to users or consumers of the package.
Applied to files:
.changeset/upset-ants-return.md
📚 Learning: applies to .changeset/*.md : when running `npm run changeset` or `npx changeset add`, provide a conc...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/changeset.mdc:0-0
Timestamp: 2025-07-18T17:07:53.100Z
Learning: Applies to .changeset/*.md : When running `npm run changeset` or `npx changeset add`, provide a concise summary of the changes for the `CHANGELOG.md` in imperative mood, typically a single line, and not a detailed Git commit message.
Applied to files:
.changeset/upset-ants-return.md
📚 Learning: in the eyaltoledano/claude-task-master repository, the mcp server code in mcp-server/src/ is part of...
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1002
File: .changeset/puny-friends-give.md:2-3
Timestamp: 2025-07-17T21:33:57.585Z
Learning: In the eyaltoledano/claude-task-master repository, the MCP server code in mcp-server/src/ is part of the main "task-master-ai" package, not a separate "mcp-server" package. When creating changesets for MCP server changes, use "task-master-ai" as the package name.
Applied to files:
.changeset/upset-ants-return.mdapps/extension/src/utils/mcpClient.ts
📚 Learning: document breaking changes...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/self_improve.mdc:0-0
Timestamp: 2025-07-18T17:13:11.229Z
Learning: Document breaking changes
Applied to files:
.changeset/upset-ants-return.md
📚 Learning: applies to .changeset/* : create appropriate changesets for new features, use semantic versioning, i...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/new_features.mdc:0-0
Timestamp: 2025-07-18T17:12:57.903Z
Learning: Applies to .changeset/* : Create appropriate changesets for new features, use semantic versioning, include tagged system information in release notes, and document breaking changes if any.
Applied to files:
.changeset/upset-ants-return.md
📚 Learning: for changeset files (.changeset/*.md), the first line after the frontmatter must be a plain, unstyle...
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1091
File: .changeset/wide-actors-report.md:0-0
Timestamp: 2025-08-06T21:14:23.011Z
Learning: For changeset files (.changeset/*.md), the first line after the frontmatter must be a plain, unstyled summary line that gets integrated directly into the changelog. Do not add markdown headings or styling as this would interfere with the changelog generation process. Ignore markdownlint MD041 rule for these files.
Applied to files:
.changeset/upset-ants-return.md
📚 Learning: do not add a changeset for trivial chores such as very minor code cleanup, adding comments that don'...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/changeset.mdc:0-0
Timestamp: 2025-07-18T17:07:53.100Z
Learning: Do not add a changeset for trivial chores such as very minor code cleanup, adding comments that don't clarify behavior, or typo fixes in non-user-facing code or internal docs.
Applied to files:
.changeset/upset-ants-return.md
📚 Learning: guidelines for implementing and interacting with the task master mcp server (mcp.mdc)....
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/glossary.mdc:0-0
Timestamp: 2025-07-18T17:10:53.657Z
Learning: Guidelines for implementing and interacting with the Task Master MCP Server (mcp.mdc).
Applied to files:
.changeset/upset-ants-return.mdapps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/*.js : use snake_case for tool names exposed to mcp clients in serve...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : Use snake_case for tool names exposed to MCP clients in server.addTool definitions.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/{tools,core/direct-functions}/*.js : use helpers from mcp-server/src/tools...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/{tools,core/direct-functions}/*.js : Use helpers from mcp-server/src/tools/utils.js, mcp-server/src/core/utils/path-utils.js, and mcp-server/src/core/utils/ai-client-utils.js for centralized utilities.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/*.js : use camelcase with tool suffix for tool registration function...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : Use camelCase with Tool suffix for tool registration functions in mcp-server/src/tools/.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/*.js : mcp tools should always call *direct wrappers instead of exec...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : MCP tools should always call *Direct wrappers instead of executeTaskMasterCommand, except as a fallback if a direct function is not yet implemented.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/*.js : mcp tools must follow a specific structure: use server.addtoo...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : MCP tools must follow a specific structure: use server.addTool with snake_case tool names, define parameters using Zod, and implement the execute function as an async function.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/{tools,core/direct-functions}/*.js : use kebab-case for all file names in ...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/{tools,core/direct-functions}/*.js : Use kebab-case for all file names in mcp-server/src/tools/ and mcp-server/src/core/direct-functions/.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/core/direct-functions/*.js : use path.join() instead of string concatenati...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/core/direct-functions/*.js : Use path.join() instead of string concatenation for file paths, and follow established file naming conventions (e.g., 'task_001.txt') in direct functions.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/**/*.js : mcp tool files in mcp-server/src/tools/ must call the corr...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/telemetry.mdc:0-0
Timestamp: 2025-07-18T17:14:54.131Z
Learning: Applies to mcp-server/src/tools/**/*.js : MCP tool files in mcp-server/src/tools/ must call the corresponding direct function wrapper and pass the result to handleApiResult(result, log) from mcp-server/src/tools/utils.js, ensuring telemetryData is included in the final MCP response.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to .taskmaster/config.json : do not manually edit the .taskmaster/config.json file. use the ...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/taskmaster.mdc:0-0
Timestamp: 2025-07-31T22:08:16.039Z
Learning: Applies to .taskmaster/config.json : Do not manually edit the .taskmaster/config.json file. Use the included commands either in the MCP or CLI format as needed. Always prioritize MCP tools when available and use the CLI as a fallback.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/{core/utils,tools}/**/*.js : place utilities specifically designed to supp...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/utilities.mdc:0-0
Timestamp: 2025-07-18T17:18:17.759Z
Learning: Applies to mcp-server/src/{core/utils,tools}/**/*.js : Place utilities specifically designed to support the MCP server implementation into the appropriate subdirectories within `mcp-server/src/` (e.g., path/core logic helpers in `mcp-server/src/core/utils/`, tool execution/response helpers in `mcp-server/src/tools/utils.js`).
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/*.js : mcp server tools in mcp-server/src/tools/*.js must have their...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/architecture.mdc:0-0
Timestamp: 2025-07-18T17:07:39.336Z
Learning: Applies to mcp-server/src/tools/*.js : MCP server tools in mcp-server/src/tools/*.js must have their execute methods wrapped with the withNormalizedProjectRoot higher-order function from tools/utils.js to ensure consistent path handling.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/core/direct-functions/*.js : create direct function wrappers in 'mcp-serve...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/new_features.mdc:0-0
Timestamp: 2025-07-18T17:12:57.903Z
Learning: Applies to mcp-server/src/core/direct-functions/*.js : Create direct function wrappers in 'mcp-server/src/core/direct-functions/' for MCP tool implementation, following silent mode patterns and using findTasksJsonPath for consistent path resolution.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to scripts/modules/*.js : use consistent file naming conventions: 'task_${id.tostring().pads...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/new_features.mdc:0-0
Timestamp: 2025-07-18T17:12:57.903Z
Learning: Applies to scripts/modules/*.js : Use consistent file naming conventions: 'task_${id.toString().padStart(3, '0')}.txt', use path.join for composing file paths, and use appropriate file extensions (.txt for tasks, .json for data).
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to scripts/modules/commands.js : use path.join() to construct file paths, follow established...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/commands.mdc:0-0
Timestamp: 2025-07-18T17:08:48.695Z
Learning: Applies to scripts/modules/commands.js : Use path.join() to construct file paths, follow established naming conventions (like task_001.txt), check file existence before deletion, and handle file deletion errors gracefully.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to **/*.test.js : verify file operations use the correct paths in expect statements....
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/tests.mdc:0-0
Timestamp: 2025-07-18T17:16:13.793Z
Learning: Applies to **/*.test.js : Verify file operations use the correct paths in expect statements.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to scripts/modules/utils.js : use `path.join()` for cross-platform path construction, `path....
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/utilities.mdc:0-0
Timestamp: 2025-07-18T17:18:17.759Z
Learning: Applies to scripts/modules/utils.js : Use `path.join()` for cross-platform path construction, `path.resolve()` for absolute paths, and validate paths before file operations.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to scripts/modules/commands.js : provide specific error handling for common issues, include ...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/commands.mdc:0-0
Timestamp: 2025-07-18T17:08:48.695Z
Learning: Applies to scripts/modules/commands.js : Provide specific error handling for common issues, include troubleshooting hints for each error type, and use consistent error formatting across all commands.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to scripts/modules/task-manager/*.js : do not implement fallback or retry logic outside `ai-...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/ai_services.mdc:0-0
Timestamp: 2025-07-18T17:06:57.833Z
Learning: Applies to scripts/modules/task-manager/*.js : Do not implement fallback or retry logic outside `ai-services-unified.js`.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/core/direct-functions/*.js : wrap core function calls and ai calls in try/...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/core/direct-functions/*.js : Wrap core function calls and AI calls in try/catch blocks in direct functions, log errors with appropriate severity and context, and return standardized error objects with code and message.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: in cli contexts within task-manager modules like scripts/modules/task-manager/parse-prd.js, using pr...
Learnt from: joedanz
PR: eyaltoledano/claude-task-master#748
File: scripts/modules/task-manager/parse-prd.js:726-733
Timestamp: 2025-07-21T17:51:07.239Z
Learning: In CLI contexts within task-manager modules like scripts/modules/task-manager/parse-prd.js, using process.exit(1) for validation failures and error conditions is correct and preferred over throwing errors, as it provides immediate termination with appropriate exit codes for scripting. The code should distinguish between MCP contexts (throw errors) and CLI contexts (use process.exit).
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to scripts/modules/commands.js : wrap async operations in try/catch blocks, display user-fri...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/commands.mdc:0-0
Timestamp: 2025-07-31T22:07:49.716Z
Learning: Applies to scripts/modules/commands.js : Wrap async operations in try/catch blocks, display user-friendly error messages, and include detailed error information in debug mode.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to scripts/modules/commands.js : provide clear error messages for common failures, handle ta...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/new_features.mdc:0-0
Timestamp: 2025-07-18T17:12:57.903Z
Learning: Applies to scripts/modules/commands.js : Provide clear error messages for common failures, handle tagged system migration errors gracefully, include suggestions for resolution, and exit with appropriate codes for scripting in CLI commands.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/core/direct-functions/*.js : use consistent error codes across direct func...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/core/direct-functions/*.js : Use consistent error codes across direct function wrappers: INPUT_VALIDATION_ERROR, FILE_NOT_FOUND_ERROR, CORE_FUNCTION_ERROR, UNEXPECTED_ERROR.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to scripts/modules/*.js : use structured error objects with code and message properties, inc...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/new_features.mdc:0-0
Timestamp: 2025-07-18T17:12:57.903Z
Learning: Applies to scripts/modules/*.js : Use structured error objects with code and message properties, include clear error messages, and handle both function-specific and file system errors.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: in the eyaltoledano/claude-task-master repository, the vs code extension uses a 3-file packaging sys...
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#997
File: apps/extension/package.publish.json:2-8
Timestamp: 2025-07-31T20:49:04.638Z
Learning: In the eyaltoledano/claude-task-master repository, the VS Code extension uses a 3-file packaging system where package.json (with name "extension") is for development within the monorepo, while package.publish.json (with name "task-master-hamster") contains the clean manifest for VS Code marketplace publishing. The different names are intentional and serve distinct purposes in the build and publishing workflow.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: start new projects by running `task-master init` or `node scripts/dev.js parse-prd --input=
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Start new projects by running `task-master init` or `node scripts/dev.js parse-prd --input=<prd-file.txt>` to generate the initial tasks.json.
Applied to files:
apps/extension/src/utils/mcpClient.ts
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Start new projects by running `task-master init` or `node scripts/dev.js parse-prd --input=<prd-file.txt>` to generate the initial tasks.json.
apps/extension/src/utils/mcpClient.ts📚 Learning: for cli usage, install taskmaster globally with `npm install -g task-master-ai` or use locally via `...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: For CLI usage, install Taskmaster globally with `npm install -g task-master-ai` or use locally via `npx task-master-ai ...`.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: use `task-master add-task` to add a new task to tasks.json using ai....
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Use `task-master add-task` to add a new task to tasks.json using AI.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: if an mcp tool fails with unclear errors (like json parsing failures), run the equivalent task-maste...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: If an MCP tool fails with unclear errors (like JSON parsing failures), run the equivalent task-master CLI command in the terminal to get more detailed error messages.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/*.js : log the start of execution with arguments (sanitized if sensi...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : Log the start of execution with arguments (sanitized if sensitive), log successful completion with result summary, log all error conditions with appropriate log levels, and include the cache status in result logs in MCP tool files.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/*.js : for long-running operations that should not block the client,...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/new_features.mdc:0-0
Timestamp: 2025-07-18T17:12:57.903Z
Learning: Applies to mcp-server/src/tools/*.js : For long-running operations that should not block the client, use the AsyncOperationManager in MCP tools and implement progress reporting.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: comprehensive reference for taskmaster mcp tools and cli commands with tagged task lists information...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/glossary.mdc:0-0
Timestamp: 2025-07-18T17:10:53.657Z
Learning: Comprehensive reference for Taskmaster MCP tools and CLI commands with tagged task lists information (taskmaster.mdc).
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: use the taskmaster command set (`task-master` cli or mcp tools) for all task management operations: ...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: Use the Taskmaster command set (`task-master` CLI or MCP tools) for all task management operations: listing, expanding, updating, tagging, and status changes.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to scripts/modules/**/*.test.js : test cli and mcp interfaces with real task data, verify en...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/new_features.mdc:0-0
Timestamp: 2025-07-18T17:12:57.903Z
Learning: Applies to scripts/modules/**/*.test.js : Test CLI and MCP interfaces with real task data, verify end-to-end workflows across tag contexts, and test error scenarios and recovery in integration tests.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: guidelines for implementing and maintaining tests for task master cli (tests.mdc)....
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/glossary.mdc:0-0
Timestamp: 2025-07-18T17:10:53.657Z
Learning: Guidelines for implementing and maintaining tests for Task Master CLI (tests.mdc).
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/core/utils/path-utils.js : call `findtasksjsonpath(args, log)` from within...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/utilities.mdc:0-0
Timestamp: 2025-07-18T17:18:17.759Z
Learning: Applies to mcp-server/src/core/utils/path-utils.js : Call `findTasksJsonPath(args, log)` from within direct function wrappers in `mcp-server/src/core/direct-functions/` to get the absolute path to the relevant `tasks.json`.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: use the global `task-master` cli command instead of directly invoking `node scripts/dev.js` for all ...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Use the global `task-master` CLI command instead of directly invoking `node scripts/dev.js` for all task management operations.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/core/direct-functions/*.js : the *direct function is responsible for findi...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/core/direct-functions/*.js : The *Direct function is responsible for finding the exact tasks.json path using findTasksJsonPath, relying on the projectRoot passed in args.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to scripts/modules/*.js : when implementing project initialization commands, support both cl...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/new_features.mdc:0-0
Timestamp: 2025-07-18T17:12:57.903Z
Learning: Applies to scripts/modules/*.js : When implementing project initialization commands, support both CLI and MCP, support non-interactive modes with sensible defaults, handle project metadata, and create necessary files and directories.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to .taskmaster/config.json : all other taskmaster settings (model choice, max tokens, temper...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/taskmaster.mdc:0-0
Timestamp: 2025-07-31T22:08:16.039Z
Learning: Applies to .taskmaster/config.json : All other Taskmaster settings (model choice, max tokens, temperature, log level, custom endpoints) are managed in .taskmaster/config.json via the task-master models command or models MCP tool.
Applied to files:
apps/extension/src/utils/mcpClient.ts
🪛 LanguageTool
.changeset/upset-ants-return.md
[grammar] ~5-~5: Use articles correctly
Context: ...some users not being able to connect to Taskmaster MCP server while using the extension
(QB_NEW_EN_OTHER_ERROR_IDS_11)
[grammar] ~5-~5: There might be a mistake here.
Context: ...o Taskmaster MCP server while using the extension
(QB_NEW_EN_OTHER)
🪛 markdownlint-cli2 (0.17.2)
.changeset/upset-ants-return.md
5-5: First line in a file should be a top-level heading
(MD041, first-line-heading, first-line-h1)
🔇 Additional comments (2)
.changeset/upset-ants-return.md (1)
1-6: LGTM! Changeset follows the correct format and guidelines.The changeset properly describes a user-facing fix for MCP server connectivity issues. The summary is concise and follows the imperative mood as expected for changelog entries.
apps/extension/src/utils/mcpClient.ts (1)
146-146: LGTM! Improved naming consistency.The client name change from
'taskr-vscode-extension'to'task-master-vscode-extension'aligns better with the Task Master branding and package naming conventions.
| // Log Task Master version information after successful connection | ||
| try { | ||
| const versionResult = await this.callTool('get_tasks', {}); | ||
| if (versionResult?.content?.[0]?.text) { | ||
| const response = JSON.parse(versionResult.content[0].text); | ||
| if (response?.version) { | ||
| logger.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'); | ||
| logger.log('✅ Task Master MCP Server Connected'); | ||
| logger.log(` Version: ${response.version.version || 'unknown'}`); | ||
| logger.log( | ||
| ` Package: ${response.version.name || 'task-master-ai'}` | ||
| ); | ||
| if (response.tag) { | ||
| logger.log( | ||
| ` Current Tag: ${response.tag.currentTag || 'master'}` | ||
| ); | ||
| } | ||
| logger.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'); | ||
| } | ||
| } | ||
| } catch (versionError) { | ||
| logger.log('Note: Could not retrieve Task Master version information'); | ||
| } |
There was a problem hiding this comment.
🧹 Nitpick (assertive)
Consider refactoring to eliminate code duplication.
The version information logging logic is well-implemented with proper error handling. However, this code is duplicated in the testConnection method (lines 340-365).
Consider extracting this into a private method:
+ private async logVersionInformation(): Promise<void> {
+ try {
+ const versionResult = await this.callTool('get_tasks', {});
+ if (versionResult?.content?.[0]?.text) {
+ const response = JSON.parse(versionResult.content[0].text);
+ if (response?.version) {
+ logger.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
+ logger.log('✅ Task Master MCP Server Connected');
+ logger.log(` Version: ${response.version.version || 'unknown'}`);
+ logger.log(` Package: ${response.version.name || 'task-master-ai'}`);
+ if (response.tag) {
+ logger.log(` Current Tag: ${response.tag.currentTag || 'master'}`);
+ }
+ logger.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
+ }
+ }
+ } catch (versionError) {
+ logger.log('Note: Could not retrieve Task Master version information');
+ }
+ }Then call await this.logVersionInformation(); in both locations.
Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In apps/extension/src/utils/mcpClient.ts around lines 215 to 237, the version
information logging code is duplicated in the testConnection method (lines
340-365). Extract this logging logic into a new private method, for example
named logVersionInformation, that handles the callTool invocation, parsing, and
logging with error handling. Then replace the duplicated code in both places
with a call to await this.logVersionInformation() to eliminate redundancy and
improve maintainability.
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (2)
apps/extension/src/utils/mcpClient.ts (2)
216-238: Consider extracting duplicated version logging logic.This version logging code is duplicated in the
testConnectionmethod (lines 341-366). Extract it into a private method to improve maintainability.
422-427: Consider more specific error handling for better diagnostics.While the current implementation works, distinguishing between different error types would provide better user feedback.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (1)
apps/extension/src/utils/mcpClient.ts(5 hunks)
🧰 Additional context used
🧠 Learnings (48)
📓 Common learnings
Learnt from: eyaltoledano
PR: eyaltoledano/claude-task-master#1069
File: .changeset/floppy-news-buy.md:7-38
Timestamp: 2025-08-02T14:54:52.216Z
Learning: For major feature additions like new CLI commands, eyaltoledano prefers detailed changesets with comprehensive descriptions, usage examples, and feature explanations rather than minimal single-line summaries.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/git_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:31.810Z
Learning: Pull Request descriptions must use the provided template, including Task Overview, Subtasks Completed, Implementation Details, Testing, Breaking Changes, and Related Tasks
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1069
File: .changeset/fix-tag-complexity-detection.md:0-0
Timestamp: 2025-08-02T15:33:22.656Z
Learning: For changeset files (.changeset/*.md), Crunchyman-ralph prefers to ignore formatting nitpicks about blank lines between frontmatter and descriptions, as he doesn't mind having them and wants to avoid such comments in future reviews.
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#997
File: apps/extension/package.publish.json:2-8
Timestamp: 2025-07-31T20:49:04.638Z
Learning: In the eyaltoledano/claude-task-master repository, the VS Code extension uses a 3-file packaging system where package.json (with name "extension") is for development within the monorepo, while package.publish.json (with name "task-master-hamster") contains the clean manifest for VS Code marketplace publishing. The different names are intentional and serve distinct purposes in the build and publishing workflow.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/changeset.mdc:0-0
Timestamp: 2025-07-18T17:07:53.100Z
Learning: Applies to .changeset/*.md : The changeset summary should be user-facing, describing what changed in the released version that is relevant to users or consumers of the package.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/changeset.mdc:0-0
Timestamp: 2025-07-18T17:07:53.100Z
Learning: Every pull request containing new features, bug fixes, breaking changes, performance improvements, significant refactoring, user-facing documentation updates, dependency updates, or impactful build/tooling changes should include a changeset file.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/git_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:31.810Z
Learning: Pull Request titles must follow the format: Task <ID>: <Task Title>
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : Use snake_case for tool names exposed to MCP clients in server.addTool definitions.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : MCP tools must follow a specific structure: use server.addTool with snake_case tool names, define parameters using Zod, and implement the execute function as an async function.
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1002
File: .changeset/puny-friends-give.md:2-3
Timestamp: 2025-07-17T21:33:57.585Z
Learning: In the eyaltoledano/claude-task-master repository, the MCP server code in mcp-server/src/ is part of the main "task-master-ai" package, not a separate "mcp-server" package. When creating changesets for MCP server changes, use "task-master-ai" as the package name.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: Applies to scripts/modules/** : When using the MCP server, restart it if core logic in `scripts/modules` or MCP tool/direct function definitions change.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/{tools,core/direct-functions}/*.js : Use helpers from mcp-server/src/tools/utils.js, mcp-server/src/core/utils/path-utils.js, and mcp-server/src/core/utils/ai-client-utils.js for centralized utilities.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : Log the start of execution with arguments (sanitized if sensitive), log successful completion with result summary, log all error conditions with appropriate log levels, and include the cache status in result logs in MCP tool files.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : Use camelCase with Tool suffix for tool registration functions in mcp-server/src/tools/.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/utilities.mdc:0-0
Timestamp: 2025-07-18T17:18:17.759Z
Learning: Applies to mcp-server/src/{core/utils,tools}/**/*.js : Place utilities specifically designed to support the MCP server implementation into the appropriate subdirectories within `mcp-server/src/` (e.g., path/core logic helpers in `mcp-server/src/core/utils/`, tool execution/response helpers in `mcp-server/src/tools/utils.js`).
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/utilities.mdc:0-0
Timestamp: 2025-07-18T17:18:17.759Z
Learning: Applies to mcp-server/src/tools/utils.js : Use `handleApiResult`, `createContentResponse`, `createErrorResponse`, `getCachedOrExecute`, and `processMCPResponseData` in `mcp-server/src/tools/utils.js` to standardize MCP tool responses and caching.
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/{tools,core/direct-functions}/*.js : Use kebab-case for all file names in mcp-server/src/tools/ and mcp-server/src/core/direct-functions/.
📚 Learning: in the eyaltoledano/claude-task-master repository, the mcp server code in mcp-server/src/ is part of...
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1002
File: .changeset/puny-friends-give.md:2-3
Timestamp: 2025-07-17T21:33:57.585Z
Learning: In the eyaltoledano/claude-task-master repository, the MCP server code in mcp-server/src/ is part of the main "task-master-ai" package, not a separate "mcp-server" package. When creating changesets for MCP server changes, use "task-master-ai" as the package name.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/*.js : use snake_case for tool names exposed to mcp clients in serve...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : Use snake_case for tool names exposed to MCP clients in server.addTool definitions.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/{tools,core/direct-functions}/*.js : use helpers from mcp-server/src/tools...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/{tools,core/direct-functions}/*.js : Use helpers from mcp-server/src/tools/utils.js, mcp-server/src/core/utils/path-utils.js, and mcp-server/src/core/utils/ai-client-utils.js for centralized utilities.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/*.js : use camelcase with tool suffix for tool registration function...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : Use camelCase with Tool suffix for tool registration functions in mcp-server/src/tools/.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/*.js : mcp tools should always call *direct wrappers instead of exec...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : MCP tools should always call *Direct wrappers instead of executeTaskMasterCommand, except as a fallback if a direct function is not yet implemented.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/*.js : mcp tools must follow a specific structure: use server.addtoo...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : MCP tools must follow a specific structure: use server.addTool with snake_case tool names, define parameters using Zod, and implement the execute function as an async function.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/{tools,core/direct-functions}/*.js : use kebab-case for all file names in ...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/{tools,core/direct-functions}/*.js : Use kebab-case for all file names in mcp-server/src/tools/ and mcp-server/src/core/direct-functions/.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/core/direct-functions/*.js : use path.join() instead of string concatenati...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/core/direct-functions/*.js : Use path.join() instead of string concatenation for file paths, and follow established file naming conventions (e.g., 'task_001.txt') in direct functions.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/**/*.js : mcp tool files in mcp-server/src/tools/ must call the corr...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/telemetry.mdc:0-0
Timestamp: 2025-07-18T17:14:54.131Z
Learning: Applies to mcp-server/src/tools/**/*.js : MCP tool files in mcp-server/src/tools/ must call the corresponding direct function wrapper and pass the result to handleApiResult(result, log) from mcp-server/src/tools/utils.js, ensuring telemetryData is included in the final MCP response.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to .taskmaster/config.json : do not manually edit the .taskmaster/config.json file. use the ...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/taskmaster.mdc:0-0
Timestamp: 2025-07-31T22:08:16.039Z
Learning: Applies to .taskmaster/config.json : Do not manually edit the .taskmaster/config.json file. Use the included commands either in the MCP or CLI format as needed. Always prioritize MCP tools when available and use the CLI as a fallback.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/{core/utils,tools}/**/*.js : place utilities specifically designed to supp...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/utilities.mdc:0-0
Timestamp: 2025-07-18T17:18:17.759Z
Learning: Applies to mcp-server/src/{core/utils,tools}/**/*.js : Place utilities specifically designed to support the MCP server implementation into the appropriate subdirectories within `mcp-server/src/` (e.g., path/core logic helpers in `mcp-server/src/core/utils/`, tool execution/response helpers in `mcp-server/src/tools/utils.js`).
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/*.js : mcp server tools in mcp-server/src/tools/*.js must have their...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/architecture.mdc:0-0
Timestamp: 2025-07-18T17:07:39.336Z
Learning: Applies to mcp-server/src/tools/*.js : MCP server tools in mcp-server/src/tools/*.js must have their execute methods wrapped with the withNormalizedProjectRoot higher-order function from tools/utils.js to ensure consistent path handling.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/core/direct-functions/*.js : create direct function wrappers in 'mcp-serve...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/new_features.mdc:0-0
Timestamp: 2025-07-18T17:12:57.903Z
Learning: Applies to mcp-server/src/core/direct-functions/*.js : Create direct function wrappers in 'mcp-server/src/core/direct-functions/' for MCP tool implementation, following silent mode patterns and using findTasksJsonPath for consistent path resolution.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to scripts/modules/*.js : use consistent file naming conventions: 'task_${id.tostring().pads...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/new_features.mdc:0-0
Timestamp: 2025-07-18T17:12:57.903Z
Learning: Applies to scripts/modules/*.js : Use consistent file naming conventions: 'task_${id.toString().padStart(3, '0')}.txt', use path.join for composing file paths, and use appropriate file extensions (.txt for tasks, .json for data).
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to scripts/modules/commands.js : use path.join() to construct file paths, follow established...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/commands.mdc:0-0
Timestamp: 2025-07-18T17:08:48.695Z
Learning: Applies to scripts/modules/commands.js : Use path.join() to construct file paths, follow established naming conventions (like task_001.txt), check file existence before deletion, and handle file deletion errors gracefully.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to **/*.test.js : verify file operations use the correct paths in expect statements....
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/tests.mdc:0-0
Timestamp: 2025-07-18T17:16:13.793Z
Learning: Applies to **/*.test.js : Verify file operations use the correct paths in expect statements.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to scripts/modules/utils.js : use `path.join()` for cross-platform path construction, `path....
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/utilities.mdc:0-0
Timestamp: 2025-07-18T17:18:17.759Z
Learning: Applies to scripts/modules/utils.js : Use `path.join()` for cross-platform path construction, `path.resolve()` for absolute paths, and validate paths before file operations.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to scripts/modules/commands.js : provide specific error handling for common issues, include ...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/commands.mdc:0-0
Timestamp: 2025-07-18T17:08:48.695Z
Learning: Applies to scripts/modules/commands.js : Provide specific error handling for common issues, include troubleshooting hints for each error type, and use consistent error formatting across all commands.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to scripts/modules/task-manager/*.js : do not implement fallback or retry logic outside `ai-...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/ai_services.mdc:0-0
Timestamp: 2025-07-18T17:06:57.833Z
Learning: Applies to scripts/modules/task-manager/*.js : Do not implement fallback or retry logic outside `ai-services-unified.js`.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/core/direct-functions/*.js : wrap core function calls and ai calls in try/...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/core/direct-functions/*.js : Wrap core function calls and AI calls in try/catch blocks in direct functions, log errors with appropriate severity and context, and return standardized error objects with code and message.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: in cli contexts within task-manager modules like scripts/modules/task-manager/parse-prd.js, using pr...
Learnt from: joedanz
PR: eyaltoledano/claude-task-master#748
File: scripts/modules/task-manager/parse-prd.js:726-733
Timestamp: 2025-07-21T17:51:07.239Z
Learning: In CLI contexts within task-manager modules like scripts/modules/task-manager/parse-prd.js, using process.exit(1) for validation failures and error conditions is correct and preferred over throwing errors, as it provides immediate termination with appropriate exit codes for scripting. The code should distinguish between MCP contexts (throw errors) and CLI contexts (use process.exit).
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to scripts/modules/commands.js : wrap async operations in try/catch blocks, display user-fri...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/commands.mdc:0-0
Timestamp: 2025-07-31T22:07:49.716Z
Learning: Applies to scripts/modules/commands.js : Wrap async operations in try/catch blocks, display user-friendly error messages, and include detailed error information in debug mode.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to scripts/modules/commands.js : provide clear error messages for common failures, handle ta...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/new_features.mdc:0-0
Timestamp: 2025-07-18T17:12:57.903Z
Learning: Applies to scripts/modules/commands.js : Provide clear error messages for common failures, handle tagged system migration errors gracefully, include suggestions for resolution, and exit with appropriate codes for scripting in CLI commands.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/core/direct-functions/*.js : use consistent error codes across direct func...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/core/direct-functions/*.js : Use consistent error codes across direct function wrappers: INPUT_VALIDATION_ERROR, FILE_NOT_FOUND_ERROR, CORE_FUNCTION_ERROR, UNEXPECTED_ERROR.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to scripts/modules/*.js : use structured error objects with code and message properties, inc...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/new_features.mdc:0-0
Timestamp: 2025-07-18T17:12:57.903Z
Learning: Applies to scripts/modules/*.js : Use structured error objects with code and message properties, include clear error messages, and handle both function-specific and file system errors.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to scripts/modules/task-manager/*.js : do not initialize ai clients (anthropic, perplexity, ...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/ai_services.mdc:0-0
Timestamp: 2025-07-18T17:06:57.833Z
Learning: Applies to scripts/modules/task-manager/*.js : Do not initialize AI clients (Anthropic, Perplexity, etc.) directly within core logic (`task-manager/`) or MCP direct functions.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/*.js : do not log entire large data structures or sensitive informat...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : Do not log entire large data structures or sensitive information in MCP tool files.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/utils.js : use `handleapiresult`, `createcontentresponse`, `createer...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/utilities.mdc:0-0
Timestamp: 2025-07-18T17:18:17.759Z
Learning: Applies to mcp-server/src/tools/utils.js : Use `handleApiResult`, `createContentResponse`, `createErrorResponse`, `getCachedOrExecute`, and `processMCPResponseData` in `mcp-server/src/tools/utils.js` to standardize MCP tool responses and caching.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/*.js : for long-running operations that should not block the client,...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/new_features.mdc:0-0
Timestamp: 2025-07-18T17:12:57.903Z
Learning: Applies to mcp-server/src/tools/*.js : For long-running operations that should not block the client, use the AsyncOperationManager in MCP tools and implement progress reporting.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to scripts/modules/commands.js : implement version checking to notify users of available upd...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/commands.mdc:0-0
Timestamp: 2025-07-31T22:07:49.716Z
Learning: Applies to scripts/modules/commands.js : Implement version checking to notify users of available updates, use non-blocking version checks, and display update notifications after command completion.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/*.js : create tool definitions in 'mcp-server/src/tools/', use zod f...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/new_features.mdc:0-0
Timestamp: 2025-07-18T17:12:57.903Z
Learning: Applies to mcp-server/src/tools/*.js : Create tool definitions in 'mcp-server/src/tools/', use Zod for parameter validation, include optional tag parameter for multi-context support, and follow established naming conventions.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/utils.js : use `normalizeprojectroot(rawpath, log)`, `getrawprojectr...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/utilities.mdc:0-0
Timestamp: 2025-07-18T17:18:17.759Z
Learning: Applies to mcp-server/src/tools/utils.js : Use `normalizeProjectRoot(rawPath, log)`, `getRawProjectRootFromSession(session, log)`, and `withNormalizedProjectRoot(executeFn)` in `mcp-server/src/tools/utils.js` to ensure project root paths are normalized for MCP tools.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: in the eyaltoledano/claude-task-master repository, the vs code extension uses a 3-file packaging sys...
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#997
File: apps/extension/package.publish.json:2-8
Timestamp: 2025-07-31T20:49:04.638Z
Learning: In the eyaltoledano/claude-task-master repository, the VS Code extension uses a 3-file packaging system where package.json (with name "extension") is for development within the monorepo, while package.publish.json (with name "task-master-hamster") contains the clean manifest for VS Code marketplace publishing. The different names are intentional and serve distinct purposes in the build and publishing workflow.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: start new projects by running `task-master init` or `node scripts/dev.js parse-prd --input=
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Start new projects by running `task-master init` or `node scripts/dev.js parse-prd --input=<prd-file.txt>` to generate the initial tasks.json.
Applied to files:
apps/extension/src/utils/mcpClient.ts
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Start new projects by running `task-master init` or `node scripts/dev.js parse-prd --input=<prd-file.txt>` to generate the initial tasks.json.
apps/extension/src/utils/mcpClient.ts📚 Learning: for cli usage, install taskmaster globally with `npm install -g task-master-ai` or use locally via `...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: For CLI usage, install Taskmaster globally with `npm install -g task-master-ai` or use locally via `npx task-master-ai ...`.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: use `task-master add-task` to add a new task to tasks.json using ai....
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Use `task-master add-task` to add a new task to tasks.json using AI.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: guidelines for implementing and interacting with the task master mcp server (mcp.mdc)....
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/glossary.mdc:0-0
Timestamp: 2025-07-18T17:10:53.657Z
Learning: Guidelines for implementing and interacting with the Task Master MCP Server (mcp.mdc).
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: if an mcp tool fails with unclear errors (like json parsing failures), run the equivalent task-maste...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: If an MCP tool fails with unclear errors (like JSON parsing failures), run the equivalent task-master CLI command in the terminal to get more detailed error messages.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/tools/*.js : log the start of execution with arguments (sanitized if sensi...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : Log the start of execution with arguments (sanitized if sensitive), log successful completion with result summary, log all error conditions with appropriate log levels, and include the cache status in result logs in MCP tool files.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: comprehensive reference for taskmaster mcp tools and cli commands with tagged task lists information...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/glossary.mdc:0-0
Timestamp: 2025-07-18T17:10:53.657Z
Learning: Comprehensive reference for Taskmaster MCP tools and CLI commands with tagged task lists information (taskmaster.mdc).
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: use the taskmaster command set (`task-master` cli or mcp tools) for all task management operations: ...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: Use the Taskmaster command set (`task-master` CLI or MCP tools) for all task management operations: listing, expanding, updating, tagging, and status changes.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to scripts/modules/**/*.test.js : test cli and mcp interfaces with real task data, verify en...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/new_features.mdc:0-0
Timestamp: 2025-07-18T17:12:57.903Z
Learning: Applies to scripts/modules/**/*.test.js : Test CLI and MCP interfaces with real task data, verify end-to-end workflows across tag contexts, and test error scenarios and recovery in integration tests.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: guidelines for implementing and maintaining tests for task master cli (tests.mdc)....
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/glossary.mdc:0-0
Timestamp: 2025-07-18T17:10:53.657Z
Learning: Guidelines for implementing and maintaining tests for Task Master CLI (tests.mdc).
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: use the global `task-master` cli command instead of directly invoking `node scripts/dev.js` for all ...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: assets/.windsurfrules:0-0
Timestamp: 2025-07-18T17:19:27.365Z
Learning: Use the global `task-master` CLI command instead of directly invoking `node scripts/dev.js` for all task management operations.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/core/utils/path-utils.js : call `findtasksjsonpath(args, log)` from within...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/utilities.mdc:0-0
Timestamp: 2025-07-18T17:18:17.759Z
Learning: Applies to mcp-server/src/core/utils/path-utils.js : Call `findTasksJsonPath(args, log)` from within direct function wrappers in `mcp-server/src/core/direct-functions/` to get the absolute path to the relevant `tasks.json`.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to mcp-server/src/core/direct-functions/*.js : the *direct function is responsible for findi...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/core/direct-functions/*.js : The *Direct function is responsible for finding the exact tasks.json path using findTasksJsonPath, relying on the projectRoot passed in args.
Applied to files:
apps/extension/src/utils/mcpClient.ts
📚 Learning: applies to scripts/modules/*.js : when implementing project initialization commands, support both cl...
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/new_features.mdc:0-0
Timestamp: 2025-07-18T17:12:57.903Z
Learning: Applies to scripts/modules/*.js : When implementing project initialization commands, support both CLI and MCP, support non-interactive modes with sensible defaults, handle project metadata, and create necessary files and directories.
Applied to files:
apps/extension/src/utils/mcpClient.ts
🪛 GitHub Actions: CI
apps/extension/src/utils/mcpClient.ts
[error] 410-419: Biome formatting check failed. Formatter would have changed indentation and trailing whitespace. Run 'biome format .' to fix code style issues.
🔇 Additional comments (1)
apps/extension/src/utils/mcpClient.ts (1)
147-147: LGTM!The client name update aligns with the product branding.
…edano#1090) * feat(extension): implement simple solution to --package flag
…edano#1090) * feat(extension): implement simple solution to --package flag
…edano#1090) * feat(extension): implement simple solution to --package flag
…edano#1090) * feat(extension): implement simple solution to --package flag
…edano#1090) * feat(extension): implement simple solution to --package flag
What type of PR is this?
Description
Related Issues
How to Test This
# Example commands or stepsExpected result:
Contributor Checklist
npm run changesetnpm testnpm run format-check(ornpm run formatto fix)Changelog Entry
For Maintainers
Summary by CodeRabbit
New Features
Bug Fixes
Chores