fabro/lib/crates/fabro-core/src
Bryan Helmkamp 66519ee12a
feat(errors): add structured failure diagnostics (#277)
## Summary
- Make `FailureDetail` the canonical rich diagnostic shape for stage and
terminal failures, with terminal `RunFailure` carrying `{ reason, detail
}`.
- Preserve cause chains and move process stdout/stderr diagnostics into
sanitized `exec_output_tail` instead of embedding them in messages or
causes.
- Update ACP error plumbing, CLI/server/store rendering, OpenAPI, and
the generated TypeScript API client for the nested failure contract.

Closes #273

## Test Plan
- `cargo nextest run -p fabro-types -p fabro-core -p fabro-acp -p
fabro-api -p fabro-store -p fabro-server -p fabro-workflow -p fabro-cli
--no-fail-fast -E 'not test(/returns_svg/)' --status-level fail
--final-status-level fail`
- `cargo +nightly-2026-04-14 fmt --check --all`
- `cargo +nightly-2026-04-14 clippy --workspace --all-targets -- -D
warnings`
- `bun run typecheck` in `lib/packages/fabro-api-client`
- `bun run typecheck` in `apps/fabro-web`
2026-05-16 13:25:07 -04:00
..
context.rs refactor(unwrap): clean runtime hotspot call sites 2026-04-19 20:48:44 -04:00
error.rs feat(errors): add structured failure diagnostics (#277) 2026-05-16 13:25:07 -04:00
executor.rs feat(errors): add structured failure diagnostics (#277) 2026-05-16 13:25:07 -04:00
graph.rs fmt: apply nightly rustfmt after merge 2026-04-11 13:43:30 -04:00
handler.rs feat(command): stream command logs from CAS-backed storage 2026-04-30 22:45:37 -04:00
lib.rs refactor(types): remove stage status compatibility 2026-04-30 06:48:47 -04:00
lifecycle.rs chore(clippy): require reasons on allow attributes 2026-04-19 20:24:24 -04:00
outcome.rs refactor(types): remove stage status compatibility 2026-04-30 06:48:47 -04:00
retry.rs fmt: apply nightly rustfmt after merge 2026-04-11 13:43:30 -04:00
stall.rs Cancel in-flight agent stages with CancellationToken (#211) 2026-05-05 09:54:22 -04:00
state.rs refactor(types): remove stage status compatibility 2026-04-30 06:48:47 -04:00
test_fixtures.rs feat(errors): add structured failure diagnostics (#277) 2026-05-16 13:25:07 -04:00