Skip to content

feat: add percentDone support to task update - #59

Open
nahugomez wants to merge 1 commit into
democratize-technology:mainfrom
nahugomez:main
Open

feat: add percentDone support to task update#59
nahugomez wants to merge 1 commit into
democratize-technology:mainfrom
nahugomez:main

Conversation

@nahugomez

Copy link
Copy Markdown

Summary

Add percentDone parameter to the task update subcommand, allowing AI assistants to set task progress percentages (0.0 to 1.0) via the MCP.

The Vikunja API already supports percent_done but the MCP server did not expose it.

Changes

  • src/tools/tasks/index.ts: Add percentDone: z.number().min(0).max(1).optional() to the Zod schema
  • src/tools/tasks/crud/TaskUpdateService.ts: Add percentDone to UpdateTaskArgs interface, analyzeUpdateState tracking, affectedFields, and buildUpdateData mapping to percent_done
  • tests/tools/tasks.test.ts: Add percentDone: 0.5 to the "update with all optional fields" test case

Why

Without this, there is no way to set a task's progress percentage via the MCP. Users (and AI assistants) can only mark tasks as done (boolean), missing the granularity of partial progress (0-100%). This is especially useful for tracking work-in-progress tasks.

Add percentDone parameter to the task update subcommand, allowing AI
assistants to set task progress percentages (0.0 to 1.0) via the MCP.

Changes:
- Add percentDone to Zod schema in tasks tool registration
- Add percentDone to UpdateTaskArgs interface, analyzeUpdateState,
  and buildUpdateData in TaskUpdateService
- Add test coverage for percentDone in update with all optional fields
netadvanced referenced this pull request in netadvanced/vikunja-mcp-ng Jul 17, 2026
Resolve trivial additive conflict in TaskUpdateService.ts analyzeUpdateState:
keep both #59's percent_done and #65's project_id previousState tracking.

Claude-Session: https://claude.ai/code/session_016D2e7m4RD4YLiVN9Dvp2Vf
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant