• v0.10.0 Stable

    altair823 released this 2026-05-20 07:13:00 +00:00 | 544 commits to main since this release

    Minor release — filesystem deletion 자동 reconcile (dogfooding follow-up).

    사용자-가시 변경

    • rm a.md 후 kebab ingest 시 stored doc/chunks/embeddings 가 자동 purge. 이전: 그대로 남아 search 에 ghost citation. 이후: walker scan 직후 sweep 단계에서 fs::try_exists() 확인 → file 부재 시 SQLite cascade delete + (copied 모드면) on-disk storage 파일 best-effort 정리 + vector store delete_by_chunk_ids.
    • IngestReport.purged_deleted_files: u32 새 wire 필드 (#[serde(default)], additive minor).
    • CLI summary 에 purged N 표기 (count > 0 일 때만).

    안전 보장 (사용자 데이터 보호)

    • config.workspace.include 좁아짐으로 walker scope 가 좁아진 경우 → purge 안 함 (file 이 fs 에 살아있으므로). 사용자 명시 kebab reset 명령 필요.
    • transient FS error (EACCES / NFS hiccup / 권한 변경) 시 → 보수적으로 "file 존재" 가정 → purge 안 함.
    • Twin-file 보호: 동일 content 다른 path 의 두 파일 중 하나 삭제 시 → 해당 doc 만 purge, 공유 assets row 는 다른 doc 이 참조하면 보존 (PR #146 invariant 유지).

    변경 위치

    • crates/kebab-core::DocumentStore::all_workspace_paths trait method.
    • crates/kebab-store-sqlite::SqliteStore::all_workspace_paths 구현.
    • crates/kebab-store-sqlite::purge_deleted_workspace_path 새 fn (twin-file COUNT-check 포함).
    • crates/kebab-app::sweep_deleted_files (walker scan 직후 호출).
    • crates/kebab-core::IngestReport.purged_deleted_files 필드.
    • crates/kebab-cli::main.rs summary 출력.
    • 2 회귀 통합 테스트 (file_deletion_auto_purge + include_scope_narrowing_does_not_purge).
    • snapshot baseline 갱신.

    영향

    • wire schema additive (back-compat).
    • frozen design 변경 없음.
    • 기존 색인 데이터 invalidation 없음.

    남은 dogfood 후보

    • Ranking 편향 (본문 vs 테스트 코드 우선) — design brainstorm 필요.
    • Asset table workspace_path flip-flop (semantic minor, user-impact 없음).
    • Config scope 좁아짐 시 stored orphan reconcile (kebab reset --orphans 같은 explicit 명령) — 후속.
    Downloads
  • v0.9.0 acf8cf3be2

    v0.9.0 Stable

    altair823 released this 2026-05-20 06:29:29 +00:00 | 549 commits to main since this release

    Minor release — 확장자 routing 확장 (dogfooding issue #6).

    사용자-가시 변경

    • .mts (ESM TypeScript) / .cts (CommonJS TypeScript) 가 색인됨. LANGUAGE_TYPESCRIPT grammar 가 처리. code-ts-ast-v1 chunker, symbol path 도 normal TS와 동일 (예: src/Foo.Foo.bar).
    • .mdx (Markdown + JSX) 가 색인됨. md parser 가 JSX islands 를 raw passthrough 로 처리 (pulldown-cmark 의 HTML event drop). chunker md-heading-v1.
    • kebab schema --json | jq .stats.code_lang_breakdown 에 typescript 카운트가 늘어남 (.ts/.tsx 와 합산).

    변경 위치

    • crates/kebab-source-fs/src/media.rs: mts/cts → typescript, mdx → markdown 라우팅 arms.
    • crates/kebab-parse-code/src/lang.rs: code_lang_for_path 매치 + module_path_for_tsjs ext strip 확장.
    • crates/kebab-parse-code/src/typescript.rs: select_grammar doc 갱신 (로직 변경 없음 — non-tsx 는 이미 LANGUAGE_TYPESCRIPT 로 라우팅).
    • 회귀 테스트 2건 추가, 기존 테스트 케이스 2개 확장.

    영향 없음

    • wire schema / frozen design 변경 없음.
    • 기존 색인 데이터 invalidation 없음 — 다음 ingest 시 새 파일만 추가됨.

    남은 dogfood 후보

    • Ranking 편향 (본문 vs 테스트 코드 우선): BM25 + path weighting 검토 필요 — 별도 후속.
    • Asset table workspace_path flip-flop (semantic minor, user-impact 없음).
    Downloads
  • v0.8.3 5a90940f1c

    v0.8.3 Stable

    altair823 released this 2026-05-20 06:20:37 +00:00 | 552 commits to main since this release

    Bug fix release — multi-root dogfooding 의 3번째 발견 production bug fix.

    사용자-가시 변경

    • Idempotent re-ingest 가 twin files (동일 content / 다른 path — 예: 빈 __init__.py ×3, AGENTS.md ↔ CLAUDE.md 동일 content, 중복 로고 PDF/JPG) 에 대해 정확히 Unchanged 반환. 이전: 매 ingest 마다 Updated 로 잘못 분류.

    진단 요약

    assets.asset_id (= blake3 content hash) 가 PRIMARY KEY 라 동일 content 두 파일이 한 asset row 공유. UPSERT ON CONFLICT(asset_id) DO UPDATE SET workspace_path = excluded.workspace_path 가 매번 path 를 덮어씀 → get_asset_by_workspace_path(path) 가 잘못된/None 반환.

    Fix

    try_skip_unchanged 를 document-centric lookup 으로 전환. documents.workspace_path 는 V001 부터 이미 UNIQUE, id_for_doc(path, asset_id, parser_version) 이 path 포함이라 twin files 각자 별도 doc row 안정. Schema migration 불필요.

    변경 위치

    • crates/kebab-core/src/traits.rs: DocumentStore::get_document_by_workspace_path trait method 추가
    • crates/kebab-store-sqlite/src/documents.rs: 구현 (기존 get_document 의 SELECT + row 변환 재사용)
    • crates/kebab-app/src/lib.rs::try_skip_unchanged: document-side lookup + explicit parser_version 비교
    • crates/kebab-app/tests/twin_files_idempotent.rs: 회귀 통합 테스트

    영향 없음

    • wire schema 변경 없음.
    • frozen design 변경 없음.
    • 데이터 invalidation 없음.

    남은 minor issue

    • assets.workspace_path 가 twin files 사이 flip-flop — try_skip_unchanged 는 이제 무관하지만 asset row 의 path semantic 모호. 별도 follow-up cleanup PR 가치 (선택).
    Downloads
  • v0.8.2 08fb743598

    v0.8.2 Stable

    altair823 released this 2026-05-20 05:20:50 +00:00 | 556 commits to main since this release

    Bug fix release — multi-root dogfooding (kebab-docs + httpx + zod + lodash) 으로 발견된 1A-1/1A-2 origin 누락 surface 복원.

    사용자-가시 변경

    • kebab schema --json | jq .stats.repo_breakdown 가 실제 채워짐. 이전: 항상 {}. 이후: metadata.repo set 된 doc 들의 repo→count 매핑 (e.g. {"httpx": 60, "zod": 401, "lodash": 50}).
    • workspace.include config glob 이 walker 에서 실제 enforce. 이전: 무시 → 모든 파일 색인. 이후: allow-list (empty=모두, non-empty=매치 필요) + exclude AND.

    변경 위치

    • crates/kebab-store-sqlite/src/store.rs: repo_breakdown() query (Task 9 의 code_lang_breakdown 패턴 mirror).
    • crates/kebab-app/src/schema.rs: BTreeMap::new() placeholder → store.repo_breakdown()?.
    • crates/kebab-source-fs/src/walker.rs: WalkOverrides.include + build_include_globset() + per-file allow-list 검사.
    • crates/kebab-source-fs/src/connector.rs: 잘못된 안내 log_scope_include_warning 삭제 + &scope.include 전달.
    • 회귀 테스트 4건 추가.

    영향 없음

    • wire schema 변경 없음.
    • frozen design 변경 없음.
    • 데이터 invalidation 없음.

    남은 dogfood 항목

    asset deduplication ⊥ workspace_path uniqueness — 동일 content twin files (e.g. 빈 __init__.py) 에서 idempotent re-ingest 깨짐. V005 schema migration 필요한 별도 후속 PR 예정.

    Downloads
  • v0.8.1 16dc02cfa2

    v0.8.1 Stable

    altair823 released this 2026-05-20 03:35:38 +00:00 | 560 commits to main since this release

    Bug fix release — p10-1A-1 (PR #139) 이후 잠복했던 --code-lang / --repo filter 무시 버그 수정. p10-1B (PR #142) 머지 후 httpx + zod + lodash dogfooding 으로 표면화.

    사용자-가시 변경

    • kebab search --code-lang LANG / --repo NAME 이 실제로 filter 적용. 이전: filter 무시 → 모든 doc (markdown / pdf / image 섞임). 이후: 지정된 code_lang / repo 의 chunk 만 반환.
    • SearchHit.code_lang 과 SearchHit.repo 가 filter-only-code-hits 일 때 정상 populated (이전엔 markdown hit 포함되며 backfill 미스로 None).
    • citation.lang / citation.symbol 이 design §3.4 형식 (Python dotted / TS·JS slash-style) 그대로 반환.

    변경 위치

    • crates/kebab-search/src/lexical.rs — FTS SQL 에 json_extract(d.metadata_json, '$.code_lang') / '$.repo' IN-list filter 추가.
    • crates/kebab-store-sqlite/src/filters.rs — filter_chunks 에 동일 filter 추가 (vector retriever 가 post-filter 로 사용).
    • 회귀 테스트 4건 추가.

    영향 없음

    • wire schema 변경 없음.
    • frozen design 변경 없음.
    • 기존 데이터 invalidation 없음 — 동일 doc / chunk / metadata, SQL filter 만 정상화.
    Downloads
  • v0.8.0 68ada396f3

    v0.8.0 Stable

    altair823 released this 2026-05-20 02:31:53 +00:00 | 563 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_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 의 method bar → src/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
  • v0.7.0 73e5b359d8

    v0.7.0 Stable

    altair823 released this 2026-05-19 23:41:25 +00:00 | 586 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 code filter (1A-1) 가 1A-2 머지 시점부터 실효.
    • kebab schema --json: stats.code_lang_breakdown 실제 카운트 채워짐. stats.media_breakdown 에 "code" 카테고리 등장.
    • wire schema: 모두 additive minor — 기존 consumer 무영향. Citation::Code variant 는 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 모듈 상수. Chunker trait 이 per-medium config 미노출 → 현재 IngestCodeCfg::default().ast_chunk_max_lines 와 동일하므로 user-visible 차이 없음. 적합한 해결은 per-medium chunker registry (P+).
    • .rs 파일은 SourceType::Note 로 분류 (kebab-core SourceType::Code variant 미존재). --media code / --code-lang rust filter 는 정상 동작 — MediaType::Code("rust") 로 별도 분류됨. 적합한 해결은 SourceType::Code additive 추가 (후속).

    검증 절차

    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: 0 vs 1) 후 isolated 재실행 시 통과 — pre-existing timing flake, 1A-2 변경과 무관 (해당 파일 본 PR 에서 미수정). 후속 정리 권장.

    Downloads
  • v0.6.0 72798bd3ff

    v0.6.0 Stable

    altair823 released this 2026-05-10 15:03:45 +00:00 | 630 commits to main since this release

    v0.6.0 = RAG quality batch. fb-38 + fb-40 + fb-42 + fb-39 + fb-39b 5건 묶음.

    신규 surface

    • --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-level score 의 의미 declarative. agent confidence 오해 방지.

    kebab ask

    • 기본 prompt template rag-v2 (fb-40) — V1 의 4 규칙 + 3 신규: fact 인용 시 verbatim span / 학습 지식 동원 금지 / 근거 모호 시 "확실하지 않다" 명시. user TOML prompt_template_version = "rag-v1" 명시 시 legacy 동작.

    kebab eval run

    • precision_at_k_chunk metric (fb-39) — P@5, P@10. binary relevance via expected_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 envelope bulk_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 TOML model = "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 의 MultilingualE5Large enum variant 활용 (이미 시드).
    Downloads
  • v0.5.0 cf3acfc136

    v0.5.0 Stable

    altair823 released this 2026-05-10 08:10:06 +00:00 | 680 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

    • --max-tokens N / --snippet-chars N / --cursor (fb-34) — 응답 크기 budget + pagination. 결과는 search_response.v1 envelope (기존 bare search_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 을 응답의 optional trace 필드로 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.v1 ndjson 으로 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 schema

    • stats 객체 4 신규 필드 (fb-37): media_breakdown (5키 패딩), lang_breakdown (NULL 키는 "null"), index_bytes (sqlite + lancedb 디스크 합), stale_doc_count.
    • 위 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.v1 consumer 무영향. *.v2 cascade 없음.
    • 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
    

    의존성 추가

    time workspace dep 가 kebab-mcp 로 확장 (fb-36 RFC3339 파싱).

    Downloads
  • v0.4.0 877ad18f34

    v0.4.0 Stable

    altair823 released this 2026-05-09 03:42:43 +00:00 | 752 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