Files
gbrain/VERSION
T
25fbae3e18 v0.41.12.0 fix(ze-switch): preserve multimodal column dimensions + restore partial WHERE clause (#1450)
* fix: ze-switch preserves embedding_image column dimensions

runSchemaTransition was dropping and recreating embedding_image at the
same target dimension as the text embedding column. This silently breaks
multimodal search when the image model (e.g. voyage-multimodal-3 at
1024d) uses different dimensions than the text model.

Example: switching from OpenAI text-embedding-3-large (1536d) to
ZeroEntropy zembed-1 (1280d) would also change embedding_image from
vector(1024) to vector(1280), creating a dimension mismatch that
prevents voyage-multimodal-3 from writing image embeddings.

Fix: only transition the primary 'embedding' column. Leave
embedding_image untouched (rebuild its HNSW index for safety but
preserve its existing dimensions).

* fix(ze-switch): restore partial WHERE clause, schema-qualify probe, add regression tests

Eng-review wave on top of PR #1443's column-dim fix:

- Restore WHERE embedding_image IS NOT NULL on idx_chunks_embedding_image
  recreation. Matches src/schema.sql:258-260 and pglite-schema.ts:198-200.
  Pre-fix the recreated index covered every row including NULLs, wasting
  HNSW memory proportional to total chunk count on brains with few image
  chunks.
- Scope the information_schema.columns EXISTS probe by table_schema =
  'public' so it cannot false-positive against same-named tables in
  other schemas.
- Widen the function-leading comment to name embedding_multimodal
  (migration v78) alongside embedding_image. Same "separate multimodal
  model, separate dim" rationale applies.
- Add three regression tests pinning the column-preservation invariant:
  embedding_image AND embedding_multimodal stay vector(1024) post-switch,
  the partial WHERE clause survives index recreation, and the EXISTS
  guard short-circuits cleanly on fresh brains lacking the column.

* chore: bump version and changelog (v0.41.12.0)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: root <root@localhost>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-25 19:43:20 -07:00

1 line
9 B
Plaintext