Skip to main content

Changelog

The format follows Keep a Changelog and the package follows Semantic Versioning.

Published under the npm scope @ki-kombinat as @ki-kombinat/delphi-client-js-sdk.

0.1.4 — 2026-07-27

Compatible with Delphi platform v0.9.15. See the v0.9.15 release notes.

Added

  • Text chat sessionsmode: 'text' sessions can send pure text messages against WEB_CHAT endpoints.
  • Text ↔ voice handoffDelphiClient.upgradeToVoice() and DelphiClient.downgradeToText() continue the same runtime sessionId across text chat and WebRTC voice.
  • Read-aloud playback lifecycleSessionState.audioRequestPending / audioPlaying, plus onAudioPlaybackStart / onAudioPlaybackEnd callbacks (also exposed through useDelphiSession) so UIs can show a spinner from send until browser playback starts and ends.
  • React exampleTextChatDemo shows text chat plus optional voice upgrade with VITE_TEXT_CHAT_ENDPOINT_ID.

Changed

  • Segmented MP3 read-aloud — when the server splits TTS into sentence-level MP3 segments, the SDK queues and plays them as one logical response; audioDone() still resolves once for the full reply.
  • Interruptible playback — a new readAloud / audio browser-action request immediately stops the currently playing audio and resets the playback queue so the fresh response starts without waiting. Interrupted playback is cancelled gracefully and does not surface a playback error.

Fixed

  • Weak cryptographyrandomString now uses crypto.getRandomValues instead of Math.random.

0.1.3 — 2026-05-12

Compatible with Delphi platform v0.9.11. See the v0.9.11 release notes.

Changed

  • Session map is keyed by endpointId + SessionMode — the same endpoint can hold a voice_conversation speaker and a listen subscriber at once, each with its own token, sessionId, and channel WebSocket. getSession now accepts an optional mode; omitting it returns an arbitrary match for that endpoint (avoid when multiple modes are open). endSession(endpointId) still closes every mode for that endpoint; pass endSession(endpointId, mode) to close one.

Fixed

  • Voice session opentelproDomain and webrtcGatewayUrl are required and validated before the client caches a voice_conversation entry, so failed token responses do not wedge retries. startCall clears preparing state when openSession throws; if runtime state is missing gateway metadata (e.g. after upgrading from an older SDK), startCall attempts recovery via endCall before surfacing errors.

Updated

  • ReactuseDelphiSession resolves getSession(endpointId, mode) so hooks align with the mode-specific map.
  • Examples — the interpretation listener avoids duplicate listen subscriptions on repeated clicks; read-aloud "End session" closes audio_playback only.

0.1.2 — 2026-05-10

Added

  • Interpretation speaker / listenerSessionMode 'listen', DelphiClient.listen(), SessionClient.listen(), and ListenOptions for subscribing to TelPhi interpretation streams (replay + live). Speaker side uses voice_conversation with BrowserContext.role: 'speaker'; listener uses 'listen' with role: 'listener' and matching identifier / scope.
  • Published under the npm scope @ki-kombinat.

0.1.0

Initial public release. See the SDK's [README.md] for the full surface at first release.