ts-v3.1.6
Mem0 Node SDK (v3.1.6)
Added 1
- Add an Oracle AI Vector Search vector store (oracledb) to the OSS SDK with pooled connections, HNSW/IVF indexes, optional indexAccuracy target, JSON payload filtering, and six selectable distance metrics
Changed 3
- Cut Oracle round trips by sending the whole batch through one executeMany() with explicit bindDefs instead of one INSERT per vector
- Optimize list() to read the total from a COUNT(*) OVER () window in the same statement instead of issuing a second count query
- Add VECTOR_INDEX_TRANSFORM hint to unfiltered search() so the vector index is used
Fixed 3
- Percent-escape %, &, and = in user_id, agent_id, and run_id when building the session scope key for the recent-conversation buffer to keep the key unambiguous for ids containing those characters
- Close and clear the Oracle pool that Mem0 created when initialize() fails, and reset the cached init promise so the next call retries instead of replaying the rejection forever
- Validate Oracle insert() batches before touching the database: ids and payloads must match vectors in length to prevent short arrays from writing rows with undefined ids or silently dropping payloads
Security 1
- Patch 8 high and 18 medium severity dependency vulnerabilities across the pnpm workspace via pnpm.overrides (undici, brace-expansion, ip-address)
New Features:
- Vector Stores: Add an Oracle AI Vector Search vector store (
oracledb) to the OSS SDK, with pooled connections,HNSW/IVFindexes, an optionalindexAccuracytarget, JSON payload filtering, and six selectable distance metrics (#6690)
Bug Fixes:
- Core: Percent-escape
%,&, and=inuser_id,agent_id, andrun_idwhen building the session scope key for the recent-conversation buffer, so the key stays unambiguous for ids containing those characters. Ordinary ids keep their existing key; an id already containing%,&, or=maps to a new key, so its buffer starts empty once and refills on the nextadd(). Stored memories are unaffected. Reported by @OfficialAbhinavSingh (#6892) - Vector Stores: Close and clear the Oracle pool that Mem0 created when
initialize()fails, and reset the cached init promise so the next call retries instead of replaying the rejection forever. A caller-suppliedclientis left untouched (#6839) - Vector Stores: Validate Oracle
insert()batches before touching the database:idsandpayloadsmust matchvectorsin length, so a short array can no longer write rows withundefinedids or silently drop payloads (#6839)
Improvements:
- Vector Stores: Cut Oracle round trips.
insert()now sends the whole batch through oneexecuteMany()with explicitbindDefsinstead of oneINSERTper vector,list()reads the total from aCOUNT(*) OVER ()window in the same statement instead of issuing a second count query, and an unfilteredsearch()adds theVECTOR_INDEX_TRANSFORMhint so the vector index is used (#6835)
Security:
- Dependencies: Patched 8 high and 18 medium severity dependency vulnerabilities across the pnpm workspace via
pnpm.overrides(undici,brace-expansion,ip-address) (#6847)