Commit Graph

1220 Commits

Author SHA1 Message Date
Ralph Khreish
35efbba0d1 fix: target task-master-ai package in changeset per review feedback 2026-01-26 17:27:16 +01:00
Ralph Khreish
91b7b4d57e fix: resolve build issues and add missing tests
- Move validateMcpMetadata to @tm/mcp shared utils (TypeScript)
- Remove duplicate implementation from mcp-server/src/tools/utils.js
- Add comprehensive unit tests for validateMcpMetadata function
- Fix dependencies type in metadata-preservation test (number → string)
- Fix TypeScript union type handling in test assertions
2026-01-26 17:27:16 +01:00
Cedric Hurst
7836867f79 fix: pass useResearch and metadata to API storage bridge
- Add useResearch and metadata to UpdateBridgeParams interface
- Pass both parameters through to tmCore.tasks.updateWithPrompt
- Update both update-task-by-id.js and update-subtask-by-id.js
- Improve error message in validateMcpMetadata to include parse error

Fixes CodeRabbit outside-diff concern about silently lost parameters.
Addresses CodeRabbit nitpick about error message detail.
2026-01-26 17:27:16 +01:00
Cedric Hurst
0faeddeaf6 fix: add missing metadata destructuring and allow metadata-only updates
Critical fixes for update-subtask-by-id.js:
1. Added 'metadata' to context destructuring (was causing ReferenceError)
2. Updated prompt validation to allow metadata-only updates

Without these fixes, subtask metadata updates would fail at runtime.

Fixes Cursor Bugbot HIGH severity issues.
2026-01-26 17:27:16 +01:00
Cedric Hurst
01c274a21d fix: merge subtask metadata instead of replacing in FileStorage
Changed from replacing metadata to merging it:
- Preserves existing metadata keys from original subtask
- Adds/overrides with new metadata keys from update
- Supports both AI updates (no metadata) and direct updates (with metadata)

Addresses CodeRabbit nitpick about metadata replacement.
2026-01-26 17:27:15 +01:00
Cedric Hurst
d6e502a927 docs: add note about MCP test coverage approach
Clarifies that these tests focus on validation logic while end-to-end
behavior is covered by FileStorage and AI operation tests.

Addresses CodeRabbit nitpick about test structure.
2026-01-26 17:27:15 +01:00
Cedric Hurst
7949faa352 refactor: extract metadata validation to shared utility
- Add validateMcpMetadata() utility function in tools/utils.js
- Replace duplicated validation code in update-task.js and update-subtask.js
- Reduces code duplication and ensures consistent validation

Addresses CodeRabbit nitpick about duplicated metadata validation.
2026-01-26 17:27:15 +01:00
Cedric Hurst
bcee5b75dd fix: use type-coerced ID matching in FileStorage subtask metadata preservation
Use String(st.id) === String(updatedSubtask.id) instead of strict
equality to handle type mismatches (AI may return string IDs vs numeric).
Also add title-based fallback matching.

Addresses CodeRabbit duplicate comment about FileStorage ID matching.
2026-01-26 17:27:15 +01:00
Cedric Hurst
2a347dae27 fix: merge metadata in update-subtask when prompt also provided
When both prompt and metadata are provided to update-subtask, the
metadata was being ignored. Now metadata is merged after AI update,
similar to how update-task handles it.

Fixes Cursor Bugbot review comment about ignored metadata.
2026-01-26 17:27:14 +01:00
Cedric Hurst
00b0b59ded style: format code after rebase 2026-01-26 17:27:14 +01:00
Cedric Hurst
639df48789 feat: add user-defined metadata field to tasks
Add optional `metadata` field to tasks and subtasks for storing
arbitrary user-defined JSON data (external IDs, workflow data,
integration references, etc.).

Key features:
- AI-Safe: Metadata excluded from AI schemas, preserved through all operations
- MCP Support: update_task/update_subtask tools accept metadata parameter
- Safety Flag: MCP updates require TASK_MASTER_ALLOW_METADATA_UPDATES=true
- Metadata Merge: New metadata merges with existing, preserving unmodified fields

