fabro/lib/apps/fabro-cli/tests/it/cmd
Bryan Helmkamp b1d95faa57
Hand Petri the server's environment and MCP catalogs
Petri's Fabro frontend refused a bundle naming an environment it did not
declare and every MCP catalog reference, so the fixtures declared
`[environments.local]` and the server's catalogs never reached Petri.

Pin Petri at c874b86, where the frontend reads `[environments.<id>]` and
`[run.environment]` from every settings layer (bundle over project over the
host's layer, key by key), takes the environment a launch selected over the
layers, and resolves `[run.agent.mcps.<name>] id = "..."` against a catalog
the host binds. The server hands Petri its environment catalog as
`[environments.<id>]` tables of the settings layer it already passes, the
intent's environment as the launch's selection (`Launch::environment`, as
the intent overrides the bundle in Fabro's own resolution), and its MCP
catalog as `RuntimeSpec::mcp_catalog_toml`, one inline entry per definition
keyed by id. Offline validation hands Petri the seeded catalog the same
way, so `fabro validate` accepts `[run.environment] id = "local"`.

The fixtures drop the `[environments.local]` tables they carried for this;
the secrets test keeps its own, on purpose. Scenario tests cover a bundle
naming a catalog environment (its image lowered, and run on Docker when the
plugin and a daemon are there), a bundle's own table winning key by key,
the server refusing an unknown environment before Petri, and a catalog MCP
reference whose tool the agent session lists (an echo server under
`test/mcp/`).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-19 07:08:08 -04:00
..
approve.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
archive.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
artifact_cp.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
artifact_list.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
attach.rs Record the snapshots the Petri pin and the record positions changed 2026-09-18 22:17:15 -04:00
auth.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
cli_reference.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
config.rs Create CLI runs from immutable workflow intents 2026-09-01 16:14:34 -04:00
create.rs Port the CLI tests to Petri runs and the run stream 2026-09-18 14:30:18 -04:00
deny.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
diff.rs Resolve blob references in inspect, diff, output and dump 2026-09-18 16:00:11 -04:00
discord.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
docs.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
doctor.rs Point twin_doctor's isolated server at the twin 2026-09-14 09:41:05 -06:00
dump.rs Hand Petri the server's environment and MCP catalogs 2026-09-19 07:08:08 -04:00
events.rs Record the snapshots the Petri pin and the record positions changed 2026-09-18 22:17:15 -04:00
exec.rs Print tool calls and the transcript under fabro exec --verbose 2026-09-14 10:56:53 -06:00
fabro.rs Add the fork, rewind, retry and timeline commands to the CLI 2026-09-18 23:17:25 -04:00
graph.rs Delete fabro-validate and fabro-acp; validate on Petri's check 2026-09-18 11:32:04 -04:00
inspect.rs Port the CLI tests to Petri runs and the run stream 2026-09-18 14:30:18 -04:00
install.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
json_global.rs Port the CLI tests to Petri runs and the run stream 2026-09-18 14:30:18 -04:00
logs.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
mcp.rs Serve the run stream as the only run event API 2026-09-18 13:36:00 -04:00
mod.rs Remove the retry, rewind, fork and timeline endpoints and commands 2026-09-18 10:54:45 -04:00
model.rs Expose lithos request and response shapes through the API, server, CLI, and web 2026-09-09 17:26:57 -06:00
model_list.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
model_test.rs Expose lithos request and response shapes through the API, server, CLI, and web 2026-09-09 17:26:57 -06:00
parent.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
parse.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
pr.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
pr_close.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
pr_create.rs Make pull request creation durable and asynchronous 2026-08-01 19:28:52 -04:00
pr_link.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
pr_merge.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
pr_unlink.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
pr_view.rs Serve the run stream as the only run event API 2026-09-18 13:36:00 -04:00
preflight.rs Delete fabro-validate and fabro-acp; validate on Petri's check 2026-09-18 11:32:04 -04:00
provider.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
provider_login.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
ps.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
render_graph.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
repo.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
repo_deinit.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
repo_init.rs Create CLI runs from immutable workflow intents 2026-09-01 16:14:34 -04:00
resume.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
rm.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
run.rs Hand Petri the server's environment and MCP catalogs 2026-09-19 07:08:08 -04:00
runner.rs Regenerate the checkpoint client model and name the CLI stream helpers 2026-09-18 14:45:07 -04:00
sandbox_cp.rs Project a Petri run's sandbox instance from its scope records 2026-09-18 15:57:12 -04:00
sandbox_preview.rs Route Daytona sandboxes through the sandbox driver 2026-09-09 19:14:13 -06:00
sandbox_ssh.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
secret.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
secret_list.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
secret_rm.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
secret_set.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
send_analytics.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
send_panic.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
server_start.rs Remove the engine flag: every run is a Petri run 2026-09-18 09:58:21 -04:00
server_status.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
server_stop.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
start.rs Create CLI runs from immutable workflow intents 2026-09-01 16:14:34 -04:00
support.rs Hand Petri the server's environment and MCP catalogs 2026-09-19 07:08:08 -04:00
system.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
system_df.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
system_events.rs Serve the run stream as the only run event API 2026-09-18 13:36:00 -04:00
system_info.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
system_prune.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
system_repair.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
test_panic.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
top_level.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
unarchive.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
uninstall.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
upgrade.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
validate.rs Delete fabro-validate and fabro-acp; validate on Petri's check 2026-09-18 11:32:04 -04:00
variable.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
variable_get.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
variable_list.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
variable_rm.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
variable_set.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
version.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
wait.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
worker_auth.rs Regenerate the checkpoint client model and name the CLI stream helpers 2026-09-18 14:45:07 -04:00
workflow.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
workflow_create.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
workflow_list.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00