ruvnet / ruvnet/RuVector

rvf: ingest accepts conflicting value types for one field id, failing later at snapshot time

Open
#772 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
4.5k
Forks
603
Avg merge
23h 32m
Merged PRs (30d)
59

Description

Flagged consistently across three rounds of the ADR-280 review, out of scope each time.

ingest_batch_with_metadata accepts the same field id with different value types across records. A full snapshot covering both cannot be encoded, so the store acknowledges writes that only fail later — when a snapshot happens to materialize. That is an accepted-then-fails-later shape: the caller gets Ok, and the failure surfaces at an unrelated later commit.

(This was actually useful during review as a deterministic fault injector for testing rollback paths, which is how it kept coming up.)

Fix direction: reject the conflicting type at ingest time, so the error lands on the call that caused it.

🤖 Generated with claude-flow

Contributor guide

No contributing guide indexed for this repository

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.

Research direction

Start at the ingest_batch_with_metadata entry point and trace how field ids and value types are validated before snapshot materialization. Reproduce the case with records that use different value types for one field id; done means the ingest call rejects the conflict instead of acknowledging it and failing later during a snapshot.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
databases
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
65/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.