> ## Documentation Index
> Fetch the complete documentation index at: https://developer.eka.care/llms.txt
> Use this file to discover all available pages before exploring further.

# EkaScribe Changelog

> Updates and improvements to EkaScribe — transcription and clinical documentation.

export const SubscribeForm = () => {
  const [email, setEmail] = useState("");
  const [status, setStatus] = useState("idle");
  const handleSubmit = e => {
    e.preventDefault();
    const trimmed = email.trim();
    if (!trimmed || !trimmed.includes("@")) {
      setStatus("error");
      return;
    }
    window.open("http://eepurl.com/i3Lz2E", "_blank");
    setStatus("success");
    setEmail("");
  };
  return <div style={{
    background: "#E1F5EE",
    border: "1px solid #5DCAA5",
    borderRadius: "12px",
    padding: "20px 24px",
    marginBottom: "28px"
  }}>
      <div style={{
    fontSize: "15px",
    fontWeight: "600",
    color: "#085041",
    marginBottom: "4px"
  }}>
        Get weekly developer updates in your inbox
      </div>
      <div style={{
    fontSize: "13px",
    color: "#0F6E56",
    marginBottom: "14px",
    lineHeight: "1.5"
  }}>
        New features, SDK releases, API changes, and bug fixes — delivered every week. No spam. Unsubscribe anytime.
      </div>
      {status === "success" ? <div style={{
    background: "#0F4C3A",
    color: "white",
    borderRadius: "8px",
    padding: "10px 16px",
    fontSize: "13px"
  }}>
          ✓ Check your inbox to confirm your subscription.
        </div> : <form onSubmit={handleSubmit} style={{
    display: "flex",
    gap: "8px",
    flexWrap: "wrap"
  }}>
          <input type="email" value={email} onChange={e => {
    setEmail(e.target.value);
    setStatus("idle");
  }} placeholder="your@email.com" required style={{
    flex: "1",
    minWidth: "200px",
    height: "38px",
    border: status === "error" ? "1.5px solid #E24B4A" : "1.5px solid #5DCAA5",
    borderRadius: "8px",
    padding: "0 14px",
    fontSize: "13px",
    color: "#111",
    background: "white",
    outline: "none"
  }} />
          <button type="submit" style={{
    height: "38px",
    background: "#0F4C3A",
    color: "white",
    border: "none",
    borderRadius: "8px",
    padding: "0 20px",
    fontSize: "13px",
    fontWeight: "500",
    cursor: "pointer",
    whiteSpace: "nowrap"
  }}>
            Subscribe →
          </button>
        </form>}
      {status === "error" && <div style={{
    fontSize: "11px",
    color: "#E24B4A",
    marginTop: "6px"
  }}>
          Please enter a valid email address.
        </div>}
      <div style={{
    fontSize: "11px",
    color: "#0F6E56",
    marginTop: "8px",
    opacity: "0.75"
  }}>
        Powered by Mailchimp · Your data is safe with us
      </div>
    </div>;
};

<SubscribeForm />

<Update
  label="May 29, 2026"
  description="May 29, 2026"
  tags={["Feature"]}
  rss={{
title: "EkaScribe — May 29, 2026",
description: "• MedScribe Alliance TS SDK ships a feature refresh under the LIFE-1696 track\n\nRead more: https://developer.eka.care/ekascribe-changelog"
}}
>
  ## Added

  * **\[EkaScribe] MedScribe Alliance TS SDK feature update** — The `@eka-care/medscribe-alliance-ts-sdk` ships a feature refresh (LIFE-1696) covering 13 files with new/updated session and recording surfaces. Pull the latest tag and review the diff for the full surface.
</Update>

<Update
  label="May 27, 2026"
  description="May 27, 2026"
  tags={["Feature"]}
  rss={{
title: "EkaScribe — May 27, 2026",
description: "• Eka JS SDK adds startRecordingV2 for the next-gen scribe recording flow\n\nRead more: https://developer.eka.care/ekascribe-changelog"
}}
>
  ## Added

  * **\[EkaScribe] startRecordingV2 in Eka JS SDK** — `@eka-care/eka-js-sdk` adds a `startRecordingV2` method that exposes the next-generation EkaScribe recording flow to JS consumers, alongside the existing `startRecording`. Use the V2 entry point for new integrations.
</Update>

