Skip to content

AgentDB 3.0.0-alpha.17 pins RVF 0.1.x and corrupts arbitrary string IDs #13

Open

Description

@thesoulpole

Versions

Reproduction

Create a SelfLearningRvfBackend with learning: false, then insert four orthogonal vectors with these IDs:

[
  'SKU-alpha',
  'SKU-beta',
  '12345',
  'e17e8d3bddb7057a1fcef6e3489b1b85',
]

Self-query each vector and inspect getStatsAsync().count.

With AgentDB's default dependency tree, only 2 of 4 vectors were stored and the alphanumeric IDs collided at native ID 0.

I repeated the test in a clean install with an npm override forcing @ruvector/[email protected]. All IDs round-tripped exactly both before close and after reopening the RVF file.

Root cause

RVF 0.1.9's Node backend converts external IDs with Number(e.id), so arbitrary strings become NaN and ultimately collide.

RuVector commit 06493337726998047d025fc2b500f5844e6d60c0 fixed this by introducing a persistent string-to-i64 label map and released the fix in RVF 0.2.x. AgentDB's dependency range ^0.1.9 cannot select it.

Expected behavior

AgentDB should preserve UUID, hex, SKU-style, and other arbitrary string IDs across insert, query, close, and reopen.

Requested fix

  • Bump AgentDB's direct @ruvector/rvf dependency to ^0.2.3 or a newer compatible release.
  • Update the lockfile.
  • Add a native close/reopen regression test using UUID/hex/alphanumeric IDs.
  • Document that the RVF file and its .idmap.json sidecar form one durability/backup unit.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions