20 August 2026
- Add support for nested external document
attachmentsinsetDocumentSuggestion(). - Improve SDK external document suggestions by checking availability in the background when the suggestion chip appears and attaching after the user clicks it.
- Keep the SDK loader visible until the authenticated chat is ready, and show the SDK error page instead of a blank iframe when startup fails.
- Fix downloading a generated Word document, which saved an HTML error page instead of the
.docxfile. - Hide the “Open in sidebar” button and the file chip preview for generated Word documents until the SDK has a document viewer.
- Return users to the requested page in the main Libra app after an SDK link leads them through login or signup.
- Preserve selected research sources when continuing from the SDK to Libra.
4 August 2026
- Fix monKEY Belgium citation navigation to emit the canonical
monkey_beresearch source id instead of the legacywolters_kluwer_monkey_beslug. - Fix nested attachment/search submenus overflowing the SDK iframe viewport.
- Use a chat-bubble icon for the New Chat button instead of a plain plus.
- Add legal notice footer.
14 July 2026
- Add
Libra.openChatById()so product pages can reopen a cited Libra chat after extracting thelibraChatIdquery parameter. - Add support for Kleos product.
- Show an error message when the WK account is already linked/connected to another user.
- Add
account_in_useto the exportedLibraAuthErrorReasonunion; thelibra:sdk:auth-errorevent now emits this reason when the WK account is already linked/connected to another user. - Improve UI to match the Libra design system.
- Show “monKEY (BE)”, instead of “wolters_kluwer_monkey_be”, in insights.
3 July 2026
- Fix inline event handler CSP violations in the SDK header’s close button.
- BREAKING: Rename research source slugs to product-oriented names (e.g.
wolters_kluwer_nl→inview_legal_nl,wolters_kluwer_de→wko_de). The old slugs are no longer accepted — integrators must migrate to the new names. - BREAKING: Remove the
ExternalDocumentSourcetype.ExternalDocumentnow usesResearchSourceIdfor itssourcefield. - BREAKING: Drop research sources not exposed by the SDK (e.g. legal/web search, Swiss, EU, and US sources) from
ResearchSourceId, which is now limited to the supported products’ sources. - BREAKING: Replace
onExternalDocumentCitationClickcallback withonCitationClick. The event now carriesdatawithsource,url, andcontent(present for “To source”, absent for “View source”). Hosts can callevent.preventDefault()to prevent the SDK from opening the URL in a new tab. - Add a Libra-branded SDK headbar when
onCloseis provided; omittingonCloseleaves the SDK header out. The close button callsonClose, and the host remains responsible for hiding the SDK wrapper and callingLibra.detach(). - Show a notice when a context-awareness document is unavailable in the FAB index.
- Add support for signing out in proxy mode. It removes the user’s identity link on the backend (the next CTE re-auth requires re-linking) and emits
unauthenticated / signout.
17 June 2026
- Re-add support for UMD and CJS.
- BREAKING: Drop support for UMD and CJS.
- BREAKING: Add required
productIdparam toLibra.init(). Identifies the legal-research product (e.g.one_it) and is sent on every backend request as theX-Libra-SDK-Product-IDheader. - BREAKING: In proxy mode, the sign out button is hidden and
Libra.signOut()throws. - BREAKING: Hide the close button when the host registers no
onClosehandler. - Add a splash screen during the initial load.
- Redirect to Libra workspace when assistant’s info icon is clicked from above the message input.
- Show an error page if the BFF proxy returned a 5xx error during startup.
- BREAKING: Non-English locales are no longer bundled into
libra.js. The main bundle now ships onlyen-US. The required locales must be either registered explicitly inLibra.init({ locales: [...] }), or added via a CDN locale script tag. - BREAKING:
Libra.init({ locale })andLibra.setLocale(locale)now throw synchronously for unregistered locales, instead of silently falling back toen-US. - Add
proxyoption toLibra.init()for routing API requests through a BFF proxy server. When set, the SDK’s localStorage token flow is disabled and auth is handled server-side. Static headers can be injected on every proxied request viaproxy.headers. - Unify citations modal UI with other modals.
- Fix translation keys containing an escaped quote (e.g.
I've verified my email) being dropped from locale bundles. - Reduce main bundle size from 5.4mb to 3.2mb.
29 May 2026
- Add CDN support via
https://cdn.wolterskluwer.io/wk/libra-sdk/<VERSION>/libra.js
27 May 2026
- Fix citations popovers not flipping above the message input.
22 May 2026
- Add
onExternalDocumentCitationClickcallback toLibra.init(). Fires when the user navigates to a cited external document via “To source” in the citation tooltip (type: 'chunk') or “View source” in the citation list (type: 'document'). The event carriesurl,source, andtype, allowing the host app to handle navigation in-place instead of opening a new tab. - Add tooltip to the document suggestion chip.
- Redesign the auth page.
- Fix external attachment integrations (Kleos, SharePoint, RA-Micro) not working.
- Keep research sources selected on “New Chat” button click.
- Hide “To source” / “View source” buttons for uploaded-document citations, since the SDK has no PDF viewer.
- Support the
disable_document_uploadsfeature flag. When set, attachment options are hidden from the chat input. - Support the
sdk_only_accessfeature flag. The “Continue in Libra” button is hidden, and other redirects (e.g. from assistants/workflows) are blocked by a toast. The toast behavior might get replaced in the future by a more fine-grained gating mechanism that either hides or disables the buttons.
13 May 2026
- Add support for German Public Sector sources (
de_pubsec_jobcenter,de_pubsec_sozial,de_pubsec_auslr,de_pubsec_star).
13 May 2026
- Fix “Share via email” failing silently in Chromium browsers due to
mailto:navigation being blocked from the SDK’s iframe context. - Add
X-Libra-SDK-Versionrequest header so the backend can track SDK version usage/errors.
12 May 2026
- Add Assistants and Workflows.
- Redesign message input for SDK mode with compact controls, bottom-aligned dropdowns, and an inline prompt improve/undo button next to the textarea.
- Fix onboarding view width not being full width on large screens.
- Fix multiple issues with external document citations in SDK chats.
- Fix export modal layout on narrow screens.
- Improve performance of streamed messages by reducing re-renders and memory usage.
6 May 2026
- Fix new chat after loading from history no longer reopens the previous chat.
5 May 2026
- Fix Word export icon.
- Improve citations icons.
- BREAKING: Remove
containerIdconfig field fromLibra.init(). CallLibra.attach(elementOrId)directly afterinit()to mount the widget. - BREAKING: Rename
'interactive_login'source to'signin'inLibraAuthStateandLibraAuthError. - Add sign up and onboarding flows.
- Add
'signup'source toLibraAuthStateandLibraAuthErrorso hosts can distinguish signup outcomes from signin outcomes. - Add
mountTargetconfig field toLibra.init()so the host can choose the wrapper’s parent element (defaults todocument.body). Lets the host scope the SDK’sz-index: 999999to a subtree they own instead of having it dominate the page’s root stacking context. - Add
zIndexconfig field toLibra.init()to override the wrapper’sz-index(defaults to999999). Pairs withmountTargetso hosts can lower the SDK below their existing smallz-indexvalues (e.g.5) instead of bumping host overlays past999999. - Add
Libra.setLocale()to change the widget’s UI language at runtime. - Adhere to the configured locale when opening the login popup.
- Preserve research sources selection when the chat is restored from history or after a host page reload.
- Handle blocked states (e.g. unverified email, expired trial / canceled subscription, pending team membership, and inactive subscription) UI instead of showing a blank iframe.
- Fix “Connect your account”, “More about {source}”, and Otto Schmidt license-management actions silently doing nothing inside the SDK. They now open the relevant page or settings modal on the main app in a new browser tab.
- Fix newly created chats not being restored after a host page reload. Previously, only chats reopened from history would resume.
24 April 2026
- Add
onAuthStateChangeandonAuthErrorcallbacks toLibra.init()so host can listen to auth changes/errors. - Add support for the following locales:
de-CH,fr-CH,it-CH. - Restore last active chat session after page reloads and page navigation in MPAs (multi-page applications).
- Reduce bundle size from 5.1 to 3.9mb.
- Reduce startup latency by 10-15%.
- Use icon instead of text (“Add {title} to chat” -> ”+ {title}”) for document suggestion chips.
- Hide “New Chat” button’s label on small screens.
- Fix citations list not showing when clicking on “Cited Sources” pill at the bottom of a message.
- Fix “scroll to bottom” overlap with the research sources dropdown.
- Fix “scroll to bottom” overlap with the document suggestion chip.
- BREAKING: Remove
documentSourceconfig field fromLibra.init(). - BREAKING: Update
setDocumentSuggestion()to acceptsourceas a parameter. - Introduce new UI for the chat interface.
- Reduce bundle size from 11.8mb to 5.1mb.
- Fix multiple icons issues that were not loading properly in insights, citations, etc.
- Fix the welcome message truncated text.
16 April 2026
- Add
documentSourceconfig field onLibra.init()to identify the research source that owns documents suggested viasetDocumentSuggestion(). - Add
Libra.setDocumentSuggestion()to set a document suggestion from the host page. The document is shown as an “Add to chat” chip in the chat UI, and when the user clicks it, the document is attached to the message so Libra can retrieve its content. - Add
Libra.clearDocumentSuggestion()to clear the current document suggestion. - Add
attach(elementOrId)/detach()API to separate session lifecycle from DOM mounting. The iframe now lives ondocument.bodyand is positioned over the target element viaposition: fixed+ rAF sync, so the full chat session (conversation, scroll position, streaming responses) survives across different containers and SPA route changes.containerIdis now optional — if omitted, callattach()manually.
13 April 2026
- Remove third-party type dependencies (
svelte,i18next) from the built.d.tsfiles. Consumers no longer needskipLibCheckor Svelte/i18next in their dependencies. - Deliver config to the iframe via
postMessageinstead of an inline<script>tag. The iframe HTML is now fully static, so CSP hashes remain stable across config changes. - Move the input textarea to the bottom of the chat container.
1 April 2026
- Namespace
localStoragekeys underlibra:to avoid key collisions with the host page.
1 April 2026
- Prevent session cookies from being sent with API requests.
- Remove trailing slash from
baseUrlto avoid double slashes in the URL.
30 March 2026
- Initial release.

