fabro/docs/internal
Bryan Helmkamp 3f721dd032
Consume the sandbox driver's events directly in the workflow
Fabro-sandbox carried its own SandboxEvent enum and a callback for it.
The run sandbox wrapped every lifecycle call to emit a start, completed,
or failed variant with its own clock, and re-described the driver's
create-time progress as snapshot events through an observer that lived
next to the run sandbox. The workflow then converted that enum to the
wire. The driver already reports every operation it performs, so the
enum was a second, hand-maintained copy of that stream.

The workflow now observes the driver's events directly. A run's sandbox
is created or attached with a driver EventContext whose observer is the
new SandboxEventBridge in the workflow's event module. The bridge turns
the driver's start, stop, and delete operations, its image pull inside a
create, and its snapshot builds into the workflow's SandboxLifecycle
events, stamping fabro's provider name so the run keeps recording
`local` rather than the driver's `host`. The pipeline emits the
initializing, ready, and failed events itself around bringing the sandbox
up, since that composite step — create, activate, prepare the workspace
— is the pipeline's, not the driver's. Fabro-sandbox emits no events of
its own any more; the run sandbox gained console_url for the ready
event, and a local sandbox can be created with an event context.

The wire keeps every name the CLI reads. Two families go: the cleanup
events, which only the server's manifest validation could have produced
and it passed no callback, and the git clone events, which nothing read
and whose facts the sandbox.initialized event and tracing already carry.
The ready event drops the cpu and memory fields no provider ever
populated. Daytona snapshot events now come from the driver's ensure
call, so a snapshot that already exists and is active reports nothing
rather than a creating-and-ready pair that did no work.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 00:37:42 -06:00
..
assets/brand docs: move published docs under docs/public 2026-04-26 21:19:46 -04:00
demo Shared-checkout parallel execution (recovered from run 01KY7YH7RYCJ1BDVTTP96ZA4HV) 2026-07-24 06:19:11 -04:00
licenses docs: move published docs under docs/public 2026-04-26 21:19:46 -04:00
product docs(secrets): document settings-declared credentials, fix stale local-run guidance 2026-07-25 09:04:59 -04:00
cargo-target-apfs-churn-plan.md docs: commit plan 2026-04-28 09:46:52 -07:00
cli-workflow-coupling-audit.md refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
error-handling-strategy.md docs: clarify chain-rendering boundary in error strategy 2026-05-04 11:28:28 -04:00
event-schema-competitive-analysis.md refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
events-strategy.md Consume the sandbox driver's events directly in the workflow 2026-09-10 00:37:42 -06:00
events.md Add version-backed run intent creation 2026-08-24 11:55:43 -04:00
fabro-event-schema-v2-concrete-shape.md docs(events): remove events that are never serialized 2026-07-24 21:56:54 -04:00
fabro-event-schema-v2-proposal.md feat(events): make inference in-flight state observable 2026-07-24 21:47:51 -04:00
llm-client-resolution.md docs(llm): finish configurable provider cleanup (#260) 2026-05-13 17:17:54 -04:00
logging-strategy.md feat(web): add server-managed Environments CRUD settings UI (#462) 2026-06-13 08:44:38 -04:00
mcp-server-qa-test-plan.md refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
migrations-strategy.md Remove expired startup secret migrations 2026-09-05 14:05:48 -04:00
panic-policy.md chore: add panic policy 2026-05-26 22:04:04 -04:00
parallel-strategy.md Retire the fabro Sandbox trait for one concrete RunSandbox 2026-09-10 00:14:42 -06:00
plan-events-as-source-of-truth-follow-ups.md refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
plan-events-as-source-of-truth.md Make git metadata sandbox-native 2026-04-27 21:43:15 -07:00
react-effects-policy.md docs: add React effects policy (#419) 2026-05-26 19:30:02 -04:00
run-directory-keys.md refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
server-secrets-strategy.md Remove expired startup secret migrations 2026-09-05 14:05:48 -04:00
slow-test-opportunities-2026-04-07.md refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
testing-strategy.md refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
updating-web-screenshots.md refactor(workflow): remove retro stage (#230) 2026-05-09 10:18:20 -04:00