Changelog
This page lists the changes made to the Squire SDK, including new features, improvements, and bug fixes.
The Squire SDK follows semver versioning.
Upgrading
To upgrade to the latest version of the Squire SDK, run the install command for your package manager:
npm
npm install @squirehealth/sdk@latestReleases
1.17.0 (2026-11-04)
- feat: Recording audio is streamed with a more efficient codec, which uses much less upload bandwidth. Browsers without codec support keep working as before.
- fix: The last moments of a recording are no longer cut off when it stops.
- fix: Stopping a recording while it is still starting now stops it cleanly and releases the microphone.
1.16.0 (2026-10-26)
- feat: Every summary now carries
content_format:plainfor plain text ormarkdownfor rich text, ornullwhen the consultation has no report. A report takes the format of the template it was generated from. The type is exported asContentFormat, an open union so a format the installed SDK predates still passes through. See Content format. - feat:
startRecording()accepts acontentFormatalongside atemplateSchema, which makes the custom template, and the reports generated from it, rich text (Markdown) or plain text. A new template defaults toplain; when omitted, an existing template keeps its format. PassingcontentFormatwithout atemplateSchemathrows. See Templates. - fix:
splitSoap()andmergeSoap()now return the summary in snake_case, likegetSummary(), instead of camelCase.
1.15.0 (2026-09-15)
Type fix: Summary.data is now typed Episode[] | null. The API has always been able to answer with
data: null; the type declared otherwise, so summary.data.map(...) type-checked and then threw at
runtime. Nothing changes at runtime. TypeScript now flags that code until it handles the null case,
which is the bug it was hiding. Guard on summary.data before iterating, and read report_status for why
it is null. See Report status.
- A recording now ends on any summary whose
report_statusis notintermediate, instead of only onfinal. A consultation with no report content arrives as a regularsummary-readyevent whosedataisnulland whosereport_statussays why. Nothing new to hook into:summary-readyremains the one event that ends a recording. Previously such a consultation left the SDK waiting forever, so the recording never finished and the microphone was never released. report_statusgains thenot_generatedandpurgedstates, which accompany anulldata. Afinalorintermediatereport can also carry anulldatawhen it produced no structured content. See Report status.- New
Squire.DATA_PURGEDerror code (HTTP 410).splitSoap()andmergeSoap()reject with aSquire.ApiErrorcarrying it once the consultation’s transcript has been removed under a data retention policy; the report can no longer be regenerated, so the error is final rather than worth retrying. See Purged data. Squire.ApiError#codeis now populated for error bodies that carry a code but no human-readabledetail, where it was previously dropped.
1.14.0 (2026-08-20)
- New
user.getUsage()method on the SDK instance to get the current usage per product for the signed-in user. See Product usage. - Failed API requests now reject with a
Squire.ApiErrorcarrying the responsestatus,codeanddetail. Use theSquire.CONSULTATION_QUOTA_EXCEEDEDcode to detect a user who has used their full allowance for the current period (HTTP 402). See API errors. startRecording()now rejects on a failed consultation creation instead of throwing an unrelated error further down.
1.13.0 (2026-06-01)
- Support for Intake: schedule and manage patient intake forms via the
IntakeAPI
1.12.0 (2026-05-19)
- Optimized audio streaming: audio is now transmitted as 16-bit PCM (int16), halving network bandwidth with no impact on transcription quality.
1.11.0 (2026-04-14)
- Report length: optional
writingStyle(brief,balanced,detailed) onstartRecording; when omitted, behavior matches earlier releases (user default). getDefaultWritingStyle()on theSquireinstance returns the authenticated user’s default report length from the API.setDefaultWritingStyle(style)on theSquireinstance updates that default for the authenticated user.- [internal]: changed bundler to tsdown. This change is backwards compatible, and should have no impact on the usage. In case you notice issues, do not hesitate to contact us for help.
1.10.0 (2026-02-11)
- Multi-SOAP support:
splitSoap()andmergeSoap()methods on theConsultationobject to split a consultation into multiple SOAP notes or merge them back together - New
getSummary()method on theConsultationobject to retrieve a consultation summary - New
squire.consultation(id)method to create aConsultationinstance from an existing consultation ID - Deprecate
getConsultationSummary()in favor ofconsultation.getSummary()
1.9.0 (2026-01-27)
- Expose state change events via
state-changeevent
1.8.0 (2025-10-27)
- Introduction of Widgets
- Use of AudioWorklet for improved audio processing and reduced latency, with fallback for unsupported browsers
- Patch
1.8.1: AwaitstartRecordinguntil session is started, request retry logic on failures (e.g. network issues, server errors),logLevelparam to control logging verbosity
1.7.0 (2025-10-08)
- New
getConsultationSummarymethod to retrieve a consultation summary by its ID - The
startRecordingmethod now returns theConsultationobject, which includes theid - Support for new template
specialist_general_free_text_api - Patch
1.7.1: Collect microphone technical stats
1.6.0 (2025-08-25)
- Support for passing
templateSchemainstartRecording - Patch
1.6.2: Fix for improved audio buffering - Patch
1.6.4: Enforce starting one recording at a time in the SDK to prevent users from starting multiple recordings simultaneously (e.g. when clicking the start button multiple times)
1.5.0 (2025-08-15)
- Add support for the Squire microphone
- Improve start recording speed on lower quality connections
- Add JSDoc info for public methods
1.4.0 (2025-07-04)
- Add support for
pauseRecordingandresumeRecordingmethods
1.3.0 (2025-06-19)
- Support for live intermediate report responses
1.2.0 (2025-05-28)
- Terms & conditions management (viewing, accepting)
1.1.0 (2025-04-25)
- Allow specifying the template ID when generating a consultation report. (e.g. for specialists)
- Expose
IBUIcode for diagnosis
1.0.0 (2025-02-17)
- Initial release of the Squire SDK
Last updated on