fabro/lib/crates/fabro-server/src
Bryan Helmkamp a163c16cda
feat: make local a reserved, in-memory environment
`local` no longer makes sense as a configurable environment — the local
sandbox provider ignores image/resources/network/lifecycle/volumes. Stop
seeding it as an editable TOML file and stop offering it as a creatable
provider in the UI form.

Instead the server synthesizes a reserved, in-memory `local` environment
only when `server.sandbox.providers.local.enabled`. It is never persisted
and cannot be created, replaced, or deleted (409). Provider-enablement is
already enforced at run create/preflight/start, so the synthetic `local`
just needs to exist in the store catalog when enabled.

- fabro-environment: drop `local` from disk seeds; thread `local_enabled`
  into load_or_seed and inject a synthetic `local`; ignore any stale
  `local.toml`; reject create/replace/delete of `local` with a new
  Reserved error. seeded_catalog_layer keeps `local` for CLI validation.
- fabro-server: pass local.enabled into the store; map Reserved -> 409.
- web: form provider dropdown excludes local; the `local` row is
  read-only (no Edit/Delete) with a reserved tag.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 11:24:14 -04:00
..
auth refactor: Remove inbound IP allowlisting (#443) 2026-05-27 22:29:08 -04:00
demo feat(sandbox): secure daytona snapshot names (#429) 2026-05-27 11:52:35 -04:00
server feat: make local a reserved, in-memory environment 2026-05-31 11:24:14 -04:00
worker_control Replace stdin JSONL control pipe with WebSocket worker control bus (#440) 2026-05-27 20:24:25 -04:00
automation_materializer.rs Merge remote-tracking branch 'origin/main' into fix-center-size-column 2026-05-29 08:51:57 -04:00
canonical_host.rs feat: remove demo-mode toggle button and endpoint 2026-05-25 15:35:37 -04:00
canonical_origin.rs fix(install): reject wildcard public URLs 2026-04-25 18:58:00 -04:00
csp.rs fix(server): allow GitHub avatars in CSP img-src 2026-05-26 22:39:52 -04:00
diagnostics.rs Add POST /api/v1/providers/test endpoint (#406) 2026-05-25 21:57:26 -04:00
error.rs feat: Add batch archive/unarchive API endpoints and update web bulk act… (#380) 2026-05-23 23:32:35 -04:00
github_webhooks.rs refactor(static): centralize env var names 2026-04-24 12:29:51 -04:00
install.rs refactor: rationalize server secret scopes (vault-only for optional int… (#401) 2026-05-25 17:26:01 -04:00
jwt_auth.rs refactor: rationalize server secret scopes (vault-only for optional int… (#401) 2026-05-25 17:26:01 -04:00
lib.rs test: cover automation trigger API behavior 2026-05-28 12:56:14 -04:00
manifest_validation.rs feat: add server-owned environment store (Task 1 & 2 foundation) (#446) 2026-05-28 17:10:59 -04:00
migrations.rs refactor: rationalize server secret scopes (vault-only for optional int… (#401) 2026-05-25 17:26:01 -04:00
principal_middleware.rs Add GET/POST /automations/{id}/runs endpoints (#442) 2026-05-27 22:29:29 -04:00
request_id.rs feat(server): correlate API errors with request ids 2026-04-29 12:20:56 -04:00
run_files.rs Model run sandbox lifecycle explicitly (#431) 2026-05-27 12:48:56 -04:00
run_files_security.rs chore(clippy): require reasons on allow attributes 2026-04-19 20:24:24 -04:00
run_manifest.rs fix(server): inline dockerfiles defined in the [environments.*] catalog 2026-05-29 11:38:10 -04:00
run_selector.rs fix: close sandbox-native metadata gaps 2026-04-28 08:05:18 -07:00
run_title_generation.rs Add small_default model role and async generated run titles (#368) 2026-05-23 13:48:39 -04:00
run_tool_manifest.rs feat: add server-owned environment store (Task 1 & 2 foundation) (#446) 2026-05-28 17:10:59 -04:00
security_headers.rs fix(server): enforce content security policy (#421) 2026-05-26 21:19:36 -04:00
serve.rs Add scheduled automation executor with in-memory cron planner (#457) 2026-05-29 22:19:47 -04:00
server.rs feat: make local a reserved, in-memory environment 2026-05-31 11:24:14 -04:00
server_secrets.rs refactor: rationalize server secret scopes (vault-only for optional int… (#401) 2026-05-25 17:26:01 -04:00
spawn_env.rs feat(agent): expose Fabro run tools in sessions (#339) 2026-05-21 19:48:54 -04:00
startup.rs refactor: rationalize server secret scopes (vault-only for optional int… (#401) 2026-05-25 17:26:01 -04:00
static_files.rs fix(server): enforce content security policy (#421) 2026-05-26 21:19:36 -04:00
test_support.rs feat: add server-owned environment store (Task 1 & 2 foundation) (#446) 2026-05-28 17:10:59 -04:00
web_auth.rs refactor: Remove inbound IP allowlisting (#443) 2026-05-27 22:29:08 -04:00
worker_runtime.rs refactor: remove in-process IP allowlist and introduce WorkerRuntime (#444) 2026-05-27 23:17:23 -04:00
worker_token.rs feat: wire Ask Fabro sidebar to real session API with run-control tools (#349) 2026-05-22 09:43:31 -04:00