| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-10-06 | 4.7 kB | |
| v1.0.25 source code.tar.gz | 2026-10-06 | 24.3 MB | |
| v1.0.25 source code.zip | 2026-10-06 | 25.0 MB | |
| Totals: 3 Items | 49.4 MB | 0 | |
What's Changed
- feat(env): add
Environment.close()to release the LMDB environment explicitly, so the same db path can be reopened without waiting for every Python reference to be collected (fixesEnvAlreadyOpenedon free-threaded Python 3.14, where threads started inside a component kept the environment alive) by @georgeh0 in https://github.com/cocoindex-io/cocoindex/pull/2481 - feat(memo): a memo state function can return
recollect_after_run=TrueinMemoStateOutcometo have its state collected again after a re-run, for states that depend on what the function body read by @georgeh0 in https://github.com/cocoindex-io/cocoindex/pull/2474 - Rust SDK ergonomics:
#[cocoindex::function(memo, batching)]with per-item memoization, thecontext_key!macro, and connector schemas derived from Rust row types (SchemaFields,TableSchema::from_row) with vector dimensions resolved at runtime from the embedder by @tomz-alt in https://github.com/cocoindex-io/cocoindex/pull/2287 GPUPoolrewritten in Rust; it can now acquire multiple whole GPUs at once, and no longer loses wake-ups across event loops by @YaxinCheng in https://github.com/cocoindex-io/cocoindex/pull/2277- Performance for large target updates
- Much less memory per declared target state: declared states are released right after pre-commit, and Python row values are held in encoded form (a 1.14 M-row component previously held ~1.33 GiB of row dicts) by @georgeh0 in https://github.com/cocoindex-io/cocoindex/pull/2469
fingerprint_object/ memo fingerprints compute plain data natively (~9× faster per row); existing fingerprints are unchanged by @georgeh0 in https://github.com/cocoindex-io/cocoindex/pull/2470- Target handlers can set
tracks_value_fingerprint = Trueto skipreconcile()for unchanged values, so an update where most rows are unchanged runs no per-row Python at commit by @georgeh0 in https://github.com/cocoindex-io/cocoindex/pull/2472 - Postgres: upserts go through
INSERT ... SELECT FROM unnest(arrays)for tables with builtin scalar/array columns by @georgeh0 in https://github.com/cocoindex-io/cocoindex/pull/2471 - Postgres: multi-column-key deletes use
IN (VALUES ...)instead of anORchain whose planning time grew quadratically by @georgeh0 in https://github.com/cocoindex-io/cocoindex/pull/2458 - fix(core): when one component's write fails (e.g. a target connector's
reconcile()raises), only that component fails, not every component batched into the same transaction (including other apps sharing theEnvironment) by @georgeh0 in https://github.com/cocoindex-io/cocoindex/pull/2451 - fix(core): scoped
coco.exception_handlers now receive failures ofmount_eachitems from aLiveMap(andauto_refreshitems) by @georgeh0 in https://github.com/cocoindex-io/cocoindex/pull/2478 - fix(core): preview no longer reports actions more than once when its write batch re-runs after the LMDB map grows by @georgeh0 in https://github.com/cocoindex-io/cocoindex/pull/2447
- fix(surrealdb): statement errors are raised instead of swallowed; values sent as typed CBOR; string/integer/array record IDs; record writes use
UPSERT ... MERGEand addTableTarget.declare_fieldsfor multi-owner records; HNSW-only vector indexes for SurrealDB 3 by @martinschaer in https://github.com/cocoindex-io/cocoindex/pull/2439 - fix(valkey): un-declaring an index or running
App.drop()now also deletes its document hashes by @georgeh0 in https://github.com/cocoindex-io/cocoindex/pull/2419 - fix(valkey): CocoIndex connections are identifiable in the server's
CLIENT LIST(LIB-NAME cocoindex); requiresvalkey-glide>=2.5.2by @AbhayMahalle in https://github.com/cocoindex-io/cocoindex/pull/2443 - fix(localfs): recursive
walk_dirstops at symlink cycles instead of walking forever by @Sujit-1509 in https://github.com/cocoindex-io/cocoindex/pull/2456 - fix(amazon_s3): zero-length reads and partial reads of empty objects return empty bytes instead of sending an invalid range request by @Sujit-1509 in https://github.com/cocoindex-io/cocoindex/pull/2437
- docs(target): state that
reconcile()may run more than once per commit by @georgeh0 in https://github.com/cocoindex-io/cocoindex/pull/2475
New Contributors
- @YaxinCheng made their first contribution in https://github.com/cocoindex-io/cocoindex/pull/2277
- @martinschaer made their first contribution in https://github.com/cocoindex-io/cocoindex/pull/2439
- @AbhayMahalle made their first contribution in https://github.com/cocoindex-io/cocoindex/pull/2443
Full Changelog: https://github.com/cocoindex-io/cocoindex/compare/v1.0.24...v1.0.25