Skip to content

native: diag() reads jvector's provider through the engine - #156

Merged
tae898 merged 1 commit into
mainfrom
fix/155-diag-provider-order
Oct 31, 2026
Merged

tae898 merged 1 commit into
mainfrom
fix/155-diag-provider-order

Conversation

@tae898

@tae898 tae898 commented Oct 31, 2026

Copy link
Copy Markdown
Collaborator

ArcadeNative.diag read jvector's provider with VectorizationProvider.getInstance(). jvector picks its provider once per process, so a diag() before the first database took the choice away from the engine's VectorApiSupport.configureJVectorProvider(), which forces the scalar provider in a native image. On macOS and Windows jvector's own choice is Panama (the uncompiled Vector API), which failed the nightly parity legs there (#155). diag() now reads the provider through VectorApiSupport.jvectorProvider(), public since engine 26.10.2, which runs the engine's choice first.

The existing test_the_default_provider_follows_the_shipped_library already calls diag() first in a fresh process, so it is the regression test; its helper's docstring now says so.

Verification: pull requests build only linux-x86_64, so before merging I dispatch this workflow on the branch (all four platforms, Python 3.12 and 3.14) and merge only when the macos-arm64 and windows-x64 parity legs pass.

Closes #155

🤖 Generated with Claude Code

ArcadeNative.diag called VectorizationProvider.getInstance() directly. jvector picks its
provider once per process, so a diag() before the first database took the choice away from
the engine's VectorApiSupport.configureJVectorProvider() (scalar in a native image): Panama
(the uncompiled Vector API) on macOS and Windows, which failed the nightly parity legs there
on test_the_default_provider_follows_the_shipped_library. Reproduced on Linux x86-64 with the
dev wheel: diag() first keeps jvector's own provider after a database and vector index are
created; the database first gets DefaultVectorizationProvider. VectorApiSupport.jvectorProvider()
(public since engine 26.10.2) runs the engine's choice first.

Closes #155

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@tae898
tae898 merged commit fa8ad02 into main Oct 31, 2026
53 checks passed
@tae898
tae898 deleted the fix/155-diag-provider-order branch October 31, 2026 07:49
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.

Native nightly red on macOS and Windows: diag() picks jvector's provider before the engine does

1 participant