Reviewer nit #3: the hand-built fixed_doc() only verified chunker 1:1 mapping. New tests invoke CppAstExtractor against tests/fixtures/sample.cpp and snapshot the real extractor → chunker pipeline (14 blocks emitted covering namespace::chunk::Class, ctor/dtor/operator/template/free-fn convention, glue <top-level> blocks between units). Adds kebab-parse-code as a dev-dep of kebab-chunk (same precedent as kebab-parse-md). Both the existing hand-built test AND the new extractor-driven tests are kept — the former for fast chunker-only validation, the latter for end-to-end regression detection. Added tests: - code_cpp_ast_extractor_snapshot: asserts all 8 named symbol units are present - code_cpp_ast_extractor_chunks_deterministic: chunker output is stable Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
29 lines
1.2 KiB
TOML
29 lines
1.2 KiB
TOML
[package]
|
|
name = "kebab-chunk"
|
|
version = { workspace = true }
|
|
edition = { workspace = true }
|
|
rust-version = { workspace = true }
|
|
license = { workspace = true }
|
|
repository = { workspace = true }
|
|
description = "Chunkers that turn kb-core::CanonicalDocument into kb-core::Chunk batches (§3.5, §4.2, §7.2)"
|
|
|
|
[dependencies]
|
|
kebab-core = { path = "../kebab-core" }
|
|
serde_json_canonicalizer = "0.3"
|
|
blake3 = { workspace = true }
|
|
anyhow = { workspace = true }
|
|
tracing = { workspace = true }
|
|
serde_yaml = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
# kb-parse-md / kb-normalize / kb-parse-code are dev-only — used by the
|
|
# snapshot integration tests to build a CanonicalDocument from fixture files.
|
|
# Forbidden as regular deps per design §8 (chunker consumes CanonicalDocument
|
|
# from kb-core only); `cargo tree -p kb-chunk --depth 1` (default scope,
|
|
# excludes dev-deps) confirms this.
|
|
kebab-parse-md = { path = "../kebab-parse-md" }
|
|
kebab-parse-code = { path = "../kebab-parse-code" }
|
|
kebab-normalize = { path = "../kebab-normalize" }
|
|
serde_json = { workspace = true }
|
|
time = { workspace = true }
|