00:00 / 00:00

Eidolon

Changelog

Sep 9, 2026

  • Stream recall: a new broadcast catalog, stream_catalog.json (built by laplace-build-stream-catalog), paired with a recall_streams tool that answers whole-broadcast questions such as "what did you stream last week"; dates and periods are resolved in Chinese and English against PERSONA_TIMEZONE, at most twice per user turn
  • Stream archive now runs before persona facts in the voice pipeline, and recap questions read the catalog directly, skipping embedding, reranking, and persona-fact retrieval
  • laplace-search --recall --today replays the same recall path against a fixed clock
  • Fish Audio TTS is no longer cut off when its first audio packet is slow

Sep 8, 2026

  • Mem0 is now self-hosted: vectors live in Qdrant and the engine runs embedded in the bot process, with no dependency on Mem0's cloud service
  • New laplace-export-mem0 / laplace-import-mem0 dump a cloud account to JSON and load it into Qdrant, idempotently and resumably
  • With TURN configured, the server gathers relay candidates only, so the origin's public IP never reaches a viewer's SDP; the relay runs over TCP, and unroutable remote candidates are dropped

Sep 7, 2026

  • Cross-encoder reranking now runs through OpenRouter (cohere/rerank-4-fast) on the same OPENROUTER_API_KEY and is on by default; RERANK_ENABLED=false turns it off, and RERANK_BASE_URL still points back at Cohere directly
  • Reranking retries immediately on a 429 and falls back quietly on failure, no longer affecting the turn's retrieval
  • The MCP service moved to the official SDK 2.0
  • Default models unified: LLM ~google/gemini-flash-latest, TTS s2.1-pro, refinement ~google/gemini-pro-latest
  • Pipecat's bundled demo UI is off by default; set EIDOLON_PIPECAT_DEMO_ENABLED=true to serve it at / and /client

Jun 17, 2026

  • The Soniox realtime transcription default moved to stt-rt-v5

Jun 12, 2026

  • Added a Soniox transcription glossary, soniox_context.toml, improving recognition of proper nouns and names
  • The offline transcription default moved to stt-async-v5
  • Transcription polling uses a longer HTTP timeout and tolerates transient errors

May 31, 2026

  • Public MCP retrieval service: a read-only Streamable HTTP endpoint at /mcp exposing two tools, search_persona_facts and search_streams, with tiered rate limits by client IP / Bilibili UID

May 19, 2026

  • Transcription supports automatic chunking, breaking past the Soniox per-file duration limit
  • laplace-ingest-facts accepts ISO date formats alongside Chinese dates
  • Facts ingest detects and strips Tieba floor markers (第NNN楼:) from raw fact lines

May 15, 2026

  • Per-viewer Mem0 management endpoints: GET /api/memories to list, POST /api/memories/forget to clear, both authenticated with loginSyncToken and isolated by Bilibili UID
  • Fish Audio TTS switches voices at runtime, triggered by voice commands such as "be gentler" or "be more upbeat"
  • LaplaceMem0MemoryService filters out tool-call messages, keeping them from polluting long-term memory

May 14, 2026

  • Hybrid retrieval upgrade: vector + Chinese BM25 (jieba-tokenized FTS), with optional Cohere rerank-v4.0-fast cross-encoder reranking
  • New laplace-eval-retrieval evaluation tool, quantifying retrieval recall@k / MRR
  • Opus bitrate chosen per session based on the frontend audio quality
  • Caching and colloquial phrasing for recent stream dates

May 13, 2026

  • Cloudflare Realtime TURN integration, with credentials minted on demand and rotated automatically
  • Viewer identity is verified with a LAPLACE Login Sync token, and signed-in users skip the anonymous rate limit
  • Added PERSONA_TIMEZONE to inject a timezone-aware system prompt prefix
  • LanceDB indexes are tracked with Git LFS and bundled into the CI image

May 11, 2026

  • Project renamed to laplace-eidolon
  • Added Docker and docker-compose self-hosting configuration
  • The server injects WebRTC ICE servers, so it works behind NAT

May 10, 2026

  • Stream Archive: a LanceDB-backed RAG service over past stream segments
  • Persona Facts: a LanceDB-backed RAG service over persona facts
  • First offline toolchain: a full pipeline for download, transcription, refinement, and ingestion

May 6, 2026

Repository initialized

Last updated on September 10, 2026

Tech otakus destroy the world