🔎 fix: Install LadybugDB Extensions and Patch Vector Load for GitNexus Search (#12607)

Two upstream GitNexus 1.5.3 bugs combine to break query() in serve mode:

1. pool-adapter.ts calls LOAD EXTENSION fts but never INSTALL fts. The
   CI-produced .gitnexus/ artifact doesn't include the extension cache
   (~/.kuzu/extension/), so LOAD silently fails in the fresh container
   and all BM25/FTS searches return empty.

2. pool-adapter.ts only loads the FTS extension — it never loads the
   vector extension. Every CALL QUERY_VECTOR_INDEX in semanticSearch
   fails, so hybrid search's semantic leg returns empty too.

Combined, query() returns empty even for exact function names because
both the BM25 and semantic legs of RRF merging have zero inputs.
Meanwhile context()/cypher()/route_map() still work because they use
plain Cypher with no extensions.

Workaround:
- Add install-extensions.js that runs INSTALL fts and INSTALL vector
  against a throwaway database during Docker build, populating
  ~/.kuzu/extension/ with the cached extension binaries
- Sed-patch pool-adapter.js at build time to also LOAD EXTENSION vector
  alongside the existing FTS load, wrapped in try/catch
- Update deploy workflow to copy install-extensions.js into the build
  context
This commit is contained in:
Danny Avila 2026-04-10 13:41:55 -04:00 committed by GitHub
parent a121ae3dea
commit 711747a5a0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 60 additions and 0 deletions

View file

@ -102,6 +102,7 @@ jobs:
cp .fly/gitnexus/Dockerfile deploy/Dockerfile
cp .fly/gitnexus/Caddyfile deploy/Caddyfile
cp .fly/gitnexus/entrypoint.sh deploy/entrypoint.sh
cp .fly/gitnexus/install-extensions.js deploy/install-extensions.js
echo "Deploy context:"
ls -la deploy/
echo "Indexes staged:"