fabro/lib/crates/fabro-workflows/src
Bryan Helmkamp b59c62b33e Unify fabro run foreground to use create + start + attach (#141)
## Summary

- **Unify foreground and detach code paths**: Both `fabro run` modes now
go through the same `create_run() + start_run()` pipeline, with
foreground adding `attach_run()`. Only `--preflight` remains as a
special case.
- **Fix three bugs in create→start→attach path**: (1) `_run_engine`
crashed for `.fabro` workflows by hardcoding `run.toml` — now falls back
to `graph.fabro`; (2) `attach_run` couldn't detect crashed engines due
to zombie processes — `start_run` now returns the `Child` handle; (3)
`create_run` ignored `--run-id`.
- **Configure nextest slow-timeout profiles**: Tighten unit test timeout
to 2s slow / 4s kill, add `e2e` profile with 10s/30s. Switch CI and docs
to `cargo nextest run`.

## Test plan

- [ ] `cargo nextest run --workspace` passes with new timeout profiles
- [ ] `fabro run <workflow>` works in foreground mode (create + start +
attach)
- [ ] `fabro run --detach <workflow>` prints run ID and exits
- [ ] `fabro attach <run>` works standalone (without child handle)
- [ ] `fabro resume <run>` works for both `.toml` and `.fabro` workflows

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Fabro <noreply@fabro.sh>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 22:48:09 -04:00
..
backend Support Anthropic fast mode (speed: fast) (#127) 2026-03-21 14:37:42 -04:00
context Clean up fabro-validate extraction 2026-03-17 13:42:54 -04:00
handler Unify fabro run foreground to use create + start + attach (#141) 2026-03-22 22:48:09 -04:00
artifact.rs rename Arc to Fabro in all Rust crates, symbols, env vars, and supporting files 2026-03-12 12:25:58 -04:00
asset_snapshot.rs Add safeguards to asset collection and checkpoint commits (#8) 2026-03-15 19:54:17 -04:00
assets.rs Move workflow CLI ownership into fabro-cli 2026-03-18 09:31:11 -04:00
checkpoint.rs rename Arc to Fabro in all Rust crates, symbols, env vars, and supporting files 2026-03-12 12:25:58 -04:00
conclusion.rs Unify fabro run foreground to use create + start + attach (#141) 2026-03-22 22:48:09 -04:00
condition.rs Clean up fabro-validate extraction 2026-03-17 13:42:54 -04:00
cost.rs Support Anthropic fast mode (speed: fast) (#127) 2026-03-21 14:37:42 -04:00
devcontainer_bridge.rs Extract fabro resume subcommand (#137) 2026-03-22 13:45:06 -04:00
engine.rs Unify fabro run foreground to use create + start + attach (#141) 2026-03-22 22:48:09 -04:00
error.rs Clean up fabro-validate extraction 2026-03-17 13:42:54 -04:00
event.rs Unify fabro run foreground to use create + start + attach (#141) 2026-03-22 22:48:09 -04:00
git.rs Add node-level model validation + missing catalog aliases (#110) 2026-03-19 22:48:08 -04:00
graph_render.rs Move workflow CLI ownership into fabro-cli 2026-03-18 09:31:11 -04:00
lib.rs Decompose fabro run into create / start / attach (#116) 2026-03-20 14:08:54 -04:00
manifest.rs Make fabro ps behave like docker ps 2026-03-15 17:27:09 -04:00
outcome.rs Support Anthropic fast mode (speed: fast) (#127) 2026-03-21 14:37:42 -04:00
preamble.rs Support Anthropic fast mode (speed: fast) (#127) 2026-03-21 14:37:42 -04:00
pull_request.rs Unify fabro run foreground to use create + start + attach (#141) 2026-03-22 22:48:09 -04:00
run_fork.rs Move workflow CLI ownership into fabro-cli 2026-03-18 09:31:11 -04:00
run_lookup.rs Move workflow CLI ownership into fabro-cli 2026-03-18 09:31:11 -04:00
run_rewind.rs Move workflow CLI ownership into fabro-cli 2026-03-18 09:31:11 -04:00
run_spec.rs Extract fabro resume subcommand (#137) 2026-03-22 13:45:06 -04:00
run_status.rs Unify fabro run foreground to use create + start + attach (#141) 2026-03-22 22:48:09 -04:00
sandbox_provider.rs Unified WorktreeSandbox (#117) 2026-03-20 15:35:04 -04:00
sandbox_reconnect.rs Create fabro-sandbox crate, consolidating Sandbox trait and all implementations 2026-03-19 20:06:19 -04:00
sandbox_record.rs rename Arc to Fabro in all Rust crates, symbols, env vars, and supporting files 2026-03-12 12:25:58 -04:00
stylesheet.rs Support Anthropic fast mode (speed: fast) (#127) 2026-03-21 14:37:42 -04:00
transform.rs Destructure ModelInfo to avoid unnecessary clone 2026-03-20 20:58:59 -04:00
vars.rs Move workflow CLI ownership into fabro-cli 2026-03-18 09:31:11 -04:00
workflow.rs Resolve model aliases to canonical IDs in workflow graph nodes 2026-03-20 20:58:59 -04:00