Skip to content

chore: fix CI failing to release#1232

Merged
Crunchyman-ralph merged 2 commits intomainfrom
ralph/chore/fix.ci.changesets.for.monorepos
Sep 22, 2025
Merged

chore: fix CI failing to release#1232
Crunchyman-ralph merged 2 commits intomainfrom
ralph/chore/fix.ci.changesets.for.monorepos

Conversation

@Crunchyman-ralph
Copy link
Collaborator

@Crunchyman-ralph Crunchyman-ralph commented Sep 22, 2025

What type of PR is this?

  • 🐛 Bug fix
  • ✨ Feature
  • 🔌 Integration
  • 📝 Docs
  • 🧹 Refactor
  • Other:

Description

Related Issues

How to Test This

# Example commands or steps

Expected result:

Contributor Checklist

  • Created changeset: npm run changeset
  • Tests pass: npm test
  • Format check passes: npm run format-check (or npm run format to fix)
  • Addressed CodeRabbit comments (if any)
  • Linked related issues (if any)
  • Manually tested the changes

Changelog Entry


For Maintainers

  • PR title follows conventional commits
  • Target branch correct
  • Labels added
  • Milestone assigned (if applicable)

Summary by CodeRabbit

  • Chores
    • Standardized package manifest formatting and removed redundant internal version fields.
    • Added workspace dependency checks (new deps:check and deps:fix) and repository config for multi-package management.
    • Updated several tooling and runtime dependencies across the workspace; added a Supabase client dependency.
  • Release
    • VS Code extension patched to 0.25.1.
  • Notes
    • No functional user-facing feature changes; primarily packaging, dependency, and release tooling updates.

@changeset-bot
Copy link

changeset-bot bot commented Sep 22, 2025

🦋 Changeset detected

Latest commit: 455cd1c

The changes in this PR will be included in the next version bump.

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Sep 22, 2025

Walkthrough

Removed three packages from the changeset ignore list, removed top-level version fields from several package manifests, bumped the extension version, updated/added dependencies and scripts in root and workspace manifests, and compacted JSON arrays to single-line formatting. No source-code API changes.

Changes

Cohort / File(s) Summary of Changes
Changeset config
./.changeset/config.json
Removed ignore entries for @tm/cli, @tm/core, and @tm/build-config, leaving only docs ignored.
Manifest version removal + formatting
apps/cli/package.json, packages/build-config/package.json, packages/tm-core/package.json
Removed top-level version fields; compacted files, keywords, and typesVersions arrays/maps to single-line forms; bumped some dependency/devDependency versions (e.g., zod, @types/node, typescript, vitest, etc.).
CLI app manifest edits
apps/cli/package.json
Removed version field; normalized files, keywords, and typesVersions formatting; updated dependencies: boxen, inquirer, ora versions.
Extension manifest bump + deps
apps/extension/package.json
Bumped version 0.25.0 → 0.25.1; compacted several arrays to single-line; added @tanstack/react-query and updated react, react-dom, @types/node, and TypeScript versions.
Root manifest changes
package.json
Added scripts deps:check and deps:fix; added @supabase/supabase-js; updated commander, tsx, typescript; added @manypkg/cli and @tm/cli to devDependencies; minor files/workspaces formatting.
Changeset entry
.changeset/fluffy-clocks-cross.md
Added a patch changeset entry describing a patch release (task-master-ai 0.27.0) for a module-not-found fix; no code/API changes.
manypkg config added
.manypkg.json
Added .manypkg.json with schema, defaultBranch, and ignoredPackages including @tm/core, @tm/cli, @tm/build-config.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant Dev as Developer
  participant Git as Git/CI
  participant Changeset as Changeset Processor
  participant Release as Release pipeline

  Dev->>Git: Push changes (package manifests, .changeset, .manypkg)
  Git->>Changeset: Trigger changeset processing
  note right of Changeset #DDEBF7: Previously ignored: @tm/cli, @tm/core, @tm/build-config\nNow included for processing
  Changeset->>Release: Emit package releases for included packages
  Release->>Git: Publish updated package metadata / create releases
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • eyaltoledano

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title "chore: fix CI failing to release" is a concise, conventional-commit style summary that directly reflects the PR's primary intent to resolve CI/release issues (consistent with changes to changeset and monorepo configuration in the diff). It is a single short sentence, specific enough for reviewers to understand the main change without unnecessary detail.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch ralph/chore/fix.ci.changesets.for.monorepos

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Collaborator Author

@Crunchyman-ralph Crunchyman-ralph left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

