Changelog
What we ship, when we
Every release. Every fix. Every breaking change. Saaya doesn't disappear behind a curtain between launches — here's the public log.
- v2.4.0April 22, 2026
Conversation-flow agents in alpha, plus eleven new Indic voices.
A meaty release this month — the long-promised structured agent runtime is now in alpha, and the Sarvam Bulbul-v3 voice pack covers eleven Indic languages out of the box.
- NewConversation-flow agents (alpha) — build multi-step structured flows alongside the single-prompt runtime.
- NewSarvam Bulbul-v3 added to the TTS provider list. Hindi, Tamil, Telugu, Bengali, Marathi, Gujarati, Kannada, Malayalam, Punjabi, Odia, Assamese.
- ImprovedSession viewer load time cut by 4× on workspaces with > 50k sessions.
- ImprovedOutbound call ringing now respects locale-specific DNC rules automatically.
- FixedWhatsApp message delivery delays during high-volume campaigns.
- FixedKB ingest occasionally double-counted PDF pages with embedded images.
- v2.3.0March 18, 2026
MCP endpoint goes generally available.
After a quiet beta with a handful of design partners, the MCP endpoint is open to everyone. Connect Claude, Cursor, ChatGPT, or any MCP client and your sessions / KBs / campaigns become one prompt away.
- NewMCP endpoint at mcp.saaya.ai — read-only by default, RBAC-scoped per key.
- NewEight tools exposed: list_agents, get_agent, query_knowledge_base, list_sessions, get_session_transcript, get_session_summary, list_campaigns, get_campaign_status.
- NewBridge SDK published to npm (@saaya/mcp-bridge) for clients that prefer a local subprocess.
- ImprovedAPI rate-limit headers now match the conventions used by Stripe and Linear.
- FixedRace condition during agent rollback when a draft was promoted in the same second.
- v2.2.0February 4, 2026
Strict-citation RAG, KB-gap analytics, and audit-log streaming.
- NewStrict-citation mode: agents refuse to answer when source confidence is below your threshold and escalate cleanly.
- NewKB-gap analytics — top unanswered questions ranked by frequency and severity.
- NewAudit-log streaming to S3, GCS, and Azure Blob.
- ImprovedKnowledge-base ingest now handles documents up to 1 GB without chunking the upload pipeline.
- ImprovedSentiment scoring switched to a fine-tuned model — accuracy up 14% on Indic-English code-mixed transcripts.
- BreakingThe deprecated `/v0/agents` namespace is removed. Migrate to `/v1/agents` (full migration guide in docs).
- v2.1.0January 8, 2026
New campaign engine + WhatsApp-first cascades.
- NewRe-architected campaign engine — 3× more concurrent calls per worker pool, predictable retries.
- NewChannel cascades: try WhatsApp first, fall through to voice, end with email — all from one config.
- ImprovedLive ops dashboard now shows per-channel answer rate, sentiment distribution, and KB-hit ratio.
- FixedSome campaigns paused mid-run when the underlying number pool exhausted — now drains gracefully.
- v2.0.0December 12, 2025
Saaya 2.0 — multimodal agents in one config.
The big one. One agent definition, every channel — voice, video, chat, WhatsApp. The provider matrix lets you pick the LLM, STT, TTS, and avatar per call without rewriting your prompts.
- NewMultimodal agent runtime — voice, video, chat, WhatsApp from a single config.
- NewProvider-agnostic LLM, STT, TTS, and avatar layers. Switch in seconds; no lock-in.
- NewVersioning + rollback — every publish is a versioned snapshot, restore in one call.
- ImprovedSub-second cold starts thanks to the new Redis config cache.
- Breaking`agent.voice_id` flat field is replaced by `agent.voice = { provider, voice_id }`.
- DeprecatedThe legacy single-channel "Voice Bot" object is deprecated and will be removed in 2.5.0.
- v1.9.0November 4, 2025
Smart escalation, sentiment-aware barge-in, and 200ms turn-taking.
- NewSmart escalation — agents hand off to a human queue based on sentiment, complexity, or explicit request.
- ImprovedTurn-taking latency cut to a 200ms barge-in median across LiveKit + Twilio paths.
- FixedTool-call retries occasionally double-fired when the underlying provider returned 5xx mid-stream.