Since 1.29.0 (#153082) everything the edit-task ability does to a task’s workflow can be done in the UI too: MCP abilities are never the only route to an action. Both routes below go through LH_Tasks_task_actions_class::edit_task(), so the change is logged as an admin_override entry and fires the same actions as the ability. Both need the task capability (staff).
The Task queue panel has a Change status control with every workflow status, a Release claim button while the task is claimed, and a Reset retries button once retries have been used, each with a way to undo before saving. Releasing the claim on a Claimed or In Progress task also sets it back to New. Changes save with Update, logged with the note “Changed in the block editor.”
They go through their own REST field, lh_tasks_workflow (status, claimed_by, retry_count; edit context, task capability), not lh_tasks. The block editor only sends fields that were edited, so a save that changes only the due date never carries a stale status back over a claim an agent made meanwhile. claimed_by and retry_count only ever release or reset: sending 0 clears them, and any other value changes nothing. Unknown statuses, and status changes on a task with no queue record, refuse the whole save. lh_tasks_info also returns statuses, the value and label pairs for the control.
return_statuses() (lh_tasks_invalid_status), and a status or claim change on a task with no queue record (lh_tasks_no_status_row). Before, PHP callers could store any key.to_assigned_to when the assignment changes and claim_released_from when a claim is released.lh_tasks_task_completed when it moves a task into Resolved or Closed from any other status, so follow-up reminders and notifications are cleared as on every other route to a finished task. Before, a staff resolve left them in place.Review and add-note were already open to staff on the task page, and the editor’s Assigned to picker covers staff reassignment. Complete, fail, reassign and renew-claim are claim-holder actions for agents; staff reach the same end states with the status control.