Repository navigation
Fixed
- Returned ids are accepted back. Results render every id as a string (
'1'), including scroll'snext_offset, but numeric strings were rejected as input.scroll({ offset: page.next_offset })failed for numeric ids, and so didretrieve,deletePoints,setPayload*,clearPayload,upsertandhas_idfilters fed with ids from results. All of them now accept numeric strings. - One-element
prefetcharrays keep their query.prefetch: [{ query, using }]failed withcannot have prefetches without a query: serde read the one-element array as a struct. Arrays of two or more were unaffected. - A non-object
payloadno longer crashes the app.upsertwith an array, string or number payload hit an upstream panic that aborted the process; it now throws. - An invalid
createVectorNameconfig no longer wedges the shard. A config such assize: 0reached the WAL, and every later write failed withNot recovered from previous erroruntil the shard was reopened. The config is now validated first. - Partial
hnsw_config/wal_optionswork. The TS types mark every field optional, but upstream required them all, so the README'shnsw_config: { m, ef_construct },wal_options: { segment_capacity }andsetHnswConfig({ m, ef_construct })threw. Omitted fields now take the upstream defaults. createShardcreates a missing directory instead of failing on the WAL directory.- TS literals match the wire format:
datatype: 'float32' | 'float16' | 'uint8'andmultivector_config: { comparator: 'max_sim' }. The old'Float16'/'MaxSim'spellings never deserialized at runtime. - Hooks
- Inline
requestobjects, as in the README, no longer cause an infinite render loop inuseSearch,useQuery,useQueryGroups,useSearchMatrixanduseFacet. Requests are now compared by value; to re-run with an unchanged request, call the function the hook returns (search(),query(), …). useShard({ create: true })opens the existing shard on later launches instead of failing withpath already contains segment data.open()closes the previous handle first; a second handle failed on the WAL lock.- Hooks return and accept the same
Shard/Bm25classes ascreateShard/createBm25, so the full API is available and the two styles mix.
- Inline
count()accepts a typedFilter.- Shard and BM25 creation errors no longer repeat their prefix (
Failed to create shard: Failed to create shard: …). - Expo: the config plugin limits
reactNativeArchitecturestoarm64-v8a,x86_64, the ABIs the package ships libraries for. Android release builds with the default four ABIs failed to link.
Docs
- README examples fixed: snapshot recovery (close the shard first, no
shard.path),setVectorHnswConfigon a dense vector, keywordprefixmatching,asQdrantErrornarrowing, scroll pagination, and theupdateVectorsline for a method that doesn't exist.
Full Changelog: v0.4.0...v0.4.1