Skip to content

Commit 4de44bc

Browse files
Merge pull request #1512 from eyaltoledano/next (Release 0.38.0)
2 parents 59ab500 + ce784cd commit 4de44bc

114 files changed

Lines changed: 13693 additions & 400 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
"task-master-ai": minor
3+
---
4+
5+
Add operating mode filtering for slash commands and rules
6+
7+
Solo mode and team mode now have distinct sets of commands and rules:
8+
- **Solo mode**: Local file-based storage commands (parse-prd, add-task, expand, etc.) plus common commands
9+
- **Team mode**: Team-specific commands (goham) plus common commands (show-task, list-tasks, help, etc.)
10+
11+
Both modes share common commands for viewing and navigating tasks. The difference is:
12+
- Solo users get commands for local file management (PRD parsing, task expansion, dependencies)
13+
- Team users get Hamster cloud integration commands instead
14+
15+
When switching modes (e.g., from solo to team), all existing TaskMaster commands and rules are automatically cleaned up before adding the new mode's files. This prevents orphaned commands/rules from previous modes.
16+
17+
The operating mode is auto-detected from config or auth status, and can be overridden with `--mode=solo|team` flag on the `rules` command.

.changeset/pre.json

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"mode": "exit",
3+
"tag": "rc",
4+
"initialVersions": {
5+
"task-master-ai": "0.37.2",
6+
"@tm/cli": "",
7+
"docs": "0.0.13",
8+
"extension": "0.26.0",
9+
"@tm/mcp": "",
10+
"@tm/ai-sdk-provider-grok-cli": "",
11+
"@tm/build-config": "",
12+
"@tm/claude-code-plugin": "0.0.7",
13+
"@tm/bridge": "",
14+
"@tm/core": "",
15+
"@tm/profiles": ""
16+
},
17+
"changesets": [
18+
"mode-filtering-slash-commands",
19+
"warm-things-shake",
20+
"xhigh-reasoning-support"
21+
]
22+
}

.changeset/warm-things-shake.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
"task-master-ai": minor
3+
---
4+
5+
Add Taskmaster slash commands for:
6+
7+
- Roo
8+
- Cursor
9+
- Codex
10+
- Gemini
11+
- Opencode
12+
13+
Add them with `task-master rules add <provider>`
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
"task-master-ai": minor
3+
---
4+
5+
Added support for new OpenAI models with reasoning effort configuration:
6+
- `gpt-5.1` (codex-cli & openai): supports none, low, medium, high reasoning
7+
- `gpt-5.1-codex-max` (codex-cli & openai): supports none, low, medium, high, xhigh reasoning
8+
- `gpt-5.2` (codex-cli & openai): supports none, low, medium, high, xhigh reasoning
9+
- `gpt-5.2-pro` (openai only): supports medium, high, xhigh reasoning
10+
11+
Updated ai-sdk-provider-codex-cli dependency to ^0.7.0.

.github/workflows/ci.yml

Lines changed: 68 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -18,24 +18,54 @@ permissions:
1818
env:
1919
DO_NOT_TRACK: 1
2020
NODE_ENV: development
21+
NODE_VERSION: 20
2122

2223
jobs:
24+
# Single install job that caches node_modules for all other jobs
25+
install:
26+
name: Install Dependencies
27+
runs-on: ubuntu-latest
28+
steps:
29+
- uses: actions/checkout@v4
30+
31+
- uses: actions/setup-node@v4
32+
with:
33+
node-version: ${{ env.NODE_VERSION }}
34+
35+
- name: Cache node_modules
36+
id: cache-node-modules
37+
uses: actions/cache@v4
38+
with:
39+
path: node_modules
40+
key: node-modules-${{ runner.os }}-node${{ env.NODE_VERSION }}-${{ hashFiles('package-lock.json') }}
41+
42+
- name: Install dependencies
43+
if: steps.cache-node-modules.outputs.cache-hit != 'true'
44+
run: npm ci
45+
timeout-minutes: 5
46+
2347
# Fast checks that can run in parallel
2448
format-check:
2549
name: Format Check
2650
runs-on: ubuntu-latest
51+
needs: install
2752
steps:
2853
- uses: actions/checkout@v4
29-
with:
30-
fetch-depth: 2
3154

