> ## Documentation Index
> Fetch the complete documentation index at: https://developer.eka.care/llms.txt
> Use this file to discover all available pages before exploring further.

# EkaAgents Release Notes

> Feature releases, improvements, and fixes across the chatbot widget, MedAssist SDK, MCP server, and AI layer.

**March 2026**

### Voice agent mode via WebRTC

The chatbot widget now supports a real-time voice agent mode using WebRTC for bidirectional audio. The WebSocket connection handles signaling (offer/answer exchange), enabling live voice conversations directly inside the embedded widget.

**Type:** Feature  ·  **Surface:** Widget

***

### MedAssist SDK integrated into iOS app

The MedAssist SDK is now embedded in the iOS PHR app. Includes pill and multi-select interactive components, agent ID configuration, and typewriter text animation for AI responses.

**Type:** Feature  ·  **Surface:** Mobile

***

### MedAssist on Android — agent ID configuration

Agent ID changes shipped for the Android PHR app, enabling the MedAssist chatbot to be scoped per product context on Android alongside iOS.

**Type:** Feature  ·  **Surface:** Mobile

***

### In-widget authentication — OTP tool integration

Users can now authenticate via OTP directly within the chatbot. The agent triggers the auth tool, renders an inline OTP input, and proceeds with the conversation post-verification without leaving the widget.

**Type:** Feature  ·  **Surface:** Widget

***

### Per-agent, per-tab context storage

The bot now maintains isolated context per agent ID and browser tab. Multiple agents or tabs can run simultaneously without conversation state bleeding across instances.

**Type:** Feature  ·  **Surface:** Widget

***

### User feedback API — thumbs up/down on bot responses

A feedback API is now live. The chatbot widget collects thumbs up/down signals per message and the close-chat flow prompts for session-level feedback before teardown.

**Type:** Feature  ·  **Surface:** Widget

***

### Start new chat & session expired UI

When a session expires or the refresh token fails, the widget now shows a clear "Session expired — Start new chat" prompt instead of an infinite reconnect loop or a confusing blank state.

**Type:** Improvement  ·  **Surface:** Widget

***

### Message retry with connection status awareness

If a reply doesn't arrive for a sent message, the widget now silently retries internally. When the socket is disconnected, a connection status indicator is shown rather than an error — no retry button needed in the happy path.

**Type:** Improvement  ·  **Surface:** Widget

***

### Widget crash now shows a graceful error page

Unhandled runtime errors in the widget are caught and rendered as a user-facing error page instead of a blank or broken widget. External script errors (e.g. New Relic cross-origin failures) no longer trigger the widget's error state.

**Type:** Improvement  ·  Bug fix

***

### Background page scroll blocked when scrolling widget on iPhone

Scrolling inside the embedded widget was causing the host page to scroll simultaneously on iOS Safari. Scroll propagation is now correctly contained to the widget viewport.

**Type:** Bug fix  ·  **Surface:** Mobile

***

### Chatbot close button no longer blocks the host page

After closing the chatbot widget, the underlying host page was unclickable due to a cleanup issue with the iframe overlay. The close flow now correctly tears down the widget DOM.

**Type:** Bug fix

***

### MCP server — clinical guidelines hosted at medai-mcp.orbi.health

Clinical guidelines MCP tools from the MedAI-Tools-DS repository are now consistently hosted and accessible at `medai-mcp.orbi.health`, replacing the previous inconsistent setup.

**Type:** Platform  ·  AI / Model

**February 2026**

### Full theming & customisation support for the generic bot

The embed widget is now fully themeable per deployment. Configurable properties include accent colour (user message bubbles, send button, pill borders), primary colour, and online/offline status label. Multi-select pill hover states, loading shimmer, and empty chat state are all covered by the theme layer.

**Type:** Improvement  ·  **Surface:** Widget

***

### File upload support — multi-file with enforced limits

Users can now upload files (JPEG, PNG, PDF) during a conversation. Limits enforced: 2 MB per file, 3 files per conversation turn, 5 files per session. Upload errors are shown inline on file selection rather than on send.

**Type:** Feature  ·  **Surface:** Widget

***

### Widget embed script — faster load & smaller bundle

CSS and JS now load via optimised stylesheets for faster initial paint. A loader is shown in the iframe during initialisation. The npm bundle size of `medassist-widget-embed` has been significantly reduced.

**Type:** Improvement  ·  **Surface:** Platform

***

### Draggable widget — text in chat is now copyable

The drag handle has been moved to the widget header, so users can select and copy text from bot responses without triggering an accidental drag.

