This commit completes the major refactoring initiative (Task 61) to migrate all AI-interacting task management functions to the unified service layer (`ai-services-unified.js`) and standardized configuration (`config-manager.js`).
Key Changes:
1. **Refactor `update-task-by-id` & `update-subtask-by-id`:**
* Replaced direct AI client logic and config fetching with calls to `generateTextService`.
* Preserved original prompt logic while ensuring JSON output format is requested.
* Implemented robust manual JSON parsing and Zod validation for text-based AI responses.
* Corrected logger implementation (`logFn`/`isMCP`/`report` pattern) for both CLI and MCP contexts.
* Ensured correct passing of `session` context to the unified service.
* Refactored associated direct function wrappers (`updateTaskByIdDirect`, `updateSubtaskByIdDirect`) to remove AI client initialization and call core logic appropriately.
2. **CLI Environment Loading:**
* Added `dotenv.config()` to `scripts/dev.js` to ensure consistent loading of the `.env` file for CLI operations.
3. **Obsolete Code Removal:**
* Deleted unused helper files:
* `scripts/modules/task-manager/get-subtasks-from-ai.js`
* `scripts/modules/task-manager/generate-subtask-prompt.js`
* `scripts/modules/ai-services.js`
* `scripts/modules/ai-client-factory.js`
* `mcp-server/src/core/utils/ai-client-utils.js`
* Removed corresponding imports/exports from `scripts/modules/task-manager.js` and `mcp-server/src/core/task-master-core.js`.
4. **Verification:**
* Successfully tested `update-task` and `update-subtask` via both CLI and MCP after refactoring.
5. **Task Management:**
* Marked subtasks 61.38, 61.39, 61.40, 61.41, and 61.33 as 'done'.
* Includes other task content/status updates as reflected in the diff.
This completes the migration of core AI features to the new architecture, enhancing maintainability and flexibility.
69 lines
4.1 KiB
Plaintext
69 lines
4.1 KiB
Plaintext
# Task ID: 59
|
|
# Title: Remove Manual Package.json Modifications and Implement Automatic Dependency Management
|
|
# Status: done
|
|
# Dependencies: None
|
|
# Priority: medium
|
|
# Description: Eliminate code that manually modifies users' package.json files and implement proper npm dependency management that automatically handles package requirements when users install task-master-ai.
|
|
# Details:
|
|
Currently, the application is attempting to manually modify users' package.json files, which is not the recommended approach for npm packages. Instead:
|
|
|
|
1. Review all code that directly manipulates package.json files in users' projects
|
|
2. Remove these manual modifications
|
|
3. Properly define all dependencies in the package.json of task-master-ai itself
|
|
4. Ensure all peer dependencies are correctly specified
|
|
5. For any scripts that need to be available to users, use proper npm bin linking or npx commands
|
|
6. Update the installation process to leverage npm's built-in dependency management
|
|
7. If configuration is needed in users' projects, implement a proper initialization command that creates config files rather than modifying package.json
|
|
8. Document the new approach in the README and any other relevant documentation
|
|
|
|
This change will make the package more reliable, follow npm best practices, and prevent potential conflicts or errors when modifying users' project files.
|
|
|
|
# Test Strategy:
|
|
1. Create a fresh test project directory
|
|
2. Install the updated task-master-ai package using npm install task-master-ai
|
|
3. Verify that no code attempts to modify the test project's package.json
|
|
4. Confirm all dependencies are properly installed in node_modules
|
|
5. Test all commands to ensure they work without the previous manual package.json modifications
|
|
6. Try installing in projects with various existing configurations to ensure no conflicts occur
|
|
7. Test the uninstall process to verify it cleanly removes the package without leaving unwanted modifications
|
|
8. Verify the package works in different npm environments (npm 6, 7, 8) and with different Node.js versions
|
|
9. Create an integration test that simulates a real user workflow from installation through usage
|
|
|
|
# Subtasks:
|
|
## 1. Conduct Code Audit for Dependency Management [done]
|
|
### Dependencies: None
|
|
### Description: Review the current codebase to identify all areas where dependencies are manually managed, modified, or referenced outside of npm best practices.
|
|
### Details:
|
|
Focus on scripts, configuration files, and any custom logic related to dependency installation or versioning.
|
|
|
|
## 2. Remove Manual Dependency Modifications [done]
|
|
### Dependencies: 59.1
|
|
### Description: Eliminate any custom scripts or manual steps that alter dependencies outside of npm's standard workflow.
|
|
### Details:
|
|
Refactor or delete code that manually installs, updates, or modifies dependencies, ensuring all dependency management is handled via npm.
|
|
|
|
## 3. Update npm Dependencies [done]
|
|
### Dependencies: 59.2
|
|
### Description: Update all project dependencies using npm, ensuring versions are current and compatible, and resolve any conflicts.
|
|
### Details:
|
|
Run npm update, audit for vulnerabilities, and adjust package.json and package-lock.json as needed.
|
|
|
|
## 4. Update Initialization and Installation Commands [done]
|
|
### Dependencies: 59.3
|
|
### Description: Revise project setup scripts and documentation to reflect the new npm-based dependency management approach.
|
|
### Details:
|
|
Ensure that all initialization commands (e.g., npm install) are up-to-date and remove references to deprecated manual steps.
|
|
|
|
## 5. Update Documentation [done]
|
|
### Dependencies: 59.4
|
|
### Description: Revise project documentation to describe the new dependency management process and provide clear setup instructions.
|
|
### Details:
|
|
Update README, onboarding guides, and any developer documentation to align with npm best practices.
|
|
|
|
## 6. Perform Regression Testing [done]
|
|
### Dependencies: 59.5
|
|
### Description: Run comprehensive tests to ensure that the refactor has not introduced any regressions or broken existing functionality.
|
|
### Details:
|
|
Execute automated and manual tests, focusing on areas affected by dependency management changes.
|
|
|