3255
- uses: actions/setup-node@v4
3356
with:
34-
node-version: 20
35-
cache: "npm"
57+
node-version: ${{ env.NODE_VERSION }}
58+
59+
- name: Restore node_modules cache
60+
id: cache-node-modules
61+
uses: actions/cache@v4
62+
with:
63+
path: node_modules
64+
key: node-modules-${{ runner.os }}-node${{ env.NODE_VERSION }}-${{ hashFiles('package-lock.json') }}
3665

3766
- name: Install dependencies
38-
run: npm install --frozen-lockfile --prefer-offline
67+
if: steps.cache-node-modules.outputs.cache-hit != 'true'
68+
run: npm ci
3969
timeout-minutes: 5
4070

4171
- name: Format Check
@@ -62,7 +92,7 @@ jobs:
6292
- uses: actions/setup-node@v4
6393
if: steps.changes.outputs.changesets == 'true'
6494
with:
65-
node-version: 20
95+
node-version: ${{ env.NODE_VERSION }}
6696
cache: "npm"
6797

6898
- name: Validate changeset package references
@@ -78,18 +108,24 @@ jobs:
78108
name: Typecheck
79109
timeout-minutes: 10
80110
runs-on: ubuntu-latest
111+
needs: install
81112
steps:
82113
- uses: actions/checkout@v4
83-
with:
84-
fetch-depth: 2
85114

86115
- uses: actions/setup-node@v4
87116
with:
88-
node-version: 20
89-
cache: "npm"
117+
node-version: ${{ env.NODE_VERSION }}
118+
119+
- name: Restore node_modules cache
120+
id: cache-node-modules
121+
uses: actions/cache@v4
122+
with:
123+
path: node_modules
124+
key: node-modules-${{ runner.os }}-node${{ env.NODE_VERSION }}-${{ hashFiles('package-lock.json') }}
90125

91126
- name: Install dependencies
92-
run: npm install --frozen-lockfile --prefer-offline
127+
if: steps.cache-node-modules.outputs.cache-hit != 'true'
128+
run: npm ci
93129
timeout-minutes: 5
94130

95131
- name: Typecheck
@@ -101,18 +137,24 @@ jobs:
101137
build:
102138
name: Build
103139
runs-on: ubuntu-latest
140+
needs: install
104141
steps:
105142
- uses: actions/checkout@v4
106-
with:
107-
fetch-depth: 2
108143

109144
- uses: actions/setup-node@v4
110145
with:
111-
node-version: 20
112-
cache: "npm"
146+
node-version: ${{ env.NODE_VERSION }}
147+
148+
- name: Restore node_modules cache
149+
id: cache-node-modules
150+
uses: actions/cache@v4
151+
with:
152+
path: node_modules
153+
key: node-modules-${{ runner.os }}-node${{ env.NODE_VERSION }}-${{ hashFiles('package-lock.json') }}
113154

114155
- name: Install dependencies
115-
run: npm install --frozen-lockfile --prefer-offline
156+
if: steps.cache-node-modules.outputs.cache-hit != 'true'
157+
run: npm ci
116158
timeout-minutes: 5
117159

118160
- name: Build
@@ -139,16 +181,21 @@ jobs:
139181
if: always() && !cancelled() && !contains(needs.*.result, 'failure')
140182
steps:
141183
- uses: actions/checkout@v4
142-
with:
143-
fetch-depth: 2
144184

145185
- uses: actions/setup-node@v4
146186
with:
147-
node-version: 20
148-
cache: "npm"
187+
node-version: ${{ env.NODE_VERSION }}
188+
189+
- name: Restore node_modules cache
190+
id: cache-node-modules
191+
uses: actions/cache@v4
192+
with:
193+
path: node_modules
194+
key: node-modules-${{ runner.os }}-node${{ env.NODE_VERSION }}-${{ hashFiles('package-lock.json') }}
149195

150196
- name: Install dependencies
151-
run: npm install --frozen-lockfile --prefer-offline
197+
if: steps.cache-node-modules.outputs.cache-hit != 'true'
198+
run: npm ci
152199
timeout-minutes: 5
153200

154201
- name: Download build artifacts

