-
v0.7.0 Stable
released this
2026-05-19 23:41:25 +00:00 | 454 commits to main since this release변경사항 (since v0.5.0)
- #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
- #138 chore: bump version 0.5 → 0.6
- #137 feat(fb-39b): embedding upgrade — multilingual-e5-large default
- #136 feat(fb-39): eval foundation — precision_at_k_chunk metric
- #135 docs(claude): cargo clean routinely between merges
- #134 feat(fb-42): bulk multi-query — kebab search --bulk + mcp__kebab__bulk_search
- #133 chore(handoff): sync release roadmap with shipped state
- #132 feat(fb-40): fact-grounded answer — rag-v2 prompt template
- #131 feat(fb-38): score semantics — score_kind on search_hit.v1 + RRF formula docs
Rust 코드 색인 활성화 —.rs파일이 이제kebab ingest/kebab search/kebab ask의 1급 매체. 머지 commit 으로부터 kebab 자기 자신을 dogfooding 가능.
사용자-가시 surface 변경
kebab ingest:.rs파일이 Markdown / PDF / Image 옆에 추가됨. tree-sitter Rust AST chunker (code-rust-ast-v1) 가 함수 / 메서드 / struct / trait / impl block / macro 단위로 chunk.parser_version = "code-rust-v1",chunker_version = "code-rust-ast-v1".kebab search --json: code chunk hit 의citation은 신규kind = "code"variant (path,line_start,line_end,symbol,lang). SearchHit top-level 에code_lang+repo필드 채워짐 (1A-1 에서 schema 만 추가됐던 두 필드를 실제 backfill).--code-lang/--repo/--media codefilter (1A-1) 가 1A-2 머지 시점부터 실효.kebab schema --json:stats.code_lang_breakdown실제 카운트 채워짐.stats.media_breakdown에"code"카테고리 등장.- wire schema: 모두 additive minor — 기존 consumer 무영향.
Citation::Codevariant 는 1A-1 wire 에 이미 존재했음. [ingest.code]config 절 (1A-1 도입): default 그대로 동작.extra_skip_globs로 사용자 추가 skip 패턴 지정 가능.- MediaType::Code(String) 추가 — 1A 는
"rust"만 활성화. 다른 코드 확장자는 후속 phase.
알려진 동작 (HOTFIXES 2026-05-19)
AST_CHUNK_MAX_LINES = 200은kebab-chunk/src/code_rust_ast_v1.rs모듈 상수.Chunkertrait 이 per-medium config 미노출 → 현재IngestCodeCfg::default().ast_chunk_max_lines와 동일하므로 user-visible 차이 없음. 적합한 해결은 per-medium chunker registry (P+)..rs파일은SourceType::Note로 분류 (kebab-coreSourceType::Codevariant 미존재).--media code/--code-lang rustfilter 는 정상 동작 —MediaType::Code("rust")로 별도 분류됨. 적합한 해결은SourceType::Codeadditive 추가 (후속).
검증 절차
docs/SMOKE.md의 P10-1A-2 절 — 격리된 TempDir 워크스페이스에.rs파일 1개 두고kebab ingest --json/kebab search --code-lang rust --json/kebab schema --json | jq .stats.code_lang_breakdown로 wiring 확인.사전 알림
crates/kebab-eval/tests/runner.rs::runner_lexical_is_deterministic_per_query_payload가 full-suite 첫 실행에서 간헐적으로 실패 (elapsed_ms: 0vs1) 후 isolated 재실행 시 통과 — pre-existing timing flake, 1A-2 변경과 무관 (해당 파일 본 PR 에서 미수정). 후속 정리 권장.Downloads
-
v0.6.0 Stable
released this
2026-05-10 15:03:45 +00:00 | 498 commits to main since this releasev0.6.0 = RAG quality batch. fb-38 + fb-40 + fb-42 + fb-39 + fb-39b 5건 묶음.
신규 surface
kebab search--bulk(fb-42) — stdin ndjson 으로 N query 한 번에 (cap 100). 응답 = stdout per-query ndjson + stderr summary. agent loop 효율.- 응답 hit 의
score_kind필드 (fb-38) —"rrf"(hybrid) /"bm25"(lexical) /"cosine"(vector). top-levelscore의 의미 declarative. agent confidence 오해 방지.
kebab ask- 기본 prompt template
rag-v2(fb-40) — V1 의 4 규칙 + 3 신규: fact 인용 시 verbatim span / 학습 지식 동원 금지 / 근거 모호 시 "확실하지 않다" 명시. user TOMLprompt_template_version = "rag-v1"명시 시 legacy 동작.
kebab eval runprecision_at_k_chunkmetric (fb-39) — P@5, P@10. binary relevance viaexpected_chunk_ids. 분모 = k 고정. lever 적용 (chunk policy / RRF / cross-encoder / embedding) precision 비교용 측정 도구.kebab eval compare가 P@k delta surface — markdown table + JSON deltas.
MCP
mcp__kebab__bulk_search신규 tool (tools/list 7 → 8). N query JSON envelopebulk_search_response.v1(results + summary).mcp__kebab__search응답 안score_kind필드 (fb-38) — agent guidance.mcp__kebab__ask응답 strict (fb-40 rag-v2) — 학습 지식 거부 / "확실하지 않다" 출현.
Embedding
- 기본 모델
multilingual-e5-large(1024 dim, fb-39b) — 이전multilingual-e5-small(384 dim) 대비 한국어 retrieval precision 강화. fastembed 자동 다운로드 (~1.3 GB 첫 실행). user TOMLmodel = "multilingual-e5-small"명시 시 backwards-compat.
Cascade
embedding_version변경 — 모든 chunk 재-embed (fb-23 incremental ingest 자동). 옛 LanceDB table (chunk_embeddings_multilingual-e5-small_384) orphan. 정리:kebab reset --vector-only && kebab ingest.prompt_template_version변경 — 기존 eval_runs frozen, rag-v2 비교는 신규 run.
호환성
- wire 모든 추가 additive minor — 기존 consumer 무영향.
score_kind/bulk_search_*schemas additive (bulk_search_item.v1+bulk_search_response.v1신규).- 기존 user config TOML pinning 그대로 honored — opt-out path.
도그푸딩 가이드
# embedding 업그레이드 (신규 모델 ONNX 다운로드 + 전체 re-embed) kebab reset --vector-only && kebab ingest # bulk multi-query printf '{"query":"a"}\n{"query":"b"}\n' | kebab search --bulk --json # precision 측정 (golden 의 expected_chunk_ids 채워서) kebab eval run # rag-v2 행태 확인 kebab ask "..." --json | jq .answer # "확실하지 않다" 출현 가능의존성
- 신규 dep 없음.
- fastembed 4.9.1 의
MultilingualE5Largeenum variant 활용 (이미 시드).
Downloads
-
v0.5.0 Stable
released this
2026-05-10 08:10:06 +00:00 | 548 commits to main since this release변경사항 (since v0.3.3)
- #130 chore: bump version 0.4 → 0.5
- #129 feat(fb-37): trace + stats — search debug + KB health surface
- #128 chore: sync Cargo.lock for kebab-mcp time dep (fb-36)
- #127 feat(fb-36): search filter args (--media / --ingested-after / --doc-id + 4 existing)
- #126 feat(fb-35): verbatim fetch (chunk / doc / span)
- #125 feat(fb-34): output budget controls
- #124 feat(fb-33): streaming ask (ndjson delta)
- #123 chore: bump version 0.3.3 → 0.4.0
- #122 feat(fb-32): per-hit + per-citation freshness indicators
- #121 docs(skill): MCP-first guidance + CLI as fallback
v0.5.0 은 도그푸딩 피드백 일괄 batch — search/ingest 의 agent 친화 surface 6가지를 한 번에 추가. wire schema 변경은 모두 additive minor (기존 consumer 무영향, schema bump 없음).
신규 surface
kebab search--max-tokens N/--snippet-chars N/--cursor(fb-34) — 응답 크기 budget + pagination. 결과는search_response.v1envelope (기존 baresearch_hit.v1[]대체, 기존 호환 유지).--media md|pdf|image|audio|other/--ingested-after RFC3339/--doc-id ID(fb-36) + 기존 4종 노출 (--tag,--lang,--path-glob,--trust-min).--trace(fb-37) — pre-fusion lex/vec list + RRF union + per-stage timing 을 응답의 optionaltrace필드로 emit. 캐시 우회 (debug intent — fresh run 보장).- search hit 의
stale+indexed_at필드 (fb-32) —config.search.stale_threshold_days기준 stale 판정.
kebab ask--stream(fb-33) — token-by-token answer 를answer_event.v1ndjson 으로 stderr emit. 최종 answer 는 기존answer.v1로 stdout.
kebab fetch(신규 명령, fb-35)kebab fetch chunk <chunk_id> [--context N]— chunk verbatim + context.kebab fetch doc <doc_id>— doc 전체 verbatim.kebab fetch span <doc_id> --line-start N --line-end M— 라인 범위 verbatim.- 응답 schema
fetch_result.v1. PDF/audio span 은error.v1.code = span_not_supported.
kebab schemastats객체 4 신규 필드 (fb-37):media_breakdown(5키 패딩),lang_breakdown(NULL 키는"null"),index_bytes(sqlite + lancedb 디스크 합),stale_doc_count.
MCP
kebab__search- 위 search surface 거울: 7 신규 filter 입력 (fb-36), 3 budget 입력 (fb-34),
trace: bool입력 (fb-37).
TUI Search pane
t키 (fb-37) — TracePopup 모달, lex/vec/rrf 후보 + per-stage timing scroll.
호환성
- wire 모든 변경 additive minor — 기존
search_response.v1/schema.v1consumer 무영향.*.v2cascade 없음. - pre-1.0 minor convention — 0.x.y 의 minor bump 는 surface 추가 누적, breaking change 없음.
SearchOpts/SearchResponse/SearchFilters/IndexStats도메인 type 의 신��� 필드는#[serde(default)]로 옛 JSON deserialize 보존.
도그푸딩 가이드
# Trace 디버그 kebab search "rust async" --trace --json | jq .trace # KB 건강 점검 kebab schema --json | jq .stats # Filter 조합 kebab search "API" --media md --ingested-after 2026-01-01 --json # Verbatim fetch kebab fetch chunk c-abc123 --context 1 # Streaming ask kebab ask "how does X work?" --stream의존성 추가
timeworkspace dep 가kebab-mcp로 확장 (fb-36 RFC3339 파싱).Downloads
-
v0.4.0 Stable
released this
2026-05-09 03:42:43 +00:00 | 620 commits to main since this release변경사항 (since v0.3.2)
- #123 chore: bump version 0.3.3 → 0.4.0
- #122 feat(fb-32): per-hit + per-citation freshness indicators
- #121 docs(skill): MCP-first guidance + CLI as fallback
- #120 fix(progress): one draw per file — drop set_message in TTY AssetStarted
- #119 fix(progress): eliminate duplicate TTY frame per asset
- #118 fix(config): use XDG-standard paths on macOS (prevent DataOnly reset deleting config)
- #116 fix(progress): eliminate duplicate bar frame per asset in TTY mode
- #115 docs(tasks): mark fb-30 + fb-31 merged in INDEX.md
- #114 chore: bump version 0.3.2 → 0.3.3
- #113 feat(fb-26,fb-28): ingest log consistency + --readonly/--quiet flags + schema sync
Downloads
-
v0.3.3 Stable
released this
2026-05-07 14:46:40 +00:00 | 641 commits to main since this release주요 변경사항
- macOS XDG 경로 수정: macOS에서 config/data/cache 경로가 모두
~/Library/Application Support/로 충돌하던 버그 수정. 이제 표준 XDG 경로(~/.config/kebab/,~/.local/share/kebab/,~/.cache/kebab/) 사용.kebab reset --data-only가 config 파일을 삭제하지 않음. - 기존 config 자동 마이그레이션:
~/Library/Application Support/kebab/config.toml존재 시 새 XDG 경로로 자동 복사. - progress bar 중복 줄 수정: TTY 모드에서 파일당 2줄씩 scrollback에 출력되던 버그 수정.
AssetStarted에서set_position()만 호출해 draw를 1회로 제한. - Claude Code skill MCP-first 가이드:
integrations/claude-code/kebab/SKILL.md가 MCP tool catalog (6 tools) 를 primary surface로 명시. recipe들이mcp__kebab__*호출로 정렬되고 CLI는 fallback section 으로 분리.
Downloads
- macOS XDG 경로 수정: macOS에서 config/data/cache 경로가 모두
-
v0.3.2 Stable
released this
2026-05-07 10:01:33 +00:00 | 666 commits to main since this release변경사항 (since v0.3.0)
- #112 chore: bump version 0.3.1 → 0.3.2
- #111 feat(fb-31): single-file / stdin ingest — agent on-demand 저장
- #110 docs(fb-31): single-file / stdin ingest spec + implementation plan
- #109 chore: bump version 0.3.0 → 0.3.1 (fb-30 release)
- #108 feat(fb-30): MCP server (stdio) — agent integration MVP
- #107 docs(fb-30): MCP server (stdio) spec + implementation plan
- #106 docs: defer fb-29 HTTP daemon + fb-30 stdio-only
Downloads
-
v0.3.1 Stable
released this
2026-05-07 08:08:17 +00:00 | 688 commits to main since this release변경사항 (since v0.2.1)
- #109 chore: bump version 0.3.0 → 0.3.1 (fb-30 release)
- #108 feat(fb-30): MCP server (stdio) — agent integration MVP
- #107 docs(fb-30): MCP server (stdio) spec + implementation plan
- #106 docs: defer fb-29 HTTP daemon + fb-30 stdio-only
- #105 chore: bump version 0.2.1 → 0.3.0 (fb-27 release)
- #104 feat(fb-27): introspection (kebab schema) + structured error wire
- #103 feat(integrations): ship Claude Code skill for kebab
agent integration MVP — fb-30 (MCP server stdio) 머지 후 patch cut. 신규:kebab mcpsubcommand + new cratekebab-mcp(rmcp 1.6 SDK) + 4 read-only tool (search/ask/schema/doctor).schema.v1.capabilities.mcp_servertrue. backwards-compat 완전 (모든 기존 명령 동작 무영향). Claude Code / Cursor / OpenAI Agents 등 MCP-aware host 가 native 사용 —~/.claude/mcp.json에{"command":"kebab","args":["mcp"]}등록.
Downloads
-
v0.3.0 Stable
released this
2026-05-07 04:49:48 +00:00 | 713 commits to main since this release변경사항 (since v0.1.0)
- #105 chore: bump version 0.2.1 → 0.3.0 (fb-27 release)
- #104 feat(fb-27): introspection (kebab schema) + structured error wire
- #103 feat(integrations): ship Claude Code skill for kebab
- #102 chore: bump workspace version 0.2.0 → 0.2.1 (p9-fb-25 release)
- #101 fix(kebab-config): p9-fb-25 — workspace.include 제거 + 지원 형식 가시성
- #100 chore(CLAUDE.md): release / binary version bump 규약 추가
- #99 chore: bump workspace version 0.1.0 → 0.2.0
agent foundation MVP — fb-27 (introspection + structured error wire) 머지 후 minor cut. 신규:kebab schemaCLI +schema.v1/error.v1wire. exit code 0/1/2/3 unchanged. 후속 fb-26/28/29/30/31 누적 시 0.3.x patch / 0.4.0 minor 로 cut.
Downloads
-
released this
2026-05-05 12:52:30 +00:00 | 739 commits to main since this releasekebab v0.2.1
p9-fb-25 도그푸딩 follow-up release. config 단순화 + 지원 형식 가시성.
변경사항 (since v0.1.0)
Config
workspace.include필드 제거. denylist-only 모델 정착. 옛 config 의include = [...]는 silently 무시 + 첫 load 시 단발 deprecation warning.- 지원 형식 (Markdown / 이미지 / PDF) 은 extractor 가 자동 결정 — config 에 명시 불가. 사용자가 헷갈릴 일 없음.
Ingest 가시성
IngestItem.warnings가 Skipped 시 사유 채움:"unsupported media type: .docx"(확장자 있음)"unsupported media type: <no-ext>"(확장자 없음, sentinel)"kb:// URI not yet supported"(kb:// URI)
IngestReport.skipped_by_extension: BTreeMap<String, u32>신규. 확장자별 skip 카운트. wire schema additive (ingest_report.v1호환 유지).- CLI summary + TUI status_line 에 breakdown:
"5 skipped: 3 docx, 1 txt, 1 epub"형식. desc 정렬 (count) + ties by key alphabetic. kebab init헤더 주석 + README 에 지원 형식 (md/png .jpg .jpeg/pdf) 명시.
호환성
- caller breaking 없음. 모든 surface 변경 backward-compat.
- 옛 config (
include = [...]) 는 silently 동작. 다음 release 까지 deprecation 유지.
진행
- 730 워크스페이스 테스트 무수정 통과.
- 신규 ~6 테스트 (legacy include 무시 / WorkspaceCfg destructure / skip_reason 통합 / init_template 헤더 / status_line breakdown × 2 / render_skipped_breakdown unit).
참조
- HOTFIXES
2026-05-05 — p9-fb-25— live deviation source of truth. - 도그푸딩 피드백 + spec / plan:
tasks/p9/p9-fb-25-config-include-removal.md.
다음
- 새 extractor (txt / docx / epub) 도입은 별 spec.
kebab doctor가 unsupported 파일 카운트 분석은 후속 task.
Downloads
-
kebab v0.1.0 — first release Stable
released this
2026-05-05 02:26:29 +00:00 | 758 commits to main since this releasekebab v0.1.0
첫 공식 릴리즈. Single-user local-first knowledge base + RAG, 모든 inference local (Ollama + fastembed + whisper.cpp).
주요 surface
CLI
kebab init— XDG 기본 경로에~/.config/kebab/config.toml생성.kebab ingest [<path>] [--force-reingest]— workspace 색인. 두 번째 ingest 부터 변하지 않은 doc 자동 skip (blake3 + parser/chunker/embedding version cascade).--force-reingest로 우회.kebab search "<query>" [--mode lexical|vector|hybrid]— FTS5 / Lance / hybrid retrieval.kebab ask "<query>" [--show-citations] [--session <id>]— RAG 답변 + 근거 인용.--session <id>로 multi-turn.kebab list docs/kebab inspect doc|chunk <id>— corpus inspection.kebab doctor— 설정 / 모델 / DB health check.kebab reset [--all|--data-only|--vector-only|--config-only] [--yes]— XDG 데이터 wipe.kebab eval run / compare— golden query 회귀 측정.
TUI (
kebab tui)- 4 pane (Library / Search / Ask / Inspect) + vim-style mode (Normal / Insert).
- Library: 컬럼 헤더 (TITLE / TAGS / UPDATED / CHUNKS) + display-width 정렬 (Hangul / CJK 안전).
- Search: 200 ms debounce + background worker + stale 결과 자동 폐기 (generation counter).
- Ask: multi-turn transcript, markdown 렌더, follow-tail auto-scroll.
- 입력 cursor:
← / → / Home / End / Delete로 mid-string 편집 (모든 input pane). - Page scroll:
PgUp / PgDn(Ask 트랜스크립트 + Inspect, 10 줄 step). - Status bar (항상 노출):
kebab v<version> │ <pane> │ <docs> docs │ <state>— streaming / searching / indexing / idle cascade. ingest progress 흡수. - Cheatsheet popup:
F1토글, 모든 pane 의 키바인딩 + global toggle 표.
저장 / 격리
- SQLite V001~V006 migration. V006 = incremental ingest (
last_chunker_version/last_embedding_versionper-doc). - LanceDB vector store, fastembed embedder.
- Wire schema v1 (
ingest_report/search_hit/answer/doctor/ingest_progress).
Phase 진행
P0 ~ P5 직렬 + P6 ~ P9 P5 이후 병렬. 본 릴리즈는 P9 (UI) 의 도그푸딩 사이클 1회 완성 + post-merge follow-up (p9-fb-21 ~ p9-fb-24) 포함.
도그푸딩 follow-up 하이라이트
- p9-fb-22 — TUI 입력 cursor mid-string 편집 + Ask follow-tail auto-scroll. Gitea #94, #95.
- p9-fb-23 — Incremental ingest (변하지 않은 doc skip).
- p9-fb-24 — TUI status/key bar + Library 컬럼 헤더 + Ask/Inspect PgUp/PgDn.
다음
- P9-5 Tauri desktop 진행 중.
- 후속 도그푸딩 사이클.
참조
README.md— quick start + 명령 표.HANDOFF.md— phase 진행도 + 다음 task 후보.docs/ARCHITECTURE.md— 내부 구조 + 의존 그래프.docs/superpowers/specs/2026-04-27-kebab-final-form-design.md— frozen design contract.tasks/HOTFIXES.md— post-merge deviation 로그.
Downloads