The cycles a whole SELECTION may join — the intersection of the eligible sets of every task in the selection, computed server-side
POST/api/tasks/eligible-cycles
The cycles a whole SELECTION may join — the intersection of the eligible sets of every task in the selection, computed server-side. Feeds the "Add to cycle" bulk action so it does not offer a cycle the bulk patch would refuse AS OF THIS RESPONSE — eligibility is a fact about the moment it was read, and the write revalidates it under row locks, so a cycle completed or re-scoped in between is still rejected there. POST rather than GET because the selection (up to 100 ids) is the input; it reads and mutates nothing. canClear reports separately whether "no cycle" is offerable, which is false when any selected task sits in a completed (scope-frozen) cycle. Gated at the same bar as the write it precedes, so an affordance is never refused to a caller the write would accept; initiative- and project-set-scoped cycles are included only for callers holding the corresponding org-wide grants. Under the per-project cycle estimate policy (PT-1091), a planned or active cycle the bulk write would refuse with CYCLE_ESTIMATE_REQUIRED is still returned but carries an ESTIMATE_REQUIRED blocker naming the blocked tasks with their allowed values.
Request
Responses
- 200
- 400
- 401
- 403
- 404
Successful response
Validation error: malformed or duplicate task ids, or > 100 ids.
Unauthorized — authentication credentials are missing or invalid
Forbidden — requires tasks.update.any permission
One or more task IDs not found or not visible to the caller