v1.0.11 - 2026-08-25
Added
- Activity events (
onEvent) — a stream of typed, PHI-free events about what happens inside the widget: recording (started,stopped,audio_lost,microphone_disconnected), clinician activity (interaction,typing), report generation (generation_started,settled) and lifecycle (ready,closed). Meant so a HIS with an inactivity logout knows the clinician is working even when they are not touching the keyboard. See Activity events. eventSubscriptionsprop — which eventsonEventreceives: exact names, family wildcards ("recording.*") or"*". Without it nothing is delivered.recording.heartbeat— beats on the first audio chunk and every ~30s for as long as audio keeps flowing to the transcriber. It is the signal for keeping an external session alive without holding state: if audio stops flowing, the beats stop and your own timeout runs.SdkEvent,SdkEventName,KnownSdkEventName,SdkEventFamily,SdkEventHandler,SdkEventPayloadMapandSdkEventSubscriptiontypes exported from@omniloy/sofia-sdk.
Fixed
- The malformed-JSON guard for web component attributes now also covers kebab-case attributes (
template-extras,insertion-preview-class-names,event-subscriptions), which were previously not validated.
v1.0.10 - 2026-08-10
Added
- Activation safeguards — before a consultation starts, SofIA evaluates the patient context and may warn, ask for confirmation, or prevent the assistant from starting. Rules are evaluated independently and the most restrictive one wins. See Security and Compliance.
- Minor patient policy — configurable per client (no effect, warning, explicit confirmation, or block) with its own age threshold. Derived from
patientdata.birthDateand set in your Omniloy account; write to support@omniloy.com. Unconfigured, nothing changes. - AI use refusal — new optional
signedConsent.aiUsefield ("accepted","refused","pending") insidepatientdata. With"refused"and the consent indicator enabled, recording and report generation are unavailable in that consultation (recording, dictation, report and clinical actions); the chat stays available. Omitting it reads as"pending"and keeps today’s behaviour. See Patient Data. - Third state in the header consent indicator to reflect a refusal of AI use.
Changed
- The consent indicator goes from purely informational to also enabling the AI-refusal block. If your HIS does not report
aiUse, nothing changes. - Stability and reliability improvements across recording, report generation, and the insertion preview (stopping a recording is always available; edits made in the preview are fully preserved).
Fixed
- Malformed JSON in a web component attribute (e.g.
patientdata) no longer crashes the widget — it logs a configuration error and keeps the last valid value. - Chat validation no longer rejects legitimate clinical language.
- Updated dependencies to patch security vulnerabilities.
v1.0.9 - 2026-07-16
Added
- Clinical Actions (Extras) — extract the actions that come out of a visit (petitions, appointments, tests, referrals) and deliver them to your HIS by category. You define the categories in the new
templateExtrasprop and receive their items in thehandleExtrascallback, exactly as your schema produced them (no field renaming). One button per category, the first two inline and the rest in a three-dots menu. See Clinical Actions (Extras). templateExtrasprop (object, JSON Schema) — its top-level properties are the categories.handleExtrascallback — receives the items of the clicked category, extracted on demand. Reuses the insertion preview modal for curation (sameshowInsertionPreviewflag, enabled bytemplateExtras).
Changed
- Redesigned transcriber action bar: dedicated record/stop button, audio level meter, and the Generate and Extras buttons split into their own pills.
v1.0.8 - 2026-07-09
Added
- Insertion preview modal — review and curate a generated report before it reaches your app. Opt-in per API key (off by default). See Insertion preview.
onReportApplyprop — receive the curated report from the insertion preview modal.updateTemplatecallback — feed your EMR’s existing field values into generation so regeneration produces a revised note instead of an identical copy. See Pre-fill from your EMR.baseurlauto-resolution — newer API keys select the endpoint automatically, sobaseurlis now optional for them.
v1.0.7 - 2026-06-23
Added
- Audio environment selector in microphone settings: a per-user VAD min-coverage option fetched from the backend and forwarded as
vad_min_coveragein the WS record command
Deprecated
wssurl— deprecated and ignored. The transcription WebSocket URL is now provided by the settings API; just remove the prop.
v1.0.6 - 2026-06-11
Added
- Patient-data anonymization — PII in
patientdatais masked client-side before every outbound request and restored in the response.
Changed
- Per-field custom description limit raised from 1,000 to 3,000 characters.
- Stability and reliability improvements.
v1.0.5 - 2026-05-13
Added
- Automatic report drafting — a report is drafted in the background as soon as recording ends.
- Audio-cut detection — audio cuts are flagged inline in the transcription, with a warning before you generate or regenerate.
Changed
- Stability and reliability improvements to recording and note generation.
v1.0.4 - 2026-04-17
Changed
- Reliability improvements for audio recording — microphone recovery, connectivity monitoring, and clearer “no microphone available” handling.
v1.0.3 - 2026-04-14
Added
- Extended language support.
Removed
showconsentindicatorproperty.
Fixed
- Security patches for third-party dependencies.
v1.0.2 - 2026-03-19
Added
- Extended language support (Czech, French, Swedish;
ensplit intoen_GB/en_US). - Redesigned template-configuration UI — a general-prompt field and per-field enable/disable toggles.
- File drag-and-drop and clipboard paste in the chat.
Breaking Changes
- Added the
showconsentindicatorproperty; the consent indicator is hidden by default (set it totrueto show). (Later removed in 1.0.3.)
v1.0.0 — 2025
Release type: MajorAdded
templateprop replacestoolsargsfor clinical data schema configurationtemplateidprop required alongsidetemplatefor report generationisConfigurablefield in template properties to control user customizationdebug="true"mode with structured console logging prefixed with[Sofia SDK]- Automatic chat-only mode when
template/templateidare omitted
Changed
- Generate button now requires both
templateandtemplateidto appear
Deprecated
toolsargs→ usetemplate(will be removed in v2.0)
Removed
isonlychat— chat-only mode is now automaticdisablegenerate— omittemplate/templateidinsteaddisableactions— don’t mount the component insteadsofiatitle— title is always “SofIA”isscreenloading— not available in Chat-based UItranscriptorselectvalues— no effectrenderReportContent— custom rendering not available in Chat UIhandleFill— not available in Chat UItoast— no effect
Migration
See the Migration Guide for step-by-step instructions.v0.0.x — 2024
Early pre-release versions. Highlights:- v0.0.10 — file processing support; deprecation warnings for legacy props;
isConfigurablesupport in template fields. - v0.0.9 — configurable autosummary of the conversation.
- v0.0.3 — initial public release:
<sofia-sdk>web component with Shadow DOM, real-time audio transcription, report generation, framework support (Vanilla JS, React, Angular), English/Spanish,handleReport/setIsOpen/setGetLastReportcallbacks,patientdata, and JSON Schema Draft-07 templates.