archive_task
- Category: tasks
- Access: write
- Audience: ordinary (an ordinary user normally calls this directly)
Purpose
Archive a task or note by id. The record is preserved in history.
Arguments
Required: task_id.
-
task_id. Note: UUID of the task or note to archive.
Result
JSON object with archived (id), status archived, previous_status, or unchanged 1 when already archived.
Boundaries
Only the addressed task visible under the caller's project grants is touched; foreign projects read as not found. Already-archived rows are a successful no-op.
Lifecycle / side effects
Status write travels through the canonical mutation path with field versions and ledger events; the pre-archive status is preserved for exact restore.
Errors
Missing/foreign id reads as not found. Failures move nothing (atomic).
Example
{
"task_id": "<uuid>"
}
Result shape:
{
"archived": "<uuid>",
"previous_status": "done",
"status": "archived"
}