fabro/lib/foundation
Bryan Helmkamp 02d4ab896c
Support graph-level acp.command and acp.config defaults
Workflows that run the same ACP agent on several nodes had to repeat the
process attribute on every node. `acp.command` and `acp.config` were read
only from the node (`Node::acp_command_attr`), with no graph-level
fallback.

Add `AcpDefaultsTransform`, which materializes the graph-level value onto
nodes before validation. The handler's `resolve_acp_process_spec` takes
only a `Node`, so reading the graph at the use site (as `retry_target`
does) would mean threading a `Graph` through the handler. As a transform,
neither the handler nor `backend_valid` changes, and `fabro validate` and
`fabro run` stay in agreement because both go through `pipeline::transform`.

The two attributes are mutually exclusive, so they inherit as a pair: a
node setting either one keeps its own and inherits neither. Only nodes
with `backend="acp"` inherit, keeping the attributes off `start`/`exit`
and API nodes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-27 14:59:28 -04:00
..
build-support refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-api Merge origin/main into feat/inference-observability 2026-07-24 22:55:15 -04:00
fabro-auth refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-client refactor(events): simplify backward pagination internals 2026-07-24 08:34:02 -04:00
fabro-config fix(glob): harden artifact traversal 2026-07-25 11:56:57 -04:00
fabro-core refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-db refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-dev Merge origin/main into feat/sandbox-bash-contract 2026-07-24 22:42:28 -04:00
fabro-http refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-macros refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-model fix(agent): simplify GPT-5.6 tool routing 2026-07-25 11:49:40 -04:00
fabro-oauth refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-options-metadata refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-proc refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-redact refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-static feat(llm): add Fireworks AI as an opt-in provider 2026-07-24 08:03:39 -04:00
fabro-telemetry refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-template refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-test refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-types Support graph-level acp.command and acp.config defaults 2026-07-27 14:59:28 -04:00
fabro-util fix(glob): harden artifact traversal 2026-07-25 11:56:57 -04:00
fabro-vault refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00