fabro/apps/fabro-web/app/lib
Bryan Helmkamp 80bc51c40e
Open sandbox provider identity to plugin kinds
SandboxProviderKind is now a validated string newtype instead of a
closed enum. The bundled kinds (local, docker, daytona) keep their
constants and a BundledProvider enum for the code paths that still
dispatch on them; any other well-formed sandbox-driver kind name is
accepted and names a plugin executable. EnvironmentProvider is gone:
environment settings carry SandboxProviderKind directly, and
is_clone_based is replaced by a workspace policy where local runs in a
designated directory and every other provider clones.

Server sandbox policy is keyed by kind. [server.sandbox.providers.<kind>]
accepts the bundled kinds with `enabled` and any plugin kind with its
launch settings (path, sha256, dev, args, env, inherit_env); bundled
kinds reject the plugin keys and a kind with no entry is disabled. The
OpenAPI schema, generated Rust and TypeScript clients, web settings
pages, and docs follow. The environments table drops its provider CHECK
enumeration in favour of the kind name rules so a plugin environment
can be stored.

Bundled-only code paths (run start, preflight, reconnect, terminal,
details) now fail with an explicit message for a plugin kind until the
driver construction function lands in the next step.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 15:17:32 -06:00
..
api-client.test.ts feat: download latest artifacts as zip 2026-07-31 13:23:35 -04:00
api-client.ts refactor: simplify artifact ZIP download 2026-08-01 09:09:54 -04:00
ask-fabro-runtime.test.ts fix: render Ask Fabro session responses 2026-05-22 12:32:59 -04:00
ask-fabro-runtime.ts refactor(web): improve React Doctor score (#405) 2026-05-25 22:41:37 -04:00
automation.ts Align remote workflow selectors with run targets 2026-08-31 17:13:20 -04:00
billing.ts refactor: simplify stage billing reuse 2026-07-28 14:51:47 -04:00
board-cache.ts feat(web): upgrade Children sub-tab to use the runs list view 2026-05-25 12:48:18 -04:00
board-events.test.tsx Harden cancellation and interrupt lifecycles 2026-07-23 20:40:22 -04:00
board-events.ts Harden cancellation and interrupt lifecycles 2026-07-23 20:40:22 -04:00
build-version-contract.ts fix(web): harden build version detection 2026-07-25 15:15:25 -04:00
build-version.test.ts fix(web): harden build version detection 2026-07-25 15:15:25 -04:00
build-version.ts fix(web): harden build version detection 2026-07-25 15:15:25 -04:00
chats-runtime.test.ts feat(fabro-web): port /chats/new + /chats/:id from prototype (#289) 2026-05-16 17:10:16 -04:00
chats-runtime.ts refactor(web): improve React Doctor score (#405) 2026-05-25 22:41:37 -04:00
chats-script.ts feat(fabro-web): port /chats/new + /chats/:id from prototype (#289) 2026-05-16 17:10:16 -04:00
chats-store.test.tsx feat(fabro-web): port /chats/new + /chats/:id from prototype (#289) 2026-05-16 17:10:16 -04:00
chats-store.tsx refactor(web): improve React Doctor score (#405) 2026-05-25 22:41:37 -04:00
chats-types.ts feat(fabro-web): port /chats/new + /chats/:id from prototype (#289) 2026-05-16 17:10:16 -04:00
class-names.ts fix(web): harden collapsible run docks 2026-07-28 15:24:58 -04:00
credential-heuristics.test.ts feat: add MCP servers settings UI at /settings/mcps (#540) 2026-07-01 10:32:37 -04:00
credential-heuristics.ts feat: add MCP servers settings UI at /settings/mcps (#540) 2026-07-01 10:32:37 -04:00
cross-tab-sse.test.ts fix(web): recover cross-tab SSE coordination after fallback 2026-05-04 15:52:18 -04:00
cross-tab-sse.ts refactor(web): improve React Doctor score (#405) 2026-05-25 22:41:37 -04:00
demo-mode.test.tsx feat: wire web UI to real server with demo mode toggle 2026-04-08 04:46:08 -04:00
demo-mode.tsx refactor(web): improve React Doctor score (#405) 2026-05-25 22:41:37 -04:00
environment-providers.ts Open sandbox provider identity to plugin kinds 2026-09-09 15:17:32 -06:00
format.ts feat(web): add models table to /settings/models 2026-05-25 15:21:40 -04:00
graph-theme.ts refactor(web): drop light mode, go dark-only 2026-04-20 09:27:08 -04:00
graph-viewport.test.ts Increase LR graph zoom to 400% and remember zoom per direction (#581) 2026-07-21 16:06:25 -04:00
graph-viewport.ts Remove unsupported workflow playground 2026-09-03 12:04:35 -04:00
import-chunk.test.ts fix(web): harden build version detection 2026-07-25 15:15:25 -04:00
import-chunk.ts feat(web): tell open tabs when a new build ships 2026-07-25 14:45:26 -04:00
live-events.test.tsx feat(web): build live events page in settings 2026-05-10 14:05:10 -04:00
live-events.ts Introduce approved effect hooks and migrate direct useEffect calls (#425) 2026-05-27 10:37:29 -04:00
mcp-server-cache.ts feat: add MCP servers settings UI at /settings/mcps (#540) 2026-07-01 10:32:37 -04:00
mcp-transport-kinds.ts feat: add MCP servers settings UI at /settings/mcps (#540) 2026-07-01 10:32:37 -04:00
model-offerings.test.ts feat: make model aliases provider-aware 2026-07-23 10:12:25 -04:00
model-offerings.ts feat: make model aliases provider-aware 2026-07-23 10:12:25 -04:00
mutations.test.ts Introduce approved effect hooks and migrate direct useEffect calls (#425) 2026-05-27 10:37:29 -04:00
mutations.ts Harden cancellation and interrupt lifecycles 2026-07-23 20:40:22 -04:00
pierre-diffs-worker.ts fix(web): virtualize run file diffs consistently 2026-05-05 16:41:39 -04:00
plural.ts refactor(web): improve React Doctor score (#405) 2026-05-25 22:41:37 -04:00
principal-display.tsx feat(web): add server-managed Environments CRUD settings UI (#462) 2026-06-13 08:44:38 -04:00
queries.ts fix(timing): simplify live timing projections 2026-07-28 14:20:59 -04:00
query-keys.test.ts fix(timing): simplify live timing projections 2026-07-28 14:20:59 -04:00
query-keys.ts feat: add MCP servers settings UI at /settings/mcps (#540) 2026-07-01 10:32:37 -04:00
run-actions.test.ts fix: clean up inference observability 2026-07-24 22:50:00 -04:00
run-actions.ts fix(timing): simplify live timing projections 2026-07-28 14:20:59 -04:00
run-events.test.tsx Merge origin/main into feat/parallel-branch-live-status 2026-07-28 17:50:36 -04:00
run-events.ts Merge origin/main into feat/parallel-branch-live-status 2026-07-28 17:50:36 -04:00
run-phases.test.ts fix(web): close run phase on terminal events (#427) 2026-05-27 10:38:32 -04:00
run-phases.ts fix(web): close run phase on terminal events (#427) 2026-05-27 10:38:32 -04:00
run-sandbox-lifecycle.ts Model run sandbox lifecycle explicitly (#431) 2026-05-27 12:48:56 -04:00
run-settings-snapshot.ts refactor: remove compatibility shims (#281) 2026-05-16 15:29:25 -04:00
sandbox-state.ts feat(web): show sandbox status dot on the run overview panel 2026-05-21 11:28:39 -04:00
session-stream.test.ts fix: render Ask Fabro session responses 2026-05-22 12:32:59 -04:00
session-stream.ts refactor(web): improve React Doctor score (#405) 2026-05-25 22:41:37 -04:00
sse.ts Runs list view: table layout, server-side sort/pagination, redesigned toolbar (#367) 2026-05-23 14:25:58 -04:00
stage-sidebar.test.ts Merge origin/main into feat/parallel-branch-live-status 2026-07-28 17:50:36 -04:00
stage-sidebar.ts Merge origin/main into feat/parallel-branch-live-status 2026-07-28 17:50:36 -04:00
test-fixtures.ts refactor: simplify stage billing reuse 2026-07-28 14:51:47 -04:00
test-utils.tsx Merge origin/main into feat/parallel-branch-live-status 2026-07-28 17:50:36 -04:00
time.ts Introduce approved effect hooks and migrate direct useEffect calls (#425) 2026-05-27 10:37:29 -04:00
unknown.ts refactor(web): narrow event property reads via shared helpers 2026-04-30 22:45:38 -04:00