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 sessions —
mode: 'text'sessions can send pure text messages againstWEB_CHATendpoints. - Text ↔ voice handoff —
DelphiClient.upgradeToVoice()andDelphiClient.downgradeToText()continue the same runtimesessionIdacross text chat and WebRTC voice. - Read-aloud playback lifecycle —
SessionState.audioRequestPending/audioPlaying, plusonAudioPlaybackStart/onAudioPlaybackEndcallbacks (also exposed throughuseDelphiSession) so UIs can show a spinner from send until browser playback starts and ends. - React example —
TextChatDemoshows text chat plus optional voice upgrade withVITE_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 —
randomStringnow usescrypto.getRandomValuesinstead ofMath.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 avoice_conversationspeaker and alistensubscriber at once, each with its own token,sessionId, and channel WebSocket.getSessionnow accepts an optionalmode; omitting it returns an arbitrary match for that endpoint (avoid when multiple modes are open).endSession(endpointId)still closes every mode for that endpoint; passendSession(endpointId, mode)to close one.
Fixed
- Voice session open —
telproDomainandwebrtcGatewayUrlare required and validated before the client caches avoice_conversationentry, so failed token responses do not wedge retries.startCallclears preparing state whenopenSessionthrows; if runtime state is missing gateway metadata (e.g. after upgrading from an older SDK),startCallattempts recovery viaendCallbefore surfacing errors.
Updated
- React —
useDelphiSessionresolvesgetSession(endpointId, mode)so hooks align with the mode-specific map. - Examples — the interpretation listener avoids duplicate
listensubscriptions on repeated clicks; read-aloud "End session" closesaudio_playbackonly.
0.1.2 — 2026-05-10
Added
- Interpretation speaker / listener —
SessionMode'listen',DelphiClient.listen(),SessionClient.listen(), andListenOptionsfor subscribing to TelPhi interpretation streams (replay + live). Speaker side usesvoice_conversationwithBrowserContext.role: 'speaker'; listener uses'listen'withrole: 'listener'and matchingidentifier/ 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.