fabro/apps/fabro-web/app/components
Bryan Helmkamp 18a3c4741e
Run agent stages, Ask Fabro, and fabro exec on pebble's CodingAgent
Replace fabro's hand-written agent loop with pebble's `CodingAgent` and
delete the `fabro-agent` crate.

Workflow: `PebbleBackend` builds one agent per stage over `RunSandbox`,
binds the stage's hooks as tool middleware, the interviewer as the
human-input provider, and a durable `EventSink` that writes every agent
event through the run event log before the agent goes on. Full-fidelity
threads continue across stages through `export`/`resume_from_export`.
Model failover takes the session record after the failed prompt and
continues it on the next route with `ResumeMode::UseModel`, so no tool
effect repeats. The steering hub targets pebble's control handle, with
a steering lease holding completion open while a human is paired.

Events: `EventBody::Agent` carries pebble's `CodingAgentEvent` envelope;
the per-variant bodies, the transcript projection, and the fabro-only
context-window, tool-summary, and skill types are gone in favor of
pebble's. The OpenAPI schemas, generated Rust and TypeScript clients,
and web readers follow.

Ask Fabro: the session runs a `CodingAgent` under a read-only permission
policy and a system prompt transform. Its conversation lives in a new
`run_session_records` table and resumes on the recorded model with the
event cursor advanced past the run log.

`fabro exec` builds the same agent over a local sandbox with pebble's
permission middleware and an interactive approval service.

The catalog fills in `metadata.agent.profile` for operator providers
that declare none, so pebble's lookup is the one resolution path.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 14:19:15 -06:00
..
chats refactor(web): simplify stage chat projection 2026-07-24 17:29:04 -04:00
runs-list Clean up size chip rendering and tests 2026-07-28 14:04:58 -04:00
stage-renderers Simplify parallel duration and event failure logging 2026-08-01 08:57:47 -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 refactor(web): improve React Doctor score (#405) 2026-05-25 22:41:37 -04:00
event-debug.tsx refactor(web): simplify thread DNA selection identity 2026-07-24 17:23:08 -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
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 feat(web): add server-managed Environments CRUD settings UI (#462) 2026-06-13 08:44:38 -04:00
run-summary-panel.tsx feat(web): add server-managed Environments CRUD settings UI (#462) 2026-06-13 08:44:38 -04:00
run-waterfall.tsx Introduce approved effect hooks and migrate direct useEffect calls (#425) 2026-05-27 10:37:29 -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 Clean up size chip rendering and tests 2026-07-28 14:04:58 -04: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 Run agent stages, Ask Fabro, and fabro exec on pebble's CodingAgent 2026-09-11 14:19:15 -06:00
stage-insights-sidebar.tsx Run agent stages, Ask Fabro, and fabro exec on pebble's CodingAgent 2026-09-11 14:19:15 -06:00
stage-popover-summary.ts refactor(web): improve React Doctor score (#405) 2026-05-25 22:41:37 -04:00
stage-popover.test.tsx Fix live parallel branch refresh and simplify branch rendering 2026-07-28 17:26:05 -04:00
stage-popover.tsx fix: harden stage execution identity on resume 2026-07-24 09:37:05 -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