Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

RVF SDK: deleteByFilter omits required native filter fields

Open Beginner friendly
#1,105 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

@rudycelekli is already working on this.

Since Oct 1, 2026.

  • #1110 by @rudycelekli — open

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
78/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
node.js, rust, typescript, wasm
Domain
api, database, testing

Research direction

Start in npm/packages/rvf with the public deleteByFilter implementation and the existing filterToNativeJson helper used for query filtering. Run the focused regression covering equality, conjunction, negation, set membership, and a half-open range. Done means all five cases pass with the expected surviving IDs and no further deletions, and the tracked SDK output is rebuilt.

Written by the indexing model from the issue text.

Description

Describe the bug

NodeBackend.deleteByFilter serializes the public filter expression directly. Unlike query filters, it omits required native valueType fields and recursive native child keys, so valid public filters fail native parsing.

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 backend = new NodeBackend();
await backend.create('/tmp/rvf-delete-filter.rvf', { dimensions: 2 });
// Actual native fixture setup: the SDK intentionally rejects metadata ingestion.
backend.handle.ingestBatch(new Float32Array([1, 0, 0, 1]), [1, 2], [
  { fieldId: 0, valueType: 'string', value: 'red' },
  { fieldId: 0, valueType: 'string', value: 'blue' },
]);
const db = RvfDatabase.fromBackend(backend);
console.log(await db.deleteByFilter({ op: 'eq', fieldId: 0, value: 'red' }));
await db.close();

Observed: The public deletion fails with a native parse error about missing valueType. Calling the real native handle with the corresponding typed filter deletes exactly one row.

Expected behavior

Reuse the existing filterToNativeJson helper used for query filtering. Keep the public filter contract and native parser unchanged; rebuild the tracked SDK output.

Reproduction evidence

Baseline: all 5 filter cases fail. Patched: 5 passing cases covering equality, conjunction, negation, set membership and a half-open range; each checks the exact surviving ID and zero further deletions. 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.

Metadata is seeded through an initialized actual native handle only for fixture setup because arbitrary SDK metadata ingestion remains unsupported. The operation under test is the public RvfDatabase.deleteByFilter facade and real native parser/runtime; WASM filter support is unchanged.

Dominant language
Rust
Stars
4.6k
Forks
610
Avg merge
22h 8m
Merged PRs (30d)
57

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from ruvnet/RuVector

All issues in ruvnet/RuVector

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.