fabro/apps/fabro-web/app
Bryan Helmkamp 3435c02dca
fix(web): cover new archived RunStatus in Files empty-state taxonomy
origin/main introduced a new `archived` lifecycle status as a terminal
state reached by explicit user action on a previously terminal run.
deriveEmptyKind didn't know about it — archived runs with files would
have rendered "The diff for this run is no longer available. If you
expect files here, please report it.", which is wrong; the diff was
captured normally, the run was just archived later.

Adds `archived` to the terminal-success branch so archived runs show
the correct empty-state copy (R4b or R4c2) based on total_changed,
same as a succeeded run.

The regression-guard test is also tightened: it now iterates over
`RunStatus` from @qltysh/fabro-api-client rather than a hand-
maintained list, so any future addition to the OpenAPI spec fails
this test until the decision table grows a branch. This exact class
of silent-regression is what made me miss archived in the first
place.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-19 19:41:03 -04:00
..
components style(run-stages): copy affordance, collapsed long output, sticky header 2026-04-19 17:27:25 -04:00
data polish: clarify -a hint, test archived status in web UI, tighten rewind input 2026-04-19 17:43:00 -04:00
layouts feat(app-shell): promote Settings to a top-level nav item 2026-04-19 17:03:27 -04:00
lib feat(web): graph direction control, failed node colors, breadcrumb and stage fixes 2026-04-15 10:52:12 -04:00
routes fix(web): cover new archived RunStatus in Files empty-state taxonomy 2026-04-19 19:41:03 -04:00
api.test.ts fix(runs): bound board enrichment and demo normalization 2026-04-19 11:35:30 -04:00
api.ts fix(runs): bound board enrichment and demo normalization 2026-04-19 11:35:30 -04:00
app.css fix(theme): contrast on primary buttons and muted text in light mode 2026-04-19 17:12:01 -04:00
entry.tsx feat(install): add browser-based setup flow 2026-04-19 11:20:58 -04:00
install-api.test.ts refactor(install): collapse overlapping React state into discriminated unions 2026-04-19 13:59:09 -04:00
install-api.ts refactor(install): collapse overlapping React state into discriminated unions 2026-04-19 13:59:09 -04:00
install-app.test.tsx fix(install): harden web wizard against review findings 2026-04-19 12:43:00 -04:00
install-app.tsx style(run-stages): copy affordance, collapsed long output, sticky header 2026-04-19 17:27:25 -04:00
install-config.test.ts fix(install): exclude openai-compatible from v1 setup 2026-04-19 11:43:38 -04:00
install-config.ts feat(install): redesign web wizard and scope dev token to PAT installs 2026-04-19 16:11:02 -04:00
install-flow.test.ts fix(install): exclude openai-compatible from v1 setup 2026-04-19 11:43:38 -04:00
install-flow.ts fix(install): exclude openai-compatible from v1 setup 2026-04-19 11:43:38 -04:00
install-router.tsx feat(install): add browser-based setup flow 2026-04-19 11:20:58 -04:00
mode.test.ts fix(install): harden web wizard against review findings 2026-04-19 12:43:00 -04:00
mode.ts fix(install): harden web wizard against review findings 2026-04-19 12:43:00 -04:00
root.tsx fix(fabro-web): default unsaved theme selection to dark 2026-04-08 12:10:34 -04:00
router.test.tsx refactor(setup): remove browser-based GitHub app bootstrap 2026-04-13 18:25:29 -04:00
router.tsx feat(web): enhance run detail UI with stages tab, graph controls, and live annotations 2026-04-15 10:12:10 -04:00