Releases: cocoindex-io/cocoindex
Releases · cocoindex-io/cocoindex
v1.0.13
What's Changed
- Enhancement of code match
- fix(code_match): bare keywords, anchored regex matchers, fragment ranges by @georgeh0 in #2153
- test(code_match): cross-check the prefilter on every match test (+ fix it caught) by @georgeh0 in #2154
- perf(code_match): prune the child-run scan by the trailing literal token by @georgeh0 in #2155
- perf(code_match): fold child-run tolerance into one DP per candidate (O(N·k)) by @georgeh0 in #2156
- refactor(code_match): drop the now-redundant leading/trailing-token prune by @georgeh0 in #2157
- feat(code_match): report all non-overlapping fragment matches per node by @georgeh0 in #2158
- perf(py): release the GIL across the code-matcher entry points by @georgeh0 in #2159
- feat(code_match): restrict
\{{ ... \}}containment to a single node by @georgeh0 in #2163 - refactor(code_match): migrate to locked symmetric pattern syntax by @georgeh0 in #2164
- test(code_match): cover regex matching against a string literal by @georgeh0 in #2165
- feat(code_match): support
+(one-or-more) quantifier and\+short form by @georgeh0 in #2166 - feat(code_match): honor a regex on a run (
\(NAME:/re/*\)) by @georgeh0 in #2168 - fix(code_match): don't panic on a zero-width run match by @georgeh0 in #2169
- code_match: operator, containment-perf, delimiter fixes + harness by @georgeh0 in #2176
- test(code_match): containment INNER trailing-delimiter tolerance by @georgeh0 in #2178
- fix(code_match): single-node terms match anonymous leaves (keywords/ops) by @georgeh0 in #2194
- fix(code_match): containment INNER fragment match + end-position panic by @georgeh0 in #2171
- test(surrealdb): skip DB tests when no server is reachable by @georgeh0 in #2173
- Examples / docs
- feat(docs): improve docs CI with proper triggers and build verification by @dashitongzhi in #2009
- docs: source design tokens from @cocoindex/brand by @badmonster0 in #2167
- docs: consume @cocoindex/brand v0.2.0 shared UI layer by @badmonster0 in #2172
- docs: consume @cocoindex/brand v0.2.1 (chrome + interactive system + shared components) by @badmonster0 in #2174
- docs(examples): Meeting Notes → Knowledge Graph walkthrough by @badmonster0 in #2179
- docs(examples): CSV → Kafka walkthrough by @badmonster0 in #2180
- docs(examples): Semantic Search over PDFs walkthrough by @badmonster0 in #2181
- docs(examples): Search Images by Text walkthrough by @badmonster0 in #2183
- docs: consistent buttons + chips on @cocoindex/brand v0.2.4 by @badmonster0 in #2184
- docs(examples): add 17 example walkthroughs (10 full + 7 variants) by @badmonster0 in #2185
- docs(examples): dedup boilerplate from meta descriptions by @badmonster0 in #2187
- examples: port face_recognition to v1 + walkthrough by @badmonster0 in #2186
- docs: move all docs + examples styling into @cocoindex/brand by @badmonster0 in #2188
- Port 5 examples from v0 to v1 (+ Doris connector fix) by @badmonster0 in #2189
- docs(examples): improve agent followability of example walkthroughs by @badmonster0 in #2190
- fix: unwrap PEP 695 type aliases in analyze_type_info (numpy 2.5 NDArray) by @georgeh0 in #2193
Full Changelog: v1.0.12...v1.0.13
v1.0.12
What's Changed
- Feat: Cocoindex show full fledged inspection tool for debugging by @prithvi-moonshot in #1920
- LanceDB improvements
- feat: Add Valkey vector store target connector by @daric93 in #2027
- Code AST matching functionality
- feat(code_match): structural code-search crate by @georgeh0 in #2133
- feat(code_match): escape sigil + anonymous regex matcher by @georgeh0 in #2134
- feat(code_match): 16 more languages (chunk-splitter parity) by @georgeh0 in #2135
- feat(code_match): context-sensitive lexer for HTML/XML by @georgeh0 in #2136
- feat(code_match): per-language literal tokenizers + correct string escaping by @georgeh0 in #2137
- refactor(code_match): require an explicit tokenizer profile per language by @georgeh0 in #2138
- feat(py): CodeAst — reuse one parse for matching + splitting by @georgeh0 in #2139
- fix(code_match): dedupe leaf-equivalent wrapper matches by @georgeh0 in #2140
- test(code_match): cover structural matcher regressions by @georgeh0 in #2141
- docs(code_match): explain why PatternItem Token vs Str stay distinct by @georgeh0 in #2143
- perf(code_match): carry node kind as &'static str end to end by @georgeh0 in #2144
- feat(code_match): containment matcher
\{{ INNER \}}by @georgeh0 in #2145 - perf(code_ast): memoize byte→position index, drop per-query full scan by @georgeh0 in #2146
- feat(code_match): prefilter — required-content extraction + index-free scan by @georgeh0 in #2147
- feat(code_match): index_terms — source-side extraction for prefilter indexes by @georgeh0 in #2148
- feat(code_match): matches_prefiltered + index_terms_in_tree by @georgeh0 in #2149
- feat(py): CodePattern — compile a structural pattern once, reuse it by @georgeh0 in #2150
- feat(py): CodePattern.match_file + index_terms PyO3 exposure by @georgeh0 in #2151
- test(code_match): pin that comments in source are ignored by @georgeh0 in #2152
- fix(core): propagate logic deps across the mount boundary by @georgeh0 in #2142
New Contributors
Full Changelog: v1.0.11...v1.0.12
v1.0.11
What's Changed
- feat(oci): skip startup full scan on unchanged logic by @pyjuan91 in #2116
- feat: LanceDB vector and FTS indexing support by @Sujit-1509 in #2115
- fix(lancedb): escape single quotes in delete filter predicates by @Sujit-1509 in #2119
feat: Add (initial)zvectarget integration by @Haleshot in #2092- fix(docs): correct "Edit this page" link (duplicate docs/ prefix) by @Sujit-1509 in #2118
New Contributors
- @Sujit-1509 made their first contribution in #2115
Full Changelog: v1.0.10...v1.0.11
v1.0.10
What's Changed
- fix(ci): trigger generate-cli-docs hook on cli.mdx edits by @georgeh0 in #2103
- Agent experience: .md mirrors, docs llms.txt/llms-full.txt, skill endpoint, examples agent docs by @badmonster0 in #2104
- Agent experience follow-ups: fix review findings from #2104 by @badmonster0 in #2107
- fix(core): round LMDB map size up to system page size by @georgeh0 in #2109
- Docs to knowledge example by @badmonster0 in #2110
- refactor(engine): prefetch fn-memos and user-states in one read txn by @hakuuww in #2076
- fix(amazon_s3): encode ETag to bytes for content fingerprint (#2111) by @georgeh0 in #2112
Full Changelog: v1.0.9...v1.0.10
v1.0.9
What's Changed
- fix(py): make coco.fn directly callable outside a component context by @georgeh0 in #2101
- refactor(state): move UserState db key from 0xc0 to 0x34 by @georgeh0 in #2102
- docs: add landing / About page by @badmonster0 in #2100
Full Changelog: v1.0.8...v1.0.9
v1.0.8
What's Changed
Main Features
coco.use_state()— persistent per-component user-defined state (#2034) @hakuuwwLiveMap— in-memory intermediate collection (#2088) @georgeh0- Preview mode for update actions (#1945) @MrAnayDongre
- Token-bucket
RateLimiter(#2057) @georgeh0
Improvements
- Allow
LiveComponentclasses inmount_each()(#2091) @georgeh0 use_stateacceptsStableKey, not juststr(#2085) @georgeh0- Support
!-prefixed negation inexcluded_patterns(#1901) @SuperMarioYL
Fixes
- Retry transient LiteLLM embedding errors (#2090) @georgeh0
- Use
Displayinstead ofDebugfor runtime errors crossing into Python (#2052) @nuthalapativarun - Clear idle batchers to avoid stale accumulation (#2062) @georgeh0
Documentation
- Document
LiteLLMTranscriberspeech-to-text (#2059) @georgeh0 - Add Tigris alongside MinIO as a supported S3-compatible service (#2063) @davidmyriel
- Render Mermaid diagrams in docs (#2045) @sdhilip200
- Fix dead msgspec doc links (#2089) @georgeh0
New Contributors
- @sdhilip200 made their first contribution in #2045
- @hakuuww made their first contribution in #2034
- @SuperMarioYL made their first contribution in #1901
- @davidmyriel made their first contribution in #2063
- @pyjuan91 made their first contribution in #2078
Full Changelog: v1.0.7...v1.0.8
v1.0.7
What's Changed
- feat(live_component): coco.auto_refresh + unify error-handling channel by @georgeh0 in #1995
- Fixes
- fix(serde): register _frombuffer under numpy 1.x and 2.x paths by @shaiar in #2012
- fix(live_component): scope LiveComponentOperator to one process_live invocation by @georgeh0 in #1998
- fix(engine): close concurrent preempt race in target-state ownership transfer by @georgeh0 in #1994
- fix(engine): cascade on_error through Build-mode GC sweep by @georgeh0 in #1999
- More language support for the splitter
- feat(splitter): add Astro tree-sitter support by @nuthalapativarun in #1984
- feat(splitter): add Bash, CMake, and HCL tree-sitter support by @nuthalapativarun in #1954
- Logging / stats improvement
- feat(engine): add coco.stats_group() for scoped stats reports by @georgeh0 in #2042
- fix(progress_display): move PTY reader off Tokio onto dedicated OS thread by @georgeh0 in #2033
- feat(cli): configure Python logger via COCOINDEX_LOG_LEVEL by @georgeh0 in #2035
- fix(progress_display): poll-based PTY reader with shutdown flag by @georgeh0 in #2036
- fix(progress_display): render no-TTY progress on refresh interval only by @georgeh0 in #2040
- feat(engine): let report_to_stdout configure the refresh interval by @georgeh0 in #2044
- Parallelize entity resolution via candidate-graph components by @zherendong in #2006
- Integrations
- LanceDB optimization
- feat(lancedb): optimize v1 target periodically by @qWaitCrypto in #2008
- Fix LanceDB optimize scheduling by @prrao87 in #2013
- feat(lancedb): add columns in place for table targets by @qWaitCrypto in #1951
- Apache Iggy
- feat: add Apache Iggy connector by @countradooku in #1969
- Postgres
- LanceDB optimization
- Documentations
New Contributors
- @countradooku made their first contribution in #1969
- @qWaitCrypto made their first contribution in #2008
- @shaiar made their first contribution in #2012
Full Changelog: v1.0.6...v1.0.7
v1.0.6
What's Changed
- feat(splitter): add Elm tree-sitter support by @nuthalapativarun in #1955
- fix(py): add context to Rust→Python error messages for App operations by @nuthalapativarun in #1986
- docs(function): clarify change detection, memoization, and debugging by @georgeh0 in #1988
- feat(telemetry): add optional
applicationlabel via env var by @georgeh0 in #1992
Full Changelog: v1.0.5...v1.0.6
v1.0.5
What's Changed
- fix(postgres): install pgvector extension into default schema by @georgeh0 in #1979
- refactor(rust): unify workspace, isolate SDK from PyO3, restructure benchmark by @georgeh0 in #1973
- docs(examples): add Postgres dev install snippet to example READMEs by @georgeh0 in #1974
- fix(examples): register pgvector codec on asyncpg pool by @georgeh0 in #1975
- fix(examples): register pgvector codec on query asyncpg pools by @georgeh0 in #1976
- refactor(examples): unify CLI to no-arg index +
querysubcommand by @georgeh0 in #1978
Full Changelog: v1.0.4...v1.0.5
v1.0.4
What's Changed
- feat(splitter): add Julia tree-sitter support by @georgeh0 in #1942
- fix(cli): share memo cache across script and CLI invocations by @georgeh0 in #1963
- fix(memo): plumb state_methods through dataclass/pydantic fields by @georgeh0 in #1971
- Better validation on column names
- fix(security): validate SQL identifiers in postgres/sqlite connectors by @aaronjmars in #1947
- Security: Potential SQL Injection in Postgres Connector by @tuanaiseo in #1965
- feat(live-component): rework controller internals; add drain registry by @georgeh0 in #1957
- Documents
- docs: drop /review-changes pointer from CLAUDE.md by @georgeh0 in #1941
- chore: bump trove classifier to Production/Stable for v1 launch by @georgeh0 in #1956
docs: fix broken URL by @Haleshot in #1958docs: update stalev1branch links to main across docs by @Haleshot in #1959- docs(ops/text): expand supported languages table for RecursiveSplitter by @nuthalapativarun in #1953
- docs: mention gws for Google Drive setup by @phuctoan123 in #1949
New Contributors
- @dashitongzhi made their first contribution in #1946
- @aaronjmars made their first contribution in #1947
- @nuthalapativarun made their first contribution in #1953
- @tuanaiseo made their first contribution in #1965
- @phuctoan123 made their first contribution in #1949
Full Changelog: v1.0.3...v1.0.4