API referenceFix & ship

Fix & ship — API reference

Typed remediations, the evals-from-failures flywheel, and deploy-event correlation.

Generated from the live OpenAPI schema (version 0.16.6). Download the full spec at /docs/openapi.json.

remediations

GET /remediations

Get Remediations

Details

Responses

StatusDescription
200Successful Response

GET /remediations/agent-context

Get Agent Context

Return the project’s optional agent context (nulls when unset).

Details

Responses

StatusDescription
200Successful Response

PUT /remediations/agent-context

Put Agent Context

Upsert the project’s agent context (improves future grounded generations).

Details

Request body (application/json) — required

FieldTypeRequiredDescription
systemPromptstring | nullno
repoUrlstring | nullno
notesstring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

GET /remediations/efficacy-report

Efficacy Report

Per-project post-merge efficacy + MTTR report from LIVE close-out data: failure volume before/after, fixes shipped/verified/regressed/pending, median MTTR, and a monthly trend.

Details

Responses

StatusDescription
200Successful Response

POST /remediations/generate

Generate Remediation

Details

Request body (application/json) — required

FieldTypeRequiredDescription
clusterIdstring | nullno
failureModeIdstring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

GET /remediations/items

List Remediations

Details

Parameters

ParameterInTypeRequiredDescription
clusterIdquerystring | nullno
failureModeIdquerystring | nullno
failure_mode_idquerystring | nullno
statusquerystring | nullno
workStatequerystring | nullno
typequerystring | nullno
labelquerystring | nullno
qquerystring | nullno
sortquerystring | nullno
includeArchivedquerybooleanno
include_ungroundedquerybooleanno
include_advisoriesquerybooleanno
actionabilityquerystring | nullno
failureLocusquerystring | nullno
failure_locusquerystring | nullno
viewquerystring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

GET /remediations/items/{rid}

Get Remediation

Details

Parameters

ParameterInTypeRequiredDescription
ridpathstringyes

Responses

StatusDescription
200Successful Response
422Validation Error

PATCH /remediations/items/{rid}

Patch Remediation

Details

Parameters

ParameterInTypeRequiredDescription
ridpathstringyes
forcequerybooleanno
reasonquerystring | nullno

Request body (application/json) — required

FieldTypeRequiredDescription
statusstring | nullno
workStatestring | nullno
labelsstring[] | nullno
prUrlstring | nullno
commitShastring | nullno
acknowledgedBystring | nullno
notestring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

DELETE /remediations/items/{rid}

Delete Remediation

Details

Parameters

ParameterInTypeRequiredDescription
ridpathstringyes

Responses

StatusDescription
200Successful Response
422Validation Error

GET /remediations/items/{rid}/closeout

Get Closeout

The single most-recent close-out for this remediation, or 404.

Details

Parameters

ParameterInTypeRequiredDescription
ridpathstringyes

Responses

StatusDescription
200Successful Response
422Validation Error

GET /remediations/items/{rid}/efficacy

Efficacy

Details

Parameters

ParameterInTypeRequiredDescription
ridpathstringyes

Responses

StatusDescription
200Successful Response
422Validation Error

GET /remediations/items/{rid}/fix-bundle

Get Fix Bundle

Assemble a remediation’s root cause + typed fix spec + proof evals + anonymized failing exemplars into ONE coding-agent-ready pack (markdown + structured JSON + a pre-generated neens eval run CI command). Pure assembly of data Neens already computes — no LLM, no egress, no repo access. Read-only; mirrors the sibling GET-detail routes.

Details

Parameters

ParameterInTypeRequiredDescription
ridpathstringyes

Responses

StatusDescription
200Successful Response
422Validation Error

POST /remediations/items/{rid}/record-merge

Record Merge Route

Record that a Neens-opened fix PR for this remediation was MERGED (the manual + MCP path): stamp a deploy event + a pending close-out watch. The webhook (POST /webhooks/github) is the automated sibling. Returns the close-out dict.

Details

Parameters

ParameterInTypeRequiredDescription
ridpathstringyes

Request body (application/json)

Schema: object.

Responses

StatusDescription
200Successful Response
422Validation Error

POST /remediations/items/{rid}/regenerate

Regenerate Remediation Item

Re-run the CURRENT grounded engine for this remediation’s source (cluster or failure mode), producing a FRESH remediation and archiving this one as a superseded predecessor. Force-capable on ANY status — the old proposal (and its PR/verification state) is preserved, never mutated in place and never deleted. Runs synchronously (one generation). 404 if rid is not in the caller’s project scope; 409 if it is already superseded. Returns the NEW remediation dict with regeneratedFromId set and an embedded compact predecessor.

