diff --git a/AGENTS.md b/AGENTS.md index 9c7628b3e..261ce4604 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -9,6 +9,8 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co - `cargo test --workspace` — run all tests - `cargo test -p fabro-api` — test a single crate - `cargo test -p fabro-workflows -- test_name` — run a single test +- `set -a && source .env && set +a && cargo test --workspace -- --ignored` — run all E2E live tests (requires credentials in `.env`, see `.env.example`) +- `set -a && source .env && set +a && cargo test -p fabro-llm -- --ignored` — run E2E tests for a single crate - `cargo fmt --check --all` — check formatting - `cargo clippy --workspace -- -D warnings` — lint diff --git a/lib/crates/fabro-sprites/src/lib.rs b/lib/crates/fabro-sprites/src/lib.rs index 51ec63b3d..46129762e 100644 --- a/lib/crates/fabro-sprites/src/lib.rs +++ b/lib/crates/fabro-sprites/src/lib.rs @@ -99,7 +99,7 @@ impl SpritesSandbox { .ok_or_else(|| "Sprites sandbox not initialized — call initialize() first".to_string()) } - /// Build args for `sprite exec -s [-o org] bash -c `. + /// Build args for `sprite exec -s [-o org] -- bash -c `. fn build_exec_args(&self, command: &str) -> Result, String> { let name = self.sprite_name()?; let mut args = vec!["exec".to_string(), "-s".to_string(), name.to_string()]; @@ -107,6 +107,7 @@ impl SpritesSandbox { args.push("-o".to_string()); args.push(org.clone()); } + args.push("--".to_string()); args.push("bash".to_string()); args.push("-c".to_string()); args.push(command.to_string()); @@ -754,8 +755,9 @@ mod tests { assert_eq!(recorded[0].args[0], "exec"); assert_eq!(recorded[0].args[1], "-s"); assert_eq!(recorded[0].args[2], "test-sprite"); - assert_eq!(recorded[0].args[3], "bash"); - assert_eq!(recorded[0].args[4], "-c"); + assert_eq!(recorded[0].args[3], "--"); + assert_eq!(recorded[0].args[4], "bash"); + assert_eq!(recorded[0].args[5], "-c"); } #[tokio::test]