fabro/apps/fabro-web/app
Bryan Helmkamp 731a8cc6e0
feat(web): rewrite Run Files tab, surface it in navigation
Rewrites apps/fabro-web/app/routes/run-files.tsx to consume the real
PaginatedRunFileList response and removes the fallbackFiles fixture
and the Steer subsystem. The new component:

- Loads via apiJsonOrNull, so a 404/501 (dev without the route)
  renders the empty state instead of the root error boundary
- Branches on meta.degraded + meta.patch to render PatchDiff with a
  DegradedBanner whose copy reflects degraded_reason
- Renders per-entry placeholders for sensitive, binary, symlink/
  submodule, and truncated files with the priority order
  sensitive > binary > symlink/submodule > truncated -- security
  flags never get hidden behind a lesser placeholder
- Renders one MultiFileDiff per regular entry
- Uses role="region" + aria-label on each file row

Also unhides the Files Changed tab in run-detail.tsx by flipping
broken: true -> false. Adds missing final_patch: None to the runner
RunFailed test fixtures to match the lifecycle change from Unit 2.

Refs plan docs/plans/2026-04-19-002-feat-run-files-changed-tab-plan.md

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-19 17:06:06 -04:00
..
components feat(web): render command/script stage output on stage detail page 2026-04-15 10:23:55 -04:00
data refactor(runs): blocked status canonicalization cleanup (#165) 2026-04-19 14:53:46 -04:00
layouts feat(web): add empty state to runs page and fix logo link 2026-04-16 08:02:18 -04:00
lib feat(web): graph direction control, failed node colors, breadcrumb and stage fixes 2026-04-15 10:52:12 -04:00
routes feat(web): rewrite Run Files tab, surface it in navigation 2026-04-19 17:06:06 -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 feat(web): render markdown in stage system prompt and assistant blocks 2026-04-15 11:21:25 -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 refactor(install): collapse overlapping React state into discriminated unions 2026-04-19 13:59:09 -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 fix(install): exclude openai-compatible from v1 setup 2026-04-19 11:43:38 -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