Sep 19, 2026
- New retrieval gate: every turn first asks TypeSafe's Jev decision model whether it needs a memory at all, and chit-chat turns skip the embedding and rerank on both LanceDB tables, saving roughly 4–5 seconds
- The gate races the search and only cancels it, never delays it: a timeout or an error counts as retrieve, so a Jev outage never makes a turn slower
RETRIEVAL_GATE_ENABLED=falserestores searching on every turn, andRETRIEVAL_GATE_MODELpins a Jev version
Sep 18, 2026
- New selfies: when a visitor asks for a photo, the
take_selfietool redraws a reference image through an image model, and the result is pushed to the frontend asGET /api/selfie/<id>.pngover an RTVIserver-message, appearing mid-call - References are organized as
outfits/(exactly one per render, day or night picked by the clock) andfriends/(file names become thewith_friendsenum, and naming anyone moves the scene outdoors) - New offline command
laplace-generate-image, sharing the bot's generation path and references
Sep 9, 2026
- Stream recall: a new broadcast catalog,
stream_catalog.json(built bylaplace-build-stream-catalog), paired with arecall_streamstool that answers whole-broadcast questions such as "what did you stream last week"; dates and periods are resolved in Chinese and English againstPERSONA_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 --todayreplays 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-mem0dump 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 sameOPENROUTER_API_KEYand is on by default;RERANK_ENABLED=falseturns it off, andRERANK_BASE_URLstill 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, TTSs2.1-pro, refinement~google/gemini-pro-latest - Pipecat's bundled demo UI is off by default; set
EIDOLON_PIPECAT_DEMO_ENABLED=trueto 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
/mcpexposing two tools,search_persona_factsandsearch_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-factsaccepts 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/memoriesto list,POST /api/memories/forgetto clear, both authenticated withloginSyncTokenand isolated by Bilibili UID - Fish Audio TTS switches voices at runtime, triggered by voice commands such as "be gentler" or "be more upbeat"
LaplaceMem0MemoryServicefilters 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-fastcross-encoder reranking - New
laplace-eval-retrievalevaluation 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_TIMEZONEto 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 20, 2026