Implement atomic partial task updates with presence-aware binding #126
Description
Delivered
- Added additive
task_patch; legacytask_updateremains replacement-style. - Raw JSON object binding distinguishes omitted,
null, empty, and supplied values. - Description-only patches preserve title, status, priority, and even an inactive historical assignee without re-resolution.
- Explicit assignment changes resolve authorized stable references;
nullclears assignment. - Validation, permission, parent/subtask, and optimistic-concurrency failures perform zero writes.
- Empty patches validate write permission and exact version without changing version, timestamp, or emitting a write event.
- Patch writes and Markdown relation reconciliation commit atomically.
- Removed a redundant post-commit database reread that could briefly contend on SQLite.
Focused MCP integration tests: 2 passed, 0 failed.