fabro/lib/crates/fabro-util/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
..
backoff.rs refactor(unwrap): clean runtime hotspot call sites 2026-04-19 20:48:44 -04:00
browser.rs refactor(static): centralize env var names 2026-04-24 12:29:51 -04:00
check_report.rs refactor(unwrap): clean runtime hotspot call sites 2026-04-19 20:48:44 -04:00
dev_token.rs style: rustfmt --all 2026-04-22 08:36:42 -04:00
env.rs refactor(static): centralize env var names 2026-04-24 12:29:51 -04:00
error.rs feat(errors): add structured failure diagnostics (#277) 2026-05-16 13:25:07 -04:00
exit.rs feat(cli): suggest fabro auth login on auth-required errors 2026-04-22 10:49:22 -04:00
home.rs feat(auth): store dev tokens in auth store 2026-04-24 16:02:36 -04:00
json.rs refactor: remove remaining event json indirection 2026-04-04 13:24:19 -04:00
lib.rs refactor(workflow): share metadata snapshot helpers 2026-04-29 19:43:30 -04:00
path.rs Improve install command output ordering and path display 2026-04-14 15:16:21 -04:00
printer.rs chore(clippy): require reasons on allow attributes 2026-04-19 20:24:24 -04:00
run_log.rs refactor: simplify per-run logs client and handler 2026-04-26 16:06:23 -04:00
session_secret.rs deps: bump rand 0.8 → 0.9 (#163) 2026-04-17 07:57:10 -04:00
terminal.rs fmt: apply nightly rustfmt after merge 2026-04-11 13:43:30 -04:00
text.rs Enable 7 additional pedantic clippy lints 2026-03-29 13:47:08 -04:00
time.rs refactor(workflow): share metadata snapshot helpers 2026-04-29 19:43:30 -04:00
version.rs Move git SHA/build date from fabro-util to fabro-cli build.rs 2026-03-13 15:03:12 -04:00
warnings.rs chore: fix warnings and test stability 2026-04-04 13:31:04 -04:00