Skip to content

v0.3.20: Per-provider options, Qwen3, RAG pipeline, Services page

Choose a tag to compare

@thatsme thatsme released this 01 Apr 10:41

What's New

Services Page

  • New /services admin page with real connectivity checks for 9 external services
    • Database (SELECT 1), Google API (OAuth token), Telegram Bot (sends test message), Discord Bot (sends test message), 2FA/TOTP (challenge via Telegram with PubSub auto-update), Ollama (lists models), LM Studio (lists models), GitHub API (authenticates with PAT), Web Automator (health check), Embeddings (stale model detection)
  • Config button + Check button per service

RAG Pipeline Overhaul

  • Embedding metadata — tracks embedding_model, embedding_dim, embedded_at per entry; stale_embedding_count/1 detects model mismatches; Embeddings panel on Services page
  • Relevance gradingmin_score opt filters vector results via SQL cosine similarity threshold (1 - (embedding <=> ?))
  • Query rewritingRAG.QueryRewriter generates 2-3 semantic variants via light-tier LLM with ETS cache (5min TTL); opt-in via rewrite: true
  • Semantic chunkingRAG.Chunker splits on markdown headers, function defs, paragraphs (boundary-aware, not sliding window); long content auto-chunks into parent + children; search deduplicates chunks from same parent
  • Fallback routingRAG.Fallback searches both Memory + Knowledge with rewriting + grading; Research skill now cross-store; context section omitted when nothing found
  • Research skill uses search_with_fallback/2 for full RAG pipeline
  • CodeGenerator knowledge searches use query rewriting

Per-Provider Inference Options

  • LLM providers now support per-model inference options (temperature, num_ctx, top_p, etc.)
  • Dynamic options form in Admin > LLM Providers shows relevant fields based on provider type
    • Ollama: num_ctx, num_predict, temperature, top_p, top_k, repeat_penalty, num_thread, num_gpu
    • OpenAI-compatible: temperature, top_p, max_tokens, thinking toggle
    • Gemini/Anthropic: temperature, top_p, max_tokens

Ollama Chat API

  • Switched from /api/generate to /api/chat with proper messages format

Qwen3 Thinking Mode Support

  • Thinking toggle per provider for Qwen3 models (disables chain-of-thought token burn)
  • OpenAI-compatible client falls back to reasoning_content when content is empty

Embedding Throttle

  • New EmbedThrottle GenServer limits concurrent embedding requests (max 3) to prevent Finch connection pool exhaustion during bulk knowledge ingestion

Workflow Step Editor Fixes

  • Save no longer closes the workflow or step editor — stay in place with flash confirmation
  • Scaffold values (prompt template, config) now persist correctly to DB
  • Nil llm_tier no longer silently blocks saves

GitHub Security Review

  • Refactored as pure diff fetcher (no embedded LLM call)
  • 5 modes: latest_pr, all_prs, latest_push, specific_pr, specific_commit
  • Config presets in step editor dropdown

LLM Transform Simplified

  • Removed config field from step editor
  • Added 10 prompt presets: Security Review, Code Review, Changelog, Bullet Points, etc.
  • Config rendered above Prompt Template for skills that use both

Config Page Improvements

  • embedding.provider now shows a dropdown of enabled provider names
  • Yellow tooltip hints on all settings
  • Config seeder fix: env-backed settings no longer overwrite DB values on boot

Dashboard Cleanup

  • Google status card moved to Services page
  • Node name moved to dashboard header next to version

Forge / Code Generator

  • Skill template and behaviour fetched directly from knowledge base
  • <think> tags from Qwen3 models stripped before code extraction
  • Knowledge searches now use query rewriting for broader retrieval

Migrations

  • add_options_to_llm_providersoptions map column on llm_providers
  • add_embedding_metadataembedding_model, embedding_dim, embedded_at on both stores
  • add_chunking_supportparent_id, chunk_index on both stores