whatever doesn't have a version will automatically be ignored which is exactly what we want!

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d67b81d and f8ede88.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (6)
  • .changeset/config.json (1 hunks)
  • apps/cli/package.json (2 hunks)
  • apps/extension/package.json (3 hunks)
  • package.json (2 hunks)
  • packages/build-config/package.json (1 hunks)
  • packages/tm-core/package.json (1 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
package.json

📄 CodeRabbit inference engine (.cursor/rules/test_workflow.mdc)

Add and update test scripts in package.json to include test, test:watch, test:coverage, test:unit, test:integration, test:e2e, and test:ci

Files:

  • package.json
.changeset/*

📄 CodeRabbit inference engine (.cursor/rules/new_features.mdc)

Create appropriate changesets for new features, use semantic versioning, include tagged system information in release notes, and document breaking changes if any.

Files:

  • .changeset/config.json
🧠 Learnings (18)
📓 Common learnings
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1178
File: packages/tm-core/src/auth/config.ts:5-7
Timestamp: 2025-09-02T21:51:27.921Z
Learning: The user Crunchyman-ralph prefers not to use node: scheme imports (e.g., 'node:os', 'node:path') for Node.js core modules and considers suggestions to change bare imports to node: scheme as too nitpicky.
📚 Learning: 2025-07-31T20:49:04.638Z
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#997
File: apps/extension/package.publish.json:2-8
Timestamp: 2025-07-31T20:49:04.638Z
Learning: In the eyaltoledano/claude-task-master repository, the VS Code extension uses a 3-file packaging system where package.json (with name "extension") is for development within the monorepo, while package.publish.json (with name "task-master-hamster") contains the clean manifest for VS Code marketplace publishing. The different names are intentional and serve distinct purposes in the build and publishing workflow.

Applied to files:

  • packages/tm-core/package.json
  • package.json
  • apps/extension/package.json
  • apps/cli/package.json
📚 Learning: 2025-09-17T19:09:08.882Z
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1211
File: jest.resolver.cjs:8-15
Timestamp: 2025-09-17T19:09:08.882Z
Learning: In the eyaltoledano/claude-task-master project, the team only uses .ts files and does not plan to use .tsx or .mts extensions, so Jest resolver and build tooling should focus on .js → .ts mapping only.

Applied to files:

  • packages/tm-core/package.json
  • package.json
  • apps/cli/package.json
📚 Learning: 2025-09-03T12:16:15.866Z
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1178
File: packages/tm-core/package.json:13-64
Timestamp: 2025-09-03T12:16:15.866Z
Learning: For internal packages in the claude-task-master project, Crunchyman-ralph prefers pointing package.json "types" entries to src .ts files rather than dist .d.ts files for better developer experience (DX), as the packages are not being exported as SDKs.

Applied to files:

  • packages/tm-core/package.json
  • package.json
  • apps/cli/package.json
📚 Learning: 2025-07-18T17:10:02.683Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:02.683Z
Learning: Applies to .taskmaster/config.json : Store Taskmaster configuration settings (AI model selections, parameters, logging level, default subtasks/priority, project name, tag management) in `.taskmaster/config.json` in the project root. Do not configure these via environment variables.

Applied to files:

  • packages/tm-core/package.json
📚 Learning: 2025-07-18T17:10:12.881Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: Applies to tasks.json : Use the `tasks.json` file (generated by Taskmaster) to store the project's task list, including tags and task structures.

Applied to files:

  • packages/tm-core/package.json
  • apps/cli/package.json
📚 Learning: 2025-07-18T17:14:29.399Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/tasks.mdc:0-0
Timestamp: 2025-07-18T17:14:29.399Z
Learning: Applies to scripts/modules/task-manager.js : Use consistent formatting for task files, include all task properties in text files, and format dependencies with status indicators.

Applied to files:

  • packages/tm-core/package.json
📚 Learning: 2025-09-22T16:42:54.285Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: public/assets/AGENTS.md:0-0
Timestamp: 2025-09-22T16:42:54.285Z
Learning: Applies to public/assets/**/.mcp.json : Configure the Task Master MCP server in .mcp.json under mcpServers.task-master-ai with command npx and the listed env keys

Applied to files:

  • package.json
📚 Learning: 2025-08-06T21:12:20.981Z
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1091
File: assets/claude/agents/task-executor.md:1-6
Timestamp: 2025-08-06T21:12:20.981Z
Learning: In the eyaltoledano/claude-task-master repository, agent files in assets/claude/agents/ are intended for distribution to users (for copying), while identical files in .claude/agents/ are for internal project use. This intentional duplication serves different purposes and is not a DRY violation.

Applied to files:

  • package.json
📚 Learning: 2025-09-22T16:42:54.285Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: public/assets/AGENTS.md:0-0
Timestamp: 2025-09-22T16:42:54.285Z
Learning: Applies to public/assets/.claude/settings.json : Define Claude Code tool allowlist in .claude/settings.json including Bash(task-master *), git commands, npm scripts, and mcp__task_master_ai__*

Applied to files:

  • package.json
📚 Learning: 2025-09-09T19:13:55.652Z
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1194
File: .github/workflows/ci.yml:31-35
Timestamp: 2025-09-09T19:13:55.652Z
Learning: The claude-task-master project has only one package-lock.json file in the entire workspace (at the root level), so cache-dependency-path configuration is unnecessary for the npm cache in GitHub Actions.

Applied to files:

  • package.json
📚 Learning: 2025-08-07T13:00:22.966Z
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1090
File: apps/extension/package.json:241-243
Timestamp: 2025-08-07T13:00:22.966Z
Learning: In monorepos, local packages should use "*" as the version constraint in package.json dependencies, as recommended by npm. This ensures the local version from within the same workspace is always used, rather than attempting to resolve from external registries. This applies to packages like task-master-ai within the eyaltoledano/claude-task-master monorepo.

Applied to files:

  • package.json
  • apps/cli/package.json
📚 Learning: 2025-08-06T21:12:43.715Z
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1091
File: assets/claude/agents/task-orchestrator.md:1-6
Timestamp: 2025-08-06T21:12:43.715Z
Learning: In the eyaltoledano/claude-task-master repository, agent files are intentionally duplicated between `.claude/agents/` (for internal project use) and `assets/claude/agents/` (as template files for users to copy). This duplication serves different purposes and should be maintained to support both internal development and user distribution needs.

Applied to files:

  • package.json
📚 Learning: 2025-08-11T12:30:23.843Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: CLAUDE.md:0-0
Timestamp: 2025-08-11T12:30:23.843Z
Learning: Import Task Master's development workflow commands and guidelines; treat the contents of ./.taskmaster/CLAUDE.md as if included in the main CLAUDE.md

Applied to files:

  • package.json
📚 Learning: 2025-07-31T21:48:00.389Z
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#997
File: apps/extension/src/services/task-repository.ts:25-57
Timestamp: 2025-07-31T21:48:00.389Z
Learning: In the eyaltoledano/claude-task-master repository, every task is always part of a tag - there is no concept of untagged tasks. The tag system is mandatory and comprehensive, meaning all tasks exist within a tag context (with 'master' as the default tag if none specified).

Applied to files:

  • package.json
📚 Learning: 2025-09-03T12:15:03.208Z
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1178
File: apps/cli/src/commands/auth.command.ts:222-224
Timestamp: 2025-09-03T12:15:03.208Z
Learning: The CLI can be invoked using both "task-master" and "tm" as aliases - both forms are valid and acceptable in help text, documentation, and examples.

Applied to files:

  • apps/cli/package.json
📚 Learning: 2025-07-18T17:10:12.881Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: For CLI usage, install Taskmaster globally with `npm install -g task-master-ai` or use locally via `npx task-master-ai ...`.

Applied to files:

  • apps/cli/package.json
📚 Learning: 2025-09-22T16:42:10.070Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: public/assets/.windsurfrules:0-0
Timestamp: 2025-09-22T16:42:10.070Z
Learning: Use the task-master CLI as the primary interface instead of node scripts/dev.js; install globally with npm -g or use npx; all commands accept the same options and include additional commands like init

Applied to files:

  • apps/cli/package.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build
🔇 Additional comments (10)
package.json (2)

12-12: Formatting-only change to workspaces — OK.
No semantic impact detected.


117-117: Formatting-only change to files — OK.
No semantic impact detected.

apps/cli/package.json (3)

11-11: files condensed — OK.


44-44: keywords condensed — OK.


49-49: typesVersions compact mapping — OK.
Scripts already include all required test targets.

apps/extension/package.json (5)

6-6: Patch bump to 0.25.1 — verify VSCE release workflow trigger.
Ensure the extension’s publish pipeline keys off this version bump (or a changeset/changelog entry) so the marketplace release runs.


12-12: categories single-lined — OK.


14-14: activationEvents single-lined — OK.


142-142: UI theme enum formatting — OK.


203-203: logLevel enum formatting — OK.

Comment on lines +14 to 15
"docs"
]
Copy link
Contributor

