## cocoindex-io/cocoindex — v1.0.24…v1.0.25

_35 commits._

### Features
- **feat(env): add Environment.close() to release the LMDB env explicitly (#2481)** (17c84f1)
- **feat(memo): let a memo state be collected again after a re-run (#2474)** (0d7a619)

### Fixes
- **fix(core): scoped exception handlers see LiveMap mount_each items (#2478)** (5da1efa)
- **perf(engine): cut the memory held per declared target state (#2469)** (6652764)
- **fix(core): fail only the failing caller when a batched write-txn body fails (#2451)** (9bbf587)
- **perf(engine): skip reconcile for unchanged values of fingerprint-tracking handlers (#2460, part 2) (#2472)** (05204af)
- **perf(postgres): upsert through INSERT ... SELECT FROM unnest(arrays) (#2471)** (8de1356)
- **perf(fingerprint): fingerprint plain data natively (#2460, part 1) (#2470)** (90b043b)
- **fix(valkey): inject CocoIndex library name into server's CLIENT LIST (#2443)** (e26e975)
- **fix: stop recursive localfs walks at symlink cycles (#2456)** (c47b896)
- **perf(postgres): delete multi-column keys via IN (VALUES ...) instead of an OR chain (#2458)** (45fd1fb)
- **fix(core): collect preview actions once when a write batch re-runs (#2447)** (72d4798)
- **fix(agents): keep the docs build check from rewriting package-lock.json (#2444)** (bdd3ee9)
- **fix(amazon_s3): handle zero-length range reads (#2437)** (1bbd477)
- **fix(surrealdb): surface statement errors, typed CBOR values, array IDs, MERGE ownership, fields mode (#2439)** (ebd9129)
- **fix(valkey): purge document hashes when an index is deleted (#2419)** (f1c1ba4)

### Backend
- **Improve Rust SDK ergonomics (#2287)** (a68df52)
- **Rewrite the GPUPool in Rust (#2243) (#2277)** (f3e19d1)

### Tests
- **test(core): gate sink-failure test on committed precommits (#2477)** (af70a96)
- **test(core): make the child-slot retry test's merged batch deterministic (#2445)** (b8656da)

### Docs
- **docs(target): state that reconcile() may run more than once per commit (#2475)** (e376459)
- **docs(core): correct stale ID-allocation comments in id_sequencer (#2448)** (d7ba819)
- **docs(core): document the MDB_MAP_FULL re-run on Storage::run_txn (#2449)** (9431eb6)
- **docs(core): correct comments that say LMDB never re-runs the precommit callback (#2446)** (72e4c78)

### Chore
- **ci(deps): bump smol-toml from 1.7.0 to 1.8.0 in /docs (#2393)** (187b10f)
- **ci(deps): bump urllib3 from 2.7.0 to 2.8.0 (#2464)** (e906a13)
- **ci(deps): bump dompurify from 3.4.13 to 3.4.16 in /docs (#2462)** (e3ac118)
- **ci(deps): bump devalue from 5.8.1 to 5.9.4 in /docs (#2461)** (1aa6f10)
- **ci(deps): bump litellm from 1.96.0 to 1.96.2 (#2463)** (9ad2a23)
- **ci(deps): bump pyjwt from 2.14.0 to 2.15.0 (#2465)** (f937870)
- **refactor(core): remove unused standalone AppStore::reserve_id_range (#2450)** (9b6597c)
- **ci(deps): bump pyjwt from 2.13.0 to 2.14.0 (#2441)** (abdbdfb)
- **ci(deps): bump taiki-e/install-action from 2.87.15 to 2.87.20 (#2436)** (15fec8d)
- **ci(deps): bump taiki-e/install-action from 2.87.11 to 2.87.15 (#2427)** (e24ead9)
- **ci(deps): bump jlumbroso/free-disk-space from 1.3.1 to 2.0.0 (#2428)** (040270a)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/cocoindex-io/cocoindex?utm_source=github-action)._