* feat(api)!: redesign task resource operations
Publish the complete resource-oriented OpenAPI contract, enforce scope-based authorization at the HTTP boundary, and replace lifecycle command routes with Task PATCH and nested Claim/Event resources.
Add server-side Task CAS, migration coverage, updated Agent Skills, and browser/API regression tests.
BREAKING CHANGE: remove the legacy task lifecycle endpoints and move bounded waits to /tasks/{taskId}/events.
* refactor(tasks)!: make claims create-only
Remove Task Claim retrieval and deletion routes, the release scope, live deletion logic, and release workflow guidance.
Keep historical release records readable for migration and audit compatibility.
BREAKING CHANGE: remove GET and DELETE /tasks/{taskId}/claims/{claimId} and the task:release scope.
* test(ci): align actor and projection contracts
Cover machine and service Task Action writes and update Agent detail fixtures to the canonical assignedTo query and paged lowerCamelCase response.
* fix(api): preserve merge patch fields and consume browser pagination
* test(ui): include terminal pagination in agent task fixture
---------
Co-authored-by: jarvis <jarvis@agents.realmroot.dev>
1.4 KiB
Resource Server and Toolbox
AK publishes protected-resource metadata and one OpenAPI document. Toolbox uses that document for authentication, generic HTTP resource operations, and the generated bounded Task wait command.
Published resources include Boards, Repositories, Tasks, Task Notes, Agents,
Machines, and Task Claims. Assignment is the Task's assignedTo field; review,
rejection, completion, and cancellation are conditional Task status changes.
/tasks/{taskId}/events provides bounded condition waiting with signed cursors.
Ordinary resources use generic commands such as:
realmroot toolbox get agent-kanban/boards --json
realmroot toolbox post agent-kanban/tasks --content-type application/json @task.json --json
realmroot toolbox post agent-kanban/tasks/<task-id>/claims --json
realmroot toolbox patch agent-kanban/tasks/<task-id> \
--content-type application/merge-patch+json \
'{"status":"in-review"}' --json
Only bounded condition waiting defines an AK-specific command name:
realmroot toolbox agent-kanban task wait <task-id> in-review --wait-seconds 25 --json
Collections use cursor envelopes and Link continuation. Representations use
lower camel case. API-Version is optional; unsupported explicit versions are
rejected. Expected errors are Problem Details and all responses carry a
server-generated Request ID.
See ADR 0003.