.github/workflows/release.yml

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ jobs:
3939
cache: npm
4040
registry-url: "https://registry.npmjs.org"
4141

42+
- name: Update npm for trusted publishing
43+
run: npm install -g npm@latest
44+
4245
- name: Cache node_modules
4346
uses: actions/cache@v4
4447
with:
@@ -49,7 +52,7 @@ jobs:
4952
restore-keys: |
5053
${{ runner.os }}-node-
5154
52-
- name: Install Dependencies
55+
- name: Install dependencies
5356
run: npm ci
5457
timeout-minutes: 2
5558

@@ -65,10 +68,11 @@ jobs:
6568
TM_PUBLIC_SUPABASE_URL: ${{ secrets.TM_PUBLIC_SUPABASE_URL }}
6669
TM_PUBLIC_SUPABASE_ANON_KEY: ${{ secrets.TM_PUBLIC_SUPABASE_ANON_KEY }}
6770

68-
- name: Create Release Pull Request or Publish to npm
71+
- name: Create Release Pull Request or Publish
6972
uses: changesets/action@v1
7073
with:
71-
publish: node ./.github/scripts/release.mjs
74+
version: npm run version
75+
publish: npm run release
7276
env:
7377
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
7478
NPM_CONFIG_PROVENANCE: true
@@ -77,7 +81,6 @@ jobs:
7781
rc:
7882
if: github.event_name == 'workflow_dispatch' && github.ref != 'refs/heads/main'
7983
runs-on: ubuntu-latest
80-
environment: extension-release
8184
steps:
8285
- uses: actions/checkout@v4
8386
with:
@@ -89,6 +92,9 @@ jobs:
8992
cache: npm
9093
registry-url: "https://registry.npmjs.org"
9194

95+
- name: Update npm for trusted publishing
96+
run: npm install -g npm@latest
97+
9298
- name: Cache node_modules
9399
uses: actions/cache@v4
94100
with:
@@ -147,17 +153,14 @@ jobs:
147153
TM_PUBLIC_SUPABASE_URL: ${{ secrets.TM_PUBLIC_SUPABASE_URL }}
148154
TM_PUBLIC_SUPABASE_ANON_KEY: ${{ secrets.TM_PUBLIC_SUPABASE_ANON_KEY }}
149155

150-
- name: Create Release Candidate Pull Request or Publish Release Candidate to npm
151-
uses: changesets/action@v1
152-
with:
153-
publish: npx changeset publish
156+
- name: Publish RC to npm
157+
run: npx changeset publish
154158
env:
155159
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
156160
NPM_CONFIG_PROVENANCE: true
157161

158162
- name: Commit & Push changes
159-
uses: actions-js/push@v1.5
163+
uses: stefanzweifel/git-auto-commit-action@v5
160164
with:
161-
github_token: ${{ secrets.GITHUB_TOKEN }}
162-
branch: ${{ github.ref }}
163-
message: "chore: rc version bump"
165+
commit_message: "chore: rc version bump [skip ci]"
166+
branch: ${{ github.ref_name }}

CHANGELOG.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,54 @@
11
# task-master-ai
22

