upsertMany now uses sqlite.batch() — all records in a batch are written in a single round-trip instead of one SQL call per record. For 100 records, this is ~3× faster.
- FTS sync is batched —
DELETE + INSERT for FTS5 are batched alongside main upserts (one round-trip instead of two per record).
setup() guard added — module-level _setupDone flag skips all setup SQL on warm requests. Saves 3+ SQLite round-trips on every subsequent call after the first.
/seed and /test use upsertMany — seeding 100 records now makes ~2 embedding API calls instead of 100.
/clear now clears FTS table — previously, POST /clear only deleted from the main vectordb table, leaving ghost entries in vectordb_fts that would appear in keyword search results. Now both tables are cleared atomically via sqlite.batch().
stats() uses correct dim in auto-dim mode — estimated_storage_mb now uses RESOLVED_DIM (actual detected dimension) instead of the pre-resolution config default when EMBEDDING_DIM=auto.
ui.ts: Moved CLI logic to /ui.js (external script) to fix embedded/preview CSP issues.
api.ts: Added /ui.js route to serve the CLI script with no-store caching.
api.ts: Added ALLOW_WRITE_TESTS_NOAUTH to allow full validation without headers.
api.ts: Added /validate?write=yes preset to the no-JS CLI.
vectordb.ts: Expanded DiskANN index tuning — supports INDEX_ALPHA, INDEX_SEARCH_L, INDEX_INSERT_L.
vectordb.ts: Expanded INDEX_COMPRESS_NEIGHBORS options (float1bit, floatb16, float32).
api.ts: /stats uses configured embedding dimensions (no hard-coded 4096).
ui.ts: upsert now accepts --meta JSON; del reflects actual deleted field.
vectordb.ts: Added metadata filters, hybrid BM25 keyword boost, batch upsert, chunking helper, FTS5 index.
api.ts: Added /auth, /export, /import, /upsert_chunked, enhanced /search and /list.
api.ts: Added /validate endpoint for self-checks.
ui.ts: Added hybrid search flags, meta filters, pagination, server auth status.
- Auth: Added
ADMIN_TOKEN bearer token authentication for write operations.
- Docs: Full README, GUIDE, HANDOVER written.
- Multi-provider support: Nebius (default), OpenAI, OpenRouter, custom.
- Browser CLI (
/ui) — terminal-style web interface.
- Added
/seed, /calibrate, /test, /clear, /reindex admin endpoints.
- Content-hash deduplication (skips re-embedding unchanged text).
maxDistance filter on search.
- Distance scores returned in search results.
- Initial release.
- Core:
setup(), upsert(), search(), remove(), stats().
- libSQL DiskANN index with
float8 neighbor compression.
- Nebius embedding API integration.