Compare commits

..

7 Commits

Author SHA1 Message Date
Ralph Khreish
f97c02bdd5 chore: improve CI to better accomodate pre-releases for testing 2025-05-15 00:27:40 +02:00
Joe Danziger
efce37469b Fix duplicate output on CLI help screen (#496)
* remove duplication

* add changeset

* fix formatting
2025-05-14 13:12:15 +02:00
Joe Danziger
4117f71c18 Fix CLI --force flag on parse-prd command 2025-05-13 22:06:09 +02:00
Ralph Khreish
0527c363e3 Merge remote-tracking branch 'origin/main' into next 2025-05-03 19:32:07 +02:00
Ralph Khreish
735135efe9 chore: allow github actions to commit 2025-05-03 19:24:00 +02:00
Ralph Khreish
4fee667a05 chore: improve pre-release workflow 2025-05-03 19:07:42 +02:00
Ralph Khreish
01963af2cb Fix: issues with 0.13.0 not working (#402)
* Exit prerelease mode and version packages

* hotfix: move production package to "dependencies"

* Enter prerelease mode and version packages

* Enter prerelease mode and version packages

* chore: cleanup

* chore: improve pre.json and add pre-release workflow

* chore: fix package.json

* chore: cleanup
2025-05-03 18:55:18 +02:00
12 changed files with 142 additions and 22 deletions

View File

@@ -0,0 +1,5 @@
---
'task-master-ai': patch
---
Resolve all issues related to MCP

View File

@@ -0,0 +1,9 @@
---
'task-master-ai': patch
---
Fix CLI --force flag for parse-prd command
Previously, the --force flag was not respected when running `parse-prd`, causing the command to prompt for confirmation or fail even when --force was provided. This patch ensures that the flag is correctly passed and handled, allowing users to overwrite existing tasks.json files as intended.
- Fixes #477

30
.changeset/pre.json Normal file
View File

@@ -0,0 +1,30 @@
{
"mode": "pre",
"tag": "rc",
"initialVersions": {
"task-master-ai": "0.13.1"
},
"changesets": [
"beige-doodles-type",
"beige-rats-accept",
"blue-spies-kick",
"cuddly-zebras-matter",
"curvy-candies-eat",
"easy-toys-wash",
"every-stars-sell",
"fine-monkeys-eat",
"fine-signs-add",
"gentle-views-jump",
"mighty-mirrors-watch",
"neat-donkeys-shave",
"nine-rocks-sink",
"ninety-ghosts-relax",
"ninety-wombats-pull",
"public-cooks-fetch",
"red-oranges-attend",
"red-suns-wash",
"tricky-papayas-hang",
"violet-papayas-see",
"violet-parrots-march"
]
}

View File

@@ -0,0 +1,5 @@
---
'task-master-ai': patch
---
Fix ERR_MODULE_NOT_FOUND when trying to run MCP Server

View File

@@ -0,0 +1,5 @@
---
'task-master-ai': patch
---
Add src directory to exports

View File

@@ -0,0 +1,11 @@
---
'task-master-ai': patch
---
Fix duplicate output on CLI help screen
- Prevent the Task Master CLI from printing the help screen more than once when using `-h` or `--help`.
- Removed redundant manual event handlers and guards for help output; now only the Commander `.helpInformation` override is used for custom help.
- Simplified logic so that help is only shown once for both "no arguments" and help flag flows.
- Ensures a clean, branded help experience with no repeated content.
- Fixes #339

62
.github/workflows/pre-release.yml vendored Normal file
View File

@@ -0,0 +1,62 @@
name: Pre-Release (RC)
on:
workflow_dispatch: # Allows manual triggering from GitHub UI/API
concurrency: pre-release-${{ github.ref }}
jobs:
rc:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- name: Cache node_modules
uses: actions/cache@v4
with:
path: |
node_modules
*/*/node_modules
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Install dependencies
run: npm ci
timeout-minutes: 2
- name: Enter RC mode
run: |
npx changeset pre exit || true
npx changeset pre enter rc
- name: Version RC packages
run: npx changeset version
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Create Release Candidate Pull Request or Publish Release Candidate to npm
uses: changesets/action@v1
with:
publish: npm run release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Exit RC mode
run: npx changeset pre exit
- name: Commit & Push changes
uses: actions-js/push@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: ${{ github.ref }}
message: 'chore: rc version bump'

View File

@@ -33,6 +33,9 @@ jobs:
run: npm ci run: npm ci
timeout-minutes: 2 timeout-minutes: 2
- name: Exit pre-release mode (safety check)
run: npx changeset pre exit || true
- name: Create Release Pull Request or Publish to npm - name: Create Release Pull Request or Publish to npm
uses: changesets/action@v1 uses: changesets/action@v1
with: with:

3
.gitignore vendored
View File

@@ -61,3 +61,6 @@ dist
*.debug *.debug
init-debug.log init-debug.log
dev-debug.log dev-debug.log
# NPMRC
.npmrc

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "task-master-ai", "name": "task-master-ai",
"version": "0.13.0", "version": "0.13.2-rc.1",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "task-master-ai", "name": "task-master-ai",
"version": "0.13.0", "version": "0.13.2-rc.1",
"license": "MIT WITH Commons-Clause", "license": "MIT WITH Commons-Clause",
"dependencies": { "dependencies": {
"@ai-sdk/anthropic": "^1.2.10", "@ai-sdk/anthropic": "^1.2.10",

View File

@@ -1,6 +1,6 @@
{ {
"name": "task-master-ai", "name": "task-master-ai",
"version": "0.13.1", "version": "0.13.2-rc.1",
"description": "A task management system for ambitious AI-driven development that doesn't overwhelm and confuse Cursor.", "description": "A task management system for ambitious AI-driven development that doesn't overwhelm and confuse Cursor.",
"main": "index.js", "main": "index.js",
"type": "module", "type": "module",
@@ -82,15 +82,14 @@
"url": "https://github.com/eyaltoledano/claude-task-master/issues" "url": "https://github.com/eyaltoledano/claude-task-master/issues"
}, },
"files": [ "files": [
"scripts/init.js", "scripts/**",
"scripts/dev.js",
"scripts/modules/**",
"assets/**", "assets/**",
".cursor/**", ".cursor/**",
"README-task-master.md", "README-task-master.md",
"index.js", "index.js",
"bin/**", "bin/**",
"mcp-server/**" "mcp-server/**",
"src/**"
], ],
"overrides": { "overrides": {
"node-fetch": "^3.3.2", "node-fetch": "^3.3.2",

View File

@@ -486,11 +486,6 @@ function registerCommands(programInstance) {
process.exit(1); process.exit(1);
}); });
// Default help
programInstance.on('--help', function () {
displayHelp();
});
// parse-prd command // parse-prd command
programInstance programInstance
.command('parse-prd') .command('parse-prd')
@@ -515,7 +510,7 @@ function registerCommands(programInstance) {
const outputPath = options.output; const outputPath = options.output;
const force = options.force || false; const force = options.force || false;
const append = options.append || false; const append = options.append || false;
let useForce = false; let useForce = force;
let useAppend = false; let useAppend = false;
// Helper function to check if tasks.json exists and confirm overwrite // Helper function to check if tasks.json exists and confirm overwrite
@@ -609,7 +604,7 @@ function registerCommands(programInstance) {
spinner = ora('Parsing PRD and generating tasks...').start(); spinner = ora('Parsing PRD and generating tasks...').start();
await parsePRD(inputFile, outputPath, numTasks, { await parsePRD(inputFile, outputPath, numTasks, {
append: useAppend, append: useAppend,
force: useForce useForce
}); });
spinner.succeed('Tasks generated successfully!'); spinner.succeed('Tasks generated successfully!');
} catch (error) { } catch (error) {
@@ -2366,14 +2361,7 @@ function setupCLI() {
return 'unknown'; // Default fallback if package.json fails return 'unknown'; // Default fallback if package.json fails
}) })
.helpOption('-h, --help', 'Display help') .helpOption('-h, --help', 'Display help')
.addHelpCommand(false) // Disable default help command .addHelpCommand(false); // Disable default help command
.on('--help', () => {
displayHelp(); // Use your custom help display instead
})
.on('-h', () => {
displayHelp();
process.exit(0);
});
// Modify the help option to use your custom display // Modify the help option to use your custom display
programInstance.helpInformation = () => { programInstance.helpInformation = () => {