fabro/apps/fabro-web/app/components
Bryan Helmkamp bc31b8d23a
Serve the run stream as the only run event API
Step 4 of the legacy executor deletion, third commit: the legacy event
API and every reader of it go, so that the next commits can delete the
event log, its reducer and the types beneath them.

The API:
- `GET /runs/{id}/events` pages the run stream only
  (`PaginatedRunStreamList` by `after`); the legacy `since_seq`,
  `before_seq` and `order` cursors, the `oneOf` envelope, the legacy
  `EventEnvelope`, `PaginatedEventList`, `RunEvent`, `EventSeq`,
  `AppendEventResponse` and `RunEventDetailResponse` schemas,
  `POST /runs/{id}/events`, `GET /runs/{id}/events/{seq}` and
  `GET /runs/{id}/stages/{stageId}/events` are deleted. `GET
  /runs/{id}/attach` and `GET /attach` frame `RunStreamItem`s only.
- The Rust and TypeScript clients regenerate; the removed models leave
  the TypeScript package.

The readers:
- `fabro-client` drops the legacy run event listing, tail and attach
  methods and `RunEventStream`; `list_run_stream_until` bounds a stream
  read.
- `fabro-tool`'s `fabro_run_events` lists, searches and details the run
  stream: `after` is the exclusive `stream_seq` cursor, `event_id` the
  item's id, filters match the item's name and `recorded_at`.
- `fabro-dump` writes the stream to `events.jsonl`; `fabro dump` reads
  it.
- The CLI's progress renderer keeps only what the run stream drives:
  the legacy event conversion, the sandbox and setup displays and their
  styles go. `fabro system events` prints stream items.
- The server's demo mode folds its agent fixture straight into the
  session projection and answers the attach stub with a stream item;
  the demo stage events endpoint is gone.
- The web app: every run is a Petri run. The legacy event hooks,
  renderer props, stage popover summary, run phases derivation and
  live-event payload handling are deleted or ported to `RunStreamItem`;
  toasts and board refreshes read the stream's platform records.
- Tests: the legacy API round trips and pagination tests are deleted;
  the CLI's MCP, attach and system event mocks serve stream pages; the
  CLI test helpers read stream items.