Closes #1555

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 17:27:14 +01:00
Cedric Hurst
fe33515df7 fix: use type-coerced ID and title matching for subtask metadata
Replace risky position-based fallback with:
- Type-coerced ID comparison (handles string vs number)
- Title-based fallback (subtask titles are typically unique)

This prevents metadata from being assigned to wrong subtask if AI
reorders subtasks or returns IDs with type mismatches.
2026-01-26 17:27:14 +01:00
Cedric Hurst
6adfa59a74 fix: preserve subtask metadata when AI returns modified subtasks
- Add subtask metadata preservation in FileStorage.updateTask
- Add subtask metadata preservation in legacy update-task-by-id.js
- Add test for subtask metadata preservation during AI updates

Fixes Cursor Bugbot review comment about subtask metadata loss
2026-01-26 17:27:13 +01:00
Cedric Hurst
a0aae03cfa style: format metadata test files and update-subtask script 2026-01-26 17:27:13 +01:00
Ralph Khreish
364a160775 chore: add forward-port CI for merges into main-next 2026-01-26 15:32:33 +01:00
Ralph Khreish
f406c86966 chore: exit pre-mode 2026-01-25 12:04:32 +01:00
Ralph Khreish
0acd64ad9a Merge pull request #1608 from eyaltoledano/ralph/chore/update.from.main.0.42.0 2026-01-25 12:02:24 +01:00
Ralph Khreish
d6e9b15492 chore: exit pre 2026-01-25 12:01:56 +01:00
Ralph Khreish
e8a341a973 feat(loop): add streaming output mode with --stream flag (#1605) 2026-01-25 11:58:16 +01:00
Ralph Khreish
9d838cb821 chore: update versioning in manifest and package files, add sync script (#1606) 2026-01-25 11:58:15 +01:00
Ben Coombs
df5364de19 feat: Add modifyJSON for atomic operations in legacy utils.js (#1587)
Co-authored-by: Ben Coombs <bjcoombs@users.noreply.github.com>
fix for #1585 (part 2: legacy utils.js pattern)
2026-01-25 11:58:15 +01:00
Bryan Thompson
bb76738338 feat: Add MCPB bundle for Claude Desktop installation (#1599)
Co-authored-by: triepod-ai <199543909+triepod-ai@users.noreply.github.com>
2026-01-25 11:58:14 +01:00
Utkarsh Kankal
154ad80c1f fix: claude typo (#1604)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-01-25 11:58:14 +01:00
Ben Coombs
95eeb48561 fix: Add missing loadTUI function for no-argument invocation (#1592)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Ben Coombs <bjcoombs@users.noreply.github.com>
Fixes #1589
2026-01-25 11:58:14 +01:00
Crunchyman-ralph
5f1fbba85e chore: rc version bump [skip ci] 2026-01-25 11:57:52 +01:00
Ralph Khreish
efedc85cb1 feat(loop): add streaming output mode with --stream flag (#1605) 2026-01-25 11:50:07 +01:00
Ralph Khreish
28c491cca1 chore: update versioning in manifest and package files, add sync script (#1606) 2026-01-25 11:41:27 +01:00
Ben Coombs
0d628ca951 feat: Add modifyJSON for atomic operations in legacy utils.js (#1587)
Co-authored-by: Ben Coombs <bjcoombs@users.noreply.github.com>
fix for #1585 (part 2: legacy utils.js pattern)
2026-01-25 11:32:23 +01:00
Bryan Thompson
e689fcf2a2 feat: Add MCPB bundle for Claude Desktop installation (#1599)
Co-authored-by: triepod-ai <199543909+triepod-ai@users.noreply.github.com>
2026-01-23 18:20:59 +01:00
Utkarsh Kankal
6eaa84179e fix: claude typo (#1604)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-01-23 18:20:25 +01:00
Ben Coombs
4b515c60b2 fix: Add missing loadTUI function for no-argument invocation (#1592)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Ben Coombs <bjcoombs@users.noreply.github.com>
Fixes #1589
2026-01-21 18:46:31 +01:00
github-actions[bot]
7a52bd41ab Version Packages (#1581) task-master-ai@0.42.0 2026-01-15 23:51:59 +01:00
Crunchyman-ralph
129bc8fa7b chore: rc version bump [skip ci] 2026-01-15 16:58:36 +00:00
Ralph Khreish
65ec69c3f4 Merge pull request #1577 from eyaltoledano/next 2026-01-15 16:47:37 +01:00
Ralph Khreish
68aac14dae test(cli): fix and improve LoopCommand tests (#1579) 2026-01-15 16:30:31 +01:00
Ralph Khreish
87ba3a2a5b ralph/chore/fix.tests (#1578) 2026-01-15 15:46:15 +01:00
github-actions[bot]
d4680f446d docs: Auto-update and format models.md 2026-01-15 14:42:08 +00:00
Ralph Khreish
940ab587e5 fix(models): update Codex CLI supported models to match current availability (#1580) 2026-01-15 15:41:53 +01:00
Ben Coombs
6c3a92c439 feat(list): Add --ready and --blocking filters to identify parallelizable tasks (#1533)
Co-authored-by: Ben Coombs <bjcoombs@users.noreply.github.com>
Co-authored-by: Ralph Khreish <35776126+Crunchyman-ralph@users.noreply.github.com>

- fixes #1532
2026-01-14 22:59:19 +01:00
Ralph Khreish
097c8edcb0 fix(loop): improve error handling and use dangerously-skip-permissions (#1576) 2026-01-14 20:51:21 +01:00
Nithikesh1100
a369c2a1a7 Update link for Microsoft Research RPG Paper (#1574)
Fix: #1570
2026-01-14 19:22:00 +01:00
Ben Coombs
4cfde1c3d5 fix: adopt modifyJson pattern for atomic read-modify-write operations (#1569)
Co-authored-by: Ben Coombs <bjcoombs@users.noreply.github.com>
Co-authored-by: Ralph Khreish <35776126+Crunchyman-ralph@users.noreply.github.com>
Resolves issue #1568.
2026-01-14 19:20:55 +01:00
Ralph Khreish
e762e4f646 fix(loop): make Docker sandbox opt-in and preserve progress file
- Add --sandbox flag to loop command (default: use plain claude -p)
- Append to progress.txt instead of overwriting between runs
- Display execution mode (Docker sandbox vs Claude CLI) in output
2026-01-14 19:16:11 +01:00
Ben Coombs
3cc6174b47 fix: Add cross-process file locking to prevent race conditions (#1566)
Co-authored-by: Ben Coombs <bjcoombs@users.noreply.github.com>
Co-authored-by: Ralph Khreish <35776126+Crunchyman-ralph@users.noreply.github.com>
2026-01-13 21:22:59 +01:00
Ralph Khreish
85b24d09f7 Merge pull request #1575 from eyaltoledano/ralph/chore/update.from.main.0.41.0 2026-01-13 20:20:41 +01:00
github-actions[bot]
c2a680617d Version Packages (#1573)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Ralph Khreish <35776126+Crunchyman-ralph@users.noreply.github.com>
task-master-ai@0.41.0
2026-01-11 20:58:40 +01:00
Ralph Khreish
14df8ad405 Release 0.41.0 (#1559) 2026-01-11 20:35:36 +01:00
Ralph Khreish
c2d6c18a96 feat(cli): implement loop command (#1571)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 01:47:52 +01:00
TheLazyIndianTechie
1befc6a341 Handle missing jsonSchema export in AI SDK (#1556) 2026-01-06 17:33:12 +01:00
Bryan Thompson
9a6fa1bd2a feat: Add tool annotations for improved LLM tool understanding (#1543)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: triepod-ai <noreply@github.com>
Co-authored-by: Ralph Khreish <35776126+Crunchyman-ralph@users.noreply.github.com>
Co-authored-by: triepod-ai <199543909+triepod-ai@users.noreply.github.com>
2026-01-02 12:45:28 +01:00