Overhauls the project root detection system with a hierarchical precedence mechanism that intelligently locates tasks.json and identifies project roots. This improves user experience by reducing the need for explicit path parameters and enhances cross-platform compatibility. Key Improvements: - Implement hierarchical precedence for project root detection: * Environment variable override (TASK_MASTER_PROJECT_ROOT) * Explicitly provided --project-root parameter * Cached project root from previous successful operations * Current directory with project markers * Parent directory traversal to find tasks.json * Package directory as fallback - Create comprehensive PROJECT_MARKERS detection system with 20+ common indicators: * Task Master specific files (tasks.json, tasks/tasks.json) * Version control directories (.git, .svn) * Package manifests (package.json, pyproject.toml, Gemfile, go.mod, Cargo.toml) * IDE/editor configurations (.cursor, .vscode, .idea) * Dependency directories (node_modules, venv, .venv) * Configuration files (.env, tsconfig.json, webpack.config.js) * CI/CD files (.github/workflows, .gitlab-ci.yml, .circleci/config.yml) - DRY refactoring of path utilities: * Centralize path-related functions in core/utils/path-utils.js * Export PROJECT_MARKERS as a single source of truth * Add caching via lastFoundProjectRoot for performance optimization - Enhanced user experience: * Improve error messages with specific troubleshooting guidance * Add detailed logging to indicate project root detection source * Update tool parameter descriptions for better clarity * Add recursive parent directory searching for tasks.json Testing: - Verified in local dev environment - Added unit tests for the progress bar visualization - Updated "automatically detected" description in MCP tools This commit addresses Task #38: Implement robust project root handling for file paths.
55 lines
3.7 KiB
Markdown
55 lines
3.7 KiB
Markdown
---
|
|
"task-master-ai": patch
|
|
---
|
|
|
|
- Implement robust project root detection with a hierarchical precedence system:
|
|
- Environment variable override (TASK_MASTER_PROJECT_ROOT)
|
|
- Explicitly provided project root (--project-root parameter)
|
|
- Cached project root from previous successful operations
|
|
- Current directory with project markers
|
|
- Parent directory traversal to find tasks.json
|
|
- Package directory as fallback
|
|
|
|
- Add comprehensive PROJECT_MARKERS array for detecting common project files:
|
|
- Task Master specific files (tasks.json, tasks/tasks.json)
|
|
- Version control markers (.git, .svn)
|
|
- Package files (package.json, pyproject.toml, etc.)
|
|
- IDE/editor folders (.cursor, .vscode, .idea)
|
|
- Dependency directories (node_modules, venv)
|
|
- Configuration files (.env, tsconfig.json, etc.)
|
|
- CI/CD files (.github/workflows, etc.)
|
|
|
|
- Improved error messages with specific troubleshooting guidance
|
|
- Enhanced logging to indicate the source of project root selection
|
|
- DRY refactoring by centralizing path utilities in core/utils/path-utils.js
|
|
- Add caching of lastFoundProjectRoot for improved performance
|
|
|
|
- Split monolithic task-master-core.js into separate function files within direct-functions directory
|
|
- Implement update-task MCP command for updating a single task by ID
|
|
- Implement update-subtask MCP command for appending information to specific subtasks
|
|
- Implement generate MCP command for creating individual task files from tasks.json
|
|
- Implement set-status MCP command for updating task status
|
|
- Implement show-task MCP command for displaying detailed task information
|
|
- Implement next-task MCP command for finding the next task to work on
|
|
- Implement expand-task MCP command for breaking down tasks into subtasks
|
|
- Implement add-task MCP command for creating new tasks using AI assistance
|
|
- Implement add-subtask MCP command for adding subtasks to existing tasks
|
|
- Implement remove-subtask MCP command for removing subtasks from parent tasks
|
|
- Implement expand-all MCP command for expanding all tasks into subtasks
|
|
- Implement analyze-complexity MCP command for analyzing task complexity
|
|
- Implement clear-subtasks MCP command for clearing subtasks from parent tasks
|
|
- Implement remove-dependency MCP command for removing dependencies from tasks
|
|
- Implement validate-dependencies MCP command for checking validity of task dependencies
|
|
- Implement fix-dependencies MCP command for automatically fixing invalid dependencies
|
|
- Implement complexity-report MCP command for displaying task complexity analysis reports
|
|
- Implement add-dependency MCP command for creating dependency relationships between tasks
|
|
- Document MCP server naming conventions in architecture.mdc and mcp.mdc files (file names use kebab-case, direct functions use camelCase with Direct suffix, tool registration functions use camelCase with Tool suffix, and MCP tool names use snake_case)
|
|
- Enhance task show view with a color-coded progress bar for visualizing subtask completion percentage
|
|
- Add "cancelled" status to UI module status configurations for marking tasks as cancelled without deletion
|
|
- Improve MCP server resource documentation with comprehensive implementation examples and best practices
|
|
- Enhance progress bars with status breakdown visualization showing proportional sections for different task statuses
|
|
- Add improved status tracking for both tasks and subtasks with detailed counts by status
|
|
- Optimize progress bar display with width constraints to prevent UI overflow on smaller terminals
|
|
- Improve status counts display with clear text labels beside status icons for better readability
|
|
- Treat deferred and cancelled tasks as effectively complete for progress calculation while maintaining visual distinction
|