Skip to content

Releases: dandaka/traul

v0.2.0 — Local Embeddings & Auto-Migration

19 Mar 08:20

Choose a tag to compare

Highlights

Local embeddings with node-llama-cpp — Embeddings now run locally via node-llama-cpp (Qwen3-Embedding-0.6B) instead of requiring an Ollama server. Model downloads automatically on first use. Ollama remains as a fallback if node-llama-cpp fails.

Auto-migration on startup — Traul now tracks chunker version, embedding model, and embedding dimensions. When any of these change, it automatically resets the affected data (chunks, embeddings, sync cursors) so the next traul embed rebuilds everything cleanly.

traul reset command — New command for manual data layer resets: traul reset chunks, traul reset embeddings, traul reset cursors [source], or traul reset all.

Features

  • Replace Ollama with node-llama-cpp for embeddings (Qwen3-Embedding-0.6B-Q8_0, 768-dim)
  • Separate embedQuery() with instruction prefix for Qwen models (improves search relevance)
  • traul_meta table for version tracking across restarts
  • Auto-migration detects chunker/model/dims changes and resets affected data
  • traul reset command for manual resets
  • traul get command for thread retrieval by ID or date

Fixes

  • Fix SQLITE_BUSY errors when running concurrent searches (skip unchanged meta writes)
  • Suppress noisy node-llama-cpp control-looking token warning (set logLevel to error)
  • Fix mock.module conflicts between test files
  • Fix telegram sync dialog ordering (consecutive-old-counter cutoff)
  • Extract pure formatting helpers to llama-format.ts (no native dependency in tests)
  • Fix CI test suite — skip llama wrapper integration tests in CI (process.env.CI pattern)

Internal

  • Bump CHUNKER_VERSION to 2 (triggers rechunking)
  • 192 tests passing across 22 files (184 on CI, 8 llama wrapper skipped)