-
v0.8.0 Stable
released this
2026-05-20 02:31:53 +00:00 | 431 commits to main since this release변경사항 (since v0.6.0)
- #143 fix(p10-1b): apply round-1 lang.rs doc + tests/ test case missed in
4503b5b - #142 feat(p10-1B): Python + TS/JS AST chunkers — tree-sitter-{python,typescript,javascript} 코드 색인 활성화
- #141 test(eval): normalize elapsed_ms before determinism comparison (flake fix)
- #140 feat(p10-1A-2): Rust AST chunker — tree-sitter-rust 코드 색인 활성화
- #139 feat(p10-1a-1): code ingest framework — wire schema + parse-code crate + filter flags
Python / TypeScript / JavaScript 코드 색인 활성화 — 1A-2 가 깐 Rust 인프라 위에 3 언어 AST extractor + chunker 추가. 머지 commit 부터 Python / TS / JS 프로젝트도 dogfooding 가능.
사용자-가시 surface 변경
kebab ingest:.py/.pyi/.ts/.tsx/.js/.mjs/.cjs/.jsx파일이 새로 지원. 언어별 tree-sitter AST chunker (code-python-ast-v1/code-ts-ast-v1/code-js-ast-v1) 가 함수 / 클래스 / 메서드 / interface / type alias / decorator-folded unit 단위로 chunk. parser_versioncode-{python,ts,js}-v1.kebab search --json: code chunk hit 의citation.lang이"python"/"typescript"/"javascript"일 수 있음. SearchHit top-levelcode_lang+repo자동 채움.--code-lang python/--code-lang typescript/--code-lang javascriptfilter (1A-1 도입) 가 이제 실효.kebab schema --json:stats.code_lang_breakdown에python/typescript/javascript카운트 등장.stats.media_breakdown의"code"카테고리에 합산.- Symbol path 규약: workspace 경로 → module path 변환 (design §3.4 충실):
- Python:
kebab_eval/metrics.py의def compute_mrr()→kebab_eval.metrics.compute_mrr.pkg/__init__.py→pkg. 자동 strip prefix:src/,lib/,crates/<name>/src/.tests//examples//benches/는 의도적으로 보존 (테스트/예제 namespace 유지). - TS/JS:
src/Foo.ts의 methodbar→src/Foo.Foo.bar.export default function ()→<prefix>.default. TSX 는LANGUAGE_TSXgrammar 자동 선택.
- Python:
- wire schema: 모두 additive minor — 기존 consumer 무영향. wire 의
Citation::Codevariant 는 1A-1 부터 존재. SearchHitcode_lang/repo는 1A-1 추가 + 1A-2 (Rust) / 1B (Python/TS/JS) 부터 실제 채워짐.
동결된 설계 결정
- tree-sitter 위치 = parser (
kebab-parse-code), chunker 아님 (design §6.3). - TypeScript:
LANGUAGE_TYPESCRIPT(.ts) /LANGUAGE_TSX(.tsx) 두 grammar, 단일 chunker. - JavaScript: 단일
LANGUAGEgrammar 로.js/.mjs/.cjs/.jsx모두 처리. - App dispatch 일반화:
ingest_one_code_asset(code_lang: &str)가 4-arm match 로 lang 별 Extractor + Chunker 선택. Rust 동작 byte-identical 보존.
알려진 동��� (HOTFIXES 2026-05-20, 3 항목)
module_path_for_python/module_path_for_tsjs가 path-sanitize 안 함 (특수문자 / 공백 그대로 prefix 에 포함). 후속 phase 에서 NFKC + 사용금지 문자 변환 검토.- TS/JS expression-level 함수 (arrow fn, function expression assigned to const) 는
<top-level>glue 로 처리. 후속 phase 에서lexical_declarationunwrap 검토. - Rust 1A-2 의 symbol path 는 file-scope nesting 만 (workspace prefix 없음) — 1B 와 비일관. 1A retrofit 은 사용자 명시 요청 시 (chunker_version bump + reindex cascade).
검증 절차
docs/SMOKE.md의 P10-1B 절 — 격리된 TempDir 워크스페이스에.py/.ts/.js파일 1개씩 두고 ingest / search / schema 로 wiring 확인.Downloads
- #143 fix(p10-1b): apply round-1 lang.rs doc + tests/ test case missed in