feat: v0.17.0 PR-C — code_lang_chunk_breakdown additive wire field #161
Reference in New Issue
Block a user
Delete Branch "feat/code-lang-chunk-breakdown"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
요약
v0.17.0 release 의 세 번째 PR (PR-A = 한국어 trigram tokenizer / PR-B = C typedef alias unit 과 동행). HOTFIXES 2026-05-22 의 "
code_lang_breakdownchunk granularity" LOW 항목 closure.schema.v1.stats에 chunk 수 집계code_lang_chunk_breakdown신규 필드 추가 — 기존code_lang_breakdown(doc 수) 와 sister metric. 한 PDF spec → 200 chunks, 한 Rust file → 5 chunks 둘 다1 doc로만 보이던 한계 해소. additive 변경 — wire breaking 아님,schema_versionbump 불필요.설계: docs/superpowers/specs/2026-05-22-korean-trigram-tokenizer-design.md §4
계획: docs/superpowers/plans/2026-05-22-korean-trigram-tokenizer.md PR-C
변경 요약
crates/kebab-store-sqlite/src/store.rs::code_lang_chunk_breakdown()—chunks INNER JOIN documents후json_extract(d.metadata_json, '$.code_lang')GROUP BY,COUNT(c.chunk_id). NULL 키 skip.BTreeMap<String, u32>반환 (기존code_lang_breakdown와 동일 shape).crates/kebab-app/src/schema.rs::Stats.code_lang_chunk_breakdownadditive 필드 +collect_statsbuilder 에서 신규 store 호출.docs/wire-schema/v1/schema.schema.json에 신규 필드 명세 추가 + Gemini round 2 권고 반영 — 기존code_lang_breakdown/repo_breakdowndescription 의 "code chunk count" 오기재를 "doc count" 로 정정 (실제 구현은 doc 수). 신규 필드만 "chunk count" 로 명시 → 사용자가 두 metric 의 의미 차이를 schema 만 보고도 구분 가능.사용자 가시 영향
kebab schema --json출력에 신규 키code_lang_chunk_breakdown등장.schematool 도 동일.검증
code_lang_chunk_breakdown_counts_chunks_not_docs(1 rust doc + 3 chunks →rust=3chunks; 동일 fixture 의 doc-count helper 는rust=1그대로 — 두 metric 차이 명확).stats_includes_code_lang_and_repo_breakdown_fields확장 — 신규 필드 존재 + 빈 BTreeMap →{}object 검증.cargo test --workspace --no-fail-fast -j 1+cargo clippy --workspace --all-targets -- -D warnings통과.시험 항목 (Test Plan)
kebab schema --json | jq '.stats | {code_lang_breakdown, code_lang_chunk_breakdown}'→ doc count 와 chunk count 가 명확히 다른 값.{}인지.ajv-cli) 로schema.v1응답 검증 — 신규 필드 통과.Assisted-by: Claude Code
closure of HOTFIXES 2026-05-22 "code_lang_breakdown chunk granularity" LOW. Chunk-level companion of the existing doc-count metric. - crates/kebab-store-sqlite/src/store.rs: code_lang_chunk_breakdown() method. chunks INNER JOIN documents → COUNT(c.chunk_id) GROUP BY metadata_json.code_lang, NULL skipped. BTreeMap<String, u32>. + lib unit test code_lang_chunk_breakdown_counts_chunks_not_docs (1 rust doc + 3 chunks → rust=3 chunks vs rust=1 doc). - crates/kebab-app/src/schema.rs: Stats.code_lang_chunk_breakdown additive field + collect_stats builder. tests_stats_ext 의 stats_includes_code_lang_and_repo_breakdown_fields 가 신규 필드도 검증. - docs/wire-schema/v1/schema.schema.json: 신규 additive 필드 명세 + 기존 code_lang_breakdown / repo_breakdown description 정정 ("code chunk count" → "doc count", Gemini round 2 권고). - tasks/HOTFIXES.md: 2026-05-24 PR-C closure entry. wire additive, schema_version bump 불필요. v0.16.x 호출 호환. cargo test --workspace --no-fail-fast -j 1 + clippy 통과. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>8cfb8f9d87to13a3361ba2