CI records
Ciresk CI jobs attached to a session as evidence, each checked against the trees the session applied.
List CI records
The session's verified ci records, newest first, each marked current when it ran on the session's current tree.
Owner and members. Every field is what the ci cell answered when the record was made.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
session_id | string | Required | The session's ID. |
cursor | string | Optional | |
limit | integer | Optional |
Response
datadata[].actor- who recorded it as a person reads it: Claude Code · Lucas
data[].agentdata[].commit- the commit the job named as its base (ci's base_digest)
data[].current- tree_digest is the session's current root
data[].exit_codedata[].generation- the session generation whose root it is
data[].job_iddata[].job_urldata[].kind- the job's kind as ci gave it: check, test, build, lint or a manifest task
data[].pr_url- null until forge opens change requests
data[].recorded_by- the requester's subject
data[].session_iddata[].tree_digest- the tree root the job ran on
data[].verdict- ci's terminal state of the jobOne of
succeeded,failed,cancelled,timed_out,infra_error data[].verified_athas_morenext_cursor
curl "$CIRESK_API/v1/dev/sessions/devs_0166ba8e973a3df1b173b30df1cb8f2f/ci_records" \
-H "Authorization: Bearer $CIRESK_KEY"Attach a CI record
Attach a ci job to the session as evidence - dev reads the job from the ci cell and checks it ran on a tree this session applied.
The session CI record. The owner or a member with use, or their agent, names a job; dev reads it with the organisation's own service:dev credential from the ci cell (ci.jobs.get) and stores ci's answer, never the client's. Accepted only when the job is terminal (else 409 ci_job_running with Retry-After), ran on a tree (else 422 ci_job_without_tree) and its tree root is the root of a session.applied event of this session (else 422 tree_not_in_session). A job the ci cell does not show to the organisation is 404; ci unreachable is 503 ci_unavailable and nothing is stored; without a ci url the capability answers 503 ci_not_configured. Appends an inbound ci.verdict event. The same job again returns its record (200). At most 500 records per session (409 too_many_ci_records).
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
session_id | string | Required | The session's ID. |
Request body
job_id- the ci job, as ciresk ci run --json prints data.id
Response
actor- who recorded it as a person reads it: Claude Code · Lucas
agentcommit- the commit the job named as its base (ci's base_digest)
current- tree_digest is the session's current root
exit_codegeneration- the session generation whose root it is
job_idjob_urlkind- the job's kind as ci gave it: check, test, build, lint or a manifest task
pr_url- null until forge opens change requests
recorded_by- the requester's subject
session_idtree_digest- the tree root the job ran on
verdict- ci's terminal state of the jobOne of
succeeded,failed,cancelled,timed_out,infra_error verified_at
curl -X POST "$CIRESK_API/v1/dev/sessions/devs_0166ba8e973a3df1b173b30df1cb8f2f/ci_records" \
-H "Authorization: Bearer $CIRESK_KEY" \
-H "Content-Type: application/json" \
-d '{
"job_id": "job_0109badfc220cd056b2c0e862ac73d40"
}'