Files
kebab/crates/kebab-store-vector/Cargo.toml
altair823 911fb49550 refactor(rename): kb crates → kebab — Cargo packages, folders, Rust modules
프로젝트 이름 `kb` → `kebab` rename 의 첫 단계.

- workspace `Cargo.toml`: members `crates/kb-*` → `crates/kebab-*`,
  repository URL `altair823/kb` → `altair823/kebab`.
- 18 crate 폴더 rename via `git mv` (history 보존).
- 각 crate `Cargo.toml`: `name = "kb-*"` → `"kebab-*"`, path deps
  `../kb-*` → `../kebab-*`.
- 모든 `.rs`: `kb_<id>` snake-case 모듈 path 18 개 (`kb_core`,
  `kb_config`, `kb_app`, `kb_cli`, `kb_eval`, `kb_search`, `kb_chunk`,
  `kb_normalize`, `kb_source_fs`, `kb_parse_md`, `kb_parse_types`,
  `kb_store_sqlite`, `kb_store_vector`, `kb_embed`, `kb_embed_local`,
  `kb_llm`, `kb_llm_local`, `kb_rag`) → `kebab_<id>` 일괄 sed (단어
  경계 \\b 사용해 영어 문장 안의 "kb" 약어 미오염).

CLI binary 이름 (`[[bin]] name = "kb"`), 환경변수 `KB_*`, XDG paths,
tracing target, 그리고 docs sweep 은 다음 commit 에서.

## 검증

- `cargo check --workspace` clean — 모든 crate 빌드 통과 후 commit.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 03:28:08 +00:00

56 lines
2.5 KiB
TOML

[package]
name = "kebab-store-vector"
version = { workspace = true }
edition = { workspace = true }
rust-version = { workspace = true }
license = { workspace = true }
repository = { workspace = true }
description = "LanceDB-backed VectorStore for kb (§5.6 embedding_records, §6.3 lancedb tables, §7.2 VectorStore)"
[dependencies]
kebab-core = { path = "../kebab-core" }
kebab-config = { path = "../kebab-config" }
# kb-store-sqlite is allowed for the embedding_records writers only
# (P3-3 spec: "Allowed dep `kb-store-sqlite` for writing/reading rows in
# embedding_records"). The Two-phase upsert flow uses
# `put_embedding_records_pending` + `mark_embedding_records_committed`.
kebab-store-sqlite = { path = "../kebab-store-sqlite" }
# LanceDB embedded vector store. `default-features=false` opts out of
# the cloud object-store integrations (aws / gcs / azure / dynamodb /
# oss); kb is always-local for v1, so dragging in those SDKs would just
# inflate the build.
lancedb = { workspace = true }
arrow = { workspace = true }
arrow-array = { workspace = true }
arrow-schema = { workspace = true }
# Embedded async runtime. The VectorStore trait is sync (§7.2) but
# LanceDB's Rust API is async-only; we own a current-thread
# tokio::Runtime and `block_on` per trait method. current-thread saves
# the two worker threads a multi-thread runtime would spawn — kb-app
# already serializes vector ops behind its own job scheduler so the
# extra parallelism wouldn't be exploited.
tokio = { workspace = true }
# `try_collect` for streaming Lance query results into a Vec<RecordBatch>.
futures = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
tracing = { workspace = true }
thiserror = { workspace = true }
anyhow = { workspace = true }
blake3 = { workspace = true }
time = { workspace = true }
[dev-dependencies]
tempfile = { workspace = true }
serde_json = { workspace = true }
# Integration tests seed `documents` / `chunks` fixtures by raw SQL
# (no kb-parse-md / kb-normalize / kb-chunk dep) so they can construct
# adversarial filter / dim-mismatch states. rusqlite is a `[dev-]`
# dep only — the runtime crate uses kb-store-sqlite's typed surface
# (`filter_chunks`, `put_embedding_records_pending`, …) and does not
# touch rusqlite directly (P3-3 spec: kb-store-vector must not list
# rusqlite/globset as direct deps).
rusqlite = { workspace = true }