2.8.1
Quilltap v2.8.1 Release Notes
Highlights
Built-in TF-IDF Embeddings - Semantic memory search now works out of the box with zero API keys required. The new built-in embedding provider uses TF-IDF with BM25 enhancement, running entirely offline.
First-Startup Seeding - Fresh installations now include a default character and embedding profile, making Quilltap immediately usable without configuration.
Ollama Quality-of-Life Improvements - Better defaults, auto-filled URLs, and fixes for common connection issues.
Major Features
Built-in TF-IDF Embedding Provider
- New
qtap-plugin-builtin-embeddingsprovides zero-dependency, offline embedding - Uses TF-IDF with BM25 enhancement and Porter stemming
- Bigram support for improved phrase matching
- Vocabulary automatically fits to your memory corpus
- Debounced refitting when memories change (5-second debounce)
- New database tables:
tfidf_vocabularies,embedding_status - Background jobs:
EMBEDDING_GENERATE,EMBEDDING_REFIT,EMBEDDING_REINDEX_ALL - API endpoints for manual refit and reindex operations
- UI displays vocabulary stats and embedding progress indicators
- Theme-aware provider badges via
qt-badge-provider-*CSS classes
First-Startup Data Seeding
- Default character "Ben" seeded on first startup when database is empty
- Default "Built-in TF-IDF" embedding profile seeded and set as default
- Enables semantic memory search immediately without configuration
- Seeding runs as phase 1.25 after migrations in startup sequence
- Safe to call multiple times—only seeds when no data exists
Improvements
Connection Profile UX
- Auto-fill profile name with
PROVIDER/MODEL_NAMEwhen selecting a model - Auto-fill base URL when selecting a provider with defaults (e.g., Ollama →
http://localhost:11434) - Connection test errors now display in the profile modal UI
- Improved error logging shows messages directly
Provider Fixes
- Ollama: Fixed 405 error caused by trailing slash in base URL creating double-slashes
- Ollama: Cheap LLM fallback now uses current profile's model instead of hardcoded
llama3.2:3b - Embedding providers: Fixed embedding-only providers not appearing in dropdown (plugin initialization now registers
EMBEDDING_PROVIDERcapability)
Bug Fixes
- Memory extraction: Handles LLMs returning object instead of string for content/summary fields
- Memory search: Regex metacharacters (
*,?,(), etc.) now escaped in fallback search, preventing crashes when semantic search unavailable