Update an investigation record
Update one existing investigation record in place — the write-back seam for the working run record you were handed when a run was launched. Fill in the…
Update one existing investigation record in place — the write-back seam for
the working run record you were handed when a run was launched. Fill in
the summary/findings, attach the fixing PR, record your confidence
and the sources you inspected, or flip its kind off working once the
investigation is done. A partial patch: send only the fields you want to
change. Safe for restricted ops keys (it never reads or deletes).
A run started with an empty working record; as you work,
PATCH it with your findings so the cockpit's detail panel fills in live —
no need to append a second record.
Authorization
bearerSdkKey Pass an admin SDK key as Authorization: Bearer sdk_admin_…. Mint via POST /api/admin/keys with type: "admin".
In: header
Path Parameters
Per-project item number (e.g. 7) or the full ops item id.
1 <= length <= 128The investigation record id (from POST/GET .../investigation or the runId an ack/launch returned).
1 <= length <= 128Header Parameters
Project the request operates on. Optional — defaults to the project the SDK key belongs to; pass it only to scope a multi-project key (the generated client sets it once from its configuration, so per-call callers never thread it).
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PATCH "https://shipeasy.ai/api/admin/ops/string/investigation/string" \ -H "Content-Type: application/json" \ -d '{ "kind": "investigated", "summary": "Root cause is a stale KV read on the checkout flag.", "findings": "The `checkout.cta` gate is rebuilt without a CDN purge, so…", "confidence": "high", "prNumber": 4821, "prUrl": "https://github.com/acme/web/pull/4821" }'{
"id": "string",
"feedbackId": "string",
"kind": "investigated",
"summary": "string",
"findings": "string",
"question": "string",
"qaNotes": "string",
"agent": "jarvis",
"model": "string",
"connectorId": "string",
"prNumber": 0,
"prUrl": "string",
"sources": [
{
"path": "string",
"url": "string",
"label": "string"
}
],
"confidence": "low",
"tokensUsed": 0,
"durationMs": 0,
"visibility": "draft",
"startedAt": "string",
"completedAt": "string",
"sessionId": "string",
"sessionUrl": "string",
"ackedBy": "string",
"completedAction": "link_pr",
"createdAt": "string",
"updatedAt": "string"
}{
"error": "Malformed request (bad JSON, missing project scope).",
"code": "BAD_REQUEST"
}{
"error": "Missing or invalid admin SDK key.",
"code": "UNAUTHORIZED"
}{
"error": "Key is valid but not allowed to act on this project.",
"code": "FORBIDDEN"
}{
"error": "The resource does not exist or is not visible to the caller.",
"code": "NOT_FOUND"
}{
"error": "The request body failed structural (schema) validation.",
"code": "VALIDATION"
}Record an investigation
Append one structured investigation record to a queue item — the AI-write seam the cockpit's detail panel renders read-only. Post your findings (kind:…
List connected AI agents
The project's connected AI agents — one per authenticated trigger connector (Claude / Cursor / Copilot / Jules). These are the agent types ops ack accepts…