Skip to main content

Changelog

Archived SDK documentation

This page preserves the previous SDK documentation and its existing URL. The generated API reference was produced from SDK 0.1.5, source commit 4db9fbe925bf07a4b95e936a5bb172d6ab5820bb. Handbook behavior and compatibility claims below are historical descriptions, not a newly verified support guarantee. For the reviewed version-specific reference, see the SDK 0.1.5 overview.

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 sessions — mode: 'text' sessions can send pure text messages against WEB_CHAT endpoints.
  • Text ↔ voice handoff — DelphiClient.upgradeToVoice() and DelphiClient.downgradeToText() continue the same runtime sessionId across text chat and WebRTC voice.
  • Read-aloud playback lifecycle — SessionState.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 example — TextChatDemo 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 cryptography — randomString 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 open — telproDomain 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​

  • React — useDelphiSession 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 / listener — SessionMode '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.