Follow a change
Every Change in Infrared tells the same story: something asks for it, agents build and review it, a person approves it, it merges, and a Release takes it zone by zone to production. A run's page in Changes shows that story, and the evidence for each part, without you opening GitHub, Argo CD or a log.
Where the change is
The top of the page is a strip of stages, from left to right:
| Stage | What it says |
|---|---|
| Issue (or pull request) | What asked for the Change, who started it and when |
| AgentRoles review | How many agent steps are done and how many are working. It turns amber when an agent needs your guidance and links to the panel where you give it |
| Pull request | The pull request the builder opened, linked |
| Your approval | Amber with waiting for you while the human step waits; links straight to Approve |
| Merged | Once the merge step squash-merged the pull request |
| Release vX.Y.Z | The Release that ships the merge commit, linked |
| Each zone | The zone's phase, and once the zone runs Healthy, a screenshot of it |
Green is done, blue is working (it pulses), amber is waiting on a person, red failed, and grey hasn't started.
Timeline
Timeline draws one bar per step on a time axis, so you can see which agents ran, how long each took, and how long the Change waited for people. Hover over a bar, or read it with a screen reader, for its duration, verdict, tokens and cost. Bars still running are striped and grow as they run. The Release's stages follow on their own row: build, tag, then each zone.
The same timeline for everything at once is on Changes and Observability: every run and Release of the last 6 hours, day, 3 days or week, each linked to its page. Next to it, Where agent time went totals agent time and model cost by AgentRole, and Release performance gives the median and latest time of each Release stage.
Evidence
Each verdict shows what its step concluded, the links it produced (commits, the pull request, review comments), its success criteria, and the files it left:
- Test output: results the agent saved from the test run, shown as text.
- Screenshots and video, from an e2e verifier for example, shown inline.
- Announcement drafts: report steps that write announcements (
deliver: slack) keep the draft here, as well as sending it to the org's Slack channel. - Anything else, offered as a download.
Agents leave files in .infrared/artifacts/ in their checkout; the runner never commits that folder. Infrared keeps up to 12 files per step and 700 KB per file, as ConfigMaps owned by the run, so they go when the run is deleted. To keep evidence from a custom AgentRole, tell it in its guidance to save results there:
spec:
responsibilities:
- Run the e2e suite and save the report to .infrared/artifacts/e2e-report.txt and a screenshot of each failing page to .infrared/artifacts/.
What shipped
Once a Release makes a zone Healthy, Infrared opens the zone's site in headless Chromium from inside the cluster and keeps a 1280×800 screenshot: it shows what people see, without anyone signing in to the preview. The screenshots appear under What shipped on the Change and on the Release, and in the zone's stage at the top of the Change.
Infrared screenshots the root of the zone's smoke check URL (spec.delivery.zones[].verify.url), or the Service the scaffolded chart creates, http://<product>.<zone>.svc.cluster.local/. Zones on other clusters get no screenshot yet. A Release replaced in a zone by a newer one doesn't get one either, because the zone no longer shows what it shipped.
Release timings
A Release's page breaks its lead time into stages:
| Stage | From | To |
|---|---|---|
| Build | The Release starts | kpack has built the commit and Infrared tagged its digest |
| Tag | The build is ready | The GitHub release and git tag exist |
<zone>: deploy | The promotion pull request | Argo CD reports the zone Synced and Healthy |
<zone>: smoke check | Healthy | The zone's smoke check passes |
The Release records the times as status.builtAt, status.taggedAt and, per zone, startedAt, healthyAt and verifiedAt.
API
| Call | Returns |
|---|---|
GET /v1/orgs/{org}/agentworkflowruns/{name}/artifacts | The run's evidence files and its Releases' zone screenshots |
GET /v1/orgs/{org}/releases/{name}/artifacts | The Release's zone screenshots |
GET /v1/orgs/{org}/artifacts/{id} | One file. Images, text, JSON and video are served inline; anything else as an attachment. No file can run scripts |
GET /v1/orgs/{org}/activity?hours=48&product=zippy | Runs and Releases of the window as lanes of step and stage spans |
A step's evidence entries point at its files as artifact:<id>.