Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

RVF SDK: WASM queries override the configured metric with L2

Aperta Adatta ai principianti
#1,103 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@rudycelekli ci sta già lavorando.

Dal 1/10/2026.

  • #1108 di @rudycelekli — aperta

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
76/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
typescript, wasm
Ambito
api, testing

Direzione di ricerca

Inizia in npm/packages/rvf, seguendo il punto di ingresso delle query di RvfDatabase attraverso la facciata TypeScript e le esportazioni di dist/index.js e dist/backend.js. Esegui la riproduzione Node fornita e la regressione mirata che copre le query L2, cosine e dot-product. Il lavoro è completato quando la metrica configurata viene preservata per le query posizionali e per quelle con un oggetto di opzioni e l’output tracciato dell’SDK viene ricostruito.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Describe the bug

WASM stores created with cosine or dot-product distance are queried with an explicit L2 override. This changes both ranking and distances through the public TypeScript facade.

To reproduce

On current main 5a93328f2fceb0307c25929ed38cd7a0911fdf00, build npm/packages/rvf, use a fresh scratch store path and run with its compiled exports (RvfDatabase from dist/index.js; for the filter fixture, NodeBackend from dist/backend.js; fs from node:fs):

const db = await RvfDatabase.create('memory', { dimensions: 2, metric: 'cosine' }, 'wasm');
await db.ingestBatch([{ id: '1', vector: [1, 0] }, { id: '2', vector: [10, 10] }]);
console.log(await db.query([1, 1], 2));
await db.close();

Observed: The first hit is ID 1 at squared-L2 distance 1; ID 2 has distance 162. Cosine should rank ID 2 first at distance 0.

Expected behavior

Pass the existing negative metric-override sentinel so the WASM kernel uses the metric stored at creation. Rebuild the tracked SDK output.

Reproduction evidence

Baseline: 1 passing / 2 failing cases. Patched: 3 passing cases covering L2, cosine and dot-product ranking and distance, with both positional and options-object queries. A focused regression and bounded patch are prepared.

Local environment: macOS arm64, Node 22.19.0, TypeScript 5.9.3. The tests use the repository-bundled actual native addon (wrapper 0.2.3, darwin-arm64 artifact package 0.1.7) and actual WASM package 0.1.9. Neither binary was rebuilt from current Rust source. This verifies the current TypeScript adapter against those concrete bundled artifacts, not a fresh Rust build.

This covers the real bundled WASM microkernel in Node, not browser loading or a newly compiled Rust artifact.

Lingua principale
Rust
Stelle
4.6k
Fork
611
Merge medio
22h 10m
PR unite (30g)
58

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di ruvnet/RuVector

Tutte le issue di ruvnet/RuVector

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.