An Improve run completed, failed or was cancelled
Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”The event id; the same on every retry. Deduplicate on it.
Unix seconds when the request was signed. Reject requests far from your clock.
v1,<base64 HMAC-SHA256 of "{webhook-id}.{webhook-timestamp}.{body}"> under the endpoint’s secret; space-separated when two secrets sign during a rotation.
Request Bodyrequired
Section titled “Request Bodyrequired”An Improve run ended (completed, failed or cancelled): one a person started, or one an improve schedule did. Its outcome names the suggested change it wrote, if it wrote one.
object
Event id, also sent as the webhook-id header; the same on every retry.
object
The Improve run, as GET /v1/improve-runs/{improveRunId} shows it.
object
The project it works in. Absent from older servers, and on a run started for a workspace or an org before Improve runs worked in a project.
The version an Improve run starts from: the one the project runs, pinned there (pin) or the agent’s latest (latest).
object
The version of the project’s test set it searches and proves on; absent until it’s frozen.
The test set’s cases set aside for the proof: cases of of. None with fewer than five. Absent from older servers.
object
The tiers it tries, the prompt tier first.
Which corrections its comparisons count.
For the prompt tier: the provider and model that drafts the templates.
object
For the prompt tier: how many templates it drafts.
object
The most the Improve run’s comparisons may cost, in US dollars.
The most candidates it compares.
user:<id> or service:<id>.
Candidates tried so far.
What its comparisons have cost so far (US dollars).
A change passed more cases than the version the run started from, and failed none that passed: the run wrote it as a suggested change for a reviewer to decide.
object
No change the run tried did better: reason says why, and holdOut has the best change’s numbers when one got that far.
object
The best change’s proof numbers, when one got that far: on every case, or on the set-aside part for a run stored before that.
object
The run reached its budget with nothing kept.
object
What it spent, in US dollars.
The run failed: message says why.
object
The ids of the corrections it took when it started. Absent from older servers.
Why a cancelled Improve run stopped when nobody cancelled it: a comparison’s test run was cancelled for it (that run’s cancelReason, e.g. project-suspended). It wrote no suggested change. Absent when it was cancelled.
Its comparisons so far, each a test run to open: reference (the version as it is, on each part: what the proof is held to, case by case), each candidate (the block and the values it changed, on the search part: what picks the change to suggest), and the proof (the suggested change, on all the cases at the reference’s repetitions: what keeps it or not; an Improve run from before 0.4 ran its proof on the hold-out part). Absent from older servers.
object
object
For a drafted template that was never compared: why the check refused it (what it reads or names that the agent doesn’t have, or its size).
object
For a drafted template: what the drafter meant it to change.
The improve schedule and fire that started it (GET /v1/schedules/{triggerId}/fires); absent for an Improve run a person started.
object
Responses
Section titled “Responses”Received. Any other answer, or none within 10 seconds, is retried.