Skip to content

1.5

Choose a tag to compare

@csebold csebold released this 01 Apr 06:51
· 2577 commits to main since this release
1.5
f73aa9e

Release 1.5

Major Features

  • Full-stack character memory management is now in place: memories are stored per character in the JSON store, exposed through dedicated REST routes, and editable via a rich UI for browsing, tagging, sorting, and manual CRUD operations, plus an interactive cleanup dialog for enforcing retention policies before data is written back (lib/json-store/repositories/memories.repository.ts:1, app/api/characters/[id]/memories/route.ts:1, components/memory/memory-list.tsx:1, lib/memory/housekeeping.ts:1, components/memory/housekeeping-dialog.tsx:1, app/api/characters/[id]/memories/housekeep/route.ts:1).
  • Memory intelligence now runs automatically after every message: background workers extract significant facts through cheap-LLM prompts, dedupe with semantic similarity, expose a memory-search tool/function to the chat providers, and feed summaries plus retrieved memories into the streaming route so the LLM always sees the most relevant context and debug traces (lib/memory/memory-processor.ts:1, lib/memory/memory-service.ts:1, lib/tools/memory-search-tool.ts:1, lib/tools/handlers/memory-search-handler.ts:1, app/api/chats/[id]/messages/route.ts:492, app/api/chats/[id]/messages/route.ts:618, lib/chat/context-summary.ts:1, lib/chat/context-manager.ts:1).
  • Semantic embeddings gained first-class support: Quilltap now talks to OpenAI or Ollama embedding endpoints, persists vectors per character, and lets users create, list, edit, and delete dedicated embedding profiles (with model catalogs) so memory search can prefer vectors over keyword heuristics (lib/embedding/embedding-service.ts:1, lib/embedding/vector-store.ts:1, app/api/embedding-profiles/route.ts:1, app/api/embedding-profiles/models/route.ts:1, components/settings/embedding-profiles-tab.tsx:1, lib/json-store/repositories/embedding-profiles.repository.ts:1).
  • Cheap-LLM orchestration became cost-aware: strategies can prefer a flagged “cheap” profile, fall back to provider-specific minis, or favor local Ollama, all using live/fallback pricing data that can be refreshed on demand; the settings UI surfaces these controls and cheap usage stats so automated summarization, extraction, titling, and attachment-description tasks choose the lowest-cost path (lib/llm/cheap-llm.ts:1, lib/llm/pricing.ts:1, app/api/startup/refresh-pricing/route.ts:1, components/settings/chat-settings-tab.tsx:1, components/settings/connection-profiles-tab.tsx:1, lib/memory/cheap-llm-tasks.ts:1).

Minor Features

  • The chat composer is friendlier—auto-resizing, keyboard-friendly input plus an inline Markdown preview toggle streamline writing while keeping attachments visible in the footer layout (app/(authenticated)/chats/[id]/page.tsx:1210).
  • Streaming responses now display a bespoke quill-writing animation and the UI ships self-hosted Inter weights with Georgia-styled rendered Markdown to keep the experience consistent offline (components/chat/QuillAnimation.tsx:1, app/globals.css:1).
  • Power users get richer diagnostics: the debug panel renders provider icons, status badges, and copy actions while the messages API streams full tool/context budgeting metadata for every LLM request (components/debug/DebugPanel.tsx:1, app/api/chats/[id]/messages/route.ts:492).
  • Documentation and tests were expanded to cover the new roadmap, cheap-LLM design, embedding/vector-store behavior, and memory processor interfaces, so contributors have specs plus Jest coverage to lean on (PLAN.md:1, features/CHEAP-LLM.md:1, __tests__/unit/lib/embedding/vector-store.test.ts:1, __tests__/unit/lib/memory/memory-processor.test.ts:1).

Bug Fixes

  • Anthropic requests now set either temperature or top_p (never both), preventing the API errors that previously surfaced when both knobs were passed together (lib/llm/anthropic.ts:126).
  • Chat creation/initialization respects the new participant model and default persona selection, eliminating failures when migrating older conversations or seeding greetings (lib/json-store/repositories/chats.repository.ts:1, lib/chat/initialize.ts:32).
  • Deleted image references no longer break galleries—missing files render a cleanup prompt so users can remove stale IDs without editing JSON manually (components/images/DeletedImagePlaceholder.tsx:1).
  • The custom NextAuth adapter now imports from the v4-compatible path, ensuring authentication continues to work after upstream package upgrades (lib/json-store/auth-adapter.ts:12).