Skip to main content
Version: 0.1 (next)

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:

StageWhat it says
Issue (or pull request)What asked for the Change, who started it and when
AgentRoles reviewHow 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 requestThe pull request the builder opened, linked
Your approvalAmber with waiting for you while the human step waits; links straight to Approve
MergedOnce the merge step squash-merged the pull request
Release vX.Y.ZThe Release that ships the merge commit, linked
Each zoneThe 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:

StageFromTo
BuildThe Release startskpack has built the commit and Infrared tagged its digest
TagThe build is readyThe GitHub release and git tag exist
<zone>: deployThe promotion pull requestArgo CD reports the zone Synced and Healthy
<zone>: smoke checkHealthyThe zone's smoke check passes

The Release records the times as status.builtAt, status.taggedAt and, per zone, startedAt, healthyAt and verifiedAt.

API​

CallReturns
GET /v1/orgs/{org}/agentworkflowruns/{name}/artifactsThe run's evidence files and its Releases' zone screenshots
GET /v1/orgs/{org}/releases/{name}/artifactsThe 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=zippyRuns and Releases of the window as lanes of step and stage spans

A step's evidence entries point at its files as artifact:<id>.