fabro/apps/fabro-web/app/components
Bryan Helmkamp 6f1d87c878
refactor(web): simplify interview-dock
Drop a resync useEffect that healed activeIndex back to safeIndex —
safeIndex already clamped reads, so the effect only triggered an
extra render. Reuse the shared ErrorMessage from ui.tsx instead of
the inline copy. Drop a useMemo over a tiny per-render array.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 15:59:07 -04:00
..
auth-layout.tsx chore(web): namespace static images under /images and skip in HTTP logs 2026-04-30 08:57:14 -04:00
collapsible-file.tsx refactor(web): drop light mode, go dark-only 2026-04-20 09:27:08 -04:00
graph-toolbar.tsx style(runs): tighten stages, graph toolbar, billing, and stage sidebar 2026-04-19 16:51:55 -04:00
interview-dock.test.tsx feat(web): add interview dock for answering blocked runs from the UI 2026-05-02 15:39:01 -04:00
interview-dock.tsx refactor(web): simplify interview-dock 2026-05-02 15:59:07 -04:00
settings-panel.tsx refactor(web): share settings panel UI between server and run pages 2026-04-29 17:10:07 -04:00
stage-sidebar.tsx refactor: simplify after stage status unification 2026-04-30 08:02:08 -04:00
state.tsx feat(web): unify empty/error/loading states in one primitive 2026-04-19 17:22:57 -04:00
toast.test.tsx feat(web): add run lifecycle actions 2026-04-20 08:43:30 -04:00
toast.tsx feat(web): add run lifecycle actions 2026-04-20 08:43:30 -04:00
tool-use.tsx style(run-stages): copy affordance, collapsed long output, sticky header 2026-04-19 17:27:25 -04:00
ui.tsx style(run-stages): copy affordance, collapsed long output, sticky header 2026-04-19 17:27:25 -04:00