diff --git a/docs/administration/deploy-server.mdx b/docs/administration/deploy-server.mdx
index a5919397a..f5d51b9d0 100644
--- a/docs/administration/deploy-server.mdx
+++ b/docs/administration/deploy-server.mdx
@@ -110,11 +110,9 @@ Send the `X-Fabro-Demo: 1` header on any API request to get static mock data wit
## Pointing the CLI at a server
-The CLI can delegate commands to a running Fabro server instead of executing locally. Set `mode = "server"` in `~/.fabro/user.toml`:
+The CLI can target a running Fabro server for commands that support a remote API. Configure `~/.fabro/user.toml`:
```toml title="user.toml"
-mode = "server"
-
[server]
base_url = "https://fabro.example.com:3000/api/v1"
```
@@ -125,7 +123,9 @@ Or use the `--server-url` flag:
fabro --server-url https://fabro.example.com:3000/api/v1 model list
```
-This applies to commands like `fabro model list`, `fabro model test`, and `fabro exec`. See [User Configuration](/reference/user-configuration#mode) for the full options including mTLS setup.
+`fabro model list` and `fabro model test` honor `[server].base_url` by default unless you explicitly pass `--storage-dir`. `fabro exec` remains a local agent session and only uses the server when you pass `--server-url`.
+
+See [User Configuration](/reference/user-configuration#server-section) for the full connection options, including mTLS setup.
## Next steps
diff --git a/docs/reference/cli.mdx b/docs/reference/cli.mdx
index 3629d9649..ff1b9b049 100644
--- a/docs/reference/cli.mdx
+++ b/docs/reference/cli.mdx
@@ -11,8 +11,8 @@ These flags apply to all subcommands:
|---|---|
| `--debug` | Enable DEBUG-level logging (default is INFO) |
| `--no-upgrade-check` | Skip the automatic background upgrade check |
-| `--storage-dir
` | Storage directory for local run data (default: `~/.fabro`). Implies standalone mode. |
-| `--server-url ` | Fabro API server URL (overrides `server.base_url` from `user.toml`). Implies server mode. |
+| `--storage-dir ` | Local storage directory for Fabro data (default: `~/.fabro`). |
+| `--server-url ` | Fabro API server URL for commands that support a remote target (overrides `server.base_url` from `user.toml`). |
| `-h, --help` | Print help |
| `-V, --version` | Print version |
@@ -31,9 +31,14 @@ output_format = "text"
[llm]
model = "claude-sonnet-4-5"
+
+[server]
+base_url = "https://fabro.example.com:3000/api/v1"
```
-`[exec]` config applies to `fabro exec`. `[llm]` sets the default workflow model/provider for commands like `fabro run` and `fabro preflight`.
+`[exec]` config applies to `fabro exec`. `[llm]` sets the default workflow model/provider for commands like `fabro run` and `fabro preflight`. `[server]` stores connection info for commands that can target a remote Fabro API.
+
+`fabro model` uses `[server].base_url` by default when no explicit `--storage-dir` is passed. `fabro exec` remains a local session unless you pass `--server-url`, even if `[server].base_url` is configured.
CLI flags always override `user.toml` values, which override hardcoded defaults.
diff --git a/docs/reference/user-configuration.mdx b/docs/reference/user-configuration.mdx
index 33646a08b..dd4058950 100644
--- a/docs/reference/user-configuration.mdx
+++ b/docs/reference/user-configuration.mdx
@@ -22,7 +22,6 @@ CLI flags always take the highest priority:
```toml title="user.toml"
verbose = true
upgrade_check = true
-mode = "server"
[server]
base_url = "https://fabro.example.com:3000/api/v1"
@@ -148,31 +147,22 @@ Customize the git author identity used for checkpoint commits. Overrides the ser
| `name` | Git author name | `"fabro"` |
| `email` | Git author email | `"fabro@local"` |
-## `mode`
-
-Controls the default execution mode when neither `--storage-dir` nor `--server-url` is passed.
-
-| Value | Description |
-|---|---|
-| `"standalone"` | Execute locally (default) |
-| `"server"` | Delegate to an Fabro API server |
-
-For a single invocation, `--storage-dir` implies standalone mode and `--server-url` implies server mode.
-
## `[server]` section
-Configuration for server mode.
+Connection info for commands that can target a remote Fabro API server.
| Key | Description | Default |
|---|---|---|
| `base_url` | Server URL | `"http://localhost:3000/api/v1"` |
-Passing `--server-url` implies server mode and overrides `server.base_url`:
+`fabro model` uses `[server].base_url` by default when no explicit `--storage-dir` is passed. `--server-url` overrides `server.base_url`:
```bash
fabro --server-url https://fabro.example.com:3000/api/v1 model list
```
+`fabro exec` does not automatically use `[server].base_url`. It only routes model traffic through a Fabro server when you pass `--server-url` for that invocation.
+
### `[server.tls]` section
Optional mTLS configuration for authenticating with the server. When present, the CLI presents a client certificate during the TLS handshake.
diff --git a/lib/crates/fabro-cli/src/args.rs b/lib/crates/fabro-cli/src/args.rs
index 299a6c9e4..6572911be 100644
--- a/lib/crates/fabro-cli/src/args.rs
+++ b/lib/crates/fabro-cli/src/args.rs
@@ -36,11 +36,11 @@ pub(crate) struct GlobalArgs {
#[arg(long, global = true, env = "FABRO_VERBOSE", value_parser = clap::builder::BoolishValueParser::new(), conflicts_with = "quiet")]
pub verbose: bool,
- /// Storage directory (default: ~/.fabro)
+ /// Local storage directory (default: ~/.fabro)
#[arg(long, global = true, env = "FABRO_STORAGE_DIR")]
pub storage_dir: Option,
- /// Server URL (overrides server.base_url from user.toml)
+ /// Fabro API server URL (overrides server.base_url from user.toml when supported)
#[arg(
long,
global = true,
diff --git a/lib/crates/fabro-cli/src/commands/exec.rs b/lib/crates/fabro-cli/src/commands/exec.rs
index 6ff1b03f1..c97ad1ec4 100644
--- a/lib/crates/fabro-cli/src/commands/exec.rs
+++ b/lib/crates/fabro-cli/src/commands/exec.rs
@@ -24,40 +24,33 @@ pub(crate) async fn execute(mut args: AgentArgs, globals: &GlobalArgs) -> Result
if globals.json {
args.output_format = Some(OutputFormat::Json);
}
- let resolved = user_config::resolve_mode(
- globals.storage_dir.as_deref(),
- globals.server_url.as_deref(),
- &cli_settings,
- );
+ let server_target = user_config::exec_server_target(globals, &cli_settings);
let mcp_servers: Vec = cli_settings
.mcp_servers
.into_iter()
.map(|(name, entry): (String, McpServerEntry)| entry.into_config(name))
.collect();
- match resolved.mode {
- user_config::ExecutionMode::Server => {
- tracing::info!(mode = "server", "Agent session starting");
- let http_client = user_config::build_server_client(resolved.tls.as_ref())?;
- let provider_name = args
- .provider
- .clone()
- .unwrap_or_else(|| "anthropic".to_string());
- let adapter = Arc::new(FabroServerAdapter::new(
- http_client,
- &resolved.server_base_url,
- &provider_name,
- ));
- let mut client = Client::new(HashMap::new(), None, vec![]);
- client
- .register_provider(adapter)
- .await
- .map_err(|e| anyhow::anyhow!("Failed to register fabro server adapter: {e}"))?;
- run_with_args_and_client(args, Some(client), mcp_servers).await?;
- }
- user_config::ExecutionMode::Standalone => {
- tracing::info!(mode = "standalone", "Agent session starting");
- run_with_args(args, mcp_servers).await?;
- }
+ if let Some(target) = server_target {
+ tracing::info!(transport = "server", "Agent session starting");
+ let http_client = user_config::build_server_client(target.tls.as_ref())?;
+ let provider_name = args
+ .provider
+ .clone()
+ .unwrap_or_else(|| "anthropic".to_string());
+ let adapter = Arc::new(FabroServerAdapter::new(
+ http_client,
+ &target.server_base_url,
+ &provider_name,
+ ));
+ let mut client = Client::new(HashMap::new(), None, vec![]);
+ client
+ .register_provider(adapter)
+ .await
+ .map_err(|e| anyhow::anyhow!("Failed to register fabro server adapter: {e}"))?;
+ run_with_args_and_client(args, Some(client), mcp_servers).await?;
+ } else {
+ tracing::info!(transport = "direct", "Agent session starting");
+ run_with_args(args, mcp_servers).await?;
}
Ok(())
diff --git a/lib/crates/fabro-cli/src/commands/model.rs b/lib/crates/fabro-cli/src/commands/model.rs
index b12cba26c..a4e196b48 100644
--- a/lib/crates/fabro-cli/src/commands/model.rs
+++ b/lib/crates/fabro-cli/src/commands/model.rs
@@ -39,13 +39,9 @@ struct ModelTestOutput {
pub(crate) async fn execute(command: Option, globals: &GlobalArgs) -> Result<()> {
let cli_settings = user_config::load_user_settings_with_globals(globals)?;
- let client = match globals.server_url.as_deref() {
- Some(base_url) => {
- let tls = cli_settings
- .server
- .as_ref()
- .and_then(|server| server.tls.as_ref());
- server_client::connect_remote_api_client(base_url, tls)?
+ let client = match user_config::model_server_target(globals, &cli_settings) {
+ Some(target) => {
+ server_client::connect_remote_api_client(&target.server_base_url, target.tls.as_ref())?
}
None => server_client::connect_api_client(&cli_settings.storage_dir()).await?,
};
diff --git a/lib/crates/fabro-cli/src/user_config.rs b/lib/crates/fabro-cli/src/user_config.rs
index f351193eb..bee3b7d1c 100644
--- a/lib/crates/fabro-cli/src/user_config.rs
+++ b/lib/crates/fabro-cli/src/user_config.rs
@@ -1,5 +1,3 @@
-use std::path::Path;
-
pub(crate) use fabro_config::user::*;
use fabro_config::ConfigLayer;
@@ -24,55 +22,70 @@ pub(crate) fn load_user_settings_with_globals(globals: &GlobalArgs) -> anyhow::R
pub(crate) fn apply_global_overrides(mut layer: ConfigLayer, globals: &GlobalArgs) -> ConfigLayer {
if let Some(dir) = &globals.storage_dir {
layer.storage_dir = Some(dir.clone());
- layer.mode = Some(ExecutionMode::Standalone);
}
if let Some(url) = &globals.server_url {
layer.server.get_or_insert_with(Default::default).base_url = Some(url.clone());
- layer.mode = Some(ExecutionMode::Server);
}
layer
}
-#[derive(Debug, PartialEq)]
-pub(crate) struct ResolvedMode {
- pub mode: ExecutionMode,
+#[derive(Debug, Clone, PartialEq)]
+pub(crate) struct ServerTarget {
pub server_base_url: String,
pub tls: Option,
}
-const DEFAULT_SERVER_URL: &str = "http://localhost:3000/api/v1";
+fn configured_server_target(settings: &Settings) -> Option {
+ settings.server.as_ref().and_then(|server| {
+ server.base_url.clone().map(|server_base_url| ServerTarget {
+ server_base_url,
+ tls: server.tls.clone(),
+ })
+ })
+}
-pub(crate) fn resolve_mode(
- cli_storage_dir: Option<&Path>,
- cli_server_url: Option<&str>,
+pub(crate) fn exec_server_target(
+ globals: &GlobalArgs,
settings: &Settings,
-) -> ResolvedMode {
- let mode = if cli_server_url.is_some() {
- ExecutionMode::Server
- } else if cli_storage_dir.is_some() {
- ExecutionMode::Standalone
+) -> Option {
+ let target = globals
+ .server_url
+ .as_ref()
+ .map(|server_base_url| ServerTarget {
+ server_base_url: server_base_url.clone(),
+ tls: settings
+ .server
+ .as_ref()
+ .and_then(|server| server.tls.clone()),
+ });
+ debug!(has_target = target.is_some(), "Resolved exec server target");
+ target
+}
+
+pub(crate) fn model_server_target(
+ globals: &GlobalArgs,
+ settings: &Settings,
+) -> Option {
+ let target = if let Some(server_base_url) = globals.server_url.as_ref() {
+ Some(ServerTarget {
+ server_base_url: server_base_url.clone(),
+ tls: settings
+ .server
+ .as_ref()
+ .and_then(|server| server.tls.clone()),
+ })
+ } else if globals.storage_dir.is_some() {
+ None
} else {
- settings.mode.clone().unwrap_or_default()
+ configured_server_target(settings)
};
-
- let server_defaults = settings.server.as_ref();
-
- let server_base_url = cli_server_url
- .map(String::from)
- .or_else(|| server_defaults.and_then(|s| s.base_url.clone()))
- .unwrap_or_else(|| DEFAULT_SERVER_URL.to_string());
-
- let tls = server_defaults.and_then(|s| s.tls.clone());
-
- debug!(mode = ?mode, base_url = %server_base_url, tls = tls.is_some(), "CLI mode resolved");
-
- ResolvedMode {
- mode,
- server_base_url,
- tls,
- }
+ debug!(
+ has_target = target.is_some(),
+ "Resolved model server target"
+ );
+ target
}
pub(crate) fn build_server_client(
@@ -108,63 +121,44 @@ pub(crate) fn build_server_client(
#[cfg(test)]
mod tests {
- use std::path::{Path, PathBuf};
+ use std::path::PathBuf;
use super::*;
- // --- resolve_mode precedence ---
+ fn globals() -> GlobalArgs {
+ GlobalArgs {
+ json: false,
+ debug: false,
+ no_upgrade_check: false,
+ quiet: false,
+ verbose: false,
+ storage_dir: None,
+ server_url: None,
+ }
+ }
#[test]
- fn resolve_mode_defaults_to_standalone() {
+ fn exec_has_no_server_target_by_default() {
let settings = Settings::default();
- let resolved = resolve_mode(None, None, &settings);
- assert_eq!(resolved.mode, ExecutionMode::Standalone);
- assert_eq!(resolved.server_base_url, DEFAULT_SERVER_URL);
- assert_eq!(resolved.tls, None);
+ assert_eq!(exec_server_target(&globals(), &settings), None);
}
#[test]
- fn resolve_mode_storage_dir_forces_standalone() {
- let settings = Settings {
- mode: Some(ExecutionMode::Server),
- ..Settings::default()
- };
- let resolved = resolve_mode(Some(Path::new("/tmp/fabro")), None, &settings);
- assert_eq!(resolved.mode, ExecutionMode::Standalone);
- }
-
- #[test]
- fn resolve_mode_server_url_forces_server() {
- let settings = Settings {
- mode: Some(ExecutionMode::Standalone),
- server: Some(ServerSettings {
- base_url: Some("https://config.example.com".to_string()),
+ fn exec_uses_cli_server_url() {
+ let settings = Settings::default();
+ let mut globals = globals();
+ globals.server_url = Some("https://cli.example.com".to_string());
+ assert_eq!(
+ exec_server_target(&globals, &settings),
+ Some(ServerTarget {
+ server_base_url: "https://cli.example.com".to_string(),
tls: None,
- }),
- ..Settings::default()
- };
- let resolved = resolve_mode(None, Some("https://cli.example.com"), &settings);
- assert_eq!(resolved.mode, ExecutionMode::Server);
- assert_eq!(resolved.server_base_url, "https://cli.example.com");
+ })
+ );
}
#[test]
- fn resolve_mode_config_overrides_default() {
- let settings = Settings {
- mode: Some(ExecutionMode::Server),
- server: Some(ServerSettings {
- base_url: Some("https://config.example.com".to_string()),
- tls: None,
- }),
- ..Settings::default()
- };
- let resolved = resolve_mode(None, None, &settings);
- assert_eq!(resolved.mode, ExecutionMode::Server);
- assert_eq!(resolved.server_base_url, "https://config.example.com");
- }
-
- #[test]
- fn resolve_mode_cli_url_overrides_config_url() {
+ fn exec_ignores_configured_server_base_url_without_cli_server_url() {
let settings = Settings {
server: Some(ServerSettings {
base_url: Some("https://config.example.com".to_string()),
@@ -172,12 +166,63 @@ mod tests {
}),
..Settings::default()
};
- let resolved = resolve_mode(None, Some("https://cli.example.com"), &settings);
- assert_eq!(resolved.server_base_url, "https://cli.example.com");
+ assert_eq!(exec_server_target(&globals(), &settings), None);
}
#[test]
- fn resolve_mode_tls_from_config() {
+ fn model_uses_configured_server_base_url() {
+ let settings = Settings {
+ server: Some(ServerSettings {
+ base_url: Some("https://config.example.com".to_string()),
+ tls: None,
+ }),
+ ..Settings::default()
+ };
+ assert_eq!(
+ model_server_target(&globals(), &settings),
+ Some(ServerTarget {
+ server_base_url: "https://config.example.com".to_string(),
+ tls: None,
+ })
+ );
+ }
+
+ #[test]
+ fn model_cli_server_url_overrides_config_url() {
+ let settings = Settings {
+ server: Some(ServerSettings {
+ base_url: Some("https://config.example.com".to_string()),
+ tls: None,
+ }),
+ ..Settings::default()
+ };
+ let mut globals = globals();
+ globals.server_url = Some("https://cli.example.com".to_string());
+ assert_eq!(
+ model_server_target(&globals, &settings),
+ Some(ServerTarget {
+ server_base_url: "https://cli.example.com".to_string(),
+ tls: None,
+ })
+ );
+ }
+
+ #[test]
+ fn model_storage_dir_suppresses_configured_remote_target() {
+ let settings = Settings {
+ server: Some(ServerSettings {
+ base_url: Some("https://config.example.com".to_string()),
+ tls: None,
+ }),
+ ..Settings::default()
+ };
+ let mut globals = globals();
+ globals.storage_dir = Some(PathBuf::from("/tmp/fabro"));
+ assert_eq!(model_server_target(&globals, &settings), None);
+ }
+
+ #[test]
+ fn remote_target_uses_tls_from_config() {
let tls = ClientTlsSettings {
cert: PathBuf::from("cert.pem"),
key: PathBuf::from("key.pem"),
@@ -190,7 +235,14 @@ mod tests {
}),
..Settings::default()
};
- let resolved = resolve_mode(None, None, &settings);
- assert_eq!(resolved.tls, Some(tls));
+ let mut globals = globals();
+ globals.server_url = Some("https://cli.example.com".to_string());
+ assert_eq!(
+ exec_server_target(&globals, &settings),
+ Some(ServerTarget {
+ server_base_url: "https://cli.example.com".to_string(),
+ tls: Some(tls),
+ })
+ );
}
}
diff --git a/lib/crates/fabro-cli/tests/it/cmd/artifact.rs b/lib/crates/fabro-cli/tests/it/cmd/artifact.rs
index 00d0de303..108f44e11 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/artifact.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/artifact.rs
@@ -24,8 +24,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/artifact_cp.rs b/lib/crates/fabro-cli/tests/it/cmd/artifact_cp.rs
index 426ca3ac2..6a810b056 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/artifact_cp.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/artifact_cp.rs
@@ -28,8 +28,8 @@ fn help() {
--tree Preserve {node_slug}/retry_{N}/ directory structure
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/artifact_list.rs b/lib/crates/fabro-cli/tests/it/cmd/artifact_list.rs
index db0e58b95..5648dd4cc 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/artifact_list.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/artifact_list.rs
@@ -26,8 +26,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/attach.rs b/lib/crates/fabro-cli/tests/it/cmd/attach.rs
index 9f0616e53..7c6cdf365 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/attach.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/attach.rs
@@ -31,8 +31,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
@@ -444,7 +444,6 @@ fn attach_json_errors_without_prompting_for_human_input() {
"model": "gpt-5.4",
"provider": "openai"
},
- "mode": "standalone",
"no_retro": true,
"sandbox": {
"daytona": null,
diff --git a/lib/crates/fabro-cli/tests/it/cmd/completion.rs b/lib/crates/fabro-cli/tests/it/cmd/completion.rs
index 6fea74e47..758193c3f 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/completion.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/completion.rs
@@ -22,8 +22,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/config.rs b/lib/crates/fabro-cli/tests/it/cmd/config.rs
index 816533704..445196a43 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/config.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/config.rs
@@ -1,7 +1,6 @@
use std::path::PathBuf;
use fabro_config::mcp::McpTransport;
-use fabro_config::user::ExecutionMode;
use fabro_test::{fabro_snapshot, test_context};
use fabro_types::Settings;
use predicates::prelude::*;
@@ -31,8 +30,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
@@ -585,9 +584,7 @@ fn settings_server_url_overrides_cli_defaults() {
let existing = std::fs::read_to_string(&user_toml_path).unwrap();
context.write_home(
".fabro/user.toml",
- format!(
- "{existing}\nmode = \"standalone\"\n[server]\nbase_url = \"https://config.example.com\"\n"
- ),
+ format!("{existing}\n[server]\nbase_url = \"https://config.example.com\"\n"),
);
let output = context
@@ -602,7 +599,6 @@ fn settings_server_url_overrides_cli_defaults() {
.clone();
let cfg = parse_settings(&output);
- assert_eq!(cfg.mode, Some(ExecutionMode::Server));
assert_eq!(
cfg.server
.as_ref()
diff --git a/lib/crates/fabro-cli/tests/it/cmd/create.rs b/lib/crates/fabro-cli/tests/it/cmd/create.rs
index 9352a910d..3b07c3cb9 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/create.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/create.rs
@@ -34,8 +34,8 @@ fn help() {
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--model Override default LLM model
--provider Override default LLM provider
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-v, --verbose Enable verbose output
--sandbox Sandbox for agent tools [possible values: local, docker, daytona]
--label Attach a label to this run (repeatable, format: KEY=VALUE)
diff --git a/lib/crates/fabro-cli/tests/it/cmd/diff.rs b/lib/crates/fabro-cli/tests/it/cmd/diff.rs
index f32a51597..5cd808dff 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/diff.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/diff.rs
@@ -27,8 +27,8 @@ fn help() {
--shortstat Show only files-changed/insertions/deletions summary (live diffs only)
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/discord.rs b/lib/crates/fabro-cli/tests/it/cmd/discord.rs
index 87cbee06d..349b519bf 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/discord.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/discord.rs
@@ -19,8 +19,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/docs.rs b/lib/crates/fabro-cli/tests/it/cmd/docs.rs
index aeecd2b33..51f042a19 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/docs.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/docs.rs
@@ -19,8 +19,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/doctor.rs b/lib/crates/fabro-cli/tests/it/cmd/doctor.rs
index 9e09ae678..1855ed683 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/doctor.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/doctor.rs
@@ -31,8 +31,8 @@ fn help() {
--dry-run Skip live service probes (LLM, sandbox, API, web, Brave Search)
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/exec.rs b/lib/crates/fabro-cli/tests/it/cmd/exec.rs
index 8a3715e9c..d85af8968 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/exec.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/exec.rs
@@ -3,6 +3,7 @@
use std::process::Output;
use fabro_test::{fabro_snapshot, test_context};
+use httpmock::MockServer;
async fn run_success_output(mut cmd: assert_cmd::Command) -> Output {
tokio::task::spawn_blocking(move || cmd.assert().success().get_output().clone())
@@ -35,9 +36,9 @@ fn help() {
--auto-approve Skip interactive prompts; deny tools outside permission level
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--debug Print LLM request/response debug info to stderr
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
--verbose Print full LLM request/response JSON to stderr
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
--skills-dir Directory containing skill files (overrides default discovery)
--output-format Output format (text for human-readable, json for NDJSON event stream) [possible values: text, json]
-h, --help Print help
@@ -119,6 +120,125 @@ fn exec_uses_user_config_defaults() {
");
}
+#[test]
+fn exec_server_url_uses_remote_transport_instead_of_local_api_key_resolution() {
+ let context = test_context!();
+ let server = MockServer::start();
+ server.mock(|when, then| {
+ when.method("POST").path("/api/v1/completions");
+ then.status(500).body("server-routed-marker");
+ });
+
+ let mut cmd = context.exec_cmd();
+ cmd.env_clear();
+ cmd.env("HOME", &context.home_dir);
+ cmd.env("FABRO_NO_UPGRADE_CHECK", "true");
+ cmd.args([
+ "--server-url",
+ &format!("{}/api/v1", server.base_url()),
+ "--provider",
+ "openai",
+ "--model",
+ "gpt-5.4-mini",
+ "test prompt",
+ ]);
+
+ let output = cmd.assert().failure().get_output().clone();
+ let stderr = String::from_utf8(output.stderr).expect("valid utf8");
+ assert!(
+ stderr.contains("server-routed-marker"),
+ "expected remote server failure marker, got: {stderr}"
+ );
+ assert!(
+ !stderr.contains("API key not set"),
+ "exec should not fail local API key validation when --server-url is set: {stderr}"
+ );
+}
+
+#[test]
+fn exec_configured_server_base_url_alone_does_not_reroute_exec() {
+ let context = test_context!();
+ let server = MockServer::start();
+ server.mock(|when, then| {
+ when.method("POST").path("/api/v1/completions");
+ then.status(500).body("config-should-not-be-used");
+ });
+ context.write_home(
+ ".fabro/user.toml",
+ format!("[server]\nbase_url = \"{}/api/v1\"\n", server.base_url()),
+ );
+
+ let mut cmd = context.exec_cmd();
+ cmd.env_clear();
+ cmd.env("HOME", &context.home_dir);
+ cmd.env("FABRO_NO_UPGRADE_CHECK", "true");
+ cmd.args([
+ "--provider",
+ "openai",
+ "--model",
+ "gpt-5.4-mini",
+ "test prompt",
+ ]);
+
+ let output = cmd.assert().failure().get_output().clone();
+ let stderr = String::from_utf8(output.stderr).expect("valid utf8");
+ assert!(
+ stderr.contains("API key not set for provider 'openai'"),
+ "expected local API key validation failure, got: {stderr}"
+ );
+ assert!(
+ !stderr.contains("config-should-not-be-used"),
+ "exec should ignore configured server.base_url without --server-url: {stderr}"
+ );
+}
+
+#[test]
+fn exec_cli_server_url_overrides_configured_server_base_url() {
+ let context = test_context!();
+ let config_server = MockServer::start();
+ config_server.mock(|when, then| {
+ when.method("POST").path("/api/v1/completions");
+ then.status(500).body("config-should-not-be-used");
+ });
+ let cli_server = MockServer::start();
+ cli_server.mock(|when, then| {
+ when.method("POST").path("/api/v1/completions");
+ then.status(500).body("cli-override-marker");
+ });
+ context.write_home(
+ ".fabro/user.toml",
+ format!(
+ "[server]\nbase_url = \"{}/api/v1\"\n",
+ config_server.base_url()
+ ),
+ );
+
+ let mut cmd = context.exec_cmd();
+ cmd.env_clear();
+ cmd.env("HOME", &context.home_dir);
+ cmd.env("FABRO_NO_UPGRADE_CHECK", "true");
+ cmd.args([
+ "--server-url",
+ &format!("{}/api/v1", cli_server.base_url()),
+ "--provider",
+ "openai",
+ "--model",
+ "gpt-5.4-mini",
+ "test prompt",
+ ]);
+
+ let output = cmd.assert().failure().get_output().clone();
+ let stderr = String::from_utf8(output.stderr).expect("valid utf8");
+ assert!(
+ stderr.contains("cli-override-marker"),
+ "expected CLI server URL to win, got: {stderr}"
+ );
+ assert!(
+ !stderr.contains("config-should-not-be-used"),
+ "configured server.base_url should not be used when --server-url is passed: {stderr}"
+ );
+}
+
#[fabro_macros::e2e_test(live("ANTHROPIC_API_KEY"))]
fn exec_creates_file() {
let context = test_context!();
diff --git a/lib/crates/fabro-cli/tests/it/cmd/fabro.rs b/lib/crates/fabro-cli/tests/it/cmd/fabro.rs
index 3c5fa073f..3a8834c89 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/fabro.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/fabro.rs
@@ -52,8 +52,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
-V, --version Print version
----- stderr -----
diff --git a/lib/crates/fabro-cli/tests/it/cmd/fork.rs b/lib/crates/fabro-cli/tests/it/cmd/fork.rs
index 488784112..168e78991 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/fork.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/fork.rs
@@ -32,8 +32,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/graph.rs b/lib/crates/fabro-cli/tests/it/cmd/graph.rs
index 054e47022..092450182 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/graph.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/graph.rs
@@ -62,12 +62,12 @@ fn help() {
[env: FABRO_VERBOSE=]
--storage-dir
- Storage directory (default: ~/.fabro)
+ Local storage directory (default: ~/.fabro)
[env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
--server-url
- Server URL (overrides server.base_url from user.toml)
+ Fabro API server URL (overrides server.base_url from user.toml when supported)
[env: FABRO_SERVER_URL=]
diff --git a/lib/crates/fabro-cli/tests/it/cmd/inspect.rs b/lib/crates/fabro-cli/tests/it/cmd/inspect.rs
index a75cadf77..c810e4e00 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/inspect.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/inspect.rs
@@ -29,8 +29,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/install.rs b/lib/crates/fabro-cli/tests/it/cmd/install.rs
index 082bac91b..1fecd1416 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/install.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/install.rs
@@ -20,8 +20,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/logs.rs b/lib/crates/fabro-cli/tests/it/cmd/logs.rs
index 9961f26bb..101de1f8b 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/logs.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/logs.rs
@@ -69,8 +69,8 @@ fn help() {
-p, --pretty Formatted colored output with rendered assistant text
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
"#);
diff --git a/lib/crates/fabro-cli/tests/it/cmd/model.rs b/lib/crates/fabro-cli/tests/it/cmd/model.rs
index a1e32ba66..64f694977 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/model.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/model.rs
@@ -1,4 +1,5 @@
use fabro_test::{fabro_snapshot, test_context};
+use httpmock::MockServer;
#[test]
fn help() {
@@ -24,8 +25,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
@@ -175,3 +176,61 @@ fn list_invalid_provider_errors() {
error: unknown provider: not-a-provider
");
}
+
+#[test]
+fn list_uses_configured_server_base_url_without_server_url_flag() {
+ let context = test_context!();
+ let server = MockServer::start();
+ let mock = server.mock(|when, then| {
+ when.method("GET");
+ then.status(200)
+ .header("Content-Type", "application/json")
+ .body(
+ serde_json::json!({
+ "data": [{
+ "id": "remote-model",
+ "display_name": "Remote Model",
+ "provider": "openai",
+ "family": "test",
+ "aliases": ["remote"],
+ "limits": {
+ "context_window": 131_072,
+ "max_output": 4096
+ },
+ "training": null,
+ "knowledge_cutoff": null,
+ "features": {
+ "tools": true,
+ "vision": false,
+ "reasoning": false,
+ "effort": false
+ },
+ "costs": {
+ "input_cost_per_mtok": 1.0,
+ "output_cost_per_mtok": 2.0,
+ "cache_input_cost_per_mtok": null
+ },
+ "estimated_output_tps": 42.0,
+ "default": false
+ }],
+ "meta": { "has_more": false }
+ })
+ .to_string(),
+ );
+ });
+ context.write_home(
+ ".fabro/user.toml",
+ format!("[server]\nbase_url = \"{}/api/v1\"\n", server.base_url()),
+ );
+
+ let mut cmd = context.model();
+ cmd.env_remove("FABRO_STORAGE_DIR");
+ cmd.args(["list", "--json"]);
+ let output = cmd.assert().success().get_output().stdout.clone();
+ let models: serde_json::Value =
+ serde_json::from_slice(&output).expect("model list json should parse");
+
+ mock.assert();
+ assert_eq!(models.as_array().map(Vec::len), Some(1));
+ assert_eq!(models[0]["id"].as_str(), Some("remote-model"));
+}
diff --git a/lib/crates/fabro-cli/tests/it/cmd/model_list.rs b/lib/crates/fabro-cli/tests/it/cmd/model_list.rs
index 9f56bcf0c..ad6aa05df 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/model_list.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/model_list.rs
@@ -21,8 +21,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/model_test.rs b/lib/crates/fabro-cli/tests/it/cmd/model_test.rs
index 9ae0987c5..7e9b898c3 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/model_test.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/model_test.rs
@@ -22,8 +22,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/parse.rs b/lib/crates/fabro-cli/tests/it/cmd/parse.rs
index bb647b763..3c40dbe6f 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/parse.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/parse.rs
@@ -22,8 +22,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/pr.rs b/lib/crates/fabro-cli/tests/it/cmd/pr.rs
index a8e43dd37..fa5908036 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/pr.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/pr.rs
@@ -27,8 +27,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/pr_close.rs b/lib/crates/fabro-cli/tests/it/cmd/pr_close.rs
index e5bcc3b58..4aada8c16 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/pr_close.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/pr_close.rs
@@ -22,8 +22,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/pr_create.rs b/lib/crates/fabro-cli/tests/it/cmd/pr_create.rs
index 4194ed863..bd035ce18 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/pr_create.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/pr_create.rs
@@ -25,8 +25,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/pr_list.rs b/lib/crates/fabro-cli/tests/it/cmd/pr_list.rs
index e971515d9..cc9829531 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/pr_list.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/pr_list.rs
@@ -20,8 +20,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/pr_merge.rs b/lib/crates/fabro-cli/tests/it/cmd/pr_merge.rs
index f18a05c01..000e84b35 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/pr_merge.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/pr_merge.rs
@@ -23,8 +23,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/pr_view.rs b/lib/crates/fabro-cli/tests/it/cmd/pr_view.rs
index 238f655b0..7b88c09f9 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/pr_view.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/pr_view.rs
@@ -28,8 +28,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/preflight.rs b/lib/crates/fabro-cli/tests/it/cmd/preflight.rs
index 89b22a96d..85a8b4b60 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/preflight.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/preflight.rs
@@ -30,8 +30,8 @@ fn help() {
--quiet Suppress non-essential output [env: FABRO_QUIET=]
-v, --verbose Enable verbose output
--sandbox Sandbox for agent tools [possible values: local, docker, daytona]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/provider.rs b/lib/crates/fabro-cli/tests/it/cmd/provider.rs
index b9c51055a..552e4206e 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/provider.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/provider.rs
@@ -23,8 +23,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/provider_login.rs b/lib/crates/fabro-cli/tests/it/cmd/provider_login.rs
index be2602a04..75aef5c53 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/provider_login.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/provider_login.rs
@@ -20,8 +20,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/ps.rs b/lib/crates/fabro-cli/tests/it/cmd/ps.rs
index 3d93165d3..b13d846a2 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/ps.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/ps.rs
@@ -27,8 +27,8 @@ fn help() {
-a, --all Show all runs, not just running (like docker ps -a)
--verbose Enable verbose output [env: FABRO_VERBOSE=]
-q, --quiet Only display run IDs
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/repo.rs b/lib/crates/fabro-cli/tests/it/cmd/repo.rs
index cf886da14..619cbfb7b 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/repo.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/repo.rs
@@ -31,8 +31,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
@@ -112,8 +112,8 @@ fn test_repo_init_help_does_not_show_skill() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/repo_deinit.rs b/lib/crates/fabro-cli/tests/it/cmd/repo_deinit.rs
index ea3991797..7489e4f01 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/repo_deinit.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/repo_deinit.rs
@@ -19,8 +19,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/repo_init.rs b/lib/crates/fabro-cli/tests/it/cmd/repo_init.rs
index 8a1a2a0ec..49f5edaef 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/repo_init.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/repo_init.rs
@@ -21,8 +21,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/resume.rs b/lib/crates/fabro-cli/tests/it/cmd/resume.rs
index 033b2074c..7fc78b6ec 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/resume.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/resume.rs
@@ -27,8 +27,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/rewind.rs b/lib/crates/fabro-cli/tests/it/cmd/rewind.rs
index b54611295..839f03792 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/rewind.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/rewind.rs
@@ -32,8 +32,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/rm.rs b/lib/crates/fabro-cli/tests/it/cmd/rm.rs
index e411743d2..06eccaa92 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/rm.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/rm.rs
@@ -28,8 +28,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/run.rs b/lib/crates/fabro-cli/tests/it/cmd/run.rs
index 95755543d..4ecc150f3 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/run.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/run.rs
@@ -37,8 +37,8 @@ fn help() {
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--model Override default LLM model
--provider Override default LLM provider
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-v, --verbose Enable verbose output
--sandbox Sandbox for agent tools [possible values: local, docker, daytona]
--label Attach a label to this run (repeatable, format: KEY=VALUE)
@@ -374,7 +374,6 @@ fn json_run_implies_auto_approve_for_human_gates() {
"model": "[LLM_MODEL]",
"provider": "[LLM_PROVIDER]"
},
- "mode": "standalone",
"no_retro": true,
"sandbox": {
"daytona": null,
diff --git a/lib/crates/fabro-cli/tests/it/cmd/runner.rs b/lib/crates/fabro-cli/tests/it/cmd/runner.rs
index ae9d7bc08..fa5b26b66 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/runner.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/runner.rs
@@ -26,8 +26,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/sandbox_cp.rs b/lib/crates/fabro-cli/tests/it/cmd/sandbox_cp.rs
index 330c0eaee..4e12ee813 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/sandbox_cp.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/sandbox_cp.rs
@@ -26,8 +26,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/sandbox_preview.rs b/lib/crates/fabro-cli/tests/it/cmd/sandbox_preview.rs
index ec9869435..dc40b8be8 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/sandbox_preview.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/sandbox_preview.rs
@@ -28,8 +28,8 @@ fn help() {
--open Open URL in browser (implies --signed)
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/sandbox_ssh.rs b/lib/crates/fabro-cli/tests/it/cmd/sandbox_ssh.rs
index 0f620589b..4b6c1b90a 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/sandbox_ssh.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/sandbox_ssh.rs
@@ -26,8 +26,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/secret.rs b/lib/crates/fabro-cli/tests/it/cmd/secret.rs
index 579d2f197..e02216e25 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/secret.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/secret.rs
@@ -28,8 +28,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/secret_get.rs b/lib/crates/fabro-cli/tests/it/cmd/secret_get.rs
index aeb153bb0..38fe583f4 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/secret_get.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/secret_get.rs
@@ -22,8 +22,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/secret_list.rs b/lib/crates/fabro-cli/tests/it/cmd/secret_list.rs
index 7ebdeb2dc..3561ff674 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/secret_list.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/secret_list.rs
@@ -21,8 +21,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/secret_rm.rs b/lib/crates/fabro-cli/tests/it/cmd/secret_rm.rs
index 30142ed57..8e798c64e 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/secret_rm.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/secret_rm.rs
@@ -22,8 +22,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/secret_set.rs b/lib/crates/fabro-cli/tests/it/cmd/secret_set.rs
index a05748079..fb33f09ff 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/secret_set.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/secret_set.rs
@@ -23,8 +23,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/send_analytics.rs b/lib/crates/fabro-cli/tests/it/cmd/send_analytics.rs
index 9f40918c6..c4ce5160c 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/send_analytics.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/send_analytics.rs
@@ -22,8 +22,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/send_panic.rs b/lib/crates/fabro-cli/tests/it/cmd/send_panic.rs
index a464a21bf..cda1725ad 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/send_panic.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/send_panic.rs
@@ -22,8 +22,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/server_start.rs b/lib/crates/fabro-cli/tests/it/cmd/server_start.rs
index 48d37974f..20ffa3a91 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/server_start.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/server_start.rs
@@ -46,11 +46,11 @@ fn help() {
--sandbox
Sandbox for agent tools
--storage-dir
- Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
--max-concurrent-runs
Maximum number of concurrent run executions
--server-url
- Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
--config
Path to server config file (default: ~/.fabro/server.toml)
-h, --help
diff --git a/lib/crates/fabro-cli/tests/it/cmd/server_status.rs b/lib/crates/fabro-cli/tests/it/cmd/server_status.rs
index 85dc39eb1..e4394a113 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/server_status.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/server_status.rs
@@ -25,8 +25,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/server_stop.rs b/lib/crates/fabro-cli/tests/it/cmd/server_stop.rs
index 45d8c3457..f40dd1b73 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/server_stop.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/server_stop.rs
@@ -26,8 +26,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/start.rs b/lib/crates/fabro-cli/tests/it/cmd/start.rs
index 82bb5a2be..ed268d305 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/start.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/start.rs
@@ -28,8 +28,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/store.rs b/lib/crates/fabro-cli/tests/it/cmd/store.rs
index cefd5ed6f..e04956b02 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/store.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/store.rs
@@ -23,8 +23,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/store_dump.rs b/lib/crates/fabro-cli/tests/it/cmd/store_dump.rs
index 88bdd536d..5004e83df 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/store_dump.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/store_dump.rs
@@ -27,8 +27,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/system.rs b/lib/crates/fabro-cli/tests/it/cmd/system.rs
index 7c9fd8f5d..8c1048d52 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/system.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/system.rs
@@ -24,8 +24,8 @@ fn help() {
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
--verbose Enable verbose output [env: FABRO_VERBOSE=]
- --storage-dir Storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
- --server-url Server URL (overrides server.base_url from user.toml) [env: FABRO_SERVER_URL=]
+ --storage-dir Local storage directory (default: ~/.fabro) [env: FABRO_STORAGE_DIR=[STORAGE_DIR]]
+ --server-url Fabro API server URL (overrides server.base_url from user.toml when supported) [env: FABRO_SERVER_URL=]
-h, --help Print help
----- stderr -----
");
diff --git a/lib/crates/fabro-cli/tests/it/cmd/system_df.rs b/lib/crates/fabro-cli/tests/it/cmd/system_df.rs
index 418f2492b..c487516e4 100644
--- a/lib/crates/fabro-cli/tests/it/cmd/system_df.rs
+++ b/lib/crates/fabro-cli/tests/it/cmd/system_df.rs
@@ -22,8 +22,8 @@ fn help() {
--debug Enable DEBUG-level logging (default is INFO) [env: FABRO_DEBUG=]
--no-upgrade-check Disable automatic upgrade check [env: FABRO_NO_UPGRADE_CHECK=true]
--quiet Suppress non-essential output [env: FABRO_QUIET=]
- --storage-dir