{"record":{"id":"1d0b23d46775ef03","repo":"Kuberwastaken/claurst","slug":"unknown-option","errorCode":null,"errorMessage":"Unknown option: {}","messagePattern":"Unknown option: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src-rust/crates/cli/src/upgrade.rs","lineNumber":36,"sourceCode":"pub async fn run_upgrade(args: &[String]) -> Result<()> {\n    // -------- arg parsing --------\n    let mut requested_version: Option<String> = None;\n    let mut force = false;\n    let mut iter = args.iter();\n    while let Some(arg) = iter.next() {\n        match arg.as_str() {\n            \"-h\" | \"--help\" => {\n                print_help();\n                return Ok(());\n            }\n            \"-v\" | \"--version\" => {\n                requested_version = iter.next().cloned();\n                if requested_version.is_none() {\n                    bail!(\"--version requires an argument\");\n                }\n            }\n            \"--force\" | \"-f\" => force = true,\n            unknown => bail!(\"Unknown option: {}\", unknown),\n        }\n    }\n\n    let current_version = env!(\"CARGO_PKG_VERSION\").to_string();\n    println!(\"Current version: {}\", current_version);\n\n    // -------- detect target --------\n    let target = detect_target()?;\n    println!(\"Detected target: {}\", target);\n\n    // -------- resolve target version --------\n    let target_version = if let Some(v) = requested_version {\n        v.trim_start_matches('v').to_string()\n    } else {\n        fetch_latest_version().await?\n    };\n    println!(\"Target version:  {}\", target_version);\n","sourceCodeStart":18,"sourceCodeEnd":54,"githubUrl":"https://github.com/Kuberwastaken/claurst/blob/b0637c97ec34144387cbf2f74f65df6d16a6cef1/src-rust/crates/cli/src/upgrade.rs#L18-L54","documentation":"The catch-all arm of run_upgrade's match: any argument that is not one of the recognized flags (`-h`/`--help`, `-v`/`--version`, `--force`/`-f`) is rejected. It fires on typos (`--forc`), on unsupported long/short forms, and on stray positional arguments — the upgrade command takes no positional parameters, so any unrecognized token is invalid input. A generic validation guard in the CLI arg parser, raised before any network or filesystem work begins.","triggerScenarios":"Thrown at src-rust/crates/cli/src/upgrade.rs:36 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check spelling against `claurst upgrade --help`","Non-flag arguments are treated as versions; prefix versions are rejected, so pass a plain version like 1.2.3"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"b0637c97ec34144387cbf2f74f65df6d16a6cef1","analyzedAt":"2026-09-10T00:24:58.650Z","contentChangedAt":"2026-09-10T00:24:58.650Z","schemaVersion":2},"datasetVersion":"2026-09-16T04:17:20.429Z"}