fabro/apps/fabro-web/app/components
Bryan Helmkamp 7247fd6b7c
feat(web): add interview dock for answering blocked runs from the UI
Replaces the read-only BlockedRunNotice with a viewport-fixed dock that
lets users answer pending human-in-the-loop questions without dropping
to the CLI. Supports YesNo, Confirmation, MultipleChoice, MultiSelect,
and Freeform question types, plus the allow_freeform fallback for
choice-with-write-in. Multiple pending questions surface a "+N more"
pill so a parallel-handler run can be drained from one place.

The dock subscribes to interview.* SSE events for auto-refresh and
posts answers via the existing /runs/{id}/questions/{qid}/answer
endpoint. Cancel is consolidated into the page header (now shown for
blocked runs) so the dock chrome stays focused on the conversation.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 15:39:01 -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 feat(web): add interview dock for answering blocked runs from the UI 2026-05-02 15:39:01 -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