Skip to Content
SDK 1.14 is out with per-user product usage and typed API errors. Read the changelog →
ReferenceSDK changelog

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 install @squirehealth/sdk@latest

Releases

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: plain for plain text or markdown for rich text, or null when the consultation has no report. A report takes the format of the template it was generated from. The type is exported as ContentFormat, an open union so a format the installed SDK predates still passes through. See Content format.
  • feat: startRecording() accepts a contentFormat alongside a templateSchema, which makes the custom template, and the reports generated from it, rich text (Markdown) or plain text. A new template defaults to plain; when omitted, an existing template keeps its format. Passing contentFormat without a templateSchema throws. See Templates.
  • fix: splitSoap() and mergeSoap() now return the summary in snake_case, like getSummary(), 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_status is not intermediate, instead of only on final. A consultation with no report content arrives as a regular summary-ready event whose data is null and whose report_status says why. Nothing new to hook into: summary-ready remains 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_status gains the not_generated and purged states, which accompany a null data. A final or intermediate report can also carry a null data when it produced no structured content. See Report status.
  • New Squire.DATA_PURGED error code (HTTP 410). splitSoap() and mergeSoap() reject with a Squire.ApiError carrying 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#code is now populated for error bodies that carry a code but no human-readable detail, 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.ApiError carrying the response status, code and detail. Use the Squire.CONSULTATION_QUOTA_EXCEEDED code 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 Intake API

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) on startRecording; when omitted, behavior matches earlier releases (user default).
  • getDefaultWritingStyle() on the Squire instance returns the authenticated user’s default report length from the API.
  • setDefaultWritingStyle(style) on the Squire instance 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() and mergeSoap() methods on the Consultation object to split a consultation into multiple SOAP notes or merge them back together
  • New getSummary() method on the Consultation object to retrieve a consultation summary
  • New squire.consultation(id) method to create a Consultation instance from an existing consultation ID
  • Deprecate getConsultationSummary() in favor of consultation.getSummary()

1.9.0 (2026-01-27)

  • Expose state change events via state-change event

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: Await startRecording until session is started, request retry logic on failures (e.g. network issues, server errors), logLevel param to control logging verbosity

1.7.0 (2025-10-08)

  • New getConsultationSummary method to retrieve a consultation summary by its ID
  • The startRecording method now returns the Consultation object, which includes the id
  • 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 templateSchema in startRecording
  • 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 pauseRecording and resumeRecording methods

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 IBUI code for diagnosis

1.0.0 (2025-02-17)

  • Initial release of the Squire SDK
Last updated on