3+
## 0.38.0-rc.1
4+
5+
### Minor Changes
6+
7+
- [#1461](https://github.com/eyaltoledano/claude-task-master/pull/1461) [`9ee63e0`](https://github.com/eyaltoledano/claude-task-master/commit/9ee63e01db4308cf248be3855949c7cd86272b9b) Thanks [@Crunchyman-ralph](https://github.com/Crunchyman-ralph)! - Add operating mode filtering for slash commands and rules
8+
9+
Solo mode and team mode now have distinct sets of commands and rules:
10+
- **Solo mode**: Local file-based storage commands (parse-prd, add-task, expand, etc.) plus common commands
11+
- **Team mode**: Team-specific commands (goham) plus common commands (show-task, list-tasks, help, etc.)
12+
13+
Both modes share common commands for viewing and navigating tasks. The difference is:
14+
- Solo users get commands for local file management (PRD parsing, task expansion, dependencies)
15+
- Team users get Hamster cloud integration commands instead
16+
17+
When switching modes (e.g., from solo to team), all existing TaskMaster commands and rules are automatically cleaned up before adding the new mode's files. This prevents orphaned commands/rules from previous modes.
18+
19+
The operating mode is auto-detected from config or auth status, and can be overridden with `--mode=solo|team` flag on the `rules` command.
20+
21+
- [#1461](https://github.com/eyaltoledano/claude-task-master/pull/1461) [`9ee63e0`](https://github.com/eyaltoledano/claude-task-master/commit/9ee63e01db4308cf248be3855949c7cd86272b9b) Thanks [@Crunchyman-ralph](https://github.com/Crunchyman-ralph)! - Add Taskmaster slash commands for:
22+
- Roo
23+
- Cursor
24+
- Codex
25+
- Gemini
26+
- Opencode
27+
28+
Add them with `task-master rules add <provider>`
29+
30+
## 0.38.0-rc.0
31+
32+
### Minor Changes
33+
34+
- [#1508](https://github.com/eyaltoledano/claude-task-master/pull/1508) [`69ac463`](https://github.com/eyaltoledano/claude-task-master/commit/69ac46351eac8e1c3f58b203b2a618bf6114c000) Thanks [@ben-vargas](https://github.com/ben-vargas)! - Added support for new OpenAI models with reasoning effort configuration:
35+
- `gpt-5.1` (codex-cli & openai): supports none, low, medium, high reasoning
36+
- `gpt-5.1-codex-max` (codex-cli & openai): supports none, low, medium, high, xhigh reasoning
37+
- `gpt-5.2` (codex-cli & openai): supports none, low, medium, high, xhigh reasoning
38+
- `gpt-5.2-pro` (openai only): supports medium, high, xhigh reasoning
39+
40+
Updated ai-sdk-provider-codex-cli dependency to ^0.7.0.
41+
42+
## 0.37.2
43+
44+
### Patch Changes
45+
46+
- [#1492](https://github.com/eyaltoledano/claude-task-master/pull/1492) [`071dfc6`](https://github.com/eyaltoledano/claude-task-master/commit/071dfc6be9abe30909157ea72e026036721cea1d) Thanks [@Crunchyman-ralph](https://github.com/Crunchyman-ralph)! - Fix login issues for users whose browsers or firewalls were blocking CLI authentication
47+
48+
- [#1491](https://github.com/eyaltoledano/claude-task-master/pull/1491) [`0e908be`](https://github.com/eyaltoledano/claude-task-master/commit/0e908be43af1075bae1fd7f6b7a6fad8a131dd56) Thanks [@Crunchyman-ralph](https://github.com/Crunchyman-ralph)! - Add `tm/` prefix to autopilot branch names
49+
- Team mode branches now follow the `tm/<org-slug>/task-<id>` naming convention for better organization.
50+
- Solves issue some users were having regarding not being able to start workflow on master Taskmaster tag
51+
352
## 0.37.2
453

554
### Patch Changes

apps/extension/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@
275275
"tailwindcss": "4.1.11",
276276
"typescript": "^5.9.2",
277277
"@tm/core": "*",
278-
"task-master-ai": "*"
278+
"task-master-ai": "0.38.0-rc.1"
279279
},
280280
"overrides": {
281281
"glob@<8": "^10.4.5",

apps/extension/src/utils/mcpClient.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -148,9 +148,7 @@ export class MCPClientManager {
148148
version: '1.0.0'
149149
},
150150
{
151-
capabilities: {
152-
tools: {}
153-
}
151+
capabilities: {}
154152
}
155153
);
156154

apps/mcp/tests/integration/tools/generate.tool.test.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,11 @@ describe('generate MCP tool', () => {
7272

7373
const output = execSync(
7474
`npx @modelcontextprotocol/inspector --cli node "${mcpServerPath}" --method tools/call --tool-name ${toolName} ${toolArgs}`,
75-
{ encoding: 'utf-8', stdio: 'pipe' }
75+
{
76+
encoding: 'utf-8',
77+
stdio: 'pipe',
78+
env: { ...process.env, TASK_MASTER_TOOLS: 'all' }
79+
}
7680
);
7781

7882
// Parse the MCP protocol response: { content: [{ type: "text", text: "<json>" }] }

0 commit comments

Comments
 (0)