From 41d1e671b1d4edf667f317c4218bfef9b86658da Mon Sep 17 00:00:00 2001 From: Ralph Khreish <35776126+Crunchyman-ralph@users.noreply.github.com> Date: Thu, 7 Aug 2025 15:52:49 +0200 Subject: [PATCH] chore: fix CI checker, improve it (#1099) --- .changeset/pre.json | 8 +++- .github/workflows/pre-release.yml | 23 +++++++-- CHANGELOG.md | 73 +++++++++++++++++++++++++++++ apps/extension/CHANGELOG.md | 9 ++++ apps/extension/package.json | 4 +- apps/extension/package.mjs | 47 ++++++++++++++----- apps/extension/package.publish.json | 2 +- package.json | 2 +- 8 files changed, 148 insertions(+), 20 deletions(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index bb97d44d..fc003c96 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -1,13 +1,17 @@ { - "mode": "exit", + "mode": "pre", "tag": "rc", "initialVersions": { "task-master-ai": "0.23.0", "extension": "0.23.0" }, "changesets": [ + "fuzzy-brooms-mate", "fuzzy-words-count", + "honest-steaks-check", "tender-trams-refuse", - "vast-sites-leave" + "upset-ants-return", + "vast-sites-leave", + "wide-actors-report" ] } diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index 16347764..dda73040 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -36,9 +36,26 @@ jobs: - name: Enter RC mode (if not already in RC mode) run: | - # ensure we’re in the right pre-mode (tag "rc") - if [ ! -f .changeset/pre.json ] \ - || [ "$(jq -r '.tag' .changeset/pre.json 2>/dev/null || echo '')" != "rc" ]; then + # Check if we're in pre-release mode with the "rc" tag + if [ -f .changeset/pre.json ]; then + MODE=$(jq -r '.mode' .changeset/pre.json 2>/dev/null || echo '') + TAG=$(jq -r '.tag' .changeset/pre.json 2>/dev/null || echo '') + + if [ "$MODE" = "exit" ]; then + echo "Pre-release mode is in 'exit' state, re-entering RC mode..." + npx changeset pre enter rc + elif [ "$MODE" = "pre" ] && [ "$TAG" != "rc" ]; then + echo "In pre-release mode but with wrong tag ($TAG), switching to RC..." + npx changeset pre exit + npx changeset pre enter rc + elif [ "$MODE" = "pre" ] && [ "$TAG" = "rc" ]; then + echo "Already in RC pre-release mode" + else + echo "Unknown mode state: $MODE, entering RC mode..." + npx changeset pre enter rc + fi + else + echo "No pre.json found, entering RC mode..." npx changeset pre enter rc fi diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a778404..6a472a24 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,78 @@ # task-master-ai +## 0.24.0-rc.1 + +### Minor Changes + +- [#1093](https://github.com/eyaltoledano/claude-task-master/pull/1093) [`36468f3`](https://github.com/eyaltoledano/claude-task-master/commit/36468f3c93faf4035a5c442ccbc501077f3440f1) Thanks [@Crunchyman-ralph](https://github.com/Crunchyman-ralph)! - Enhanced Claude Code provider with codebase-aware task generation + - Added automatic codebase analysis for Claude Code provider in `parse-prd`, `expand-task`, and `analyze-complexity` commands + - When using Claude Code as the AI provider, Task Master now instructs the AI to analyze the project structure, existing implementations, and patterns before generating tasks or subtasks + - Tasks and subtasks generated by Claude Code are now informed by actual codebase analysis, resulting in more accurate and contextual outputs + +- [#1091](https://github.com/eyaltoledano/claude-task-master/pull/1091) [`4bb6370`](https://github.com/eyaltoledano/claude-task-master/commit/4bb63706b80c28d1b2d782ba868a725326f916c7) Thanks [@Crunchyman-ralph](https://github.com/Crunchyman-ralph)! - Add Claude Code subagent support with task-orchestrator, task-executor, and task-checker + + ## New Claude Code Agents + + Added specialized agents for Claude Code users to enable parallel task execution, intelligent task orchestration, and quality assurance: + + ### task-orchestrator + + Coordinates and manages the execution of Task Master tasks with intelligent dependency analysis: + - Analyzes task dependencies to identify parallelizable work + - Deploys multiple task-executor agents for concurrent execution + - Monitors task completion and updates the dependency graph + - Automatically identifies and starts newly unblocked tasks + + ### task-executor + + Handles the actual implementation of individual tasks: + - Executes specific tasks identified by the orchestrator + - Works on concrete implementation rather than planning + - Updates task status and logs progress + - Can work in parallel with other executors on independent tasks + + ### task-checker + + Verifies that completed tasks meet their specifications: + - Reviews tasks marked as 'review' status + - Validates implementation against requirements + - Runs tests and checks for best practices + - Ensures quality before marking tasks as 'done' + + ## Installation + + When using the Claude profile (`task-master rules add claude`), the agents are automatically installed to `.claude/agents/` directory. + + ## Usage Example + + ```bash + # In Claude Code, after initializing a project with tasks: + + # Use task-orchestrator to analyze and coordinate work + # The orchestrator will: + # 1. Check task dependencies + # 2. Identify tasks that can run in parallel + # 3. Deploy executors for available work + # 4. Monitor progress and deploy new executors as tasks complete + + # Use task-executor for specific task implementation + # When the orchestrator identifies task 2.3 needs work: + # The executor will implement that specific task + ``` + + ## Benefits + - **Parallel Execution**: Multiple independent tasks can be worked on simultaneously + - **Intelligent Scheduling**: Orchestrator understands dependencies and optimizes execution order + - **Separation of Concerns**: Planning (orchestrator) is separated from execution (executor) + - **Progress Tracking**: Real-time updates as tasks are completed + - **Automatic Progression**: As tasks complete, newly unblocked tasks are automatically started + +### Patch Changes + +- [#1094](https://github.com/eyaltoledano/claude-task-master/pull/1094) [`4357af3`](https://github.com/eyaltoledano/claude-task-master/commit/4357af3f13859d90bca8795215e5d5f1d94abde5) Thanks [@Crunchyman-ralph](https://github.com/Crunchyman-ralph)! - Fix expand task generating unrelated generic subtasks + + Fixed an issue where `task-master expand` would generate generic authentication-related subtasks regardless of the parent task context when using complexity reports. The expansion now properly includes the parent task details alongside any expansion guidance. + ## 0.23.1-rc.0 ### Patch Changes diff --git a/apps/extension/CHANGELOG.md b/apps/extension/CHANGELOG.md index 0eb73e53..9d30c2a0 100644 --- a/apps/extension/CHANGELOG.md +++ b/apps/extension/CHANGELOG.md @@ -1,5 +1,14 @@ # Change Log +## 0.23.1-rc.0 + +### Patch Changes + +- [#1090](https://github.com/eyaltoledano/claude-task-master/pull/1090) [`a464e55`](https://github.com/eyaltoledano/claude-task-master/commit/a464e550b886ef81b09df80588fe5881bce83d93) Thanks [@Crunchyman-ralph](https://github.com/Crunchyman-ralph)! - Fix issues with some users not being able to connect to Taskmaster MCP server while using the extension + +- Updated dependencies [[`4357af3`](https://github.com/eyaltoledano/claude-task-master/commit/4357af3f13859d90bca8795215e5d5f1d94abde5), [`36468f3`](https://github.com/eyaltoledano/claude-task-master/commit/36468f3c93faf4035a5c442ccbc501077f3440f1), [`4bb6370`](https://github.com/eyaltoledano/claude-task-master/commit/4bb63706b80c28d1b2d782ba868a725326f916c7)]: + - task-master-ai@0.24.0-rc.1 + ## 0.23.0 ### Minor Changes diff --git a/apps/extension/package.json b/apps/extension/package.json index 1f572fa7..0fb895f4 100644 --- a/apps/extension/package.json +++ b/apps/extension/package.json @@ -3,7 +3,7 @@ "private": true, "displayName": "TaskMaster", "description": "A visual Kanban board interface for TaskMaster projects in VS Code", - "version": "0.23.0", + "version": "0.23.1-rc.0", "publisher": "Hamster", "icon": "assets/icon.png", "engines": { @@ -239,7 +239,7 @@ "check-types": "tsc --noEmit" }, "dependencies": { - "task-master-ai": "*" + "task-master-ai": "0.24.0-rc.1" }, "devDependencies": { "@dnd-kit/core": "^6.3.1", diff --git a/apps/extension/package.mjs b/apps/extension/package.mjs index 211f4416..07bc8d01 100644 --- a/apps/extension/package.mjs +++ b/apps/extension/package.mjs @@ -64,23 +64,49 @@ try { fs.readFileSync(publishPackagePath, 'utf8') ); - // Check if versions are in sync - if (devPackage.version !== publishPackage.version) { + // Handle RC versions for VS Code Marketplace + let finalVersion = devPackage.version; + if (finalVersion.includes('-rc.')) { console.log( - ` - Version sync needed: ${publishPackage.version} → ${devPackage.version}` + ' - Detected RC version, transforming for VS Code Marketplace...' ); - publishPackage.version = devPackage.version; - // Update the source package.publish.json file + // Extract base version and RC number + const baseVersion = finalVersion.replace(/-rc\.\d+$/, ''); + const rcMatch = finalVersion.match(/rc\.(\d+)/); + const rcNumber = rcMatch ? parseInt(rcMatch[1]) : 0; + + // For each RC iteration, increment the patch version + // This ensures unique versions in VS Code Marketplace + if (rcNumber > 0) { + const [major, minor, patch] = baseVersion.split('.').map(Number); + finalVersion = `${major}.${minor}.${patch + rcNumber}`; + console.log( + ` - RC version mapping: ${devPackage.version} → ${finalVersion}` + ); + } else { + finalVersion = baseVersion; + console.log( + ` - RC version mapping: ${devPackage.version} → ${finalVersion}` + ); + } + } + + // Check if versions need updating + if (publishPackage.version !== finalVersion) { + console.log( + ` - Version sync needed: ${publishPackage.version} → ${finalVersion}` + ); + publishPackage.version = finalVersion; + + // Update the source package.publish.json file with the final version fs.writeFileSync( publishPackagePath, JSON.stringify(publishPackage, null, '\t') + '\n' ); - console.log( - ` - Updated package.publish.json version to ${devPackage.version}` - ); + console.log(` - Updated package.publish.json version to ${finalVersion}`); } else { - console.log(` - Versions already in sync: ${devPackage.version}`); + console.log(` - Versions already in sync: ${finalVersion}`); } // Copy the (now synced) package.publish.json as package.json @@ -124,8 +150,7 @@ try { `cd vsix-build && npx vsce package --no-dependencies` ); - // Use the synced version for output - const finalVersion = devPackage.version; + // Use the transformed version for output console.log( `\nYour extension will be packaged to: vsix-build/task-master-${finalVersion}.vsix` ); diff --git a/apps/extension/package.publish.json b/apps/extension/package.publish.json index 9fce709f..b05fc6fb 100644 --- a/apps/extension/package.publish.json +++ b/apps/extension/package.publish.json @@ -2,7 +2,7 @@ "name": "task-master-hamster", "displayName": "Taskmaster AI", "description": "A visual Kanban board interface for Taskmaster projects in VS Code", - "version": "0.23.0", + "version": "0.23.1", "publisher": "Hamster", "icon": "assets/icon.png", "engines": { diff --git a/package.json b/package.json index 9470428e..c9f34b22 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "task-master-ai", - "version": "0.23.1-rc.0", + "version": "0.24.0-rc.1", "description": "A task management system for ambitious AI-driven development that doesn't overwhelm and confuse Cursor.", "main": "index.js", "type": "module",