Still failing until the later commits: the CLI tests seeded through
`POST /runs/{id}/events`, the server tests over the legacy store, and
the legacy type tests.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-18 13:36:00 -04:00
..
chats refactor(web): simplify stage chat projection 2026-07-24 17:29:04 -04:00
runs-list Remove the retry, rewind, fork and timeline endpoints and commands 2026-09-18 10:54:45 -04:00
stage-renderers Serve the run stream as the only run event API 2026-09-18 13:36:00 -04:00
auth-layout.tsx refactor(web): improve React Doctor score (#405) 2026-05-25 22:41:37 -04:00
automation-form.test.tsx Align remote workflow selectors with run targets 2026-08-31 17:13:20 -04:00
automation-form.tsx Align remote workflow selectors with run targets 2026-08-31 17:13:20 -04:00
collapsible-file.tsx refactor(web): drop light mode, go dark-only 2026-04-20 09:27:08 -04:00
editable-run-title.test.tsx feat(web): inline-edit run titles in the run header 2026-05-09 11:54:41 -04:00
editable-run-title.tsx refactor(web): improve React Doctor score (#405) 2026-05-25 22:41:37 -04:00
environment-form.test.ts feat(web): add server-managed Environments CRUD settings UI (#462) 2026-06-13 08:44:38 -04:00
environment-form.tsx Open sandbox provider identity to plugin kinds 2026-09-09 15:17:32 -06:00
event-debug-helpers.tsx Render a Petri run's detail views from its projection and stream 2026-09-18 00:59:10 -04:00
event-debug.tsx Serve the run stream as the only run event API 2026-09-18 13:36:00 -04:00
floating-tooltip.tsx Introduce approved effect hooks and migrate direct useEffect calls (#425) 2026-05-27 10:37:29 -04:00
graph-toolbar.tsx Increase LR graph zoom to 400% and remember zoom per direction (#581) 2026-07-21 16:06:25 -04:00
icons.tsx feat(runs): link stored pull requests 2026-05-08 13:17:08 -07:00
inline-markdown.test.tsx feat(web): render inline Markdown in run titles 2026-05-08 18:30:51 -07:00
inline-markdown.tsx refactor(web): improve React Doctor score (#405) 2026-05-25 22:41:37 -04:00
interview-dock.test.tsx Merge origin/main into feat/human-review-target 2026-07-28 16:48:02 -04:00
interview-dock.tsx Merge origin/main into feat/human-review-target 2026-07-28 16:48:02 -04:00
interview-label.ts refactor(web): improve React Doctor score (#405) 2026-05-25 22:41:37 -04:00
key-value-editor.test.tsx feat: add MCP servers settings UI at /settings/mcps (#540) 2026-07-01 10:32:37 -04:00
key-value-editor.tsx feat: add MCP servers settings UI at /settings/mcps (#540) 2026-07-01 10:32:37 -04:00
mcp-server-form.test.tsx feat: add MCP servers settings UI at /settings/mcps (#540) 2026-07-01 10:32:37 -04:00
mcp-server-form.tsx feat: add MCP servers settings UI at /settings/mcps (#540) 2026-07-01 10:32:37 -04:00
platform-records-panel.tsx Serve the run stream as the only run event API 2026-09-18 13:36:00 -04:00
pull-request-chip.test.tsx feat(pr): support GitHub pull request associations (#270) 2026-05-16 12:47:27 -04:00
pull-request-chip.tsx feat(pr): support GitHub pull request associations (#270) 2026-05-16 12:47:27 -04:00
review-target-question.tsx refactor: remove duplicated review target rendering and validation 2026-07-28 15:14:23 -04:00
run-dock.test.tsx Guard steering bar click target 2026-08-01 09:24:34 -04:00
run-dock.tsx Guard steering bar click target 2026-08-01 09:24:34 -04:00
run-summary-panel.test.tsx Read Usage in the web app and rename the Billing tab to Usage 2026-09-14 12:40:04 -06:00
run-summary-panel.tsx Read Usage in the web app and rename the Billing tab to Usage 2026-09-14 12:40:04 -06:00
run-waterfall.tsx Serve the run stream as the only run event API 2026-09-18 13:36:00 -04:00
settings-panel.tsx feat: add MCP servers settings UI at /settings/mcps (#540) 2026-07-01 10:32:37 -04:00
size-chip.test.tsx Read Usage in the web app and rename the Billing tab to Usage 2026-09-14 12:40:04 -06:00
size-chip.tsx Clean up size chip rendering and tests 2026-07-28 14:04:58 -04:00
stage-context.tsx feat(web): add Context tab to the stage detail view (#340) 2026-05-21 20:19:55 -04:00
stage-insights-sidebar.test.tsx Read Usage in the web app and rename the Billing tab to Usage 2026-09-14 12:40:04 -06:00
stage-insights-sidebar.tsx Show the agent sidebar from stage.agent 2026-09-13 08:36:10 -06:00
stage-popover.test.tsx Serve the run stream as the only run event API 2026-09-18 13:36:00 -04:00
stage-popover.tsx Serve the run stream as the only run event API 2026-09-18 13:36:00 -04:00
stage-sidebar.test.tsx Merge origin/main into feat/parallel-branch-live-status 2026-07-28 17:50:36 -04:00
stage-sidebar.tsx refactor(web): improve React Doctor score (#405) 2026-05-25 22:41:37 -04:00
state.tsx refactor(web): simplify stage chat projection 2026-07-24 17:29:04 -04:00
steer-bar.test.tsx Collapse the steering bar by default and expand it on bar click 2026-07-31 12:46:13 -04:00
steer-bar.tsx Collapse the steering bar by default and expand it on bar click 2026-07-31 12:46:13 -04:00
terminal-view-helpers.ts Model run sandbox lifecycle explicitly (#431) 2026-05-27 12:48:56 -04:00
terminal-view.test.ts Model run sandbox lifecycle explicitly (#431) 2026-05-27 12:48:56 -04:00
terminal-view.tsx Model run sandbox lifecycle explicitly (#431) 2026-05-27 12:48:56 -04:00
toast.test.tsx Introduce approved effect hooks and migrate direct useEffect calls (#425) 2026-05-27 10:37:29 -04:00
toast.tsx fix(web): harden build version detection 2026-07-25 15:15:25 -04:00
tool-call-count.tsx refactor(web): simplify stage chat projection 2026-07-24 17:29:04 -04:00
ui.tsx Replace DIY overlay primitives with Radix UI + Sonner (#424) 2026-05-26 23:03:06 -04:00