fabro/apps/fabro-web/app
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
..
components Open sandbox provider identity to plugin kinds 2026-09-09 15:17:32 -06:00
data Show billed amount in runs list size tooltip 2026-07-27 15:19:57 -04:00
hooks fix(web): harden build version detection 2026-07-25 15:15:25 -04:00
layouts fix(web): harden build version detection 2026-07-25 15:15:25 -04:00
lib Open sandbox provider identity to plugin kinds 2026-09-09 15:17:32 -06:00
routes Open sandbox provider identity to plugin kinds 2026-09-09 15:17:32 -06:00
app.css fix: tighten Ask Fabro sidebar markdown spacing 2026-05-22 13:47:31 -04:00
entry.tsx fix(web): harden build version detection 2026-07-25 15:15:25 -04:00
install-api.test.ts feat(web): migrate to generated API client 2026-05-08 07:44:33 -07:00
install-api.ts feat(web): migrate to generated API client 2026-05-08 07:44:33 -07:00
install-app.test.tsx feat(install): enable only allowed sandbox providers 2026-06-02 18:39:31 -04:00
install-app.tsx feat(install): enable only allowed sandbox providers 2026-06-02 18:39:31 -04:00
install-config.test.ts fix(install): exclude openai-compatible from v1 setup 2026-04-19 11:43:38 -04:00
install-config.ts feat(install): redesign web wizard and scope dev token to PAT installs 2026-04-19 16:11:02 -04:00
install-flow.test.ts fix(install): exclude openai-compatible from v1 setup 2026-04-19 11:43:38 -04:00
install-flow.ts fix(install): exclude openai-compatible from v1 setup 2026-04-19 11:43:38 -04:00
install-query.ts Introduce approved effect hooks and migrate direct useEffect calls (#425) 2026-05-27 10:37:29 -04:00
install-router.test.tsx fix(install): mount wizard at root route 2026-04-24 12:59:16 -04:00
install-router.tsx fix(install): mount wizard at root route 2026-04-24 12:59:16 -04:00
mode.test.ts fix(install): harden web wizard against review findings 2026-04-19 12:43:00 -04:00
mode.ts fix(install): harden web wizard against review findings 2026-04-19 12:43:00 -04:00
root.tsx feat(fabro-web): port /chats/new + /chats/:id from prototype (#289) 2026-05-16 17:10:16 -04:00
router.test.tsx Remove obsolete playground browser route assertion 2026-09-04 10:13:16 -04:00
router.tsx Remove unsupported workflow playground 2026-09-03 12:04:35 -04:00