v0.17.0 release cut — PR-A (한국어 trigram FTS tokenizer + lexical builder + hint surface) + PR-B (C typedef alias unit + parser_version cascade + orphan purge) + PR-C (code_lang_chunk_breakdown additive wire field) 셋 머지 후. Breaking changes: - V007 migration (chunks_fts unicode61 → trigram) — chunks 원본 / embedding / vector 불변, FTS shadow 자동 backfill. 사용자는 다음 open 시 V007 즉시 적용 (re-ingest 불필요). kebab.sqlite 파일 크기 ~2-5배 또는 수백 MB 증가. - 영어 lexical 검색이 substring 매칭으로 동작 변경 (token → tokenization/tokenizer 도 hit, recall ↑ / 단어 경계 ↓). - C parser_version code-c-v1 → code-c-v2 (typedef alias 추출 cascade). 같은 file 의 옛 doc/chunks/vector 는 same-workspace_path orphan purge 가 자동 정리. Additive (backwards-compat): - SearchResponse.hint additive field — 한국어 2자 query 등 trigram 비호환 시 안내. - schema.v1.stats.code_lang_chunk_breakdown additive field — chunk 단위 언어별 분포. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
119 lines
4.8 KiB
TOML
119 lines
4.8 KiB
TOML
[workspace]
|
|
resolver = "3"
|
|
members = [
|
|
"crates/kebab-core",
|
|
"crates/kebab-parse-types",
|
|
"crates/kebab-config",
|
|
"crates/kebab-source-fs",
|
|
"crates/kebab-parse-md",
|
|
"crates/kebab-normalize",
|
|
"crates/kebab-chunk",
|
|
"crates/kebab-store-sqlite",
|
|
"crates/kebab-store-vector",
|
|
"crates/kebab-search",
|
|
"crates/kebab-embed",
|
|
"crates/kebab-embed-local",
|
|
"crates/kebab-llm",
|
|
"crates/kebab-llm-local",
|
|
"crates/kebab-rag",
|
|
"crates/kebab-app",
|
|
"crates/kebab-cli",
|
|
"crates/kebab-eval",
|
|
"crates/kebab-parse-image",
|
|
"crates/kebab-parse-pdf",
|
|
"crates/kebab-tui",
|
|
"crates/kebab-mcp",
|
|
"crates/kebab-parse-code",
|
|
]
|
|
|
|
[workspace.package]
|
|
edition = "2024"
|
|
rust-version = "1.85"
|
|
license = "MIT OR Apache-2.0"
|
|
repository = "https://github.com/altair823/kebab"
|
|
version = "0.17.0"
|
|
|
|
[workspace.dependencies]
|
|
anyhow = "1"
|
|
thiserror = "2"
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
# Golden-fixture loader (P5-1, kebab-eval) parses YAML; pinned in the
|
|
# workspace so future eval-adjacent crates share the same major.
|
|
serde_yaml = "0.9"
|
|
time = { version = "0.3", features = ["serde", "macros", "formatting", "parsing"] }
|
|
uuid = { version = "1", features = ["v7", "serde"] }
|
|
blake3 = "1"
|
|
tracing = "0.1"
|
|
# `bundled` ships SQLite source so the workspace doesn't depend on a
|
|
# system libsqlite3 (matches the kebab-store-sqlite feature set).
|
|
rusqlite = { version = "0.32", features = ["bundled"] }
|
|
globset = "0.4"
|
|
tempfile = "3"
|
|
proptest = "1"
|
|
# p9-fb-19: LRU cache for `App::search` results. Bounded capacity
|
|
# from `config.search.cache_capacity` (default 256, ~1.3 MB cap).
|
|
lru = "0.12"
|
|
# fastembed-rs ships ONNX runtime via the `ort-download-binaries` feature
|
|
# in its default set (which also pulls `hf-hub` for first-run model
|
|
# downloads). Pinned to the 4.x line per task p3-2 (current 5.x release
|
|
# remains untested for this workspace).
|
|
fastembed = "4.9"
|
|
# LanceDB embedded vector store (P3-3). 0.23.x pulls arrow / arrow-array /
|
|
# arrow-schema 56.x transitively (via lance 1.0); the kebab-store-vector
|
|
# crate matches that major to share the same Arrow types without a
|
|
# re-export adapter.
|
|
lancedb = { version = "0.23", default-features = false }
|
|
arrow = "56"
|
|
arrow-array = "56"
|
|
arrow-schema = "56"
|
|
tokio = { version = "1", features = ["rt", "macros"] }
|
|
futures = "0.3"
|
|
# Strict citation-marker extraction in kebab-rag (P4-3) needs a single regex
|
|
# pass; pulled into the workspace deps so future crates can share the
|
|
# same major.
|
|
regex = "1"
|
|
# MCP (Model Context Protocol) SDK. server + macros + transport-io provide
|
|
# stdio JSON-RPC transport for `kebab-mcp` (p9-fb-30). schemars feature
|
|
# exposes the derive macro used by tool input schemas.
|
|
rmcp = { version = "1.6", default-features = false, features = ["server", "macros", "transport-io", "schemars"] }
|
|
# Dev-only HTTP mock server for kebab-llm-local Ollama adapter tests. Requires
|
|
# a tokio runtime to host its mock server (the runtime adapter crate stays
|
|
# sync via reqwest::blocking — wiremock is dev-only there).
|
|
wiremock = "0.6"
|
|
base64 = "0.22"
|
|
# Pure-Rust git library for repo metadata detection (kebab-parse-code).
|
|
# No `git` binary required. Default features include thread-safety + most
|
|
# object-reading capabilities needed for HEAD name + commit SHA queries.
|
|
gix = { version = "0.70", default-features = false, features = ["revision"] }
|
|
# Rust source parsing for code ingest (kebab-parse-code, p10-1A-2). The
|
|
# chunker stays tree-sitter-free — AST work is parser-side per design §6.3.
|
|
tree-sitter = "0.26"
|
|
tree-sitter-rust = "0.24"
|
|
# Python / TS / JS grammars for code ingest (kebab-parse-code, p10-1B).
|
|
tree-sitter-python = "0.25.0"
|
|
tree-sitter-typescript = "0.23.2"
|
|
tree-sitter-javascript = "0.25.0"
|
|
# Go grammar for code ingest (kebab-parse-code, p10-1C-Go).
|
|
tree-sitter-go = "0.25.0"
|
|
# JVM family grammars for code ingest (kebab-parse-code, p10-1C-JK).
|
|
tree-sitter-java = "0.23.5"
|
|
tree-sitter-kotlin-ng = "1.1.0" # bare tree-sitter-kotlin requires ts <0.23; -ng uses tree-sitter-language 0.1 (ts 0.26 compat)
|
|
# C/C++ family grammars for code ingest (kebab-parse-code, p10-1D).
|
|
tree-sitter-c = "0.24.2"
|
|
tree-sitter-cpp = "0.23.4"
|
|
|
|
# Disk-footprint trim for dev / test builds. Codegen, opt-level, and
|
|
# behavior are unchanged — only DWARF debug info is reduced (line
|
|
# numbers kept, column numbers dropped) and split into separate
|
|
# `.dwo` files. backtrace stays useful (function + line). release
|
|
# profile is untouched, so CI / `--release` runs are byte-identical
|
|
# to upstream defaults.
|
|
[profile.dev]
|
|
debug = "line-tables-only"
|
|
split-debuginfo = "unpacked"
|
|
|
|
[profile.test]
|
|
debug = "line-tables-only"
|
|
split-debuginfo = "unpacked"
|