Commit graph

2 commits

Author SHA1 Message Date
Bryan Helmkamp
1b987528dd
Simplify artifact version history 2026-07-28 14:57:05 -04:00
Bryan Helmkamp
4d4eb2c4e6
Show run artifacts by file with version history
The artifacts page grouped captures by stage, which is the storage key
`(stage, retry, path)` rather than anything a reader thinks in. A file
rewritten by four stages appeared as four separate rows under four
headings, with no indication they were the same file.

Group by path instead. Each file is one row showing its latest capture;
earlier captures disclose inline behind a chevron with the producing
stage, size, and the byte change that capture introduced.

Three fixes fall out of the regrouping:

- Order versions by the producing stage's `startedAt`. The previous sort
  was alphabetical by stage label, which scrambled history — a report
  that grew 8.42 KB -> 13.16 -> 14.32 -> 17.48 rendered newest-first
  under a heading implying it was the earliest.

- Drop captures from graph control nodes (`start`, `exit`) via the
  existing `isVisibleStage` helper. Those nodes run no work, so the
  files they match are pre-existing workspace files swept up by the
  capture globs, not run output. This is display-side only; the capture
  path still stores them.

- Show the retry badge at `retry > 1` rather than `retry > 0`. Attempts
  are 1-based, so the old condition matched every capture and rendered
  a "retry 1" badge on every group.

Grouping lives in a separate module so it is testable without React.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-27 16:45:47 -04:00