fabro/lib/crates/fabro-cli/tests/it/cmd
Bryan Helmkamp 234bd5663e
Add ACP backend support (#237)
## Summary
Implemented ACP support as a first-class Fabro backend alongside `api`
and `cli`. This adds a new `fabro-acp` crate using the official ACP Rust
crates, routes `backend=\"acp\"` for agent and prompt nodes, adds
sandbox stdio support for local/Docker/test-support paths, emits ACP
workflow events/projections, updates server steerability handling,
validation, documentation, and black-box CLI coverage.

## Test Plan
Passed strict non-live verification:
- `ulimit -n 4096 && cargo nextest run -p fabro-workflow --run-ignored
all --no-fail-fast` — 1162 passed, 0 skipped.
- `ulimit -n 4096 && cargo nextest run -p fabro-acp -p fabro-sandbox -p
fabro-workflow -p fabro-validate -p fabro-store -p fabro-server -p
fabro-cli --run-ignored all --no-fail-fast -E 'not
test(daytona_streaming_live_smoke)'` — 3125 passed.
- `cargo build --workspace` — passed.
- `ulimit -n 4096 && cargo nextest run --workspace --run-ignored all
--no-fail-fast -E 'not test(daytona_streaming_live_smoke)'` — 5666
passed.
- `cargo +nightly-2026-04-14 fmt --check --all` — passed.
- `cargo +nightly-2026-04-14 clippy --workspace --all-targets -- -D
warnings` — passed.

Live-environment tests skipped/excluded under explicit user override:
- `daytona_streaming_live_smoke` was excluded from final nextest runs
because it requires live Daytona infrastructure and `DAYTONA_API_KEY`.
- Confirmed with `env -u DAYTONA_API_KEY cargo test -p fabro-sandbox
--features daytona --test daytona_streaming_live
daytona_streaming_live::daytona_streaming_live_smoke -- --ignored
--exact --nocapture`: failed fast with `DAYTONA_API_KEY must be set to
run this live smoke test`.
2026-05-11 23:39:43 -04:00
..
archive.rs refactor(types): remove legacy run summary shape 2026-05-10 23:29:41 -04:00
artifact_cp.rs test(cli): trim slow integration fixture setup 2026-04-28 19:14:56 -07:00
artifact_list.rs test(cli): trim slow integration fixture setup 2026-04-28 19:14:56 -07:00
attach.rs test(cli): align sandbox event fixtures 2026-05-10 14:23:44 -04:00
auth.rs test(cli): tighten env-dev-token-ignore tests 2026-05-01 16:25:13 -04:00
cli_reference.rs refactor(dev): decouple CLI reference generation 2026-05-06 12:31:02 -04:00
config.rs refactor(runs): simplify run projection shape 2026-05-09 23:31:43 -04:00
create.rs test(cli): align run summary fixtures 2026-05-10 23:38:55 -04:00
diff.rs test(cli): prune slow integration outliers 2026-04-28 19:26:27 -07:00
discord.rs refactor(cli): deglobalize server and storage target flags 2026-04-05 16:06:42 -04:00
docs.rs refactor(cli): deglobalize server and storage target flags 2026-04-05 16:06:42 -04:00
doctor.rs Add ACP backend support (#237) 2026-05-11 23:39:43 -04:00
dump.rs refactor(workflow): remove local worktree mode 2026-05-09 11:04:23 -04:00
events.rs fix(runs): restore terminal sandbox regressions 2026-05-08 22:41:42 -04:00
exec.rs chore(test): extract TestContext::set_http_target helper 2026-04-30 10:11:47 -04:00
fabro.rs feat(cli): add Fabro MCP server (#236) 2026-05-11 18:20:50 -04:00
fork.rs refactor(runs): simplify run projection shape 2026-05-09 23:31:43 -04:00
graph.rs feat(cli): render fatal errors with miette 2026-04-24 15:35:57 -04:00
inspect.rs refactor(types): remove legacy run summary shape 2026-05-10 23:29:41 -04:00
install.rs test(cli): refresh help-text snapshots for backtick-wrapped placeholders 2026-05-06 08:29:53 -04:00
json_global.rs feat(cli): split run events and raw logs 2026-05-06 13:29:35 -04:00
logs.rs fix(cli): preserve API error details 2026-05-06 14:03:12 -04:00
mcp.rs feat(cli): add Fabro MCP server (#236) 2026-05-11 18:20:50 -04:00
mod.rs feat(cli): add Fabro MCP server (#236) 2026-05-11 18:20:50 -04:00
model.rs chore(catalog): add GPT-5.5 and GPT-5.5 Pro, set 5.5 as OpenAI default 2026-05-04 11:12:40 -04:00
model_list.rs refactor(cli): separate local socket and storage defaults 2026-04-06 11:57:14 -04:00
model_test.rs Model Test Bounded Concurrency Implementation Plan (#204) 2026-05-04 13:46:44 -04:00
parse.rs feat(cli): render fatal errors with miette 2026-04-24 15:35:57 -04:00
pr.rs remove(cli): drop pr list command entirely 2026-04-24 08:56:07 -04:00
pr_close.rs refactor(pr): simplify server-side PR plumbing 2026-04-24 11:17:01 -04:00
pr_create.rs feat(api): unify public run shape 2026-05-10 20:48:55 -04:00
pr_merge.rs refactor(pr): simplify server-side PR plumbing 2026-04-24 11:17:01 -04:00
pr_view.rs feat(api): unify public run shape 2026-05-10 20:48:55 -04:00
preflight.rs feat(cli): support sparse input overrides (#222) 2026-05-09 10:00:35 -04:00
provider.rs refactor(cli): deglobalize server and storage target flags 2026-04-05 16:06:42 -04:00
provider_login.rs Complete provider credential auth and scripted install 2026-04-13 09:15:45 -04:00
ps.rs refactor(types): remove legacy run summary shape 2026-05-10 23:29:41 -04:00
render_graph.rs lint(clippy): disallow blocking std::io and std::net on Tokio paths 2026-04-19 16:06:02 -04:00
repo.rs feat(cli): render fatal errors with miette 2026-04-24 15:35:57 -04:00
repo_deinit.rs refactor(config): move project state under .fabro 2026-04-11 12:55:46 -04:00
repo_init.rs feat(cli): render fatal errors with miette 2026-04-24 15:35:57 -04:00
resume.rs test(cli): prune slow integration outliers 2026-04-28 19:26:27 -07:00
rewind.rs feat(api): unify public run shape 2026-05-10 20:48:55 -04:00
rm.rs refactor(types): remove legacy run summary shape 2026-05-10 23:29:41 -04:00
run.rs test(cli): align run summary fixtures 2026-05-10 23:38:55 -04:00
runner.rs refactor(runs): simplify run projection shape 2026-05-09 23:31:43 -04:00
sandbox_cp.rs feat(api): unify public run shape 2026-05-10 20:48:55 -04:00
sandbox_preview.rs refactor(types): remove legacy run summary shape 2026-05-10 23:29:41 -04:00
sandbox_ssh.rs fix(cli): repair verification failures 2026-05-09 18:07:24 -04:00
secret.rs feat(cli): render fatal errors with miette 2026-04-24 15:35:57 -04:00
secret_list.rs feat: add typed secrets metadata and API 2026-04-12 12:47:08 -04:00
secret_rm.rs refactor(cli): deglobalize server and storage target flags 2026-04-05 16:06:42 -04:00
secret_set.rs test(cli): align stale CI snapshots 2026-04-24 19:53:02 -04:00
send_analytics.rs refactor(cli): deglobalize server and storage target flags 2026-04-05 16:06:42 -04:00
send_panic.rs refactor(cli): deglobalize server and storage target flags 2026-04-05 16:06:42 -04:00
server_start.rs fix(server): default foreground logs to stdout 2026-05-06 12:41:52 -04:00
server_status.rs refactor(server): unify daemon runtime metadata 2026-04-22 16:07:52 -04:00
server_stop.rs refactor(test): promote shared server-lifecycle test helpers into fabro-test 2026-04-19 16:43:26 -04:00
start.rs refactor(workflow): remove retro stage (#230) 2026-05-09 10:18:20 -04:00
support.rs refactor(types): remove legacy run summary shape 2026-05-10 23:29:41 -04:00
system.rs fix(system): expose unreadable run repair flow 2026-05-06 07:15:18 -04:00
system_df.rs test(cli): trim slow integration fixture setup 2026-04-28 19:14:56 -07:00
system_events.rs refactor(cli): finish command context cleanup 2026-04-23 07:14:32 -04:00
system_info.rs refactor(cli): finish command context cleanup 2026-04-23 07:14:32 -04:00
system_prune.rs test(cli): trim slow integration fixture setup 2026-04-28 19:14:56 -07:00
system_repair.rs fix(runs): repair deletion of unreadable runs 2026-05-09 17:45:55 -04:00
test_panic.rs test: speed up slow default-profile tests and tighten nextest thresholds 2026-04-05 13:15:59 -04:00
top_level.rs feat(cli): show curated landing output for bare fabro 2026-04-17 08:59:03 -04:00
unarchive.rs refactor(types): remove legacy run summary shape 2026-05-10 23:29:41 -04:00
uninstall.rs refactor(server): unify daemon runtime metadata 2026-04-22 16:07:52 -04:00
upgrade.rs feat(cli): render fatal errors with miette 2026-04-24 15:35:57 -04:00
validate.rs fix(cli): keep validate off runtime preflight 2026-04-28 14:50:04 -07:00
version.rs feat(cli): add fabro version command 2026-04-14 16:30:53 -04:00
wait.rs refactor(types): remove legacy run summary shape 2026-05-10 23:29:41 -04:00
worker_auth.rs refactor(workflow): remove retro stage (#230) 2026-05-09 10:18:20 -04:00
workflow.rs fix(workflow): ignore deprecated project directory 2026-05-09 10:55:56 -04:00
workflow_create.rs fix(workflow): ignore deprecated project directory 2026-05-09 10:55:56 -04:00
workflow_list.rs feat(cli): render fatal errors with miette 2026-04-24 15:35:57 -04:00