<Update
  label="May 25, 2026"
  description="May 25, 2026"
  tags={["Feature"]}
  rss={{
title: "EkaScribe — May 25, 2026",
description: "• Eka JS SDK ships a scribe UI widget for drop-in recording experiences\n\nRead more: https://developer.eka.care/ekascribe-changelog"
}}
>
  ## Added

  * **\[EkaScribe] Scribe UI widget in Eka JS SDK** — `@eka-care/eka-js-sdk` adds a packaged UI widget for the scribe recording flow, giving integrators a drop-in surface for capture, status, and transcript display instead of wiring those primitives by hand.
</Update>

<Update
  label="May 20, 2026"
  description="May 20, 2026"
  tags={["Update"]}
  rss={{
title: "EkaScribe — May 20, 2026",
description: "• Eka Scribe Android bumped to ekaNetworkAndroid 2.0.6\n\nRead more: https://developer.eka.care/ekascribe-changelog"
}}
>
  ## Improved

  * **\[EkaScribe] Eka Scribe Android → ekaNetworkAndroid 2.0.6** — `Eka-Scribe-Android` bumps the `ekaNetworkAndroid` version catalog entry from 2.0.5 to 2.0.6, picking up upstream support for custom OkHttp interceptors at network init.
</Update>

<Update
  label="May 8, 2026"
  description="May 8, 2026"
  tags={["Feature"]}
  rss={{
title: "EkaScribe — May 8, 2026",
description: "• MedScribe Alliance TS SDK adds pause and resume controls for in-progress recordings\n\nRead more: https://developer.eka.care/ekascribe-changelog"
}}
>
  ## Added

  * **\[EkaScribe] Pause and resume in MedScribe Alliance TS SDK** — The MedScribe Alliance TypeScript SDK now exposes `pause` and `resume` methods, letting integrators temporarily halt and continue an in-progress scribe recording without ending or restarting the session. Useful for handling interruptions mid-consultation.
</Update>

<Update
  label="May 7, 2026"
  description="May 7, 2026"
  tags={["Feature", "Update"]}
  rss={{
title: "EkaScribe — May 7, 2026",
description: "• EkaScribe TS SDK v2.1.50 adds getDocument, getSessionDetails, startRecordingForExistingSession, and document publish controls\n\n• VAD lifecycle hardened against runtime errors\n\nRead more: https://developer.eka.care/ekascribe-changelog"
}}
>
  ## Added

  * **\[EkaScribe] EkaScribe TS SDK getDocument, getSessionDetails, and existing-session resume** — `@eka-care/ekascribe-ts-sdk` v2.1.50 adds three new instance methods: `getDocument(document_id)` (fetch a document by id), `getSessionDetails({ session_id, presigned })` (fetch full session metadata, documents, and `user_status` lifecycle), and `startRecordingForExistingSession({ txn_id, business_id, created_at, microphoneID?, sharedWorkerUrl?, flavour? })` (resume recording for a previously initialised session by reconstructing the audio pipeline and session bucket path). New `TGetV1SessionDetailsResponse`, `TSessionDocument`, and related types are exported. [View docs](/api-reference/health-ai/ekascribe/SDKs/TS-sdk)

  * **\[EkaScribe] Document publish payload in EkaScribe TS SDK** — `postV1Document` and the `getV1Document` response now carry an optional `publish: Record<string, unknown>` payload, allowing integrators to send and read structured publish metadata alongside a session document.

  * **\[EkaScribe] user\_status on patchTransactionStatus** — `patchTransactionStatus` now accepts an optional `user_status` field, mirroring the lifecycle states (`init`, `recording_started`, `commit`) returned by `getSessionDetails`, so clients can advance the user-side status on a session in one call.

  ## Improved

  * **\[EkaScribe] Hardened VAD lifecycle in EkaScribe TS SDK** — `VadWebClient` now wraps `startVad`, `pauseVad`, `destroyVad`, `resetVadWebInstance`, `reinitializeVad`, and the silent-audio monitor in defensive try/catch blocks, and `monitorAudioCapture` now guards `micVad.pause()` with an existence check. Errors are logged via `[EkaScribe]` console output instead of bubbling up and breaking the host page. The `EkaScribe` facade applies the same protection around `reinitializeVad`, `destroyVad`, and `pauseVad`.
</Update>

