Dr. Olivia
Dr. Olivia — Release Notes What changed and when
Guide Home Back to Dr. Olivia

May 15, 2026

Type to the avatar as well as talk to it, session sentiment analysis for administrators, and a broad round of reliability fixes.

New features

  • Text Input on the Avatar. The avatar now has a dedicated text-input mode for students in quiet environments (libraries, shared study rooms) where speaking out loud isn't practical. See the Avatar Conversation guide.

    • Floating Text button. A round button in the lower-left of the avatar tile toggles typing mode.
    • Auto-mute / auto-unmute. Opening text mode mutes the microphone; closing it (or unmuting via the toolbar) restores audio. Manual mutes outside text mode are left alone.
    • Chat-style textarea. Auto-grows up to five lines, supports Enter-to-send / Shift+Enter for newlines / Esc to close.
    • Same response pipeline. Dr. Olivia speaks the answer through the avatar and writes it to the transcript — no separate "text-only" flow.
  • Sentiment Analysis on Sessions. Every completed session is now scored for the student's emotional state and overall sentiment by a dedicated post-session function. Drives upcoming analytics views and helps the team spot frustration, confusion, or disengagement patterns across cohorts.

    • Cross-vendor evaluation. Anthropic Claude (Haiku 4.5) does the scoring so the same vendor isn't both generating and evaluating the conversation.
    • Pinned taxonomy. Fine-grained sentiment (Very Positive through Very Negative) plus emotions (Happiness, Anger, Sadness, Fear, Surprise, Disgust, Confusion, Frustration, Curiosity, Engagement). Each is scored 1-100 as the model's confidence the metric is present.
    • Snapshot, not timeline. Re-running the analysis overwrites the prior snapshot — there is no history kept.
  • Admin: Sentiment Throughout.

    • Dashboard. New Overall Sentiment card with a 3-bucket pie (Positive / Neutral / Negative) and a weighted 1.0–5.0 mood score, plus an Emotion Averages bar chart covering the full pinned taxonomy.
    • Session detail. Mood pill in the session header (colored by score) gives an at-a-glance read; clicking it opens the Session Insights flyout with the full sentiment breakdown alongside topics and usage scores.
    • User detail. Mood stat card joins First Session / Last Session / Sessions / Total Time, with the weighted score and descriptor. Pie + emotion breakdown collapsed below for the full picture.
  • Admin: Hide Noisy Stats.

    • New ChatStatDefinitions.DashboardShow flag. Per-stat opt-out controlling whether a stat is included in dashboard aggregations (pipeline-performance bar chart and metrics-over- time series). Stats hidden from the dashboard are still recorded per-request and visible in the Session Insights flyout — they're just kept out of the rollup charts where they'd distort the scale. Defaults to visible; admins toggle off the misbehaving stats via SQL.

Enhanced features

  • Admin: Session Insights Flyout.

    • Renamed and reorganized. The former "Pipeline Stats" flyout is now "Session Insights" — it hosts Session Mood, Topic Understanding pies, Usage Scores, and Request Stats in one place. Bolder section titles with teal accent dividers, full-width content, zebra-striped tables, and spacing between sections.
    • Usage Scores replaces the Session Totals pie. A pie chart of independent millisecond timings never really worked — the data now renders as a sorted full-width table, easier to scan and compare.

Bug fixes

  • Image Generation Fixes.

    • Avatar no longer reads citation markup. Fixed a bug where Dr. Olivia would vocalize the raw <=== JSON ===> separator and the JSON citation block after an image was generated. Citations now route to the materials panel as intended.
    • Text chatbot images land in the right bubble. When you typed a follow-up question while an image was still rendering, the finished image used to attach itself to your newest reply instead of the placeholder. It now correctly replaces the placeholder, even if other turns happened in between.
    • Reopen transcript with an image up. The collapsed-transcript reopen tab now sits above the image overlay, so you can re-expand the transcript to read what Dr. Olivia said without dismissing the image first.
    • Image-prompt turns no longer disappear from the summary email. When an image generation succeeded but the avatar timed out before Dr. Olivia's text reply could be saved, the whole turn was being filtered out of the session-summary email — so the student saw the image vanish and lost the context of what they asked. Those turns are now included with the student's prompt and the generated thumbnail, even when the assistant text didn't make it to the database.
  • Text Chatbot Reliability.

    • Session-end is more reliable. The text chatbot's "I'm leaving" signal previously failed silently in cross-origin development setups (and could fail in production for students with strict third-party cookie settings). It now uses a JWT-authenticated request that survives page unload, so background processes (session summary, USMLE classification, email) trigger consistently.
  • Cancellation & Interrupts.

    • User interrupts now actually cancel the response. When you start a new question while Dr. Olivia is still answering the previous one, the in-flight response is aborted instead of running to completion in the background. Cuts wasted compute and stops orphaned partial replies from polluting the conversation history.
    • Interrupted turns flagged correctly. Partial responses that get cancelled mid-stream are now marked as cancelled in the database. Downstream consumers (session summaries, quiz generation, conversation reconciliation) skip them so they don't pull in unfinished text.
  • Privacy & Display.

    • Internal control tags no longer leak into student-facing views. Fixed a bug where Tavus's audio-emotion analysis (<user_audio_analysis> and related wrappers) could appear inline in the student's session-history view as if the student had said it. Now stripped at the block level alongside <user_appearance>, <user_emotions>, and other control markup.