fix(config,cli): reject --resolved+--show-origin; drop dead ActiveContext.server

config view --resolved --show-origin silently dropped --show-origin; add clap
conflicts_with so the parser rejects the combo loudly. Remove the unused `server`
field from ActiveContext (parsed, always written None, never read) — server-qualified
active context is a V2/V3 concern; don't ship an unfulfilled field.
This commit is contained in:
Ragnor Comerford 2026-06-05 12:46:23 +02:00
parent c7c82beafb
commit 922666fc70
No known key found for this signature in database
3 changed files with 20 additions and 10 deletions

View file

@ -533,7 +533,7 @@ enum ConfigCommand {
#[arg(long)]
config: Option<PathBuf>,
/// Resolve the named graph (or `defaults.graph`) to its typed locator.
#[arg(long)]
#[arg(long, conflicts_with = "show_origin")]
resolved: bool,
/// Annotate each value with the layer (global/project) it came from.
#[arg(long = "show-origin")]
@ -3166,7 +3166,6 @@ async fn main() -> Result<()> {
resolved.resolve_graph(None, Some(&graph))?;
write_active_context(&ActiveContext {
graph: graph.clone(),
server: None,
})?;
println!("active graph set to '{graph}'");
}

View file

@ -371,6 +371,19 @@ fn config_view_resolved_prints_embedded_and_remote_locators() {
assert_eq!(remote["graph_id"], "prod");
}
#[test]
fn config_view_resolved_conflicts_with_show_origin() {
// The two modes are mutually exclusive; the parser rejects the combo loudly
// rather than silently dropping --show-origin.
output_failure(
cli()
.arg("config")
.arg("view")
.arg("--resolved")
.arg("--show-origin"),
);
}
#[test]
fn use_sets_active_graph_targeted_by_bare_commands() {
let graph_dir = tempdir().unwrap();