Skip to content

Drivine 0.3.0 - #72

Merged
jasperblues merged 2 commits into
mainfrom
chore/drivine-0.3.0
Oct 26, 2026
Merged

jasperblues merged 2 commits into
mainfrom
chore/drivine-0.3.0

Conversation

@jasperblues

@jasperblues jasperblues commented Oct 23, 2026 •

Copy link
Copy Markdown
Collaborator

Moves Drivine from 0.2.0 to 0.3.0, in step with dice and embabel-chat-store. A host resolves one Drivine.

Draft until drivine4j 0.3.0 is published. The pom names 0.3.0, which isn't on Maven Central yet, so CI fails to resolve it until then.

Why

Drivine 0.3.0 drops the compiled constructor that a Kotlin call to UniquenessConstraintSpec with a defaulted argument links to. GraphObjectManagerStore makes one (UniquenessConstraintSpec(properties.entityNodeName, "id")), so this library built on 0.2.0 fails with NoSuchMethodError on a host that runs 0.3.0.

No production changes were needed. GraphProvisioner and EntitySchemaProvisioner ensure their indexes directly rather than through a catalog, so 0.3.0's refusal of a catalog vector index over a field without @VectorIndex (liberation-data/drivine4j#132) doesn't apply to them, and ChunkNode and EntityNode carry the annotation anyway.

A test change

On released 0.3.0, the three tests in Neo4jVectorRecallSearchKTest came back empty. Since 0.3.0 a vector search through a partition label returns only the nodes that carry the fragment's labels (liberation-data/drivine4j#247, fixed in #254). The probe's nodes carried RecallProbe alone. They now carry ChunkNode's labels, Chunk and ContentElement, too, and the KDoc says why. Production code never searches through a partition label. The probe still deletes its nodes in @AfterAll, and test classes run one at a time.

Tested

Against released drivine4j 0.3.0 (tag 0.3.0), installed locally: mvn install is green, 489 tests, 0 failures. Recall@40 is 0.95 unfiltered without searchK and 1.0 with searchK=200; tenant-filtered, 25/40 and 40/40.

Moves Drivine from 0.2.0 to 0.3.0, in step with dice and embabel-chat-store.
0.3.0 drops the compiled constructor that a Kotlin call to
UniquenessConstraintSpec with a defaulted argument links to, so this library
built on 0.2.0 fails with NoSuchMethodError on 0.3.0. No source changes.
…earch needs on Drivine 0.3.0

Since Drivine 0.3.0 a vector search through a partition label returns only the nodes that carry the
fragment's labels (liberation-data/drivine4j#247). The probe's nodes carried RecallProbe alone, so its
three searches came back empty. They now carry Chunk and ContentElement too, and the KDoc says why.
Test-only: production code never searches through a partition label.
@jasperblues
jasperblues marked this pull request as ready for review October 26, 2026 02:54
@jasperblues
jasperblues merged commit 3485431 into main Oct 26, 2026
8 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant