updateImprovement
Update an improvement, or many in one call (or a task: tasks share this row, but prefer the symmetric updateTask alias when working from getTask). Supports the full field set including checklist (tick-boxes with due dates + completion attribution), acceptance_criteria (objects with per-row updated_by/at attribution) and parentItemId (the epic or story it belongs to in the work hierarchy; null removes it). versionTimestamp (optimistic locking) is the item's updated_at in epoch milliseconds, and you rarely need a getImprovement call for it: listImprovements returns it for every improvement in a project (fields ["id", "friendlyId", "versionTimestamp"] keeps that answer short), getPlan (items[].versionTimestamp) for every item in a plan, and every write returns the new one. Pass fields (for example ["id", "versionTimestamp"]) for a short answer instead of the whole record. To change many improvements, send items: up to 200 entries of { improvementId, versionTimestamp, ...changes } per call (more than 200: split them into several calls of up to 200), each checked and written on its own and answered with one row per entry plus a summary. Statuses are captured / in_progress / blocked / done / rejected / deferred, and FOUR of those are CLOSED: blocked, done, rejected, deferred. Entering one needs its comment (blocked needs blocked_comment, rejected needs rejection_comment, done needs completion_comment); leaving one for an open status needs reopened_comment, including blocked -> in_progress, which surprises people because blocked does not sound terminal. metadata MERGES into what is stored (null on a key deletes it); pass metadata_replace:true to overwrite the object wholesale. Assignment: pass owner_id=<uuid> to assign to a user, owner_team_id=<uuid> to assign to a team (mutually exclusive: an item has one owner, a user or a team, never both). To unassign, pass owner_id=null AND owner_team_id=null. To switch from a user owner to a team owner, send owner_id=null, owner_team_id=<uuid> in the SAME call (sending only one side leaves the stale value and triggers the XOR check). Use listAssignablePrincipals or listTeams to discover valid IDs.
Request
- Base URL: https://api.stablebaseline.io/functions/v1/cloud-serve/api/v1
- URL: https://api.stablebaseline.io/functions/v1/cloud-serve/api/v1/tools/updateImprovement
- Auth: HTTP bearer
Request body
Response
Tool result (shape varies per tool — refer to the tool's docs for the exact return value).
Changes
No recorded changes to this operation across all 1 revision of this API.