mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-09-15 23:32:46 +00:00
The `daytona` provider kind now maps onto the sandbox-driver Daytona provider instead of fabro's own SDK client. Fabro keeps what is its own: the HMAC-named snapshot built from the environment's image or Dockerfile, the explicit 120 minute auto-stop default, the managed labels that gate destructive operations, the clone decision and layout, and push credentials. The driver creates the sandbox, clones natively, and serves exec, files, search, terminal, SSH, preview, and VNC through its facets. - `daytona.rs` builds the driver `SandboxSpec` (snapshot source, `/home/daytona/workspace`, labels, timers, network policy, run name), ensures the snapshot through the driver `SnapshotProvider`, attaches by persisted id with fabro's label guard, and probes credentials through the provider health check under fabro's 20 second budget. - `DriverSandbox` gains a create plan that settles the spec right before the provider call, records the snapshot a sandbox came from, and reports the provider console URL on `Ready`. - Terminals use the driver `Pty` facet; the server's SSH, preview, and VNC endpoints use the `SshAccess`, `PreviewUrls`, and `Vnc` facets through the driver-typed reconnect. The preview endpoint now answers for every provider with a preview facet, so the local sandbox returns its loopback URL. - Daytona credentials travel as `DaytonaCredentials` built from the vault key plus configured URL and organization; nothing reads the process environment implicitly. The inventory registry uses the shared `DriverInventoryProvider`. - The SDK-based `daytona/mod.rs`, `provider/daytona.rs`, the Daytona terminal, the `daytona` cargo feature, and the direct daytona-sdk, git2 (in fabro-sandbox), tungstenite, and rustls dependencies are gone. The live Daytona tests run against the driver-backed sandbox. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| src | ||
| tests | ||
| build.rs | ||
| Cargo.toml | ||