<Update
  label="May 6, 2026"
  description="May 6, 2026"
  tags={["Fix"]}
  rss={{
title: "EkaScribe — May 6, 2026",
description: "• EkaScribe Android session polling now transitions to ERROR on timeout or failure instead of silently completing\n\nRead more: https://developer.eka.care/ekascribe-changelog"
}}
>
  ## Fixed

  * **\[EkaScribe] Session polling now surfaces failures as ERROR** — `SessionManager` in the EkaScribe Android SDK now transitions to `ERROR` (instead of `COMPLETED`) when transcript or full-output polling fails or times out. Failed transcript polls also short-circuit subsequent full-output polling, and `handleTransactionError` is consistently invoked on failures so users can recover and start a new session. Test scenarios were updated to reflect the new contract. [View docs](/api-reference/health-ai/ekascribe/SDKs/android-sdk)
</Update>

<Update
  label="April 20, 2026"
  description="April 20, 2026"
  tags={["Update"]}
  rss={{
title: "EkaScribe — April 20, 2026",
description: "• DocAssist iOS surfaces voice-to-text error states gracefully\n\nRead more: https://developer.eka.care/ekascribe-changelog"
}}
>
  ## Improved

  * **\[EkaScribe] Voice-to-text error handling on iOS DocAssist** — DocAssist for iOS now detects and surfaces voice-to-text failure scenarios with a clear error state instead of silently dropping the recording, making transient transcription errors recoverable for the user.
</Update>

<Update
  label="April 17, 2026"
  description="April 17, 2026"
  tags={["Update"]}
  rss={{
title: "EkaScribe — April 17, 2026",
description: "• Android SDK switches to MP3 encoding replacing AAC/MP4\n\n• Android SDK partial output polling via templateResults\n\n• iOS SDK parallel chunk processing\n\nRead more: https://developer.eka.care/ekascribe-changelog"
}}
>
  ## Improved

  * **\[EkaScribe] Android SDK MP3 encoding** — The EkaScribe Android SDK now uses MP3 encoding (via LAME) instead of AAC/MP4, producing raw MPEG Layer III bitstreams for more reliable audio chunk uploads. The AAC encoder and MP4 format option have been removed. [View docs](/api-reference/health-ai/ekascribe/SDKs/android-sdk)

  * **\[EkaScribe] Android SDK partial output polling** — Transaction result polling in the Android SDK now checks statuses across `integration`, `transcript`, and `custom` fields within `templateResults`, replacing the legacy `output` list. Empty statuses are treated as failures instead of timing out, improving error detection. [View docs](/api-reference/health-ai/ekascribe/SDKs/android-sdk)

  * **\[EkaScribe] iOS SDK parallel chunk processing** — The EkaScribe iOS SDK now processes audio chunks in parallel, improving transcription throughput and reducing end-to-end latency for longer recording sessions.
</Update>

<Update
  label="April 16, 2026"
  description="April 16, 2026"
  tags={["Feature", "Update"]}
  rss={{
title: "EkaScribe — April 16, 2026",
description: "• Document management methods added to JS SDK\n\n• Output polling now supports document_id and DLP parameters\n\nRead more: https://developer.eka.care/ekascribe-changelog"
}}
>
  ## Added

  * **\[EkaScribe] Document management in JS SDK** — The EkaScribe JS SDK now exposes `createDocument`, `deleteDocument`, and `getChunkTranscript` methods, enabling programmatic document lifecycle management and per-chunk transcript retrieval directly from the SDK. [View docs](/api-reference/health-ai/ekascribe/SDKs/TS-sdk)

  ## Improved

  * **\[EkaScribe] Output polling parameters in JS SDK** — The `pollOutputSummary` method now accepts `document_id` and `dlp` query parameters, and the status API response type includes `document_id` and `document_path` fields. The status API timeout has been increased from 16s to 20s for improved reliability. [View docs](/api-reference/health-ai/ekascribe/SDKs/TS-sdk)
</Update>

<Update
  label="April 13, 2026"
  description="Week of April 8–13"
  tags={["Update"]}
  rss={{
title: "EkaScribe — Week of April 8–13, 2026",
description: "• EkaScribe documentation revamped — New Quick Start guide, reordered integration methods with SDKs recommended first, and improved sidebar navigation.\n\nRead more: https://developer.eka.care/ekascribe-changelog"
}}
>
  ## Updates

  * **EkaScribe documentation revamped** — The EkaScribe docs now include a Quick Start guide with a step-by-step TypeScript SDK integration walkthrough. Integration methods are reordered to recommend SDKs first, REST APIs second, and Chrome Extension third. SDK sidebar titles use proper casing, and deprecated APIs are nested under a warning section for clarity. [View docs](/api-reference/health-ai/ekascribe/quick-start)
</Update>