@coderabbitai coderabbitai bot Sep 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

🧩 Analysis chain

Removing @tm/ from ignore will pull these packages into release — verify branch and add a changeset.*

  • If these packages lack a version field, changeset version will fail.
  • Ensure the release branch in CI matches config (baseBranch is "main" while this PR targets "next"); align or adjust workflow.
  • Create a changeset; otherwise CI will report “no changesets found”.

Run to verify impact and status:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== Check packages missing version =="
fd -t f package.json -E node_modules -E dist | while read -r f; do
  name=$(jq -r '.name' "$f")
  version=$(jq -r 'if has("version") then .version else "<missing>" end' "$f")
  priv=$(jq -r '.private // false' "$f")
  printf "%-50s %-30s %-12s %s\n" "$f" "$name" "$version" "$priv"
done | rg '<missing>'

echo
echo "== Check required test scripts per guidelines =="
required=(test test:watch test:coverage test:unit test:integration test:e2e test:ci)
fd -t f package.json -E node_modules -E dist | while read -r f; do
  missing=()
  for k in "${required[@]}"; do
    jq -e --arg k "$k" '.scripts[$k]' "$f" >/dev/null 2>&1 || missing+=("$k")
  done
  if ((${#missing[@]})); then
    echo "$f -> missing: ${missing[*]}"
  fi
done

echo
echo "== Changesets status =="
npx changeset status --verbose || true

Length of output: 1006


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== .changeset/config.json =="
if [ -f .changeset/config.json ]; then
  echo "path: .changeset/config.json"
  cat .changeset/config.json
else
  echo ".changeset/config.json not found"
fi

echo
echo "== Search for 'baseBranch' across repo =="
rg -n "baseBranch" -S || true

echo
echo "== Search for changeset-related mentions in .github workflows =="
rg -n "changeset|changesets" -S .github || true

echo
echo "== Root package.json (relevant fields) =="
if [ -f package.json ]; then
  jq '{name: .name, scripts: .scripts, devDependencies: .devDependencies, dependencies: .dependencies}' package.json || cat package.json
else
  echo "root package.json not found"
fi

Length of output: 6272


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== Current git branch =="
git rev-parse --abbrev-ref HEAD || true

echo
echo "== .changeset/config.json (already checked) =="
cat .changeset/config.json || true

echo
echo "== Workflows that trigger releases (showing top 200 lines each) =="
for wf in .github/workflows/*.yml; do
  echo "---- $wf ----"
  sed -n '1,200p' "$wf" || true
  echo
done

echo "== .github/scripts/release.mjs (first 200 lines) =="
if [ -f .github/scripts/release.mjs ]; then
  sed -n '1,200p' .github/scripts/release.mjs
else
  echo "not found"
fi

echo
echo "== Confirm package.json details for flagged packages =="
for f in apps/cli/package.json packages/build-config/package.json packages/tm-core/package.json; do
  if [ -f "$f" ]; then
    echo "---- $f ----"
    jq '{name: .name, version: (if has("version") then .version else "<missing>" end), private: (.private // false), scripts: (.scripts // {})}' "$f" || cat "$f"
  else
    echo "missing: $f"
  fi
done

echo
echo "== Root package.json changeset scripts/deps (sanity) =="
jq '{scripts: .scripts, devDependencies: .devDependencies}' package.json || true

Length of output: 50560


Action required — prevent accidental release of @tm packages: fix missing versions & branch config

  • .changeset/config.json currently: baseBranch="main", ignore=["docs"] — removing @tm/* will include @tm packages in changeset releases. (file: .changeset/config.json)
  • These packages lack a "version" field and will break npx changeset version: apps/cli/package.json (@tm/cli), packages/build-config/package.json (@tm/build-config), packages/tm-core/package.json (@tm/core). Add valid version fields or re-ignore them.
  • Branch mismatch: config.baseBranch="main" but this PR/branch targets "next" (current branch: coderabbit_1232). Align .changeset/config.json or adjust release workflows (.github/workflows/release.yml, .github/workflows/pre-release.yml, .github/workflows/claude-docs-updater.yml).
  • Create a changeset for these changes; without one CI will report "no changesets found" and no version/publish will occur.
🤖 Prompt for AI Agents
In .changeset/config.json around lines 14-15, the config currently sets
baseBranch="main" and ignores only ["docs"], which will accidentally include
@tm/* packages in releases and cause npx changeset version to fail because
@tm/cli, @tm/build-config, and @tm/core lack "version" fields; update the file
to either add valid "version" fields to those package.json files or add those
package paths (or @tm/*) to ignore[], and change baseBranch to the branch you’re
targeting (e.g., "next") to match this PR; also update any release-related
workflows (.github/workflows/release.yml, pre-release.yml,
claude-docs-updater.yml) to use the same branch if needed, and create a new
changeset describing these changes so CI detects changesets and
versioning/publishing will run.

Copy link
Collaborator Author

@Crunchyman-ralph Crunchyman-ralph Sep 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@coderabbitai the lack of version as per the issues I saw on the changesets PR seems to be a good thing, while giving a warning, the good thing is that it won't release a new version for these internal packages which is what we want.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Crunchyman-ralph, thank you for the clarification! You're absolutely right, and I see this aligns with the learning I have from your earlier explanation on this same PR. The missing version fields in your internal packages (@tm/cli, @tm/core, @tm/build-config) are indeed intentional to prevent changesets from releasing new versions while still allowing them to be processed for dependency updates.

This is a clever monorepo strategy where:

  • Internal/private packages omit version fields to avoid unwanted releases
  • Changesets warnings are acceptable as they don't break the process
  • Only public packages get properly versioned and released
  • Dependency updates can still flow through the internal packages

I appreciate you taking the time to explain your versioning strategy - it's a nuanced approach that makes perfect sense for your monorepo setup!

🐰
(\ /)
( .. )
o
(")(") learns something new


🧠 Learnings used
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/changeset.mdc:0-0
Timestamp: 2025-07-18T17:07:53.100Z
Learning: Do not add a changeset for local configuration changes, such as updates to personal editor settings or local `.env` files.

Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1232
File: packages/tm-core/package.json:50-51
Timestamp: 2025-09-22T19:45:04.246Z
Learning: In the eyaltoledano/claude-task-master project, Crunchyman-ralph intentionally omits version fields from internal/private packages in package.json files to prevent changesets from releasing new versions of these packages while still allowing them to be processed for dependency updates. The changesets warnings about missing versions are acceptable as they don't break the process and achieve the desired behavior of only releasing public packages.

Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1069
File: .changeset/fix-tag-complexity-detection.md:0-0
Timestamp: 2025-08-02T15:33:22.656Z
Learning: For changeset files (.changeset/*.md), Crunchyman-ralph prefers to ignore formatting nitpicks about blank lines between frontmatter and descriptions, as he doesn't mind having them and wants to avoid such comments in future reviews.

Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1178
File: packages/tm-core/src/auth/config.ts:5-7
Timestamp: 2025-09-02T21:51:27.921Z
Learning: The user Crunchyman-ralph prefers not to use node: scheme imports (e.g., 'node:os', 'node:path') for Node.js core modules and considers suggestions to change bare imports to node: scheme as too nitpicky.

Comment on lines +14 to +15
"files": ["dist", "src"],
"keywords": ["build-config", "tsup", "monorepo"],
Copy link
Contributor

@coderabbitai coderabbitai bot Sep 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Formatting OK, but add a version and required test scripts to satisfy CI and guidelines.

  • Add a version field (private packages can use "0.0.0") so Changesets tooling doesn’t error.
  • Add test script entries mandated by the repo standards (even if they no-op or delegate).

Example (outside selected lines):

{
  "name": "@tm/build-config",
  "private": true,
  "version": "0.0.0",
  "scripts": {
    "test": "echo \"(build-config) no tests\" && exit 0",
    "test:watch": "npm run test",
    "test:coverage": "npm run test",
    "test:unit": "npm run test",
    "test:integration": "npm run test",
    "test:e2e": "npm run test",
    "test:ci": "npm run test"
  }
}
🤖 Prompt for AI Agents
In packages/build-config/package.json around lines 14 to 15, the package is
missing a version field and the standard test script entries required by CI and
repo guidelines; add a "version": "0.0.0" entry and add the standard test
scripts block (test, test:watch, test:coverage, test:unit, test:integration,
test:e2e, test:ci) where each can be a no-op delegating to "npm run test" or an
echo that exits 0 so CI and Changesets tooling do not error.

Copy link
Collaborator Author

@Crunchyman-ralph Crunchyman-ralph Sep 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@coderabbitai the lack of version as per the issues I saw on the changesets PR seems to be a good thing, while giving a warning, the good thing is that it won't release a new version for these internal packages which is what we want.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Crunchyman-ralph Thank you for that clarification! You're absolutely right - omitting the version field from internal packages is an intentional design choice to prevent changesets from releasing new versions for these packages, which is exactly what you want for internal tooling. I appreciate you explaining the behavior you observed in the changesets PR that confirms this approach works as expected.

I'll note this preference for future reviews of internal packages in your monorepo.


✏️ Learnings added
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1232
File: packages/build-config/package.json:14-15
Timestamp: 2025-09-22T19:45:13.301Z
Learning: In the eyaltoledano/claude-task-master repository, Crunchyman-ralph intentionally omits version fields from internal packages (like tm/build-config) to prevent changesets from releasing new versions for these packages. This is the desired behavior for internal tooling packages that should not be published or versioned independently.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.


🧠 Learnings used
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#997
File: apps/extension/package.publish.json:2-8
Timestamp: 2025-07-31T20:49:04.638Z
Learning: In the eyaltoledano/claude-task-master repository, the VS Code extension uses a 3-file packaging system where package.json (with name "extension") is for development within the monorepo, while package.publish.json (with name "task-master-hamster") contains the clean manifest for VS Code marketplace publishing. The different names are intentional and serve distinct purposes in the build and publishing workflow.

Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1178
File: packages/tm-core/package.json:13-64
Timestamp: 2025-09-03T12:16:15.866Z
Learning: For internal packages in the claude-task-master project, Crunchyman-ralph prefers pointing package.json "types" entries to src .ts files rather than dist .d.ts files for better developer experience (DX), as the packages are not being exported as SDKs.

Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#992
File: .coderabbit.yaml:1-169
Timestamp: 2025-07-16T16:06:07.169Z
Learning: CodeRabbit configuration files like .coderabbit.yaml are internal development tooling that affect the review process but don't impact end users, so changesets are not required for these configuration additions.

Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1069
File: .changeset/fix-tag-complexity-detection.md:0-0
Timestamp: 2025-08-02T15:33:22.656Z
Learning: For changeset files (.changeset/*.md), Crunchyman-ralph prefers to ignore formatting nitpicks about blank lines between frontmatter and descriptions, as he doesn't mind having them and wants to avoid such comments in future reviews.

Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1213
File: .github/workflows/pre-release.yml:68-73
Timestamp: 2025-09-17T20:26:17.257Z
Learning: User Crunchyman-ralph clarified that not all packages in the monorepo need build steps, so adding turbo:build scripts to every workspace package.json is unnecessary and incorrect.

Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1178
File: packages/tm-core/src/auth/config.ts:5-7
Timestamp: 2025-09-02T21:51:27.921Z
Learning: The user Crunchyman-ralph prefers not to use node: scheme imports (e.g., 'node:os', 'node:path') for Node.js core modules and considers suggestions to change bare imports to node: scheme as too nitpicky.

Comment on lines +50 to +51
"files": ["src", "README.md", "CHANGELOG.md"],
"keywords": ["task-management", "typescript", "ai", "prd", "parser"],
Copy link
Contributor

@coderabbitai coderabbitai bot Sep 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Formatting OK, but this package appears to have no version — Changesets may fail.
Because ignore rules now include this package, add a version (even for private packages) so changeset version can bump it, or re-add it to ignore.

Example (outside selected lines):

{
  "name": "@tm/core",
  "private": true,
  "version": "0.0.0"
}

Also, per repo guidelines, add missing scripts: test:unit, test:integration, test:e2e, and test:ci alongside existing test scripts.

🤖 Prompt for AI Agents
packages/tm-core/package.json lines 50-51: this package.json lacks a version
field (which breaks Changesets) and is missing required test scripts; add a
"version": "0.0.0" entry (and "private": true if the package is private) at the
top-level of package.json so changeset version can bump it, and add the required
scripts keys test:unit, test:integration, test:e2e, and test:ci (pointing to
your existing test runner commands or proxying to the existing test script)
alongside the current test scripts.

Copy link
Collaborator Author

@Crunchyman-ralph Crunchyman-ralph Sep 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@coderabbitai the lack of version as per the issues I saw on the changesets PR seems to be a good thing, while giving a warning, the good thing is that it won't release a new version for these internal packages which is what we want.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Crunchyman-ralph, thank you for that clarification! You're absolutely right - omitting the version field from internal/private packages is indeed a valid strategy to prevent changesets from releasing them while still allowing them to be processed for dependency updates.

This approach makes sense for your monorepo setup where you want to:

  • Keep internal packages private and unreleased
  • Allow changesets to handle dependency bumping without creating new releases
  • Accept the warning as a trade-off for the desired behavior

I appreciate you sharing this context about your changesets configuration strategy. This helps me better understand the intentional design decisions in your workflow.


✏️ Learnings added
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1232
File: packages/tm-core/package.json:50-51
Timestamp: 2025-09-22T19:45:04.246Z
Learning: In the eyaltoledano/claude-task-master project, Crunchyman-ralph intentionally omits version fields from internal/private packages in package.json files to prevent changesets from releasing new versions of these packages while still allowing them to be processed for dependency updates. The changesets warnings about missing versions are acceptable as they don't break the process and achieve the desired behavior of only releasing public packages.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.


🧠 Learnings used
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#997
File: apps/extension/package.publish.json:2-8
Timestamp: 2025-07-31T20:49:04.638Z
Learning: In the eyaltoledano/claude-task-master repository, the VS Code extension uses a 3-file packaging system where package.json (with name "extension") is for development within the monorepo, while package.publish.json (with name "task-master-hamster") contains the clean manifest for VS Code marketplace publishing. The different names are intentional and serve distinct purposes in the build and publishing workflow.

Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1178
File: packages/tm-core/package.json:13-64
Timestamp: 2025-09-03T12:16:15.866Z
Learning: For internal packages in the claude-task-master project, Crunchyman-ralph prefers pointing package.json "types" entries to src .ts files rather than dist .d.ts files for better developer experience (DX), as the packages are not being exported as SDKs.

Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1211
File: jest.resolver.cjs:8-15
Timestamp: 2025-09-17T19:09:08.882Z
Learning: In the eyaltoledano/claude-task-master project, the team only uses .ts files and does not plan to use .tsx or .mts extensions, so Jest resolver and build tooling should focus on .js → .ts mapping only.

Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/tasks.mdc:0-0
Timestamp: 2025-07-18T17:14:29.399Z
Learning: Applies to scripts/modules/task-manager.js : Use consistent formatting for task files, include all task properties in text files, and format dependencies with status indicators.

Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1069
File: .changeset/fix-tag-complexity-detection.md:0-0
Timestamp: 2025-08-02T15:33:22.656Z
Learning: For changeset files (.changeset/*.md), Crunchyman-ralph prefers to ignore formatting nitpicks about blank lines between frontmatter and descriptions, as he doesn't mind having them and wants to avoid such comments in future reviews.

Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1178
File: packages/tm-core/src/auth/config.ts:5-7
Timestamp: 2025-09-02T21:51:27.921Z
Learning: The user Crunchyman-ralph prefers not to use node: scheme imports (e.g., 'node:os', 'node:path') for Node.js core modules and considers suggestions to change bare imports to node: scheme as too nitpicky.

@Crunchyman-ralph Crunchyman-ralph changed the base branch from next to main September 22, 2025 20:16
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f8ede88 and 455cd1c.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (6)
  • .changeset/fluffy-clocks-cross.md (1 hunks)
  • .manypkg.json (1 hunks)
  • apps/cli/package.json (3 hunks)
  • apps/extension/package.json (5 hunks)
  • package.json (6 hunks)
  • packages/tm-core/package.json (1 hunks)
🧰 Additional context used
📓 Path-based instructions (3)
.changeset/*.md

📄 CodeRabbit inference engine (.cursor/rules/changeset.mdc)

.changeset/*.md: When running npm run changeset or npx changeset add, provide a concise summary of the changes for the CHANGELOG.md in imperative mood, typically a single line, and not a detailed Git commit message.
The changeset summary should be user-facing, describing what changed in the released version that is relevant to users or consumers of the package.
Do not use your detailed Git commit message body as the changeset summary.

Files:

  • .changeset/fluffy-clocks-cross.md
.changeset/*

📄 CodeRabbit inference engine (.cursor/rules/new_features.mdc)

Create appropriate changesets for new features, use semantic versioning, include tagged system information in release notes, and document breaking changes if any.

Files:

  • .changeset/fluffy-clocks-cross.md
package.json

📄 CodeRabbit inference engine (.cursor/rules/test_workflow.mdc)

Add and update test scripts in package.json to include test, test:watch, test:coverage, test:unit, test:integration, test:e2e, and test:ci

Files:

  • package.json
🧠 Learnings (24)
📓 Common learnings
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1232
File: packages/build-config/package.json:14-15
Timestamp: 2025-09-22T19:45:13.301Z
Learning: In the eyaltoledano/claude-task-master repository, Crunchyman-ralph intentionally omits version fields from internal packages (like tm/build-config) to prevent changesets from releasing new versions for these packages. This is the desired behavior for internal tooling packages that should not be published or versioned independently.
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1232
File: packages/tm-core/package.json:50-51
Timestamp: 2025-09-22T19:45:04.246Z
Learning: In the eyaltoledano/claude-task-master project, Crunchyman-ralph intentionally omits version fields from internal/private packages in package.json files to prevent changesets from releasing new versions of these packages while still allowing them to be processed for dependency updates. The changesets warnings about missing versions are acceptable as they don't break the process and achieve the desired behavior of only releasing public packages.
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1178
File: packages/tm-core/src/auth/config.ts:5-7
Timestamp: 2025-09-02T21:51:27.921Z
Learning: The user Crunchyman-ralph prefers not to use node: scheme imports (e.g., 'node:os', 'node:path') for Node.js core modules and considers suggestions to change bare imports to node: scheme as too nitpicky.
📚 Learning: 2025-09-22T19:45:04.246Z
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1232
File: packages/tm-core/package.json:50-51
Timestamp: 2025-09-22T19:45:04.246Z
Learning: In the eyaltoledano/claude-task-master project, Crunchyman-ralph intentionally omits version fields from internal/private packages in package.json files to prevent changesets from releasing new versions of these packages while still allowing them to be processed for dependency updates. The changesets warnings about missing versions are acceptable as they don't break the process and achieve the desired behavior of only releasing public packages.

Applied to files:

  • packages/tm-core/package.json
  • apps/cli/package.json
  • package.json
📚 Learning: 2025-09-22T19:45:13.301Z
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1232
File: packages/build-config/package.json:14-15
Timestamp: 2025-09-22T19:45:13.301Z
Learning: In the eyaltoledano/claude-task-master repository, Crunchyman-ralph intentionally omits version fields from internal packages (like tm/build-config) to prevent changesets from releasing new versions for these packages. This is the desired behavior for internal tooling packages that should not be published or versioned independently.

Applied to files:

  • packages/tm-core/package.json
  • apps/cli/package.json
  • package.json
📚 Learning: 2025-09-03T12:16:15.866Z
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1178
File: packages/tm-core/package.json:13-64
Timestamp: 2025-09-03T12:16:15.866Z
Learning: For internal packages in the claude-task-master project, Crunchyman-ralph prefers pointing package.json "types" entries to src .ts files rather than dist .d.ts files for better developer experience (DX), as the packages are not being exported as SDKs.

Applied to files:

  • packages/tm-core/package.json
  • apps/cli/package.json
  • package.json
📚 Learning: 2025-09-17T20:26:17.257Z
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1213
File: .github/workflows/pre-release.yml:68-73
Timestamp: 2025-09-17T20:26:17.257Z
Learning: User Crunchyman-ralph clarified that not all packages in the monorepo need build steps, so adding turbo:build scripts to every workspace package.json is unnecessary and incorrect.

Applied to files:

  • packages/tm-core/package.json
📚 Learning: 2025-08-02T15:33:22.656Z
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1069
File: .changeset/fix-tag-complexity-detection.md:0-0
Timestamp: 2025-08-02T15:33:22.656Z
Learning: For changeset files (.changeset/*.md), Crunchyman-ralph prefers to ignore formatting nitpicks about blank lines between frontmatter and descriptions, as he doesn't mind having them and wants to avoid such comments in future reviews.

Applied to files:

  • packages/tm-core/package.json
📚 Learning: 2025-09-02T21:51:27.921Z
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1178
File: packages/tm-core/src/auth/config.ts:5-7
Timestamp: 2025-09-02T21:51:27.921Z
Learning: The user Crunchyman-ralph prefers not to use node: scheme imports (e.g., 'node:os', 'node:path') for Node.js core modules and considers suggestions to change bare imports to node: scheme as too nitpicky.

Applied to files:

  • packages/tm-core/package.json
📚 Learning: 2025-08-07T13:00:22.966Z
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1090
File: apps/extension/package.json:241-243
Timestamp: 2025-08-07T13:00:22.966Z
Learning: In monorepos, local packages should use "*" as the version constraint in package.json dependencies, as recommended by npm. This ensures the local version from within the same workspace is always used, rather than attempting to resolve from external registries. This applies to packages like task-master-ai within the eyaltoledano/claude-task-master monorepo.

Applied to files:

  • packages/tm-core/package.json
  • apps/cli/package.json
  • package.json
📚 Learning: 2025-09-03T12:45:30.724Z
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1178
File: packages/tm-core/src/subpath-exports.test.ts:6-9
Timestamp: 2025-09-03T12:45:30.724Z
Learning: The user Crunchyman-ralph prefers to avoid overly nitpicky or detailed suggestions in code reviews, especially for test coverage of minor import paths. Focus on more substantial issues rather than comprehensive coverage of all possible edge cases.

Applied to files:

  • packages/tm-core/package.json
📚 Learning: 2025-07-31T20:49:04.638Z
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#997
File: apps/extension/package.publish.json:2-8
Timestamp: 2025-07-31T20:49:04.638Z
Learning: In the eyaltoledano/claude-task-master repository, the VS Code extension uses a 3-file packaging system where package.json (with name "extension") is for development within the monorepo, while package.publish.json (with name "task-master-hamster") contains the clean manifest for VS Code marketplace publishing. The different names are intentional and serve distinct purposes in the build and publishing workflow.

Applied to files:

  • packages/tm-core/package.json
  • apps/cli/package.json
  • apps/extension/package.json
📚 Learning: 2025-09-03T12:15:03.208Z
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1178
File: apps/cli/src/commands/auth.command.ts:222-224
Timestamp: 2025-09-03T12:15:03.208Z
Learning: The CLI can be invoked using both "task-master" and "tm" as aliases - both forms are valid and acceptable in help text, documentation, and examples.

Applied to files:

  • apps/cli/package.json
📚 Learning: 2025-07-18T17:10:12.881Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: For CLI usage, install Taskmaster globally with `npm install -g task-master-ai` or use locally via `npx task-master-ai ...`.

Applied to files:

  • apps/cli/package.json
📚 Learning: 2025-09-22T16:42:10.070Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: public/assets/.windsurfrules:0-0
Timestamp: 2025-09-22T16:42:10.070Z
Learning: Use the task-master CLI as the primary interface instead of node scripts/dev.js; install globally with npm -g or use npx; all commands accept the same options and include additional commands like init

Applied to files:

  • apps/cli/package.json
📚 Learning: 2025-09-17T19:09:08.882Z
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1211
File: jest.resolver.cjs:8-15
Timestamp: 2025-09-17T19:09:08.882Z
Learning: In the eyaltoledano/claude-task-master project, the team only uses .ts files and does not plan to use .tsx or .mts extensions, so Jest resolver and build tooling should focus on .js → .ts mapping only.

Applied to files:

  • apps/cli/package.json
  • package.json
📚 Learning: 2025-07-18T17:10:12.881Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/dev_workflow.mdc:0-0
Timestamp: 2025-07-18T17:10:12.881Z
Learning: Applies to tasks.json : Use the `tasks.json` file (generated by Taskmaster) to store the project's task list, including tags and task structures.

Applied to files:

  • apps/cli/package.json
📚 Learning: 2025-08-03T12:13:33.875Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/test_workflow.mdc:0-0
Timestamp: 2025-08-03T12:13:33.875Z
Learning: Applies to package.json : Add and update test scripts in package.json to include test, test:watch, test:coverage, test:unit, test:integration, test:e2e, and test:ci

Applied to files:

  • package.json
📚 Learning: 2025-09-22T16:42:54.285Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: public/assets/AGENTS.md:0-0
Timestamp: 2025-09-22T16:42:54.285Z
Learning: Applies to public/assets/**/.mcp.json : Configure the Task Master MCP server in .mcp.json under mcpServers.task-master-ai with command npx and the listed env keys

Applied to files:

  • package.json
📚 Learning: 2025-09-22T16:42:54.285Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: public/assets/AGENTS.md:0-0
Timestamp: 2025-09-22T16:42:54.285Z
Learning: Applies to public/assets/.claude/settings.json : Define Claude Code tool allowlist in .claude/settings.json including Bash(task-master *), git commands, npm scripts, and mcp__task_master_ai__*

Applied to files:

  • package.json
📚 Learning: 2025-07-18T17:11:36.732Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/mcp.mdc:0-0
Timestamp: 2025-07-18T17:11:36.732Z
Learning: Applies to mcp-server/src/tools/*.js : MCP tools must follow a specific structure: use server.addTool with snake_case tool names, define parameters using Zod, and implement the execute function as an async function.

Applied to files:

  • package.json
📚 Learning: 2025-08-11T12:30:23.843Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: CLAUDE.md:0-0
Timestamp: 2025-08-11T12:30:23.843Z
Learning: Import Task Master's development workflow commands and guidelines; treat the contents of ./.taskmaster/CLAUDE.md as if included in the main CLAUDE.md

Applied to files:

  • package.json
📚 Learning: 2025-09-09T19:13:55.652Z
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1194
File: .github/workflows/ci.yml:31-35
Timestamp: 2025-09-09T19:13:55.652Z
Learning: The claude-task-master project has only one package-lock.json file in the entire workspace (at the root level), so cache-dependency-path configuration is unnecessary for the npm cache in GitHub Actions.

Applied to files:

  • package.json
📚 Learning: 2025-08-06T21:12:20.981Z
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#1091
File: assets/claude/agents/task-executor.md:1-6
Timestamp: 2025-08-06T21:12:20.981Z
Learning: In the eyaltoledano/claude-task-master repository, agent files in assets/claude/agents/ are intended for distribution to users (for copying), while identical files in .claude/agents/ are for internal project use. This intentional duplication serves different purposes and is not a DRY violation.

Applied to files:

  • package.json
📚 Learning: 2025-07-31T21:48:00.389Z
Learnt from: Crunchyman-ralph
PR: eyaltoledano/claude-task-master#997
File: apps/extension/src/services/task-repository.ts:25-57
Timestamp: 2025-07-31T21:48:00.389Z
Learning: In the eyaltoledano/claude-task-master repository, every task is always part of a tag - there is no concept of untagged tasks. The tag system is mandatory and comprehensive, meaning all tasks exist within a tag context (with 'master' as the default tag if none specified).

Applied to files:

  • package.json
📚 Learning: 2025-08-03T12:13:33.875Z
Learnt from: CR
PR: eyaltoledano/claude-task-master#0
File: .cursor/rules/test_workflow.mdc:0-0
Timestamp: 2025-08-03T12:13:33.875Z
Learning: Applies to **/*.test.ts : Use established mocking patterns for dependencies such as bcrypt and Prisma in test files

Applied to files:

  • package.json
🪛 markdownlint-cli2 (0.18.1)
.changeset/fluffy-clocks-cross.md

5-5: First line in a file should be a top-level heading

(MD041, first-line-heading, first-line-h1)

🔇 Additional comments (19)
package.json (7)

12-12: Workspaces includes root (“.”) — intentional?

This is valid with npm workspaces but uncommon; combined with ignoredRules it’s fine. Just confirm this is deliberate.


36-39: Nice: repo-wide deps hygiene scripts.

The manypkg scripts align with the new .manypkg.json and will keep versions coherent.


70-70: New Supabase dependency — confirm usage surface.

If only used in @tm/core, consider keeping it there to avoid inflating the CLI install; otherwise OK.


79-79: Commander bump looks safe for ESM CLI.

Root package is ESM; commander@12 is ESM-friendly.


129-131: Dev tooling additions LGTM.

@manypkg/cli and local @tm/cli with "*" match monorepo practice.


120-120: Verified — README-task-master.md present.
README-task-master.md exists; no changes required to the package.json "files" entry.


144-147: TS/tsx bumps — double-check build pipeline.

ts-jest is present (package.json:142 — "ts-jest": "^29.4.2") and jest.config.js uses the ts-jest ESM preset (jest.config.js:21) and the 'ts-jest' transformer (jest.config.js:26). Run npx tsc --noEmit && npm test (or your repo's type-check/test scripts) to confirm TypeScript 5.7.3 compiles and tests/type-checking pass. Also verify tsdown (if you rely on it) is installed and compatible with TS 5.7.3.

apps/cli/package.json (3)

11-11: files: ["dist", "README.md"] — good for publish hygiene.

Matches intended outputs.


26-32: Deps upgrades compatible with ESM CLI.

boxen/inquirer/ora major versions are ESM; package is "type": "module" — all good.


44-50: typesVersions mapping is unconventional but harmless for private pkg.

Since exports/types point to src, this is fine for DX.

packages/tm-core/package.json (3)

34-35: zod bump OK.

No API surface change shown here; internal consumers should be fine.


50-51: files/keywords compaction LGTM.

Consistent with monorepo formatting.


39-46: Add standardized test scripts per repo guidelines.

This package misses test:unit, test:integration, test:e2e, and test:ci.

Apply:

   "scripts": {
     "test": "vitest run",
     "test:watch": "vitest",
     "test:coverage": "vitest run --coverage",
+    "test:unit": "vitest run -t unit",
+    "test:integration": "vitest run -t integration",
+    "test:e2e": "vitest run --dir tests/e2e",
+    "test:ci": "vitest run --coverage --reporter=dot",
     "lint": "biome check --write",
apps/extension/package.json (5)

6-6: Patch bump to 0.25.1 — aligns with dependency tweaks.

Good.


12-15: Activation and categories formatting only.

No behavioral change; proceed.


142-142: Enum formatting only.

No impact.


204-204: Log level enum formatting only.

No impact.


257-280: React 19 + TanStack Query — bundled into webview; no action required.

Verified: imports of react / react-dom / @tanstack/react-query are confined to src/webview (and shared UI under src/components — e.g. src/webview/providers/QueryProvider.tsx). apps/extension/esbuild.js bundles the webview/sidebar (external: ['*.css']; react/react-dom aliased to ../../node_modules) so React and react-query will be included in dist webview bundles; the extension host (src/extension.ts) does not import them. Leave in devDependencies.

.manypkg.json (1)

3-5: Confirm defaultBranch and ignoredPackages match repo intent.

Sandbox verification failed: "fatal: not a git repository" and ".manypkg.json" not found — unable to confirm. Run locally:
gh repo view --json defaultBranchRef -q .defaultBranchRef.name
jq .ignoredPackages .manypkg.json
Verify the repo's actual default branch (update manypkg if it's not "main") and confirm @tm/core, @tm/cli, @tm/build-config are intentionally ignored (they're included in Changesets per this PR).

"task-master-ai": patch
---

Fix module not found for new 0.27.0 release
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick

Clarify the user-facing summary (avoid version mention).

Keep it imperative and specific; versions are added by Changesets.

Apply:

-Fix module not found for new 0.27.0 release
+Fix "module not found" when invoking the Task Master CLI entrypoint
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Fix module not found for new 0.27.0 release
Fix "module not found" when invoking the Task Master CLI entrypoint
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

5-5: First line in a file should be a top-level heading

(MD041, first-line-heading, first-line-h1)

🤖 Prompt for AI Agents
In .changeset/fluffy-clocks-cross.md around line 5, the summary currently
mentions a version and is not in the required imperative form; edit the
single-line summary to remove any version number and rewrite it as an
imperative, specific sentence (for example: "Fix module not found error" or "Fix
module resolution for imports") so it is user-facing and version-agnostic.

@Crunchyman-ralph Crunchyman-ralph merged commit f487736 into main Sep 22, 2025
5 checks passed
Crunchyman-ralph added a commit that referenced this pull request Sep 24, 2025
@coderabbitai coderabbitai bot mentioned this pull request Nov 14, 2025
16 tasks
sfc-gh-dflippo pushed a commit to sfc-gh-dflippo/task-master-ai that referenced this pull request Dec 4, 2025
sfc-gh-dflippo pushed a commit to sfc-gh-dflippo/task-master-ai that referenced this pull request Dec 4, 2025
sfc-gh-dflippo pushed a commit to sfc-gh-dflippo/task-master-ai that referenced this pull request Dec 4, 2025
@coderabbitai coderabbitai bot mentioned this pull request Feb 18, 2026
16 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants