fabro/lib/crates/fabro-server/tests/it/api
Bryan Helmkamp e13de9faaf
feat(automation): persist automation refs on runs (#428)
## Summary

Adds durable automation metadata to workflow runs so
automation-triggered runs can carry their automation and trigger
references through creation, stored events, projections, summaries,
fork, retry, and API surfaces.

This also introduces the new `fabro-automation` crate with typed
automation IDs, TOML parsing/validation, revision hashing, and a
file-backed automation store. The store avoids overwriting malformed
existing TOML files on create and keeps read access from being blocked
by mutation disk I/O.

## Changes

- Add `AutomationRef` propagation through `RunSpec`, `run.created`,
store projections, summaries, fork, retry, and related tests.
- Add `fabro-automation` domain/store crate for automation TOML
definitions, trigger validation, revisions, create/replace/delete, and
load behavior.
- Update OpenAPI and regenerated TypeScript client types for
`RunSpec.automation` and `AutomationRef.trigger_id`.
- Add API/type regression coverage for the new automation fields.
- Harden automation store create semantics so skipped malformed files
still reserve their path.

## Verification

- `cargo nextest run -p fabro-automation`
- `cargo +nightly-2026-04-14 clippy -p fabro-automation --all-targets --
-D warnings`
- `cargo nextest run -p fabro-api`
- `cargo nextest run -p fabro-types
run_spec_round_trips_templated_settings
run_created_props_round_trip_templated_settings`
- `cd lib/packages/fabro-api-client && bun run typecheck`
- `cargo +nightly-2026-04-14 fmt --check --all`
- `git diff --check`
2026-05-27 11:52:57 -04:00
..
auth_sessions.rs chore: simplify 2026-05-20 09:13:51 -04:00
cli_auth_token.rs chore: simplify 2026-05-20 09:13:51 -04:00
docs.rs docs(deployment): split into local vs self-hosted, drop Render/Fly/DO 2026-05-01 09:26:35 -04:00
events.rs Add event append race regression test (#379) 2026-05-23 19:25:41 -04:00
install.rs feat: add server sandbox provider enablement policy (#389) 2026-05-24 16:49:05 -04:00
install_openai_compatible.rs refactor(llm): split provider identity from adapters (#280) 2026-05-16 13:13:41 -04:00
mod.rs feat(server): add variables API (#430) 2026-05-27 11:46:36 -04:00
routing.rs fix(server): allow GitHub avatars in CSP img-src 2026-05-26 22:39:52 -04:00
run_files.rs feat(automation): persist automation refs on runs (#428) 2026-05-27 11:52:57 -04:00
runs.rs refactor: rationalize server secret scopes (vault-only for optional int… (#401) 2026-05-25 17:26:01 -04:00
sandbox_vnc.rs feat(api): unify public run shape 2026-05-10 20:48:55 -04:00
sessions.rs feat(api): add ask fabro session endpoints (#342) 2026-05-21 21:26:15 -04:00
settings.rs Collapsible run stage sidebar (#352) 2026-05-22 12:20:29 -04:00
system.rs feat(system): report runtime integration status (#416) 2026-05-26 19:27:32 -04:00
tcp.rs Replace run-scoped sandbox config with named environments (#360) 2026-05-23 13:03:21 -04:00
variables.rs feat(server): add variables API (#430) 2026-05-27 11:46:36 -04:00