**Type:** Improvement  ·  Bug fix

***

### WebSocket disconnection handling — auth timeout & session mismatch

Socket close codes `1008`, `auth_timeout`, and `session_token_mismatch` are now handled explicitly. The refresh API was previously being called twice on token expiry due to a race condition — this has been fixed.

**Type:** Bug fix

***

### MCP server — tool descriptions improved for sharper LLM calls

Tool descriptions across the Eka Doctor MCP have been reviewed and rewritten so the LLM selects tools more precisely. Prompts, resources, and elucidation fields are now used consistently across all tools.

**Type:** AI / Model  ·  Platform

***

### Orchestrator prompt tuned for widget conversation context

The main orchestrator prompt for the generic widget agent has been updated to specify when each tool should be called, improving the accuracy and coherence of patient-facing flows (create patient, fetch records, book appointment).

**Type:** AI / Model  ·  Improvement

***

### Doctor card revamped with new format

The doctor card rendered inside the chatbot (for appointment booking flows) has been redesigned with an updated layout and information hierarchy.

**Type:** Improvement  ·  **Surface:** Widget

***

### WhatsApp delivery channel for MedAssist

MedAssist agents can now be delivered over WhatsApp as a conversation channel, in addition to web widget and iframe embed.

**Type:** Feature  ·  Platform

**January 2026**

### Audio input in bot — voice messages processed in background

Users can now send voice messages in the chatbot. The audio is transcribed in the background and submitted as a text message — the chat shows a "…" indicator while processing instead of streaming the transcript inline.

**Type:** Feature  ·  **Surface:** Widget

***

### Widget UX improvements — draggable, auto-scroll, full-mode default

Three core UX improvements: iframe embed now opens in full mode by default; the widget is draggable so users can reposition it; new messages auto-scroll the conversation to the latest reply.

**Type:** Improvement  ·  **Surface:** Widget

***

### Location permission tool in Synapse

The client layer (Synapse) now supports a location permission tool, enabling agents to request and use geolocation as part of a conversation flow (e.g. find nearby doctors or labs).

**Type:** Feature  ·  Platform

***

### Appointment booking tool — reliability fixes

Three reliability issues fixed in the appointment tool: duplicate slot bookings were possible even when a slot was taken; bookings could be made outside doctor availability windows; slot lookup was using the same date for start and end, returning no results.

**Type:** Bug fix  ·  Platform

***

### Dev console — user invite UI

A user invite interface is now available in the developer console, allowing workspace admins to invite team members directly from the console UI.

**Type:** Feature  ·  Platform

***

### Tool filter support — include/exclude tools per workspace

The MCP server now supports server-side tool filtering via `include_tool` and `exclude_tool` params, as well as workspace-scoped tool configuration. Different deployments can expose only the tools relevant to their use case.

**Type:** Feature  ·  Platform

**December 2025**

### Remote MCP server live on production

The Eka remote MCP server is now deployed to production. Developers can connect Claude Desktop, ChatGPT, or any MCP-compatible client using OAuth + OIDC without running the server locally.

**Type:** Feature  ·  Platform

***

### MCP submitted to OpenAI plugin directory

The Eka MCP server has been submitted for listing in the OpenAI plugin / GPT Actions directory, expanding the surfaces where EkaAgents tools can be accessed.

**Type:** Feature  ·  Platform

***

### MCP documentation published

Full documentation for the Eka Doctor MCP server is now available, covering tool descriptions, installation on Claude Desktop (Windows), authentication, and usage examples.

**Type:** Platform

***

### MedAssist Delivery Layer (Matrix) shipped

The Matrix delivery layer is complete — it handles routing of agent messages across channels (web widget, iframe, WhatsApp) and manages session state independently of the AI model layer.

**Type:** Feature  ·  Platform

***

### MedAssist Client Layer (Synapse) shipped

Synapse — the client-facing SDK and abstraction layer for MedAssist — is complete. It handles session initialisation, tool call visualisation, and event-based communication between the chatbot UI and the backend agent.

**Type:** Feature  ·  Platform

***

### PHR chatbot migrated to MedAssist platform + prompt improvements

The PHR chatbot (previously running on a separate DocAssist infrastructure) has been migrated to the unified MedAssist platform. Prompts were updated for better conversational quality on the new stack.

**Type:** AI / Model  ·  Platform

***

### Agent response evaluation system on Langfuse

An evals pipeline is now live — agent responses are scored and traced via Langfuse, giving the team observability into model quality, tool selection accuracy, and per-session performance.

**Type:** AI / Model  ·  Platform


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.