fabro/crates
Bryan Helmkamp 35bccb5d36 Share one execution environment per pipeline run
Instead of creating a separate Docker/Daytona sandbox per stage inside
AgentBackend::run(), create the execution environment once in
run_command(), initialize it, run setup commands, and pass it through
EngineServices to all handlers. This lets multi-stage pipelines share
file changes across nodes and avoids redundant container/sandbox creation.

Key changes:
- Add execution_env field to EngineServices
- Add execution_env param to CodergenBackend::run() trait method
- Remove env creation, setup_commands, daytona_config from AgentBackend
- Lift env lifecycle (create, initialize, setup, cleanup) to run_command()
- Use scopeguard for cleanup on error/panic paths
- Update PipelineEngine constructors to accept execution_env

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Entire-Checkpoint: 92cbe0d3c133
2026-02-26 21:27:42 -05:00
..
agent Add missing data to agent events and cost tracking in pipeline logs 2026-02-25 17:17:13 -05:00
attractor Share one execution environment per pipeline run 2026-02-26 21:27:42 -05:00
git-storage Add git-storage crate for storing data in git object database 2026-02-24 23:17:44 -05:00
llm Add Claude Haiku 4.5 to model catalog 2026-02-25 14:21:58 -05:00
redact Add redact crate for secret detection and redaction in NDJSON logs 2026-02-25 15:25:52 -05:00
terminal Revert clippy config to defaults, remove all pedantic/nursery/cargo lint suppressions 2026-02-24 09:42:28 -05:00