• v0.8.0 68ada396f3

    v0.8.0 Stable

    altair823 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_version code-{python,ts,js}-v1.
    • kebab search --json: code chunk hit 의 citation.lang"python" / "typescript" / "javascript" 일 수 있음. SearchHit top-level code_lang + repo 자동 채움. --code-lang python / --code-lang typescript / --code-lang javascript filter (1A-1 도입) 가 이제 실효.
    • kebab schema --json: stats.code_lang_breakdownpython / typescript / javascript 카운트 등장. stats.media_breakdown"code" 카테고리에 합산.
    • Symbol path 규약: workspace 경로 → module path 변환 (design §3.4 충실):
      • Python: kebab_eval/metrics.pydef compute_mrr()kebab_eval.metrics.compute_mrr. pkg/__init__.pypkg. 자동 strip prefix: src/, lib/, crates/<name>/src/. tests/ / examples/ / benches/ 는 의도적으로 보존 (테스트/예제 namespace 유지).
      • TS/JS: src/Foo.ts 의 method barsrc/Foo.Foo.bar. export default function ()<prefix>.default. TSX 는 LANGUAGE_TSX grammar 자동 선택.
    • wire schema: 모두 additive minor — 기존 consumer 무영향. wire 의 Citation::Code variant 는 1A-1 부터 존재. SearchHit code_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: 단일 LANGUAGE grammar 로 .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_declaration unwrap 검토.
    • 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