Changelog
Notable changes to the babelConnect SDKs and the embedding contract. This is the
customer-facing view; full engineering detail (server, proto, app, per-SDK) lives in the
repository CHANGELOG.md.
0.16.0 — 2026-07-05
- Fixed: mount-time session correlation.
EmbedOptions.session/contextpassed tomount()now reach the call correlation (PlaceCall.session) as documented — previously only a separatesession.set()after boot did; the values handed over with the initial token handshake were silently ignored. A mid-sessionauth.setstill leaves session and context untouched, as specified. - The embedding protocol is now covered by a browser end-to-end scenario suite (real host SDK + real app in a real cross-origin iframe): the token handshake and its timeout, origin allowlisting (including fail-closed defaults), mid-session token refresh, click-to-dial, call events, tab routing (named, alias, and legacy numeric forms), resize reporting, and session-end signaling are all exercised on every change.
0.15.1 — 2026-07-04
- Status-picker lock: accounts that lock the agent-status picker via the admin widget
setting (
agentStatus.selectionEnabled: false) now get the same behavior in this app — the presence selector stays visible showing the agent's current status, but agents cannot change it themselves. Carried as a newaccount.allow_status_changefield in the app feature config (default: allowed), available to all SDK consumers via the agent state'sconfigmessage.
0.14.0 — 2026-07-04
- The call surface reads like a phone: a caller who matches one of the agent's phonebook contacts now rings in by name (the number stays visible as a secondary line, and the desktop notification greets by name too); the call status is a human phrase in all four app languages ("Incoming call…", "Connected", …) instead of technical state codes; and live calls show a running HH:MM:SS duration timer.
- The generated API reference pages (gRPC, REST, events, TypeScript) were refreshed and now track the current SDK surface again.
0.13.0 — 2026-07-03
- One endpoint, plain HTTP/1.1: all SDK clients now speak the
Connect protocol over standard HTTP/1.1 — browsers keep
gRPC-web, and the Go and Dart SDKs reach the server through the same public web endpoint
as everything else. No HTTP/2 requirement, no special port, and Connect endpoints are
plain curl-able JSON (
POST /babelconnect.v1.Agent/<Method>). - Breaking — the native gRPC endpoint is removed, including the bidirectional
SessionRPC and the dedicated gRPC service port. Nothing published ever depended on it; if you dialed the server with a stock gRPC client, switch to a Connect client (or gRPC-web) against the standard endpoint. - Breaking — Dart SDK:
connect()now takes a singlebackendUrlinstead of separate host/port/web-URL parameters. The Go SDK's public API is unchanged.
0.12.0 — 2026-07-03
- Legacy embed-host compatibility: integrations built against the previous embedded phone
widget can migrate with minimal changes — opt into legacy-shaped
user.loaded/agent.loadedpayloads viaeventsVersion: 'v1'(defaults stay minimal/PII-lean),app.setTabaccepts legacy numeric tab indices, and a script-tag (IIFE) bundle is served for hosts without a bundler. A step-by-step migration guide ships with the SDK docs. - Outbound dialer: agents can log into a campaign, receive and work leads, and submit dispositions — surfaced in the app's Outbound tab and as SDK campaign state/commands.
- Localization: the app ships German, French, and Spanish alongside English, with a persisted language setting and locale-aware date/number formats.
- Resilience: reloading the page (or a brief network blip) mid-call no longer hangs up the customer — the server parks the live call briefly and hands it back on reconnect. Opening the app in a second tab now warns and hands the session over cleanly instead of running two sessions.
- Refreshed UI: the app now follows the current babelforce brand — classic light theme by default (persisted per agent), an accessible dark mode, and per-deployment brand color/logo overrides unchanged for white-label hosts.
0.11.0 — 2026-07-02
- Every SDK now advertises its kind and version on the wire, and the app detects when a newer build has been deployed and offers a one-click reload.
- Connection liveness and round-trip latency are now measured via a ping/pong heartbeat.
0.10.0 — 2026-07-02
- Multi-account: an agent who holds the
agentrole in more than one account can switch between them without logging out, and the current account is shown by name. (For embedded deployments, account selection stays the host's responsibility.) - Microphone problems now report a specific reason —
mic_not_found,mic_permission_denied, ormic_in_use— instead of one opaque error.
0.9.0 — 2026-07-02
- Sessions now survive a full shift. The access token is refreshed automatically before it expires, so long-lived agent sessions no longer drop calls or get logged out mid-shift.
- Mid-session token refresh for embeds. A host may call
auth.setwith a fresh token while the agent is live; it is applied to subsequent calls and reconnects without tearing down the session or interrupting an active call. - Clean auth failures. A rejected or expired token now signs the agent out immediately instead of silently retrying for minutes.
- Friendlier, specific login errors (wrong password vs. server error).
0.8.0 — 2026-07-02
- Embedding. The postMessage host contract is documented and hardened:
auth.sethandoff, CTI screen-pop dispatched bykind, auto-resize,user.logoff, and click-to-dial carrying the hostsession. - Security — action required. The app now fails closed when framed with no origin
allowlist. Set
BC_EMBED_ORIGINSto your host page origin(s) and add it to the CSPframeAncestors. See the embedding guide. - The Go SDK gains
RevokeToken(RFC 7009), matching the TypeScript and Dart SDKs.
0.7.1 — 2026-06-30
- Documented the agent availability model —
presence/presenceName/line_blocked— including "line blocked after sign-in" recovery (Reset /resetLineStatus) and therevokeToken/POST /oauth/revokesign-out flow. Quickstarts now point at the PKCE flow.
Versions 0.7.2–0.7.4 were Helm-chart-only and have no SDK-facing changes.