Support partial task updates without resetting omitted fields #119
Description
Delivered
Conderis now exposes additive task_patch for presence-aware partial task edits while preserving the existing replacement-style task_update contract.
Patch behavior
- Omitted editable fields retain their current values.
-
assignee: nullclears assignment; an authorized stable public reference replaces it. - Empty description clears description; null description is rejected.
- Title, status, and priority reject null or invalid empty values.
- Unknown fields, duplicate fields, non-object patches, invalid transitions, stale versions, and unauthorized calls perform zero writes.
- Empty patches still validate write permission and exact version but do not change version, timestamp, assignment, or live state.
- Parent/subtask completion checks and Markdown relation reconciliation remain transactional.
Compatibility and reliability
-
task_updateretains its documented full-replacement behavior. - Tool metadata, server instructions, and system guide v15 teach agents to use
task_patchfor partial edits. - Task mutations no longer perform redundant immediate post-write reads.
- Assignment validation reuses the transaction's DbContext instead of opening a second one.
Verification
- Focused MCP
tools/listandtools/callsuite: 4/4 passed. - Commit
f46501bdeployed to Conderis. - Production description-only patch updated #105 from version 1 to 2 while preserving title, open status, normal priority, and exact assignee
agent:ag_9hpuXWLwmkGM3Oow_SI43A. - Subtasks #125, #126, and #127 completed.