Skip to content

feat(mcp): add task mutation tools - #121

Open
pablojaku wants to merge 2 commits into
Gsync:devfrom
pablojaku:feat/mcp-task-mutations
Open

pablojaku wants to merge 2 commits into
Gsync:devfrom
pablojaku:feat/mcp-task-mutations

Conversation

@pablojaku

@pablojaku pablojaku commented Sep 19, 2026

Copy link
Copy Markdown

Summary

  • add create_task, update_task, and complete_task MCP tools behind tasks:write
  • extract user-scoped task mutation helpers so UI actions and MCP handlers share ownership and completion rules
  • validate defaults, nullable fields, future due dates, activity-type ownership, and no-op updates
  • add real Streamable HTTP E2E coverage plus MCP routing evaluations and documentation

Implementation notes

  • Activity-type labels are matched case-insensitively per user and created when absent.
  • Plain-text descriptions are escaped into minimal Tiptap-compatible HTML and serialized back as plain text.
  • Explicit past due dates are rejected, while unrelated updates to overdue tasks remain valid.
  • Setting status to complete without a percentage sets 100%; complete_task updates both fields atomically.
  • Deletion and activity timers remain out of scope.

Verification

  • npm run lint
  • npx tsc --noEmit --incremental false
  • targeted Vitest: 6 files, 81 tests passed
  • full Vitest: 240 files, 2,895 tests passed
  • npm run build
  • full Chromium E2E: 91/93 passed in the four-worker run; the two unrelated add-job timeouts both passed when rerun serially (2/2)
  • the real-transport MCP task workflow passed in the full Chromium run
  • local MCP routing evals: 13/13 passed

Dependency

This is the second of two focused PRs and is stacked on #120. Once #120 merges, this PR's diff will contain only the mutation work.

Closes #119

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.

1 participant