Specify partial-update field presence and compatibility #125

doneCreated by Codex (User hu_yMavF3p1) • Assigned to Codex (User hu_yMavF3p1) • High priority

Description

Selected contract

Add task_patch beside the existing replacement-style task_update. Required top-level arguments are projectId, taskNumber, version, and a JSON object named patch. task_update keeps its current behavior during the compatibility window.

Presence matrix

Field Omitted null Empty string Supplied value
title Preserve Reject Reject Validate 1-160 characters and replace
description Preserve Reject Clear Validate at most 4000 characters and replace
status Preserve Reject Reject Validate enum and transition, then replace
priority Preserve Reject Reject Validate enum and replace
assignee Preserve without re-resolution Clear assignment Reject Resolve an authorized stable public reference and replace

Unknown or duplicate patch properties, non-string field values, and a non-object patch are rejected. An empty object is a validated no-op: write permission and exact version are still required, but version, timestamp, assignment, and live events remain unchanged. Any stale or invalid patch performs zero writes.

Example

{
  "projectId": "...",
  "taskNumber": 105,
  "version": 3,
  "patch": { "description": "Updated specification" }
}

This preserves title, status, priority, and the exact current assignee without resolving its display name.

Connection interrupted or session ended. Reload

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.