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:
@@ -28,7 +28,7 @@ const ASSET_ID_HEX_LEN: usize = 32;
|
||||
/// Default file name under `config.storage.data_dir`. Kept private — the
|
||||
/// path layout is a §6.3 design decision, not part of the store's public
|
||||
/// surface.
|
||||
const SQLITE_FILE: &str = "kb.sqlite";
|
||||
const SQLITE_FILE: &str = "kebab.sqlite";
|
||||
|
||||
/// Subdirectory under `data_dir` holding shard-prefixed asset bytes
|
||||
/// (`<aa>/<asset_id>`). Mirrors design §6.3.
|
||||
@@ -74,7 +74,7 @@ impl SqliteStore {
|
||||
apply_pragmas(&conn)?;
|
||||
|
||||
tracing::debug!(
|
||||
target: "kb-store-sqlite",
|
||||
target: "kebab-store-sqlite",
|
||||
data_dir = %data_dir.display(),
|
||||
db = %db_path.display(),
|
||||
"opened sqlite store"
|
||||
@@ -94,7 +94,7 @@ impl SqliteStore {
|
||||
schema::runner()
|
||||
.run(&mut *conn)
|
||||
.map_err(|e| StoreError::Migration(e.to_string()))?;
|
||||
tracing::debug!(target: "kb-store-sqlite", "migrations applied");
|
||||
tracing::debug!(target: "kebab-store-sqlite", "migrations applied");
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ impl TestEnv {
|
||||
}
|
||||
|
||||
pub fn db_path(&self) -> PathBuf {
|
||||
self.temp.path().join("kb.sqlite")
|
||||
self.temp.path().join("kebab.sqlite")
|
||||
}
|
||||
|
||||
/// Open a side-channel rusqlite connection for direct SQL inspection.
|
||||
|
||||
@@ -335,7 +335,7 @@ fn normalize_ws(s: &str) -> String {
|
||||
/// - no `END;` after the virtual-table line
|
||||
fn extract_design_5_5_fts_block() -> String {
|
||||
let doc = include_str!(
|
||||
"../../../docs/superpowers/specs/2026-04-27-kb-final-form-design.md"
|
||||
"../../../docs/superpowers/specs/2026-04-27-kebab-final-form-design.md"
|
||||
);
|
||||
let heading_idx = doc
|
||||
.find("### 5.5 Chunks + FTS5")
|
||||
@@ -437,7 +437,7 @@ fn fts_v002_matches_design_section_5_5_verbatim() {
|
||||
// ── 6. WAL cleanup: drop store before tempdir reaps WAL/SHM ──────────
|
||||
|
||||
/// Mirror the P1-6 pattern: opening + migrating + dropping the store
|
||||
/// must not strand `kb.sqlite-wal`/`-shm` files such that the tempdir
|
||||
/// must not strand `kebab.sqlite-wal`/`-shm` files such that the tempdir
|
||||
/// can't be cleaned up. After dropping the store + side-channel conn,
|
||||
/// the WAL/SHM siblings must either not exist or be removable — if a
|
||||
/// stray handle were holding them open, on Windows the remove would
|
||||
|
||||
Reference in New Issue
Block a user