refactor(rename): kb → kebab — binary, env vars, XDG paths, file renames
두 번째 commit. 사용자 facing surface (CLI binary, env vars, XDG paths) + 코드 안 single-letter token (`KB_`, `kb.sqlite`, `/kb/`, tracing target) 일괄 rename. 그리고 3 개 file rename: - 디자인 doc `2026-04-27-kb-final-form-design.md` → `2026-04-27-kebab-final-form-design.md` - 최초 보고서 `kb_local_rust_report.md` → `kebab_local_rust_report.md` - workspace ignore `.kbignore` → `.kebabignore` ## 변경 - `crates/kebab-cli/Cargo.toml`: `[[bin]] name = "kb"` → `"kebab"`. - `crates/kebab-cli/src/main.rs`: `#[command(name = "kb", …)]` → `name = "kebab"`. - 모든 `KB_*` env var (코드 + doc + 테스트) → `KEBAB_*`. apply_env prefix 매칭 + 30+ 개 setting 키 모두. - XDG paths: `~/.config/kb` / `~/.local/share/kb` / `~/.cache/kb` / `~/.local/state/kb` → `~/.config/kebab` 등. config defaults + expand_path tests + paths.rs 의 hardcode 모두. - SQLite filename: `kb.sqlite` → `kebab.sqlite` (`SQLITE_FILE` const + 테스트 hardcode 모두). - tracing target: `target: "kb-*"` → `"kebab-*"` (10+ 곳). - snapshot fixture: `.kbignore` → `.kebabignore` (`fixtures/source-fs/ tree-1.snapshot.json` 갱신). ## 검증 - `cargo test --workspace -j 1` clean (linker OOM 회피 위해 직렬). - `cargo clippy --workspace --all-targets -- -D warnings` clean. 다음 commit 에서 docs sweep. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
//! workspace's source-of-truth,
|
||||
//! - lexical-only retrieval (`SearchMode::Lexical`) so no embedder is
|
||||
//! required (`models.embedding.provider = "none"`),
|
||||
//! - golden YAML pointed at via `KB_EVAL_GOLDEN`.
|
||||
//! - golden YAML pointed at via `KEBAB_EVAL_GOLDEN`.
|
||||
//!
|
||||
//! Determinism: lexical-only with a fixed seed corpus produces
|
||||
//! byte-identical `per_query.jsonl` content (modulo `run_id` /
|
||||
@@ -24,7 +24,7 @@ use kebab_store_sqlite::SqliteStore;
|
||||
use rusqlite::params;
|
||||
use tempfile::TempDir;
|
||||
|
||||
/// `KB_EVAL_GOLDEN` is process-global state. Tests touching it must
|
||||
/// `KEBAB_EVAL_GOLDEN` is process-global state. Tests touching it must
|
||||
/// serialize so they don't trample each other when `cargo test`
|
||||
/// runs them in parallel.
|
||||
static GOLDEN_ENV_LOCK: Mutex<()> = Mutex::new(());
|
||||
@@ -143,19 +143,19 @@ fn lexical_opts() -> EvalRunOpts {
|
||||
}
|
||||
}
|
||||
|
||||
/// Run the eval after pointing `KB_EVAL_GOLDEN` at `yaml`. The env
|
||||
/// Run the eval after pointing `KEBAB_EVAL_GOLDEN` at `yaml`. The env
|
||||
/// guard must outlive the call so concurrent tests don't reset the
|
||||
/// var mid-run.
|
||||
fn run_with_golden<F: FnOnce() -> R, R>(yaml: &Path, f: F) -> R {
|
||||
let _g = GOLDEN_ENV_LOCK.lock().unwrap_or_else(|p| p.into_inner());
|
||||
// SAFETY: `KB_EVAL_GOLDEN` is a benign env var; the GOLDEN_ENV_LOCK
|
||||
// SAFETY: `KEBAB_EVAL_GOLDEN` is a benign env var; the GOLDEN_ENV_LOCK
|
||||
// serializes mutations so concurrent tests don't race.
|
||||
unsafe {
|
||||
std::env::set_var("KB_EVAL_GOLDEN", yaml);
|
||||
std::env::set_var("KEBAB_EVAL_GOLDEN", yaml);
|
||||
}
|
||||
let out = f();
|
||||
unsafe {
|
||||
std::env::remove_var("KB_EVAL_GOLDEN");
|
||||
std::env::remove_var("KEBAB_EVAL_GOLDEN");
|
||||
}
|
||||
out
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user