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: WidgetMedAssist 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: MobileMedAssist 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: MobileIn-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: WidgetPer-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: WidgetUser 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: WidgetStart 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: WidgetMessage 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: WidgetWidget 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 fixBackground 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: MobileChatbot 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 fixMCP 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 atmedai-mcp.orbi.health, replacing the previous inconsistent setup.Type: Platform · AI / ModelFull 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: WidgetFile 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: WidgetWidget 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 ofmedassist-widget-embed has been significantly reduced.Type: Improvement · Surface: PlatformDraggable 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 fixWebSocket disconnection handling — auth timeout & session mismatch
Socket close codes1008, 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 fixMCP 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 · PlatformOrchestrator 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 · ImprovementDoctor 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: WidgetWhatsApp 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 · PlatformAudio 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: WidgetWidget 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: WidgetLocation 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 · PlatformAppointment 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 · PlatformDev 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 · PlatformTool filter support — include/exclude tools per workspace
The MCP server now supports server-side tool filtering viainclude_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