Details

Parameters

ParameterInTypeRequiredDescription
ridpathstringyes

Request body (application/json)

Schema: object.

Responses

StatusDescription
200Successful Response
422Validation Error

POST /remediations/items/{rid}/simulate

Simulate

Details

Parameters

ParameterInTypeRequiredDescription
ridpathstringyes

Request body (application/json)

Schema: object.

Responses

StatusDescription
200Successful Response
422Validation Error

GET /remediations/items/{rid}/simulation-plan

Simulation Plan

Describe what a simulate run WOULD do WITHOUT running any replay. Shares the exact target-selection + judge/model resolution used by POST.../simulate. The optional override query params mirror SimulateRequest (minus the explicit cohort — the UI holds the selected ids client-side) so the Configure panel gets a live preview of a tuned run.

Details

Parameters

ParameterInTypeRequiredDescription
ridpathstringyes
judgeIdquerystring | nullno
thresholdquerynumber | nullno
maxTargetsqueryinteger | nullno
samplingquerystring | nullno
connectionIdquerystring | nullno
strategyquerystring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

POST /remediations/regenerate-bulk

Regenerate Remediations Bulk

Regenerate a SET of remediations with the current engine. Resolves the target id list under project scope from exactly one selector (remediation_ids | failure_mode_id | all_open), caps it at a server-side maximum, then:

Details

Request body (application/json) — required

FieldTypeRequiredDescription
remediationIdsstring[] | nullno
failureModeIdstring | nullno
allOpenboolean | nullno
reasonstring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

GET /remediations/stats

Remediation Stats

Details

Responses

StatusDescription
200Successful Response

GET /remediations/trend

Remediations Trend

Throughput trend for the Remediations page: per-day (or per-hour) count of fix tasks created over the selected window, plus a period-over-period total. Scoped to the current project. Creation volume is counted regardless of later archive state, so a historical trend doesn’t drift as tasks are archived.

Details

Parameters

ParameterInTypeRequiredDescription
rangequerystring | nullno
fromquerystring | nullno
toquerystring | nullno
grainquerystring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

flywheel

POST /flywheel/failure-modes/{mode_id}/generate-eval

Generate Eval

Details

Parameters

ParameterInTypeRequiredDescription
mode_idpathstringyes

Responses

StatusDescription
200Successful Response
422Validation Error

GET /flywheel/gates

List Gates

Details

Parameters

ParameterInTypeRequiredDescription
statusquerystring | nullno
failureModeIdquerystring | nullno
namequerystring | nullno
sort_byquerystring | nullno
sort_dirquerystring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

GET /flywheel/gates/{gate_id}

Get Gate

Rich single-gate detail: the stored gate row PLUS the provenance it binds together (failure mode / judge / dataset / deployment) and a bounded history of its recent eval runs, so the UI can explain what this gate checks, when it last ran, and how it has been trending on one click. Every cross-table read is best-effort and project-scoped.

Details

Parameters

ParameterInTypeRequiredDescription
gate_idpathstringyes

Responses

StatusDescription
200Successful Response
422Validation Error

PATCH /flywheel/gates/{gate_id}

Patch Gate

Details

Parameters

ParameterInTypeRequiredDescription
gate_idpathstringyes

Request body (application/json) — required

FieldTypeRequiredDescription
statusstring | nullno
baselinePassRatenumber | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

POST /flywheel/gates/{gate_id}/run

Run Gate

Details

Parameters

ParameterInTypeRequiredDescription
gate_idpathstringyes

Responses

StatusDescription
200Successful Response
422Validation Error

deploy-events

GET /deploy-events

List Deploy Events

Details

Parameters

ParameterInTypeRequiredDescription
agentNamequerystring | nullno
sincequerystring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

POST /deploy-events

Create Deploy Event

Details

Request body (application/json) — required

FieldTypeRequiredDescription
kindstringyes
titlestringyes
agentNamestring | nullno
oldValuestring | nullno
newValuestring | nullno
deployedAtstring | nullno
deployedBystring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

GET /deploy-events/what-changed

What Changed

Details

Parameters

ParameterInTypeRequiredDescription
atquerystringyesISO-8601 reference instant
agentNamequerystring | nullno
windowHoursqueryintegerno

Responses

StatusDescription
200Successful Response
422Validation Error