From 9ac13fa25676bc253e0c36a5bfd9b359c1b05b5f Mon Sep 17 00:00:00 2001 From: th-kim0823 Date: Sun, 10 May 2026 20:26:03 +0900 Subject: [PATCH] fix(cli): make query optional when --bulk is set (fb-42) --- crates/kebab-cli/src/main.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/crates/kebab-cli/src/main.rs b/crates/kebab-cli/src/main.rs index 647860f..c8b385d 100644 --- a/crates/kebab-cli/src/main.rs +++ b/crates/kebab-cli/src/main.rs @@ -94,7 +94,8 @@ enum Cmd { /// Lexical / vector / hybrid search over chunks. Search { - query: String, + /// Query text. Not required when `--bulk` is set (queries from stdin). + query: Option, #[arg(long, default_value_t = 10)] k: usize, @@ -771,6 +772,14 @@ fn run(cli: &Cli) -> anyhow::Result<()> { let cfg = kebab_config::Config::load(cli.config.as_deref())?; + // p9-fb-42: bulk mode requires no query; single-query mode requires query. + let query_text = match query.as_ref() { + Some(q) => q.clone(), + None => { + return Err(anyhow::anyhow!("query is required unless --bulk is set")); + } + }; + // p9-fb-36: normalize --media aliases (md → markdown). fn normalize_media_alias(s: &str) -> String { match s.to_ascii_lowercase().as_str() { @@ -822,7 +831,7 @@ fn run(cli: &Cli) -> anyhow::Result<()> { }; let q = kebab_core::SearchQuery { - text: query.clone(), + text: query_text, mode: (*mode).into(), k: *k, filters,