Appearance
Change Log β
All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
4.1.1 (2026-05-27) β
Note: Version bump only for package @matterway/sdk
4.1.1-alpha.0 (2026-05-27) β
Bug Fixes β
- ci: no-references fix release (#2499) PROD_RELEASE
4.1.0-alpha.0 (2026-05-27) β
Features β
- release: no-references migrate SDK to shared release workflow (#2487)
Bug Fixes β
- progressList: no-references ensure ui cleanup (#2498) PROD_RELEASE
Unreleased β
Refactors β
- ui: unify Confirmation enums and flip
resolvedefault tofalse. Breaking (against the@experimental4.0.0 surface):CONFIRMATION_BUTTONremoved; the singleCONFIRMATIONfamily β'requested' | 'approved' | 'rejected'β is now used for the block's status, thestatusprop, and the resolve payload.CONFIRMATION.ACCEPTEDβCONFIRMATION.APPROVED.acceptedMessageprop βapprovedMessage; CSS classmw-confirmation-acceptedβmw-confirmation-approved.resolveValueshape:{button, data}β{status, data}.UiConfirmationdefault flips fromresolve: truetoresolve: falseβ the click now flips the block face in place and firesonApprove/onRejectwithout ending the surroundingrender(...). Passresolve: trueto opt back into the old one-shot prompt behavior. Closes #2450.
4.0.0 (2026-05-26) β
Features β
ui: add
Confirmation(experimental) β an inline tri-state approval prompt for gating destructive or non-reversible actions. Shows a short message with Approve / Reject buttons, then re-renders as an "approved" or "rejected" status row once the user picks. Container-free β drop it insideBubble,Modal,Group, or anywhere else without lock-in:tsimport {Confirmation} from '@matterway/sdk/UI'; Confirmation({ name: 'deleteFile', message: 'Delete /tmp/example.txt?', onApprove: () => console.log('approved'), onReject: () => console.log('rejected'), });Persists the final status in
internalState[name]('accepted'/'rejected') and resolves the UI with{button: 'approve' | 'reject', data}, so the block reflects the decision after navigation. Closes #2450.ui: align
KeyValuewith Figma (size-12 muted label, size-14 foreground value, 12px row gap, 16px icon with 2px vertical pad). Vertical stacks label above value; horizontal puts the value on the right, withextrarendering as a right-side value (vertical) or a subtitle under the label (horizontal). TSDoc rewritten from the Figma usage rules. Issue #2107.tsimport {KeyValue} from '@matterway/sdk/UI'; // Stacked (default) KeyValue({icon: 'document', label: 'Order ID', value: 'BB-GE 350'}); // Inline + right-side extra KeyValue({ icon: 'document', label: 'Missing Order', value: 'BB-GE 350', extra: '+$39.00', layout: 'horizontal', });ui:
Layout/Verticalnow getsfirst:mt-0 mt-4so stackedVertical()siblings pick up the same 16px rhythm asTextβ first sibling has no top margin, every later one getsmt-4. Inner children are reset ([&>*]:!mt-0) so the layout's own gap stays in control.ui: add
LocalChat(experimental) β a working chat surface backed by Chrome's built-inLanguageModel(Gemini Nano via the Prompt API). Runs entirely locally in the browser, no external model needed. Pair with aPromptInputbound to the same state key to drive a real conversation:tsimport {LocalChat, PromptInput} from '@matterway/sdk/UI'; LocalChat({ name: 'messages', systemPrompt: 'You are a concise, friendly assistant.', }); PromptInput({name: 'message', pushTo: 'messages'});Requires Chrome 138+ with the Prompt API enabled (
chrome://flags#prompt-api-for-gemini-nano). When unavailable, the first assistant turn renders a friendly notice telling the user how to enable it.ui: add AI-elements voice tier (experimental) β five blocks for voice-driven assistant surfaces, using only commercial-safe deps:
tsimport { AudioPlayer, Transcription, MicSelector, VoiceSelector, SpeechInput, } from '@matterway/sdk/UI'; AudioPlayer({src: 'https://example.com/clip.mp3'}); Transcription({ segments: [ {speaker: 'Alice', words: [{text: 'hello', start: 0, end: 0.5}]}, ], currentTime: 0.2, }); MicSelector({name: 'micDeviceId'}); VoiceSelector({name: 'voiceURI'}); SpeechInput({name: 'message', language: 'en-US'});Deps:
AudioPlayerusesmedia-chromeβ MIT-licensed web components.MicSelectorusesnavigator.mediaDevices.enumerateDevices().VoiceSelectorusesspeechSynthesis.getVoices()+SpeechSynthesisUtterancefor previews.SpeechInputuses the browser'sSpeechRecognitionAPI. Privacy note: Chrome's implementation streams audio to Google's servers for recognition β the API itself is royalty-free, but it is not a local model. Document this when surfacing the block in a skill.Transcriptionis presentational and ships no runtime dep beyond React.
ui: add AI-elements dev tier (experimental) β fifteen more blocks targeted at developer-assistant surfaces (terminals, tests, file trees, sandboxes, commits).
tsimport { Shimmer, Checkpoint, Terminal, StackTrace, FileTree, EnvVarList, Commit, TestResults, ApiSchema, PackageInfo, PlanList, PlanItem, Queue, WebPreview, Sandbox, AgentCard, } from '@matterway/sdk/UI'; Terminal({output: '$ npm test\nAll tests passed.', isStreaming: false}); TestResults({ results: [ {name: 'index βΊ Bubble', status: 'passed', duration: 4}, {name: 'index βΊ Modal', status: 'failed', message: 'expected 1 got 2'}, ], }); FileTree({ name: 'selectedPath', nodes: [ { id: '/src', name: 'src', children: [{id: '/src/index.ts', name: 'index.ts'}], }, ], }); PlanList({title: 'Steps'}, [ PlanItem({status: 'done'}, [Text({content: 'Read docs'})]), PlanItem({status: 'in-progress'}, [Text({content: 'Wire components'})]), PlanItem([Text({content: 'Open PR'})]), ]); AgentCard({ name: 'Helper', model: 'claude-opus-4-7', tools: [{name: 'search_web'}, {name: 'read_file'}], });Naming diverges from upstream
SchemaDisplayβApiSchema,EnvironmentVariablesβEnvVarList,AgentβAgentCard,PlanβPlanList/PlanItem(barePlanis too generic in our domain).ui: add AI-elements chat tier (experimental) β twenty new blocks for building chat-shaped UIs, ported from
vercel/ai-elementsand reworked to fit the Matterway 3-layer pattern (mw-*design tokens, session-scoped Zustand state,mw-<name>class names).Container / transcript:
tsimport { Conversation, Message, MessageBody, Response, Suggestion, SuggestionList, MessageAction, MessageActions, PromptInput, } from '@matterway/sdk/UI'; Conversation([ Message({from: 'assistant'}, [ MessageBody({content: 'Hi! How can I help?'}), ]), Message({from: 'user'}, [ MessageBody({content: 'Summarise this article.'}), ]), Message({from: 'assistant'}, [ Response({content: 'Streamingβ¦', isStreaming: true}), ]), ]); SuggestionList([ Suggestion({value: 'Tell me a joke', resolve: true}), Suggestion({value: 'Summarize this', name: 'prompt'}), ]); MessageActions([ MessageAction({value: 'copy', label: 'Copy'}), MessageAction({value: 'regenerate', label: 'Regenerate'}), ]); PromptInput({name: 'message', placeholder: 'Ask anythingβ¦'});Code & citations:
tsimport { CodeBlock, Snippet, Sources, Source, InlineCitation, } from '@matterway/sdk/UI'; CodeBlock({code: 'console.log("hi")', language: 'javascript'}); Snippet({code: 'npm install @matterway/sdk'}); Sources([Source({href: 'https://example.com', title: 'Example article'})]); InlineCitation({sources: ['https://a.com', 'https://b.com']});Reasoning, tool calls, tasks:
tsimport { Reasoning, ChainOfThought, ChainOfThoughtStep, ToolInvocation, Task, TaskItem, TaskItemFile, } from '@matterway/sdk/UI'; Reasoning({content: 'First, I checkedβ¦', isStreaming: false, duration: 8}); ChainOfThought([ ChainOfThoughtStep([Text({content: 'Identify request'})]), ChainOfThoughtStep([Text({content: 'Fetch docs'})]), ]); ToolInvocation({ toolName: 'search_web', state: 'completed', input: {query: 'matterway'}, output: '5 results', }); Task({title: 'Updated files'}, [ TaskItem([TaskItemFile({name: 'index.ts'})]), ]);Attachments, model context, artifacts:
tsimport { Attachments, Attachment, TokenContext, Artifact, GeneratedImage, OpenInChat, ModelSelector, } from '@matterway/sdk/UI'; Attachments([ Attachment({name: 'doc.pdf', kind: 'document', size: 12_400}), Attachment({name: 'photo.png', kind: 'image', thumbnail: 'data:β¦'}), ]); TokenContext({usedTokens: 1234, maxTokens: 8000, modelId: 'claude-opus-4-7'}); Artifact({title: 'Generated image', closable: true}, [ GeneratedImage({base64: 'iVBORβ¦', mediaType: 'image/png', alt: 'logo'}), ]); OpenInChat({prompt: 'Summarize this article'}); ModelSelector({ name: 'model', defaultValue: 'claude-opus-4-7', models: [ {id: 'claude-opus-4-7', label: 'Opus 4.7', provider: 'Anthropic'}, {id: 'claude-sonnet-4-6', label: 'Sonnet 4.6', provider: 'Anthropic'}, ], });Naming differs from upstream where the bare name collided with the Matterway vocabulary or domain: upstream
ToolβToolInvocation,ContextβTokenContext,Image(AI-generated) βGeneratedImage,Loaderβ reuse existingSpinner. Streaming-aware components (Response,Reasoning) acceptisStreaming: trueto render a CSS shimmer / blinking cursor; the streaming transport itself remains skill-driven for now.deps: migrate to React 19 β bump
react,react-dom, and@types/reactto^19.2.0, add@types/react-dom^19.2.0, and pin them via pnpm overrides so the whole transitive tree resolves to a single React 19; updatereact-day-pickerto v10 (captionβmonth_caption,IconLeft/IconRightβChevron,initialFocusβautoFocus,DayPicker*PropsβDayPickerProps); replace globalJSX.Element/JSX.IntrinsicElementswithReact.JSX.*(JSX is no longer global in React 19); widenuseDraggable'sRefObject<HTMLDivElement>to allownull; pass an explicit initial value touseRef<string>(undefined); drop the now-unused@ts-expect-erroronreact-dom/clientui: add camelCase block aliases for the renderer (
src/renderer/blocks/aliases.ts) so skill authors can reference blocks by their canonical camelCase namesui: consolidate the public UI surface into a single barrel at
src/UI/index.ts(replaces the previoussrc/UI/index.tsx)ui: promote five previously-internal
mwcomponents to first-class renderer blocks βHighlight,ImageViewer,SheetViewer,DocViewerList, andToastNotificationβ each with aUi<Name>shell insrc/UI/components/and a block factory insrc/renderer/blocks/index.ts. StackedHighlightblocks now space themselves with a top margin (first one flush) so consecutive callouts don't visually merge.tsimport { Highlight, ImageViewer, SheetViewer, DocViewerList, ToastNotification, } from '@matterway/sdk/UI'; Highlight({text: 'Verify the extracted invoice number'}); ImageViewer({src: 'data:image/png;base64,...', filename: 'invoice.png'}); SheetViewer({base64: '...xlsx-base64...'}); DocViewerList({ items: [ {filetype: FileType.IMAGE, src: '...', filename: 'a.png'}, {filetype: FileType.PDF, src: '...'}, ], }); ToastNotification({ title: 'Saved', text: 'Your changes are live.', duration: 4000, });The renderer-side
Highlightblock is distinct from the puppeteerHighlightclass exported from the top-level@matterway/sdkentry, which paints a DOM-level overlay around a live page element β same name, different module (@matterway/sdk/UIvs@matterway/sdk).highlight: new functional
Highlightblock exported fromsrc/highlight(replaces the legacyshowHighlightimperative API)context:
ctx.renderis now generic in its resolved value βctx.render<T>((resolve) => β¦)returnsPromise<T>and typesresolveaccordingly. Defaults tounknownwhen the type argument is omitted, preserving existing call sites.tsconst choice = await ctx.render<'yes' | 'no'>((resolve) => { // render UI that eventually calls resolve('yes') or resolve('no') });
Bug Fixes β
- calendar: restore nav button positioning under react-day-picker v10 β anchor the prev/next buttons to an absolute-positioned
navrow above the month caption so they no longer overlap the label after the v10 DOM/classname changes - ui: correct field callback prop return types (
hidden/disabled/required) onBadgeField,ButtonToggleField,CheckboxListField,CurrencyField,EmailField,PercentField,PhoneField,RadioListField, andSegmentedFieldβ callbacks now type asPromise<boolean>instead of the unusablePromise<false> - ui: widen
BadgeField's staticwrapprop tobooleanβ was previously typed asfalse | callback, makingwrap: truea type error - renderer: rebuild
FileUploadvalidFilesArrayBuffers from page-side chunks onrender()resolution, not just inside thefileUpload()template helper β callers usingrender()directly with aFileUploadblock now receive realArrayBuffers onMwFile, so downstream consumers likeexceljsno longer fail withCan't read the data of 'the loaded zip file'.render()now awaits the chunk rebuild before resolving, closing a race where the resolved payload could be consumed beforevalidFileswas rewritten.
Chores β
- lint: narrow the
src/assistant-ui/componentsESLint ignore tobase/**only so the rest of the tree (bubbles, doc, icons, mw, top-level barrel) is linted again βprefer-read-only-propsandno-restricted-globalsnow catch issues SonarCloud was flagging. Add a project-wideno-restricted-globalsrule (error) preferringglobalThisoverwindowfor cross-environment compatibility, plusNumber.parseInt/Number.parseFloat/Number.isNaNover their loose global counterparts (theNumber.*forms don't coerce βNumber.isNaN("foo")isfalse, whereasisNaN("foo")istrue). Add a project-widecomplexityrule (warn, max 20) to mirror SonarCloud's cyclomatic-complexity threshold so over-complex functions surface locally without blocking the rule rollout. - lint: replace global
parseInt/parseFloat/isNaNcalls with theirNumber.*counterparts acrossscripts/build-tokens.js,scripts/generate-css.js,src/assistant-ui/components/mw/ImageViewer,src/assistant-ui/components/mw/PDFviewer,src/assistant-ui/library/legacyThemes/utils.ts,src/highlight/Highlight.tsx, andsrc/highlight/highlightElement.tsxto satisfy the newno-restricted-globalsrule β no behaviour change (theNumber.*forms don't coerce, but every call site already passes a string). - lint: finish the
globalThis-over-windowmigration. Convert SDK-internal global augmentations frominterface Window {...}todeclare global { var X: T }so the same globals (__MW,__mw_session_stores,__mw_events,__mw_pending_origin,__mw_outbox,__mw_inbox,__mw_events_refs,__MW_Vendors,MW_SKILL_STOP,mw_matcherObserver,mw_matcherBackup,_mw_matchers,mwFilesChunks) type-check via bothglobalThis.Xandwindow.X. Then replace everywindow.Xreference in the renderer (browser entry, bridge, RPC proxy, state persistence, core, render, events, groups, page-port, chunking, useBridge), hot-reload, highlight, mouse, file, themes, wait, utils, UI components (CodeBlock,Confetti,EnvVarList,LocalChat,OpenInChat,PDFviewer,Reasoning,Snippet,SpeechInput,Terminal,VoiceSelector), andcreateSkillMountRootwithglobalThis.X. With the migration done, theno-restricted-globalsrule forwindowflips from warn to error so futurewindowusages fail CI. - lint: add a
capitalized-commentsrule (error) that ignoresnosemgrep,eslint-*,ts-*,prettier-*, and@ts-*pragma prefixes (these tooling directives are conventionally lowercase) β and rewrite the existing// nosemgrep:directives inscripts/generate-index.js,src/skill-scripts/paths.ts,src/skill-scripts/utils.ts, andsrc/skill-scripts/vite-paths.tsas block comments so the inlineeslint-disable-next-line capitalized-commentsworkarounds can be dropped. - lint: sort Readonly prop members in
Failure,ButtonList,CheckboxField,Confetti,DownloadLink,FileBox,FileItem,GeneratedImage,Group,HighLight,ImageViewer,InlineCitation,Layout,OpenInChat,PackageInfo,Queue,Shimmer,SplitView,Terminal,useDropzoneWithLimit,getDataStoreFile,highlightSelector,Progressible,error-boundary,ChunkManifest,usePdfDocument,computeLockedHeight, andOcrOptionstypes β required props first, then optional props alphabetized β to satisfy the project's prop-ordering lint rule. No behaviour change. - ui: clean up bubble/mw component code style so the previously-warned rules (
no-inline-comments,@typescript-eslint/no-floating-promises,default-case,@matterway/stylistic/sort-imports) can stay at their default error level β converted inline// β¦to block comments where the explanation needed to stay, marked intentional fire-and-forget promises withvoid, and resorted imports β no behaviour change. - ui: refactor
UiDateField's effective-value resolution into a sharedresolveEffectiveValue<T>helper used by the multiple / range / single branches β replaces three near-identical ternary chains with one typed helper that takes a shape predicate and falls back todefaultValueonly when it matches the expected shape for the field'stype. No behaviour change. - ui: refactor
CodeBlocktokenizer into per-token-kind scanner helpers (scanLineComment,scanBlockComment,scanString,scanNumber,scanIdentifier) so the main loop stays under the project's cyclomatic-complexity ceiling β no behaviour change. - ui: rename the
HighLightmw folder toHighlight(src/assistant-ui/components/mw/HighLight/βsrc/assistant-ui/components/mw/Highlight/) and re-export via the matching./mw/Highlightbarrel β file casing now matches the component name and the public renderer block. - templates: extract
successtemplate's i18n defaults into aresolveSuccessCopyhelper so the main function stays under the project's cyclomatic-complexity ceiling β no behaviour change. - templates: extract
feedbacktemplate's i18n defaults into aresolveFeedbackCopyhelper so the main function stays under the project's cyclomatic-complexity ceiling β no behaviour change. - templates: collapse
fileUpload()template into a thin wrapper overrender()β thevalidFilesrebuild now happens inrender()itself, so the template stops callingupdateFileUploadStatedirectly. - chunking: split
buildChunksintoextractChunksFromRollup+buildDepsMapand break the singleton-invariants assertion intoindexModulesByChunk/assertNoDuplicateModules/logMissingCanarieshelpers to stay under the project's cognitive-complexity ceiling β no behaviour change. - chunking: refactor
collectPatternNamesiniife-wrapinto per-pattern helpers (collectObjectPatternNames,collectArrayPatternNames) driven by aswitchso the main dispatch stays under the project's cognitive-complexity ceiling β no behaviour change. - chunking: split
sdkRuntimeImportsandscanSdkComponentsin the SDK scanner into focused helpers (parseSdkImportTarget,yieldNamedImports,recordRendererImport,recordComponentImport,parseSourceFile) so each function stays under the project's cognitive-complexity ceiling β no behaviour change. - skill-scripts: extract
startscript's background/content/workflow watchers into focused helpers (startWorkflowBackgroundWatcher,startViteBackgroundWatcher,startContentWatcher,applyNewRendererBackgroundConfig,buildContentOverride) so the mainstart()function stays under the project's cognitive-complexity ceiling β no behaviour change. - skill-scripts: extract
workflow-prebuild's step-call discovery anduseStepCtxinjection into focused helpers (findWorkflowFile,collectRuntimeImports,extractWorkflowBody,resolveStepFilefor discovery;findEntryFunction,hasCtxFirstParam,isStepDirective,findInjectAfter,isAlreadyInjectedfor injection) so each function stays under the project's cognitive-complexity ceiling β no behaviour change. - scripts: refactor
generate-index.js'sresolveStarExportChaininto focused helpers (resolveStarSpecifierfor./otherβ concrete path resolution,isExported/collectLocalExportNamesfor local export-name extraction) so the main walker stays under the project's cognitive-complexity ceiling β no behaviour change. - scripts: add
audit:blocksscript (scripts/audit-block-coverage.mjs) that enforces everysrc/assistant-ui/components/mw/<Name>/component has aUi<Name>shell insrc/UI/components/and acreateBlock('Ui<Name>', β¦)factory insrc/renderer/blocks/index.tsβ internal-only primitives (layout, list, overlay, spinner, table, upload, file-box, file-item, single-checkbox) are tracked inscripts/block-audit-allowlist.jsonwith a documented reason. Chained intopnpm lint:allso new mw components can't land without going through the shell + factory pipeline. - utils: refactor
mergeDeepinto small helpers (shouldSkipKey,mergeEntry,mergeOneSource) to stay under the project's cyclomatic-complexity ceiling β no behaviour change. - renderer: refactor
ensureChunksinto small helpers (clearInjectedIfPageReset,computePendingChunks,injectChunk) to stay under the project's cyclomatic-complexity ceiling β no behaviour change. - renderer: add regression coverage for the FileUpload
validFilesArrayBufferrebuild β tests pin thatrender()awaitsupdateFileUploadStatebefore resolving, that callers observe the rewrittenArrayBuffers on the result, and that the helper runs even when the payload carries no FileUpload data. - package: register subpath exports for the new AI-elements
mwcomponents (AgentCard,ApiSchema,Artifact,Attachments,AudioPlayer,ChainOfThought,Checkpoint,CodeBlock,Commit,Conversation,EnvVarList,FileTree,GeneratedImage,InlineCitation,LocalChat,Message,MessageActions,MessageBody,MicSelector,ModelSelector,OpenInChat,PackageInfo,PlanList,PromptInput,Queue,Reasoning,Response,Sandbox,Shimmer,Snippet,Sources,SpeechInput,StackTrace,Suggestion,Task,Terminal,TestResults,TokenContext,ToolInvocation,Transcription,VoiceSelector,WebPreview) so deep@matterway/sdk/lib/assistant-ui/components/mw/*imports resolve.
Breaking Changes β
The next release is a major API consolidation. The remainder of this section is a topical migration guide β group by area to find what applies to your skill.
Topics:
- React 19
- File API:
SdkFile/SDKFileβMwFile - Renderer block factories renamed to
*Field - XPath aliases removed; selector helpers are unified
$eval/$xEvalremoved from the public APIgetAssistantDataPathremovedButtonListitems:textβlabelTiffcomponent removedHeaderBar/Modal/SplitView/DocViewer:descriptionprop removedrunJobsWithProgressListconsolidated under the renderer- Legacy imperative UI surfaces removed
- Subpath exports removed
- Dependency drops
React 19 β
react, react-dom, and @types/react move to ^19.2.0, pinned via pnpm overrides so the whole tree resolves to a single React 19. react-day-picker goes to v10. JSX is no longer global.
captionβmonth_caption,IconLeft/IconRightβChevron,initialFocusβautoFocus,DayPicker*PropsβDayPickerProps.- Replace global
JSX.Element/JSX.IntrinsicElementswithReact.JSX.*. useRef<string>()(no initial value) βuseRef<string>(undefined).RefObject<HTMLDivElement>parameter types that can receivenullmust be widened (or useRefObject<HTMLDivElement | null>).
File API: SdkFile/SDKFile β MwFile β
The base64-oriented file surface is gone. All loader/writer helpers, the type, and its conversion utilities have Mw* counterparts already shipped. MwFile.arrayBuffer is now an ArrayBuffer field; MwFile.base64() is a method.
| Removed | Replacement |
|---|---|
SdkFile, SDKFile | MwFile |
convertBase64ToFile | convertBase64ToMwFile |
convertBase64ToBuffer | convertBase64ToArrayBuffer (or Buffer.from(arrayBuffer)) |
fileFromDrive | mwFileFromDrive |
fileFromUrl | mwFileFromUrl |
fileFromInput | mwFileFromInput |
fileToDrive | mwFileToDrive |
downloadFile | fileDownload |
fileToInput | mwFileToInput |
Before:
ts
import {fileFromDrive, fileToInput, SdkFile} from '@matterway/sdk';
const file: SdkFile = await fileFromDrive(
'/tmp/invoice.pdf',
'application/pdf',
);
const bytes = await file.arrayBuffer(); // method
const base64 = file.data; // base64 string field
await fileToInput(ctx, '#upload', file);After:
ts
import {mwFileFromDrive, mwFileToInput, MwFile} from '@matterway/sdk';
const file: MwFile = await mwFileFromDrive(
'/tmp/invoice.pdf',
'application/pdf',
);
const bytes = file.arrayBuffer; // field
const base64 = file.base64(); // method
await mwFileToInput(ctx, '#upload', file);SharePoint API β
The SharepointAPI returned by getSharepointApi(ctx, ...) now speaks MwFile:
getFileByNameresolves toMwFile(wasSdkFile).uploadFileacceptsMwFile.getItemAttachmentresolves to{file: MwFile, item}(was{response: base64string, item}).
Before:
ts
const {response, item} = await sp.getItemAttachment(listName, itemId);
const buffer = convertBase64ToBuffer(response);After:
ts
const {file, item} = await sp.getItemAttachment(listName, itemId);
const buffer = Buffer.from(file.arrayBuffer);(getSharepointApi itself remains @deprecated β the Graph API helpers in the same module are the long-term replacement.)
Renderer block factories renamed to *Field β
The five pre-renamed factories and their camelCase aliases are gone β names now match the underlying Ui*Field shadcn components.
| Removed | Replacement |
|---|---|
Input / input | InputField / inputField |
Select / select | SelectField / selectField |
MultiSelect / multiSelect | MultiSelectField / multiSelectField |
CheckboxList / checkboxList | CheckboxListField / checkboxListField |
RadioList / radioList | RadioListField / radioListField |
Before:
ts
import {Input, Select} from '@matterway/sdk/UI';
render(
ctx,
Bubble([Input({name: 'firstName'}), Select({name: 'country', items})]),
);After:
ts
import {InputField, SelectField} from '@matterway/sdk/UI';
render(
ctx,
Bubble([
InputField({name: 'firstName'}),
SelectField({name: 'country', items}),
]),
);XPath aliases removed; selector helpers are unified β
The selector-aware helpers already accept XPath strings (detected via isXPath) or the explicit ::-p-xpath(...) prefix. The XPath-named aliases are gone.
| Removed | Replacement |
|---|---|
waitForXPath | waitForSelector |
watchXPath | watchSelector (wrap xpath as `::-p-xpath(${xp})` if needed) |
highlightXPath | highlightSelector |
clickByXPath | click |
scrollToXPathSelector | scrollToSelector |
typeByXPath | type |
fillByXPath | fill |
getValueByXPath | getValue |
setValueByXPath | setValue |
focusByXPath | focus |
selectFrame | getFrame |
selectNestedFrame | getFrame (use >> separator for nesting) |
getNestedFrame | getFrame (use >> separator for nesting) |
Before:
ts
await waitForXPath(ctx, '//button[text()="Submit"]');
await clickByXPath(ctx, '//button[text()="Submit"]');After:
ts
await waitForSelector(ctx, '//button[text()="Submit"]');
await click(ctx, '//button[text()="Submit"]');For nested frames, replace getNestedFrame(ctx, [outer, inner]) with a single getFrame call using the >> separator:
ts
const inner = await getFrame(ctx, 'iframe#outer >> iframe#inner');$eval / $xEval removed from the public API β
These were @deprecated @private helpers that nevertheless leaked through the @matterway/sdk barrel. They are now @internal and no longer re-exported from src/utils/index.ts. Skill authors should use the typed selector helpers (click, type, fill, getValue, setValue, focus, etc.) which cover the common cases. For ad-hoc evaluation, drop down to puppeteer's page.$eval / page.evaluate via the context's page handle.
getAssistantDataPath removed β
The standalone helper that computed the per-platform assistant data directory is gone. The host runtime provides the same value via the injected assistant API β use ctx.assistant.getAssistantPath().
Before:
ts
import {getAssistantDataPath} from '@matterway/sdk';
const root = getAssistantDataPath();After:
ts
const root = ctx.assistant.getAssistantPath();ButtonList items: text β label β
Affects every template that builds a navigation/button row (Failure, FileUpload, Success, ThumbsFeedback, etc.).
Before:
tsx
ButtonList({items: [{text: 'Submit', value: 'submit'}]});After:
tsx
ButtonList({items: [{label: 'Submit', value: 'submit'}]});Tiff component removed β
Use ImageViewer, which renders TIFFs alongside other formats. With MwFile, pass file.base64() as src:
Before:
tsx
import {Tiff} from '@matterway/sdk';
<Tiff file={tiffFile} alt='scan' />;After:
tsx
import {ImageViewer} from '@matterway/sdk';
<ImageViewer src={tiffFile.base64()} filename={tiffFile.name} />;HeaderBar / Modal / SplitView / DocViewer: description prop removed β
The prop was a no-op for some time. Drop it from call sites and from template options.
Before:
ts
HeaderBar({title: 'Upload', description: 'Pick a file'});
Modal({title: 'Confirm', description: 'Are you sure?'}, [...]);
message(ctx, {title: 'Done', description: 'Saved.', text: 'All good'});After:
ts
HeaderBar({title: 'Upload'});
Modal({title: 'Confirm'}, [...]);
message(ctx, {title: 'Done', text: 'All good'});runJobsWithProgressList consolidated under the renderer β
The standalone runJobsWithProgressList re-export from @matterway/sdk emitted a deprecation warning and delegated to runProgressibleJobs. Import the renderer template instead.
Before:
ts
import {runJobsWithProgressList} from '@matterway/sdk';
await runJobsWithProgressList(ctx, jobs, {title: 'Workingβ¦'});After:
ts
import {runJobsWithProgressList} from '@matterway/sdk/UI';
await runJobsWithProgressList(ctx, jobs, {title: 'Workingβ¦'});Legacy imperative UI surfaces removed β
The "show*" entry points and their bubble/template/component implementations are gone. Compose the renderer instead β render(ctx, blockTree) with the block factories in @matterway/sdk/UI.
| Removed API | Replacement |
|---|---|
showUI({ctx, element}) | render(ctx, blockTree) |
showMessage(ctx, options) | message(ctx, options) β renderer template |
showRequestUserAction(ctx, options) | requestUserAction(ctx, options) β renderer template |
showNotice / showSuccessNotice / showFailureNotice | success(ctx, options) / failure(ctx, options) / message(ctx, options) templates |
showWarningNotice | message(ctx, options) with icon: 'warning-circle-outline' |
showForm(ctx, schema, β¦) | render(ctx, Bubble([InputField, SelectField, β¦, NavigationBar])) β compose explicit field blocks |
showProgress / showProgressList | progressList(ctx, options) β renderer template |
showHighlight(ctx, selector, options) | Highlight(ctx, selector, options) block in @matterway/sdk/highlight |
showUploadFile / showFileUpload | fileUpload(ctx, options) β renderer template (returns MwFile[] | null) |
showDownloadFile / showFileDownload | Render a DownloadLink block, or compose your own using MwFile.base64() |
import {bubble, β¦} from '@matterway/sdk/UI/blocks' | import {bubble, β¦} from '@matterway/sdk/UI' β block factories are now part of the top-level UI barrel |
Component implementations under src/message, src/notice, src/progress/components, src/form/components, src/file/components, the entire Form* schema layer (yup types, Layouts, ListExtra, FormItem, FormBubble), and bubble-specific React components (MessageBubble, NoticeBubble, ProgressListBubble, UploadFileBubble, DownloadMwFile, β¦) are all gone β they were implementation details of the show* APIs and have no direct replacement; the renderer composes the same UI from block factories.
runProgressibleJobs, runJobsWithProgress, makeProgressiblePromise, Progressible, and showTabProgress remain unchanged. The pure file IO helpers (getMwFile, mwFileFromDrive/Url/Input, mwFileToDrive/Input, fileDownload, fetchFileChunks) remain.
Before:
ts
import {showUI, Bubble, Input} from '@matterway/sdk/UI';
const {data} = await showUI({ctx, element: Bubble([Input({name: 'q'})])});After:
ts
import {render, Bubble, InputField} from '@matterway/sdk/UI';
const {data} = await render(ctx, Bubble([InputField({name: 'q'})]));Form migration example:
ts
// Before
import {showForm} from '@matterway/sdk';
const {data} = await showForm(ctx, {
fields: [
{kind: 'input', name: 'email', label: 'Email'},
{kind: 'select', name: 'country', label: 'Country', items},
],
});
// After
import {
render,
Bubble,
InputField,
SelectField,
NavigationBar,
} from '@matterway/sdk/UI';
const {data} = await render(
ctx,
Bubble([
InputField({name: 'email', label: 'Email'}),
SelectField({name: 'country', label: 'Country', items}),
NavigationBar({buttons: [{label: 'Submit', value: 'submit'}]}),
]),
);Subpath exports removed β
The corresponding ./lib/... subpath exports for the removed source trees are gone from package.json. If you imported from any of these deep paths, switch to the top-level barrels.
| Removed deep path | New import |
|---|---|
@matterway/sdk/lib/UI/blocks (or .../blocks/doc) | @matterway/sdk/UI β block factories live in the main UI barrel |
@matterway/sdk/lib/assistant-design-system/** | @matterway/sdk/lib/assistant-ui/components/mw/** (shadcn-based replacements) |
@matterway/sdk/lib/assistant-ui/components/mw/Tiff | @matterway/sdk/lib/assistant-ui/components/mw/ImageViewer |
@matterway/sdk/lib/file/components | @matterway/sdk/UI (file blocks FileUpload, DownloadLink) |
@matterway/sdk/lib/form/components (+ Fields, types, β¦) | @matterway/sdk/UI (field blocks InputField, SelectField, β¦) |
@matterway/sdk/lib/message (+ components) | @matterway/sdk/UI (message, requestUserAction templates) |
@matterway/sdk/lib/notice (+ components) | @matterway/sdk/UI (success, failure, message templates) |
@matterway/sdk/lib/progress/components | @matterway/sdk/UI (progressList, runJobsWithProgressList templates) |
Dependency drops β
@matterway/background-reactβ gone. It was React-18-only (depended onReactCurrentDispatcher) and the last consumer of the legacy showUI path.shikiβ gone.CodeBlocknow uses a built-in pattern-based tokenizer instead of shiki, eliminating the runtime grammar dynamic imports that the SDK's chunk-evaluation pipeline could not resolve.src/assistant-design-systemβ removed in its entirety (Bubble, Modal, Overlay, Shield, SplitView containers; Badge, Button, Callout, etc.; the ThemeContext / Root provider / classicTheme / DraggableIcons). Use the shadcn-based components under@matterway/sdk/lib/assistant-ui/components/mw.
3.23.1 (2026-05-20) β
Bug Fixes β
- renderer: self-heal chunk injection state when the page navigates or resets β
ensureChunksnow probeswindow.__MWand clears the trackedinjectedset only on an explicit "gone" signal (typeof __MW === 'undefined'or an adapter error), preventing a follow-uprender()from silently no-opping afterpage.reload()while staying safe under non-conforming adapters. - renderer: abort nav-replay mount if the session was cleaned up during chunk injection β avoids re-mounting a superseded session (e.g. a
progress()afterpage.reload()issuedcleanupOthers) and leaking anmw-ui-root-<sid>that never gets torn down.
3.23.0 (2026-05-18) β
Features β
- workflow: add workflow skill support, including
useStepCtx,cloud/localstep-location wrappers, theworkflow-build/workflow-prebuildpipeline, thesteps.jszip entry, and the@workflow/buildersdependency
Bug Fixes β
workflow-build: replace regex-based step-dispatch rewriter with an AST-based transform using the TypeScript compiler API, eliminating regex backtracking concerns and improving robustness against whitespace and comment variations in generated
steps.jsworkflow-prebuild: replace regex-based
'use workflow'/'use step'directive injection with an AST-based transform using the TypeScript compiler API andmagic-string, eliminating ReDoS concerns and correctly handling type annotations, generics, comments, and nested function declarationschangelog: harden
update-changelog.shagainst user-level Stop hook leakage by passing--setting-sources project,local, rejecting Claude output that doesn't contain a recognized changelog section heading, and falling back tomain's Unreleased section when the local one is detected as corrupted β preventing rich entries from being silently replaced by placeholder bullets after a regenerationeslint: re-enable
curly: ['error', 'all']in the local ESLint config (previously disabled by bundledeslint-config-prettier) and enforcereact/prefer-read-only-propson.tsxfiles outsideassistant-design-system, ensuring consistent brace style and read-only React props across the codebasedeps: pin pnpm overrides to security-patched versions of
undici(>=7.24.0),devalue(>=5.8.1),fast-uri(>=3.1.2), and@babel/plugin-transform-modules-systemjs(>=7.29.4), and drop stale overrides forbasic-ftp,axios,ip-address, andtailwindcss
Chores β
- workflow-build: expand single-line
if (!...) return undefined;guards into braced blocks inasTaggedCall/asRegisterCall/findStepDispatchMatchesto comply with the re-enabledcurly: allrule
3.20.0 (2026-05-13) β
Features β
card: add
Cardmw component with optional header, body, and prescriptive footer actionstsx// 1 action β full-width primary button <Card title="Upgrade plan" actions={[{label: 'Upgrade to Pro'}]} /> // 2 actions β secondary left, primary right <Card title="Unsaved changes" actions={[ {label: 'Discard', variant: 'outline'}, {label: 'Save changes'}, ]} />carousel: add
Carouselmw component (base + mw wrapper overembla-carousel-react) with built-in previous/next chevrons and configurable slide width viaslideBasistsCarousel({ slideBasis: '1/3', slides: [ {key: 'plan-basic', content: 'Basic'}, {key: 'plan-pro', content: 'Pro'}, {key: 'plan-team', content: 'Team'}, ], });tabs: add
Tabsmw component (mw wrapper over base/tabs) for switching between related content panels within a bounded sectiontsTabs({ defaultValue: 'overview', items: [ {value: 'overview', label: 'Overview', content: 'Overview panel'}, {value: 'activity', label: 'Activity', content: 'Activity panel'}, {value: 'settings', label: 'Settings', content: 'Settings panel'}, ], });tooltip: add
Tooltipmw component (base + mw wrapper) for short contextual hints on hover or focustsTooltip({ content: 'Permanently delete this conversation', children: 'Delete', });pagination: add
Paginationmw component (base + mw wrapper) with Previous/Next buttons, numbered page links, and ellipsis support for long page rangestsPagination({ page: 3, pageCount: 12, onPageChange: (page) => console.log('go to page', page), });navigationMenu: add
NavigationMenumw component (base + mw wrapper) β top-level horizontal nav with link items and trigger items that open rich content panels (distinct from existingNavigationBar)tsNavigationMenu({ items: [ {type: 'link', label: 'Docs', href: '/docs', active: true}, { type: 'trigger', label: 'Products', content: { variant: 'text', links: [ { label: 'Assistant', description: 'Build agentic skills', href: '/products/assistant', }, { label: 'Designer', description: 'Visual flow editor', href: '/products/designer', }, ], }, }, ], });dropdownMenu: add
DropdownMenumw component (base + mw wrapper) β context menu anchored to a trigger, supporting default, checkbox, radio, sub-menu, label, and separator item typestsDropdownMenu({ trigger: 'Actions', groups: [ { key: 'safe', items: [ {key: 'edit', label: 'Edit', onClick: () => console.log('edit')}, { key: 'duplicate', label: 'Duplicate', onClick: () => console.log('duplicate'), }, ], }, { key: 'destructive', items: [ { key: 'delete', label: 'Delete', onClick: () => console.log('delete'), }, ], }, ], });dataTable: add
DataTablemw component (base + mw wrapper) β sortable, filterable table with row selection, column visibility, and paginationtsDataTable({ columns: [ {accessorKey: 'name', header: 'Name'}, {accessorKey: 'status', header: 'Status'}, {accessorKey: 'role', header: 'Role'}, ], data: [ {name: 'Ada Lovelace', status: 'active', role: 'Admin'}, {name: 'Alan Turing', status: 'invited', role: 'Member'}, ], searchKey: 'name', });hoverCard: add
HoverCardmw component (base + mw wrapper) β floating card shown on hover over a trigger, for read-only previews like profiles, link summaries, or entity metadatatsHoverCard({ trigger: 'Ada Lovelace', children: 'First computer programmer (1815β1852).', });dateField: add
displayFormatprop to control how the date is shown and parsed in the text input (any date-fns format string). Default remainsdd.MM.yyyy; the value emitted viaonSelectstays in ISO form pertype.tsDateField({ name: 'birthday', label: 'Birthday', defaultValue: '2026-05-12', displayFormat: 'MM/dd/yyyy', });item: add
ItemandItemGroupmw components β list entries with optional media, title, description, and action slots;ItemGrouprenders a divider-separated listtsItemGroup({ items: [ {key: 'alice', title: 'Alice Johnson', description: 'alice@example.com'}, {key: 'bob', title: 'Bob Smith', description: 'bob@example.com'}, ], });popover: add
Popovermw component β floating panel anchored to a trigger for rich, interactive content (forms, settings, pickers). UseHoverCardfor hover-only previews; useDropdownMenufor action lists.tsPopover({ trigger: 'Filters', heading: 'Filter results', children: 'Filter controls go here.', });
3.6.3 (2026-05-08) β
Bug Fixes β
- renderer: lower z-index by 1 to allow render below assistant runner UI
3.6.2 (2026-05-08) β
Features β
renderer:
FileUploadblock now accepts avalidatefunction directly; the block fetches the file'sarrayBufferserver-side and supports returningundefined(valid), astring(error message), or the explicit{isValid, message, processedFile?}shape.tsFileUpload({ name: 'docs', validate: async (file) => { if (file.arrayBuffer.byteLength > 1_000_000) return 'File too large'; }, });renderer:
src/client/components are now discovered recursively at any depth, with clear errors for basename collisions, missing default exports, and non-PascalCase filenames.renderer: export
updateFileUploadStatefrom the package entry for hand-composedFileUploadflows viarender().
Bug Fixes β
- renderer: styled-components now inserts styles into the per-session shadow root via
StyleSheetManager, sostyled.*components insrc/client/render with their styles instead of leaking todocument.headunstyled. - ui:
FileUploadnow surfaces files rejected duringonDrop(wrong type, too large) in the file list by syncing pre-validated files intovalidFiles. - renderer:
fileUploadtemplate no longer crashes when the result has nobutton(e.g. cancelled session).
3.6.1 (2026-05-07) β
Chores β
- deps: clean up pnpm overrides, removing entries no longer needed and tightening version ranges for
basic-ftp,axios,postcss, andip-address.
3.6.0 (2026-05-07) β
Features β
- success template: add
showConfettioption to opt out of the confetti animation (defaults totrue)
ts
await success(ctx, {
title: 'Done',
showConfetti: false,
});Bug Fixes β
- assistant-ui: expand Tailwind v4 custom property defaults in Shadow DOM so utilities composing multiple
--tw-*vars (e.g.-translate-y-1/2, gradients, shadows, filters) render correctly in Chromium where@propertyregistrations don't apply at the shadow root - renderer:
render()now cleans up other active sessions on the same target by default. PasscleanupOthers: falseto opt out and stack multiple UIs on the same page.
ts
await render(ctx, StepOne()); // mounts
await render(ctx, StepTwo()); // StepOne cleans up
render(ctx, StatusBar(), {cleanupOthers: false}); // stacks on top3.5.3 (2026-05-06) β
Chores β
- deps: add Radix UI primitives for new MDS components (
accordion,alert-dialog,dropdown-menu,hover-card,navigation-menu,tooltip) - deps: add
@tanstack/react-tablefor table component - deps: add
embla-carousel-reactfor carousel component - deps: add
lucide-reactfor icon support
3.5.2 (2026-05-06) β
Version bump only.
3.5.1 (2026-05-05) β
Features β
renderer/blocks: add
InputField,SelectField,MultiSelectField,CheckboxListField,RadioListFieldblock functions whose names match their underlyingUi*Fieldcomponentstsimport { InputField, SelectField, MultiSelectField, CheckboxListField, RadioListField, } from '@matterway/sdk/UI'; InputField({name: 'email', label: 'Email'}); SelectField({name: 'country', items: [{value: 'us', label: 'US'}]});renderer/react: new
@matterway/sdk/UI/reactentry point for hostingUi*components in regular React / Next.js apps without Puppeteer or the skill bridge. ExposesSessionRoot,RenderBlockTree, andregisterComponent/registerComponentsfor custom block typestsximport {SessionRoot, RenderBlockTree} from '@matterway/sdk/UI/react'; <SessionRoot onResolve={({data, button}) => console.log(data, button)}> <RenderBlockTree tree={treeFromServer} /> </SessionRoot>;renderer: add
fromBrowser(target)PagePort for same-realm rendering. Use when the renderer's "Node side" and "browser side" run in the same React processtsimport {fromBrowser} from '@matterway/sdk/UI/renderer'; const port = fromBrowser(rootElement);mw-scripts: new build-time CLI that scans a consumer's
src/for SDK block-factory imports and generates asdk-components.gen.tsregistry that the renderer uses to look upUi*components. Supports one-shot and watch modesshmw-scripts # one-shot scan + write mw-scripts --watch -- next dev # watch mode + spawn child cmdstyles: ship a second CSS bundle
@matterway/sdk/styles.csswith:rootpreserved (alongside the Shadow-DOM:host-rewrittenindex.css) for apps that mount SDK components directly into the document bodytsimport '@matterway/sdk/styles.css';exports: add subpath exports for
./UI/blocks,./UI/react,./UI/components,./UI/components/*, and./styles.cssui/buttonList: add canonical
labelfield on button items (deprecatestext);FileUploadandNavigationBarnow forwardlabelend-to-endtsNavigationBar({buttons: [{label: 'Submit', value: 'submit'}]});
Bug Fixes β
- ui/button: disabled buttons no longer apply hover styles and now show a
not-allowedcursor; enabled buttons show apointercursor - ui/styles: set explicit
--tw-border-styleand--tw-outline-styledefaults so borders render correctly when styles are adopted into a Shadow DOM - ui/mdx: tighten paragraph spacing (
leading-5,my-0) and align callout content left with reduced padding (p-3,rounded-md) for more compact rendering - ui/modal: fix modal and splitview centering by using flexbox layout instead of absolute positioning with transform, so dragging composes cleanly with centering and
maxWidth: 90vwis respected - renderer/hydrate: convert Block-valued props (e.g.
SplitView'ssidebar) into React elements before passing to host components, preventing "Objects are not valid as a React child" errors - ui/statusList: align status icon spacing with
mt-0.5for consistent vertical rhythm
Chores β
- renderer: exclude
rendererfrom the root barrel so block imports keep flowing through@matterway/sdk/UI(required for the chunking scanner to detect block usage) - deps: add
chokidarformw-scripts --watch
Deprecations β
renderer/blocks:
Input,Select,MultiSelect,CheckboxList,RadioListare deprecated in favor of their*Fieldcounterparts. The old names still work but will be removed in a future release.ts// Before import { Input, Select, MultiSelect, CheckboxList, RadioList, } from '@matterway/sdk/UI'; // After import { InputField, SelectField, MultiSelectField, CheckboxListField, RadioListField, } from '@matterway/sdk/UI';ui/buttonList:
textfield on button items is deprecated in favor oflabelts// Before NavigationBar({buttons: [{text: 'Submit', value: 'submit'}]}); // After NavigationBar({buttons: [{label: 'Submit', value: 'submit'}]});
3.4.0 (2026-04-30) β
Features β
- PDFnative: add new PDFnative component export under
./lib/assistant-ui/components/mw/PDFnative - renderer: add
PdfNativeblock factory insrc/renderer/blocksfor the native browser PDF viewer (iframe-based, no pdf.js) - UI: add
pdfNativeblock andUiPDFnativecomponent for the legacyshowUIpath (deprecated β prefer the renderer block)
ts
import {PdfNative} from '@matterway/sdk/renderer/blocks';
PdfNative({
src: 'base64-or-data-url-or-blob-url',
showToolbar: false,
});Chores β
- PDFviewer: extract sample PDF base64 into shared
samplePdf.tsfor reuse across PDF stories
3.3.0 (2026-04-29) β
Version bump only.
3.2.4 (2026-04-28) β
Features β
Mdx: render GitHub-flavored markdown tables with header styling, column alignment, inline markdown in cells, and horizontal overflow scrolling. Tables inherit the surrounding text color when one is provided.
tsx<Mdx>{` | Name | Role | Location | |------|------|----------| | Alice | Engineer | Berlin | | Bob | Designer | Lisbon | `}</Mdx>
Bug Fixes β
- PDFviewer: polyfill
Map.prototype.getOrInsertComputedon the main thread and prepend the same polyfill to the pdf.js worker source so PDFs render on older Chromium-based Edge versions that lack the TC39 upsert method. - ProgressList: move status icon to the start of each item and let the label flex to fill available space so long sublabels no longer push the icon off-screen.
3.2.3 (2026-04-28) β
Chores β
- build: migrate Tailwind CSS from v3 to v4, moving theme configuration from
tailwind.config.jsintosrc/assistant-ui/styles.cssvia@theme inline,@source, and@custom-variantdirectives. - build: replace
tailwindcss+autoprefixerPostCSS plugins with@tailwindcss/postcss; dropautoprefixerdependency. - test: loosen PDFviewer Tailwind compilation assertions to check for property presence rather than exact emitted values, since Tailwind v4 produces semantically-equivalent but textually-different output (e.g.
flex:1vsflex:1 1 0%,calc(var(--spacing)*0)vs0).
3.2.2 (2026-04-27) β
Features β
- pages: add
createWindowto open a separate, visible browser window (not a tab) and return a scoped Context β useful when two UIs need to be visible simultaneously (e.g. editor + live preview).
ts
import {createWindow} from '@matterway/sdk';
const previewCtx = await createWindow(ctx, 'https://example.com');
// ctx.page and previewCtx.page are visible side by side.renderer: Block children now accept components imported from
src/client/withoutas unknown as Blockcasts β the build transform rewrites client imports into Block-returning callables, and theChildBlocktype bridges theReactElementgap.PDFviewer: full rewrite on top of
pdfjs-distβ replaces the<iframe>preview with an in-SDK renderer that supports page-by-page canvas rendering, zoom (10%β500%), rotation, page navigation, filename display, and a download button. Pages render lazily viaIntersectionObserverand the viewer's outer height locks to the document's natural size so zooming scrolls inside rather than resizing the container.
tsx
<PDFviewer src={base64OrBlobOrDataUrl} filename='report.pdf' showToolbar />Bug Fixes β
- renderer: prevent cross-window state-sync echo loops in session groups by relaying the Node-origin marker through
window.__mw_pending_originso browser-side persistence tags its echo correctly and Node skips re-broadcasting. - renderer: clear the per-render
sessionIdentry inwindow.__mw_session_storeson unmount while preserving the sharedstoreIdentry when other peers still need it. - renderer: reject raw React elements and untransformed React components inside Block trees with a clear error pointing to
src/client/as the fix, instead of rendering blank. - renderer: report the exact child path (e.g.
children[2].children[0]) when a React element is found in a Block tree, instead of the placeholderchildren[?]. - renderer: reuse the shared
isReactElementhelper in the browser hydrate path so React-element detection stays consistent with the tree walker and serializer. - skill-scripts: invalidate the chunk-manifest cache in Rollup watch mode when skill source files change, so adding a new block import is picked up without restarting
skill-scripts start. - render: patch for 3rd-party libs so chunks that import CJS/UMD packages (exceljs, handsontable) don't leak top-level
export/importafter IIFE wrapping. - pages: avoid double navigation in
createWindowwhen no URL is provided by creating the target directly at the destination instead ofabout:blank-then-goto. - chunking: defer
export *re-exports to runtime viaObject.assigninto the chunk's exports slot, so bulk re-exports from CJS/UMD vendor namespaces merge correctly instead of overwriting the shared__MW_Vendorsobject.
Chores β
- chunking: rename the core chunk to
initand evaluate each chunk (init + vendors + components) in its own topologically-sortedport.evaluatecall, so partial failures don't lose track of chunks that already ran. - chunking: shared modules are now extracted into auto-generated
vendor-*chunks exposed viawindow.__MW_Vendors, replacing the hand-maintainedSHARED_GLOBALSallowlist and guaranteeing singleton identity across chunks. - chunking: add singleton-invariant tests and a jsdom integration test that exercises the CJS-wrapping path (UiSheet β exceljs/handsontable) to catch
export-leak regressions in the IIFE wrapper. - chunking: add a per-render isolation integration test that builds a fixture with
PdfClient(heavy, importsPDFviewer),TextClient(importsTextvia the same assistant-ui barrel that re-exportsPDFviewer), andPlainClient(no SDK imports), then asserts pdfjs only lands in thePdfClientchunk β never ininit, vendor chunks, or any chunk reachable from an unrelated render's dep graph. Replaces the ad-hocmeasure-sizes.test.tssize dump. - chunking:
virtual:mw-chunk-manifestnow default-exports the manifest only; runtime registration (setChunkManifest) moved to the background-entry injection plugin so the call site is controlled. - chunking: derive the block-fn β Ui-component map from
src/renderer/blocks/index.tsvia a sharedscripts/parse-blocks.jsAST parser consumed by bothgenerate-blocks-manifest.js(emitsblocks-manifest.generated.tsfor the chunker) andgenerate-templates-manifest.js, replacing the hand-maintainedBLOCK_FN_TO_COMPONENTandfileOverridesmaps that used to drift when new blocks landed. - build: treat
src/index.tsand the chunking manifests as auto-generated β regenerated bypnpm build:generated(run fromprepareandprepack) so the tree is reproducible from inputs + scripts and publish always includes fresh artifacts. - build: bundle the
pdfjs-distworker as a string constant viascripts/generate-pdfjs-worker.jsso skills don't need to ship a separate worker file; falls back to pdfjs's main-thread worker under strict CSPs that blockblob:workers. - deps: add
pdfjs-distfor the new PDFviewer renderer and@playwright/testfor real-browser layout tests (pnpm test:browser). - deps: add
acornandmagic-stringfor the IIFE-wrapping build plugin.
3.2.0 (2026-04-23) β
Bug Fixes β
- skill-scripts: restore
tsconfig.json::compilerOptions.baseUrl-only import resolution in the Vite build, fixing "Rollup failed to resolve import" for skills that use bare imports (e.g.import {initI18n} from 'locales') without declaringcompilerOptions.paths - skill-scripts: inline dynamic imports in the background bundle so skills relying on code-splitting produce a single executable chunk
3.1.0 (2026-04-22) β
Features β
package: declare package as ESM (
"type": "module") and expose subpath exports map β consumers can now import from@matterway/sdk/UI,@matterway/sdk/UI/renderer, and@matterway/sdk/clienttsimport {Bubble, Text, Input} from '@matterway/sdk/UI'; import {render} from '@matterway/sdk/UI/renderer'; import {useData, useBridge} from '@matterway/sdk/client';package: auto-generate explicit
./lib/<dir>export entries for everysrc/directory with anindex.ts(x)via newbuild:exportsstep β fixes ESM resolution for legacy skills that import directories (e.g.@matterway/sdk/lib/assistant-ui/library) which the./lib/*wildcard alone cannot resolverenderer/templates: add pre-built template builders (
failure,feedback,fileUpload,message,progress,progressList,requestUserAction,runJobsWithProgressList,success) β each returns a plain Block tree for common UI patternsdata-store: add data-store module for session-scoped data access
skill-scripts: auto-generate templates manifest via new
build:manifestsstep βtemplates-manifest.generated.tsis picked up by the chunk scanner to discover template entriesskill-scripts: add component chunking system β per-component Rollup builds produce IIFE chunks loaded on demand, with shared React/runtime singletons on
window.__MW_*globalsskill-scripts: auto-detect SDK UI component imports and generate virtual content entry importing only used components
skill-scripts: auto-discover client components from
src/client/directory viaimport.meta.globskill-scripts: transform
client/imports in background files to callable ref functions, keeping real component code out of Node.jsskill-scripts: validate client component filenames β basenames must be valid JavaScript identifiers (PascalCase recommended), with a clear error message pointing to the offending file
skill-scripts: read the skill's full
compilerOptions.pathsfromtsconfig.jsonwhen building Vite aliases β previously only a hardcoded set of five names (locales,components,shared,steps,skillRenderCheck) resolved againstbaseUrl, which broke skills usingmoduleResolution: bundler(nobaseUrl) or declaring custom aliases; now supports exact and globbed patterns with TS-compatible semanticstsconfig: include all
.tsxfiles and exclude stories from build outputrenderer: add block functions for composing UI in background context β returns plain
Blockdata objects with no JSX or React dependencytsimport {Bubble, Text, Input, NavigationBar} from '@matterway/sdk/UI'; const form = Bubble([ Text({content: 'Enter your email'}), Input({name: 'email', label: 'Email', required: true}), NavigationBar({buttons: [{text: 'Submit', value: 'submit'}]}), ]);renderer: add RPC bridge with signal+queue pattern for Node β browser callback invocation, decoupled from Puppeteer/Playwright via
PagePortabstractionrenderer: add browser-side component registry for resolving serialized tree types to real React components
renderer: add
BlockErrorBoundarythat isolates render failures per session and shows a fallback UI with the underlying errorrenderer: add browser hydration and mount pipeline with Shadow DOM isolation per session
renderer: add state persistence layer that syncs Zustand store snapshots between Node and browser with origin-aware debouncing
renderer: add chunking runtime β
setChunkManifest+ on-demand chunk loading walk the tree and inject only needed component IIFEsrenderer: add client-side hooks
useDataanduseBridgefor accessing session state and calling background callbacks from client componentsrenderer: add cross-window/session groups β multiple sessions can share a Zustand store via
sessionIdaliasing with state relay across tabsrenderer: add observability events for session lifecycle, RPC traffic, and chunk loads
Chores β
- build: migrate config and build scripts from CommonJS to ESM
- build: restrict
build:exportsdirectory scan to an explicit safe-name allowlist (^[A-Za-z0-9_][A-Za-z0-9._-]*$) β hardens against path traversal from unexpected directory names - build: annotate validated
path.joincall inbuild:exportsscanner with semgrep suppression β entry names are pre-validated against the safe-name allowlist - skill-scripts: rename jest transform files to
.cjsfor ESM compatibility - skill-scripts: annotate non-literal
RegExpconstruction invite-pathswith semgrep suppressions β patterns come from the skill's own developer-authoredtsconfig.jsonand are escaped before interpolation - deps: add
jsdomfor jsdom-based integration tests - deps: bump transitive dependencies via pnpm overrides to patch security advisories (
handlebars,path-to-regexp,lodash,@xmldom/xmldom,basic-ftp,brace-expansion,picomatch,yaml,follow-redirects,dompurify,axios)
3.0.51 (2026-04-15) β
Features β
- DateField: added controlled
valueprop to single, multiple, and range date field variants
Bug Fixes β
- DateField: fixed default value re-initialization overwriting user-cleared selections
- DateField: fixed popover focus detection in Shadow DOM environments
- DateField: fixed popover not reopening on input click after closing
- DateField: fixed popover closing unexpectedly when clicking calendar content
- DateField: preserved caret position in single date input during typing
- DateField: close popover and blur input on Enter key press in single date mode
- deps: added axios
^1.15.0override for SSRF and header injection CVEs
3.0.50 (2026-04-08) β
Features β
- skill-scripts: add SDK version (
sdk_version) to skill manifest on build - components: add new Radix UI primitives β Accordion, AlertDialog, DropdownMenu, HoverCard, NavigationMenu, and Tooltip
- components: add
@tanstack/react-tablefor data table support - components: add
embla-carousel-reactfor carousel/slider support - components: add
lucide-reacticon library
Bug Fixes β
- waitForPageChange: fix crypto issue by replacing
uniqueIdwithpseudoUniqueId
Chores β
- ts: upgrade TypeScript to 6.0
- ci: remove BlackDuck and Checkmarx workflows
- ci: migrate
@matterwaypackages registry from npm to GitHub Packages - license: update copyright to Cognizant
- tsconfig: switch
moduleResolutiontobundler(main) andnodenext(skill-scripts) - deps: bump mammoth to ^1.12.0, vite to ^7.3.2, eslint to ^10.2.0, lerna to ^9.0.7, vitepress to ^2.0.0-alpha.17, @matterway/eslint-config to ^6.0.8
- deps: no-references security patches
- deps: restore pnpm security overrides for tar, ajv, minimatch, rollup, basic-ftp, underscore, svgo, dompurify, and flatted
- pnpm: remove redundant
yauzlsecurity override (now resolved by direct dependency) - githooks: source nvm in pre-commit and commit-msg for GUI app compatibility
- npmrc: remove vite from minimum-release-age exclusions
- deps: migrate @matterway packages to GitHub Packages registry
3.0.45 (2026-03-23) β
Bug Fixes β
- file: preserve error cause chain in
openFolder,openFile,moveFileOrFolder,selectFileOrFolder,renameFileOrFolder,deleteFileOrFolder, andcreateFileOrFolder - pdf: preserve error cause in
mergePdfs - hot-reload: preserve error cause when resolving assistant path
- hot-reload: use
consoleinstead ofloginsidepage.evaluate()calls in autostart and hot-reload toggle - jobs: preserve error cause in
runJobsandrunJobsSequentiallyfailure handling - ms-graph: preserve error cause in
getFileByPath - ms-graph: preserve error cause across all SharePoint eval functions (
getSiteIdEval,getDrivesEval,getDriveItemsEval,getFileByPathEval,uploadFileEval,getListsEval,getListItemsEval,getDriveFromFolderItemsEval,getFileEval,deleteFileEval,copyFileEval,moveFileEval) - ms-graph: use
consoleinstead ofloginsidepage.evaluate()calls in SharePoint HTTP functions
Chores β
- lint: remove unused
preserve-caught-errorESLint rule override
3.0.44 (2026-03-23) β
Chores β
- ci: add
statuses: writepermission to Checkmarx SAST workflow - ci: capitalize Release workflow name
- deps: update
flattedoverride to enforce>=3.4.2
3.0.43 (2026-03-23) β
Features β
logger: add structured, filterable logging system with source tagging and level control
ts// Within SDK // ---------- // SDK log β all output prefixed with [SDK] log.debug('click: starting', {selector: '#btn'}); log.warn('deprecation notice'); log.error('unexpected failure', err); // Sub-loggers for Puppeteer and browser output log.puppeteer.debug('evaluate: getting page title'); log.browser.error('uncaught exception');ts// Create a custom sub-logger for your skill // ----------------------------------------- import {log, logger} from '@matterway/sdk'; const log = logger.create('my-skill'); log.info('fetchEmails: done'); // [my-skill] fetchEmails: done // Configure filtering at runtime logger.setConfig({level: 'warn'}); logger.setConfig({mute: ['retry', 'waitForSelector']}); logger.setConfig({enabledSources: ['my-skill']});logger: add
captureBrowserLogs(ctx)to route browser console messages and uncaught errors throughlog.browser.*tsimport {captureBrowserLogs} from '@matterway/sdk'; export async function start(ctx: Context) { captureBrowserLogs(ctx); // browser console.log / errors now flow through log.browser.* }logger: patch
debugpackage to routepuppeteer:*protocol logs throughlog.puppeteermdx: add
errorcallout type with destructive-colored icon alongside existinginfoandwarningtypesui: add
requiredprop toLabelcomponent that renders a styled destructive-colored asterisk
Bug Fixes β
ui: move badge hover effects from base
Badgevariants to interactiveBadgeFieldonly, preventing hover styles on non-interactive badgesui: fix
destructive-foregroundtheme token fromred.50tored.800for proper error text contrastui: use
destructive-foregroundtoken for validation messages and error text across all form fields and viewersui: render required-field asterisk via
Labelrequiredprop with proper destructive styling instead of plain-text concatenationui: move validation messages directly below label in
RadioListFieldandCheckboxListFieldfor consistent layoutui: sync
InputandTextareabase components with design system β compacth-9height, consistenttext-smfont size,shadow-smui: increase
Labelfont weight from medium to semiboldui: reduce default icon size in
CompletionandFailurefrom 80px to 64px and center-alignCompletionlayoutui: use
text-foregroundforInputFieldprefix and suffix in default state instead oftext-muted-foregroundui: improve
Successconfetti height calculation usinggetBoundingClientRectand remove redundantRootwrapper
Chores β
- logging: replace all
console.log/debug/warn/errorcalls with structuredlog.*calls across the SDK - scripts: increase
update-changelog.shClaude max-turns from 1 to 5 - ci: add
statuses: writepermission to Checkmarx SAST workflow - storybook: rewrite
Success,Failure,Feedback, andFileUploadbubble stories using composed mw primitives - storybook: remove
FileBoxstories, simplifyHeaderBarandCompletionstories - storybook: migrate story imports from
@storybook/reactto@storybook/react-vite - ui: mark
FileBoxcomponent as@internal
3.0.42 (2026-03-18) β
Features β
- icons: add
IconSearchicon component and register it in the icon map
Bug Fixes β
- CheckboxField: fix checkbox and label vertical alignment by aligning items to start and tightening label line-height
- CommandInput: replace info circle icon with search icon for the command input search field
- DateField: replace CSS variable
--input-radiuswith fixedrounded-mdfor consistent border radius - HighLight: replace inner accent bar div with a
border-l-4on the container for simpler, full-height styling
3.0.41 (2026-03-18) β
Features β
- figma: add MDS design-token pipeline that resolves Figma token JSON into CSS custom propertiesbash
pnpm build:tokens # default: matterway brand pnpm build:tokens --brand cognizant - figma: add multi-brand token support (matterway, cognizant) with layered token sets (tailwind β brand β theme β mode)
- figma: inject resolved token CSS into the build automatically via
generate-css.js
Bug Fixes β
- form:
getValuenow always returnsstring(nevernull); empty input values are correctly returned as""instead of falling through totextContent - form:
getValueinput detection now usesinstanceofchecks (HTMLInputElement,HTMLTextAreaElement,HTMLSelectElement) instead of duck-typing with'value' in el, preventing false positives on non-input elements - form:
getValuenow disposes element handles after use to prevent memory leaks - form:
getValueerror messages now distinguish between CSS selector and XPath lookup failures
Breaking Changes β
- tokens: removed hardcoded
themes/dark.cssandthemes/light.css; theme variables are now generated fromsrc/assistant-ui/tokens/JSON files - tokens: removed
--radius,--input-radius, and--input-radius-innerCSS custom properties; components now use standard Tailwind radius classes (rounded-xl,rounded-md,rounded,rounded-sm) - tokens: removed
--container-shadow,--container-border-color,--slate-50,--slate-200,--badge-orange,--badge-yellow,--pdf-error,--info-callout,--info-callout-backgroundCSS custom properties; replaced by semantic token equivalents or Tailwind utilities - badge: border-radius changed from
rounded-fulltorounded-md - build:
build:sdkno longer copiesthemes/directory tolib/ - form:
getValuereturn type narrowed fromPromise<string | null>toPromise<string>
Chores β
- icons: replace
IconLoaderwithIconLoader2in Spinner and icon map - components: replace all
rounded-[var(--input-radius)]/hsl(var(--...))patterns with standard Tailwind classes and semantic token names across 20+ components - deps: add
flatted(>=3.4.0) andyauzl(>=3.2.1) version overrides - tooling:
formatscript now runs Prettier on the entire project instead of onlysrc/
3.0.37 (2026-03-16) β
Features β
- DateField: single date mode now supports inline text entry (
dd.MM.yyyy) with a calendar popover, replacing the previous picker-only UI - DateField: range and multiple modes now use the same calendar-icon + popover pattern, replacing the previous
DatePickerUI - DateField: add
placeholderprop for all date input types - DateField: popover closes automatically after selecting a date in single mode
- popover: export
PopoverAnchorcomponent - Export
Timezone,TimezoneAbbreviation, andIanaTimezonetypes - tokens: add MDS design token system with multi-brand support (matterway, cognizant)
- tokens: add
build:tokensscript to resolve token JSON files into CSS custom propertiesbashpnpm build:tokens # default: matterway brand pnpm build:tokens --brand cognizant - tokens: integrate token resolution into CSS build pipeline via
generate-css.js - figma: sync design tokens from Figma, aligning component styles with MDS token definitions
Bug Fixes β
- calendar: fix outside-day cells retaining accent background when not selected
- DateField: improve focus management so the calendar popover stays open when clicking between the input and calendar
Breaking Changes β
- themes: remove hardcoded
themes/dark.cssandthemes/light.cssin favor of token-resolved CSS- Theme CSS variables are now resolved at build time from
src/assistant-ui/tokens/JSON files and inlined into the CSS bundle bygenerate-css.js - The
themes/directory is no longer shipped - No migration needed for SDK consumers β the generated CSS output is equivalent
- Theme CSS variables are now resolved at build time from
- styles: remove
--radius,--input-radius, and--input-radius-innerCSS custom properties; components now use Tailwind border-radius utilities directly - tailwind: redefine
borderRadiustheme scale with fixed pixel values (sm: 2px,DEFAULT: 4px,md: 6px,lg: 8px,xl: 12px,full: 9999px) replacing CSS variable-based values- Migration: replace
rounded-[var(--input-radius)]βrounded-md,rounded-[var(--input-radius-inner)]βrounded,rounded-[var(--radius)]βrounded-xl
- Migration: replace
- tokens: remove SDK extension tokens
info-callout,info-callout-background,badge-orange,badge-yellow,pdf-error,slate-50,slate-200,container-border-color,container-shadow- Components now use semantic Tailwind classes (
text-info,text-destructive,bg-info-background,border-border,shadow-2xl) instead ofhsl(var(...))references
- Components now use semantic Tailwind classes (
- badge: change default badge shape from pill (
rounded-full) to rounded rectangle (rounded-md) - icons: replace
IconLoaderwithIconLoader2in icon map and Spinner component
Chores β
- ci: pin GitHub Actions to full commit SHAs for reproducibility (
pnpm/action-setup,browser-actions/setup-chrome,actions/create-github-app-token)
3.0.36 (2026-03-13) β
Bug Fixes β
- docs: fix Storybook navigation link to open within the docs site
Chores β
- lint: enable
@typescript-eslint/no-floating-promisesrule and fix existing violations
3.0.34 (2026-03-11) β
Bug Fixes β
- ci: use
GH_PACKAGES_TOKENsecret and shared registry-setup action for GitHub Packages publish
Chores β
- lint: remove
no-inline-commentsrule override and move all inline comments above their respective code lines - lint: convert inline property comments to TSDoc (
/** */) on public interfaces (SharepointOptions,PDFviewerProps,EmojiProps,FADE_DURATION,CHUNK_SIZE) - lint: remove
default-caseandno-fallthroughrule overrides and replaceswitchstatements withif/else ifchains - deps: bump
taroverride from^7.5.10to^7.5.11
3.0.32 (2026-03-10) β
Features β
- getTimestamp: add timezone support via
timezoneanduseLocalTimezoneoptionstsgetTimestamp({timezone: 'IST'}); // uses Asia/Kolkata getTimestamp({timezone: 'Asia/Tokyo'}); getTimestamp({useLocalTimezone: true});
Chores β
- lint: enable
prefer-construle and fix violations across codebase - lint: enable
@typescript-eslint/no-unused-varsrule and remove unused imports/variables - pages: remove dead code branch in
connectToMinimizedWindow - changelog: pass current Unreleased section to changelog bot for incremental updates
- changelog: add migration example guidance for deprecations and breaking changes
3.0.31 (2026-03-10) β
Bug Fixes β
- ui: fix selectField autocomplete input visibility when popover opens above trigger (#2244)
Chores β
- deps: add dompurify security patch override (>=3.3.2)
- deps: remove trailing newline from .npmrc
- lint: enable sort-imports rule and sort all imports across the codebase (#2242)
- lint: update index generator script to produce sorted import output (#2242)
3.0.29 (2026-03-06) β
Bug Fixes β
- lint: revert lint changes, keep linter updates
Chores β
- eslint: add temporary rule overrides for incremental cleanup
- deps: update pnpm-lock.yaml with latest dependency versions
3.0.28 (2026-03-06) β
Bug Fixes β
- changelog: whitespace-aware stripping of Unreleased heading
Chores β
- ci: guard version bump and push steps behind actual commit detection to prevent no-op pushes
- ci: use
--no-pushin lerna version and defer push to a single conditional step
3.0.26 (2026-03-05) β
Bug Fixes β
- security: replace Node.js
cryptowith Web Crypto API, removingellipticdependency - security: remove
crypto-browserifyandvite-plugin-node-polyfillsfrom build - ai: remove unused
fixBedrock.tscrypto shim
Chores β
- changelog: add error handling fallback in changelog script
3.0.25 (2026-03-05) β
Features β
- changelog: add AI-generated changelog via Claude CLI pre-commit hook
Bug Fixes β
- security: dependency security patches
Chores β
- npmrc: remove redundant
@matterway:registryline
3.0.16 (2026-02-27) β
Features β
- ui: create
multiSelectFieldcomponent
Bug Fixes β
- success: click on thumbs up first, no navbar flash
- upload:
showUI.fileUploadcancel should returnnull - upload:
showUI.fileUploadmax file limit default
Chores β
- deps: update husky to v9
3.0.12 (2026-02-26) β
Bug Fixes β
- deps: eslint compatibility
3.0.11 (2026-02-26) β
Bug Fixes β
- deps: security patches
3.0.10 (2026-02-25) β
Features β
- skill-scripts: add skill-scripts CLI to SDK
- ci: add BlackDuck license scan
- docs: add Storybook reference to docs site
- docs: add SDK AI context (AGENTS.md, CLAUDE.md)
Bug Fixes β
- showUI: fix
fileUploadreuse - scripts: make scripts run on both Windows and Mac
- deps: update dependencies and security patches
- deps: clean up resolutions and commitlint resolutions
- ci: BlackDuck scan blocks release
Chores β
- docs: add TSDoc comments for exports
- tests: add tests and improve test runner
- commitlint: use shared
@matterway/commitlint-config
3.0.2 (2026-02-18) β
Bug Fixes β
- showUI: fix
fileUpload
Chores β
- deps: security updates
- ci: update
actions/checkoutandactions/setup-nodeto v6
3.0.0 (2026-02-13) β
Major version bump caused by a CI versioning fix. Includes all changes shipped during the 2.x series:
Features β
- ui: add hidden field validation
- ui: use Matterway app icon as default headerbar icon
- ui: add select-all to checkboxListField and improve dynamic items props
- showUI: fix and improve
showUI.fileUploadreuse
Bug Fixes β
- showUI: fix validation race condition
- showUI: fix file upload return value
- showUI: fix success statusList display
- ui: fix modal custom dimension default position
- ui: make error text selectable
- ui: fix segmentedField XL item label overlap
- form: add form validation to showForm
- build: reduce skill bundle size (restructured internal module exports)
- ci: fix production release versioning
β BREAKING CHANGES β
Note: these breaking changes shipped as patches during the 2.x series due to CI not detecting BREAKING CHANGE footers. The 3.0.0 bump corrected the version.
- showUI:
showUI.progressListno longer returns a value (changed fromPromise<result>tovoid) - showUI: removed
buttonsprop fromshowUI.progressList
2.0.16 (2026-02-13) β
Version bump only.
2.0.15 (2026-02-13) β
Bug Fixes β
- build: reduce skill bundle size (restructured internal module exports)
- ci: fix production release versioning
β BREAKING CHANGES β
Note: these should have triggered a major version bump but didn't due to CI issues. The 3.0.0 bump corrected this.
- showUI:
showUI.progressListno longer returns a value (changed fromPromise<result>tovoid) - showUI: removed
buttonsprop fromshowUI.progressList
2.0.13 (2026-02-11) β
Features β
- ui: add hidden field validation
2.0.12 (2026-02-09) β
Bug Fixes β
- showUI: fix validation race condition
2.0.11 (2026-02-06) β
Bug Fixes β
- ui: fix modal custom dimension default position
2.0.10 (2026-02-05) β
Features β
- ui: use Matterway app icon as default headerbar icon
2.0.9 (2026-02-04) β
Bug Fixes β
- ui: make error text selectable
2.0.8 (2026-01-29) β
Bug Fixes β
- showUI: fix file upload return value
2.0.7 (2026-01-29) β
Bug Fixes β
- form: add form validation to showForm
2.0.6 (2026-01-28) β
Bug Fixes β
- ui: fix segmentedField XL item label overlap
2.0.5 (2026-01-28) β
Bug Fixes β
- showUI: fix success statusList display
2.0.4 (2026-01-27) β
Features β
- ui: add select-all to checkboxListField and improve dynamic items props
2.0.3 (2026-01-26) β
Bug Fixes β
- ci: suppress npm log output
2.0.2 (2026-01-23) β
Version bump only.
2.0.1 (2026-01-23) β
Version bump only. Major version bump caused by CI versioning issue (no actual breaking API changes from 1.78.7).
1.78.7 (2026-01-23) β
Features β
- showUI: add touched-state validation
- ui: consolidate UIv2 components into main UI package (major internal restructure)
β BREAKING CHANGES β
Note: these breaking changes should have triggered a major version bump but didn't due to CI issues. The 2.0.0 bump happened later as a CI fix.
- showUI:
invalidprop now returns validation messages (removesvalidationMessageprop) - showUI: dynamic props are now async:
({value, data}) => value - showUI: return value changed from
{state}to{data, button}
1.48.2 (2025-09-04) β
Bug Fixes β
- ui: fix types and standardise imports
1.48.1 (2025-09-04) β
Features β
- showUI: add
percentFieldcomponent for percentage inputs
1.48.0 (2025-09-03) β
Features β
- showUI: add badgeField
1.47.0 (2025-09-03) β
Features β
- showUI: add phoneField
1.46.0 (2025-09-03) β
Features β
- ui: checkbox label interaction
1.45.11 (2025-09-03) β
Features β
- showUI: add
emailFieldcomponent for email inputs
1.45.10 (2025-09-03) β
Bug Fixes β
- author: valid email value
1.45.9 (2025-09-03) β
Version bump only.
1.45.8 (2025-09-03) β
Version bump only.
1.45.7 (2025-09-03) β
Version bump only.
1.45.6 (2025-09-03) β
Bug Fixes β
- ui: tighten input
1.45.5 (2025-09-03) β
Bug Fixes β
- readme: add readmeFilename
1.45.4 (2025-09-03) β
Version bump only.
1.45.3 (2025-09-03) β
Version bump only.
1.45.2 (2025-09-03) β
Version bump only.
1.45.1 (2025-09-03) β
Version bump only.
1.45.0 (2025-09-02) β
Features β
- showUI: add dateField
1.44.0 (2025-09-02) β
Features β
- showUI: add currencyField
1.43.4 (2025-09-02) β
Bug Fixes β
- ui: fix storybook
1.43.3 (2025-09-02) β
Bug Fixes β
- ui: date field consistency
1.43.2 (2025-09-02) β
Bug Fixes β
- showUI: items are async calc
1.43.1 (2025-09-02) β
Bug Fixes β
- fileUpload: fix file upload chunks
1.43.0 (2025-09-01) β
Features β
- ui: move content scripts
1.42.4 (2025-09-01) β
Bug Fixes β
- handsontable: update license
1.42.3 (2025-08-29) β
Bug Fixes β
- ui: progress items consistency
1.42.2 (2025-08-29) β
Bug Fixes β
- ui: radioListField items consistency
1.42.1 (2025-08-29) β
Bug Fixes β
- ui: use statusList for consistency
1.42.0 (2025-08-28) β
Features β
- showUI: upgrade message
1.41.0 (2025-08-28) β
Features β
- showUI: add completion to showUI
1.40.0 (2025-08-28) β
Features β
- ui: add completion component
1.39.0 (2025-08-28) β
Features β
- ui: add convenience callout component
1.38.0 (2025-08-28) β
Features β
- ui: add text highlight
1.37.0 (2025-08-27) β
Features β
- showUI: add image viewer
1.36.0 (2025-08-27) β
Features β
- showUI: add keyValue
1.35.0 (2025-08-27) β
Features β
- showUI: add icon
1.34.3 (2025-08-27) β
Bug Fixes β
- assistant-ui: legacy types, closes
1.34.2 (2025-08-26) β
Bug Fixes β
- assistant-ui: legacy types
1.34.1 (2025-08-25) β
Bug Fixes β
- assistant-ui: fix imports
1.34.0 (2025-08-22) β
Features β
- ui: add link and download file component
1.33.0 (2025-08-21) β
Features β
- ui: add field comparison
1.32.3 (2025-08-21) β
Version bump only.
1.32.1 (2025-08-20) β
Bug Fixes β
- build: build SDK before packing in release workflow
1.32.0 (2025-08-20) β
Features β
- release: add alpha channel
1.31.4 (2025-08-20) β
Version bump only.
1.31.3 (2025-08-19) β
Bug Fixes β
- content: createSkillMountRoot
1.31.2 (2025-08-19) β
Version bump only.
1.31.1 (2025-08-19) β
Bug Fixes β
- security: fix tmp package issue
1.31.0 (2025-08-19) β
Features β
- ui: add showFileUpload to showUI
1.30.0 (2025-08-18) β
Features β
- ui: add showUISuccess, closes
1.29.0 (2025-08-18) β
Features β
- ui: add showFailureNotice to showUI
1.28.0 (2025-08-14) β
Features β
- ui: showUI.requestUserAction
1.27.0 (2025-08-14) β
Features β
- ui: add showProgress to showUI
1.26.0 (2025-08-14) β
Features β
- ui: add new radioList to showUI
1.25.0 (2025-08-14) β
Features β
- ui: add fileUpload to showUI
1.24.0 (2025-08-14) β
Features β
- ui: add showProgressList to showUI
1.23.0 (2025-08-13) β
Features β
- ui: add progressList to showUI
1.22.0 (2025-08-13) β
Features β
- ui: add checkboxList to showUI, closes
1.21.0 (2025-08-12) β
Features β
- ui: add segmentedField to showUI
1.20.0 (2025-08-12) β
Features β
- ui: add select to showUI
1.19.0 (2025-08-12) β
Features β
- ui: add statusList to showUI
1.18.0 (2025-08-11) β
Features β
- ui: add modal to showUI, closes
1.17.0 (2025-08-11) β
Features β
- ui: add vertical to showUI, closes
1.16.0 (2025-08-08) β
Features β
- assistant-ui: success bubble feedback state, closes
1.15.2 (2025-08-08) β
Bug Fixes β
- assistant-ui: storybook view
1.15.1 (2025-08-08) β
Bug Fixes β
- build: fix build
1.15.0 (2025-08-06) β
Features β
- hotReload: add ts docs for hot reload fns
1.14.3 (2025-08-01) β
Bug Fixes β
- assistant-ui: adjust upload bubble
1.14.2 (2025-07-31) β
Bug Fixes β
- assistant-ui: several fixes
1.14.1 (2025-07-31) β
Bug Fixes β
- showUI: require should affect navigation bar
1.14.0 (2025-07-30) β
Features β
- assistant-ui: add new key/value component
1.13.2 (2025-07-29) β
Version bump only.
1.13.1 (2025-07-29) β
Version bump only.
1.13.0 (2025-07-29) β
Features β
- assistant-ui: add ocr confidence score to input
1.12.0 (2025-07-28) β
Features β
- assistant-ui: toggle field
1.11.2 (2025-07-28) β
Version bump only.
1.11.1 (2025-07-25) β
Version bump only.
1.11.0 (2025-07-25) β
Features β
- assistant-ui: add doc viewer tabs
1.10.0 (2025-07-25) β
Features β
- assistant-ui: handsontable SheetViewer
1.9.0 (2025-07-25) β
Features β
- assistant-ui: tiff
1.8.1 (2025-07-24) β
Version bump only.
1.8.0 (2025-07-24) β
Features β
- form: add root to getValue
1.7.1 (2025-07-24) β
Bug Fixes β
- assistant-ui: consistent naming
1.7.0 (2025-07-24) β
Features β
- assistant-ui: add new segmented field
1.6.0 (2025-07-24) β
Features β
- assistant-ui: group highlight
1.5.1 (2025-07-24) β
Chores β
- build: restructure SDK exports and convert file/form index files from
.tsxto.ts
1.5.0 (2025-07-23) β
Features β
- assistant-ui: add new image preview
1.4.28 (2025-07-22) β
Bug Fixes β
- ui: tailwind and dynamic colors
1.4.27 (2025-07-22) β
Version bump only.
1.4.26 (2025-07-21) β
Version bump only.
1.4.25 (2025-07-18) β
Bug Fixes β
- hot-reload: update hot reloads, closes
1.4.24 (2025-07-18) β
Bug Fixes β
- build: ignore generate in nodemon watch
1.4.23 (2025-07-17) β
Bug Fixes β
- assistant-ui: fix paddings and containers
1.4.22 (2025-07-17) β
Bug Fixes β
- assistant-ui: fix storybook
1.4.21 (2025-07-16) β
Version bump only.
1.4.20 (2025-07-16) β
Version bump only.
1.4.19 (2025-07-16) β
Bug Fixes β
- assistant-ui: fix style provider
1.4.18 (2025-07-15) β
Reverts β
- Revert "chore(deps): bump react-markdown from 9.1.0 to 10.1.0 (#1517)" (#1535), closes
1.4.17 (2025-07-15) β
Bug Fixes β
- build: fix paths and add more logs
1.4.16 (2025-07-15) β
Version bump only.
1.4.15 (2025-07-15) β
Version bump only.
1.4.14 (2025-07-14) β
Version bump only.
1.4.13 (2025-07-14) β
Version bump only.
1.4.12 (2025-07-11) β
Version bump only.
1.4.11 (2025-07-11) β
Version bump only.
1.4.10 (2025-07-11) β
Version bump only.
1.4.9 (2025-07-11) β
Version bump only.
1.4.8 (2025-07-11) β
Version bump only.
1.4.7 (2025-07-11) β
Features β
- assistant-ui: add base UI component library (avatar, badge, button, calendar, card, checkbox, dialog, dropdown, input, label, popover, select, separator, switch, table, tabs, textarea, tooltip)
1.4.6 (2025-07-10) β
Version bump only.
1.4.5 (2025-07-10) β
Version bump only.
1.4.4 (2025-07-09) β
Reverts β
- packages: revert new packages migration (compatibility issues)
1.4.3 (2025-07-08) β
Chores β
- build: improve
createSkillMountRoot, add test mocks for background-react and pdf-parse
1.4.2 (2025-07-08) β
Bug Fixes β
- ms-graph: fix pagination for long SharePoint lists
1.4.1 (2025-07-08) β
Bug Fixes β
- ms-graph: fix
getListItemsAPI call
1.4.0 (2025-07-07) β
Features β
- fillOptions: add additional configuration options to
fillOptions
1.3.12 (2025-07-03) β
Bug Fixes β
- utils: harden
setutility against edge cases
1.3.11 (2025-07-03) β
Bug Fixes β
- utils: improve
mergeDeepsecurity hardening
1.3.10 (2025-07-03) β
Bug Fixes β
- utils: additional
setutility fixes
1.3.9 (2025-07-03) β
Bug Fixes β
- utils: harden
setutility against prototype pollution
1.3.8 (2025-07-03) β
Bug Fixes β
- utils: fix prototype pollution vulnerability in utility functions
1.3.7 (2025-07-03) β
Bug Fixes β
- gh-actions: add missing permissions to GitHub Actions workflows
1.3.6 (2025-07-02) β
Bug Fixes β
- offerMwFile: fix unsafe shell command construction (security)
1.3.5 (2025-07-02) β
Version bump only.
1.3.4 (2025-07-02) β
Bug Fixes β
- mergeDeep: fix prototype pollution vulnerability in deep merge
1.3.3 (2025-07-02) β
Bug Fixes β
- utils: add tests and fixes for
setutility
1.3.2 (2025-07-02) β
Bug Fixes β
- waitForSelector: fix polynomial regex (ReDoS vulnerability)
1.3.1 (2025-06-30) β
Version bump only.
1.3.0 (2025-06-24) β
Features β
- test: add test coverage for SDK modules
1.2.1 (2025-06-17) β
Bug Fixes β
- test: fix broken tests
1.2.0 (2025-06-17) β
Features β
- ui: add overlay backdrop to showUI containers
1.1.8 (2025-06-13) β
Version bump only.
1.1.7 (2025-06-13) β
Version bump only.
1.1.6 (2025-06-12) β
Bug Fixes β
- types: fix
runJobsTypeScript type definitions
1.1.5 (2025-06-10) β
Bug Fixes β
- dynamic-ui: fix dynamic field validity not updating when value changes
1.1.4 (2025-06-06) β
Version bump only.
1.1.3 (2025-06-06) β
Bug Fixes β
- wait: fix
waitForTexthelper
1.1.2 (2025-06-03) β
Bug Fixes β
- highlight: fix
highlightSelectorelement highlighting
1.1.1 (2025-05-26) β
Version bump only.
1.1.0 (2025-05-22) β
Features β
- showUI: add
showSuccessNoticefor success message display
1.0.6 (2025-05-22) β
Version bump only.
1.0.5 (2025-05-22) β
Bug Fixes β
- build: fix skill build for MS Graph API integration
1.0.4 (2025-05-21) β
Version bump only.
1.0.3 (2025-05-21) β
Version bump only.
1.0.2 (2025-05-21) β
Version bump only.
1.0.1 (2025-05-20) β
Bug Fixes β
- build: fix Lerna build error
0.127.0 (2025-05-20) β
Features β
- pages: add
GoToOptionssupport to navigation helpers
0.126.11 (2025-05-19) β
Version bump only.
0.126.10 (2025-05-19) β
Bug Fixes β
- release: fix release script path
0.126.9 (2025-05-19) β
Bug Fixes β
- release: add debug logging to release script
0.126.8 (2025-05-18) β
Version bump only.
0.126.7 (2025-05-16) β
Bug Fixes β
- release: fix release script path
0.126.6 (2025-05-16) β
Version bump only.
0.126.5 (2025-05-16) β
Bug Fixes β
- release: fix copy path in release script
0.126.4 (2025-05-15) β
Version bump only.
0.126.3 (2025-05-15) β
Bug Fixes β
- select: fix dropdown positioning
0.126.2 (2025-05-15) β
Bug Fixes β
- export: export missing
fileFromUrlfunction
0.126.1 (2025-05-14) β
Bug Fixes β
- form: fix
setTextto accept component values
0.126.0 (2025-05-14) β
Features β
- form: add support for dynamic field values
0.125.0 (2025-05-13) β
Features β
- getFrame: add nested iframe selector support
0.124.5 (2025-05-09) β
Bug Fixes β
- ci: fix Prettier configuration
0.124.4 (2025-05-05) β
Bug Fixes β
- sheet: refactor Handsontable license key to use constants, remove dotenv import
0.124.3 (2025-05-05) β
Bug Fixes β
- sheet: pass Handsontable license key through to Sheet component
0.124.2 (2025-05-02) β
Version bump only.
0.124.1 (2025-05-02) β
Bug Fixes β
- deps: update unzipper
0.124.0 (2025-05-02) β
Features β
- dynamicUI: add file preview with Handsontable
0.123.6 (2025-04-30) β
Version bump only.
0.123.5 (2025-04-30) β
Version bump only.
0.123.4 (2025-04-30) β
Bug Fixes β
- colorRow: fix coloring empty cells
0.123.3 (2025-04-30) β
Version bump only.
0.123.2 (2025-04-30) β
Chores β
- file: rename SdkFile to MwFile across codebase
0.123.1 (2025-04-30) β
Bug Fixes β
- progress: fix progress injects again after navigation
0.123.0 (2025-04-29) β
Features β
- highlight: use assistant or default color, make options optional
0.122.1 (2025-04-28) β
Bug Fixes β
- pdfExtractRanges: fix out of range pages
0.122.0 (2025-04-28) β
Features β
- dynamic-ui: add required fields validity support
0.121.3 (2025-04-28) β
Version bump only.
0.121.2 (2025-04-28) β
Bug Fixes β
- file: update file reader
0.121.1 (2025-04-25) β
Bug Fixes β
- ui: fix persisting state
0.121.0 (2025-04-24) β
Features β
- dynamic-ui: update uploadFile to support MwFile
0.120.2 (2025-04-24) β
Bug Fixes β
- file: relax overly strict file path sanitization
0.120.1 (2025-04-23) β
Bug Fixes β
- highlights: fix removeAllHighlights breaking when highlight is missing
0.120.0 (2025-04-23) β
Features β
- file: add text content extraction from docx and pdf
0.119.3 (2025-04-22) β
Bug Fixes β
- excel: expose cell get/set helpers
0.119.2 (2025-04-22) β
Features β
- excel: export getWorksheet and 14 new excel utility functions
0.119.1 (2025-04-22) β
Bug Fixes β
- build: apply security patches
0.119.0 (2025-04-22) β
Features β
- dynamic-ui: add toggle field
0.118.0 (2025-04-22) β
Features β
- dynamic-ui: add progress item component
0.117.1 (2025-04-16) β
Bug Fixes β
- ui: add gap to vertical and horizontal layouts
0.117.0 (2025-04-16) β
Features β
- dynamic-ui: add documentation for new containers
0.116.2 (2025-04-16) β
Features β
- UI: add splitView block component
0.116.1 (2025-04-16) β
Features β
- UI: add state management and resolve logic to NavigationBar
0.116.0 (2025-04-15) β
Features β
- upload-file: add file upload to dynamic UI
0.115.0 (2025-04-15) β
Features β
- ui: add more dynamic UI containers
0.114.0 (2025-04-15) β
Features β
- dynamic-ui: add documentation to dynamic components
0.113.0 (2025-04-10) β
Features β
- statuses: move statuses to assistant design system and add to dynamic UI
Breaking Changes β
- statuses: statuses component path changed β now imported from the assistant design system
0.112.0 (2025-04-08) β
Features β
- outlook: add more Outlook helper functions
0.111.16 (2025-04-08) β
Version bump only.
0.111.15 (2025-04-08) β
Bug Fixes β
- themes: fix themes bug in showTabProgress
0.111.14 (2025-03-31) β
Version bump only.
0.111.13 (2025-03-28) β
Bug Fixes β
- excel: add hide sheet by name, index, or regex
0.111.12 (2025-03-27) β
Bug Fixes β
- excel: implement workbookToSdkFile
0.111.11 (2025-03-27) β
Bug Fixes β
- Content: fix Content flex issue
0.111.10 (2025-03-24) β
Bug Fixes β
- SelectBase: fix default value not being selected in showForm select
0.111.9 (2025-03-24) β
Bug Fixes β
- file: expose fileFromDrive
0.111.8 (2025-03-24) β
Version bump only.
0.111.7 (2025-03-24) β
Bug Fixes β
- xpath: handle negative xpath case
0.111.6 (2025-03-18) β
Bug Fixes β
- showFileUpload: fix skill not resolving when validate is not provided
0.111.5 (2025-03-18) β
Version bump only.
0.111.4 (2025-03-17) β
Bug Fixes β
- bubble: remove extra space in bubble header and style scroll
0.111.3 (2025-03-14) β
Bug Fixes β
- fileDownload: fix zip files being downloaded corrupt
0.111.2 (2025-03-13) β
Bug Fixes β
- theme: fix themes for older assistant versions
0.111.1 (2025-03-13) β
Bug Fixes β
- colorRow: fix coloring every row in every sheet
0.111.0 (2025-03-13) β
Features β
- UI: dynamic UI proof of concept
0.110.9 (2025-03-13) β
Bug Fixes β
- openFile: handle case when file does not exist
0.110.8 (2025-03-13) β
Chores β
- ai: migrate SdkFile to MwFile in askFile and ocr modules
0.110.7 (2025-03-12) β
Features β
- form: add dynamic form documentation and examples
0.110.6 (2025-03-12) β
Bug Fixes β
- getFrame: fix getFrame theme
0.110.5 (2025-03-12) β
Bug Fixes β
- theme: remove scroll bar
0.110.4 (2025-03-11) β
Version bump only.
0.110.3 (2025-03-11) β
Bug Fixes β
- page: fix reload
0.110.2 (2025-03-06) β
Version bump only.
0.110.1 (2025-03-06) β
Bug Fixes β
- suggestionText: fix suggestion text
0.110.0 (2025-03-05) β
Features β
- package: add pdfjs dependency
0.109.4 (2025-03-05) β
Bug Fixes β
- segmented: fix SegmentedField text color styling
0.109.3 (2025-03-05) β
Bug Fixes β
- segmented: fix segmented checked state background color
0.109.2 (2025-03-05) β
Version bump only.
0.109.1 (2025-03-05) β
Features β
- file: add allowedTypes validation to upload components
0.109.0 (2025-03-05) β
Features β
- pdf: implement mergePdfs and downloadPdf
0.108.1 (2025-03-05) β
Bug Fixes β
- file: export showUploadFile
0.108.0 (2025-03-04) β
Features β
- highlight: add show highlight feature
0.107.0 (2025-03-04) β
Features β
- page: add navigate helper
0.106.1 (2025-03-04) β
Version bump only.
0.106.0 (2025-03-04) β
Features β
- build: minify SDK size β part 2 (content)
0.105.3 (2025-03-03) β
Version bump only.
0.105.2 (2025-03-03) β
Bug Fixes β
- showSuccessNotice: fix event name sent by ctx.telemetry.sendEvent
0.105.1 (2025-03-03) β
Bug Fixes β
- showForm: fix date input not taking correct width
0.105.0 (2025-03-03) β
Features β
- theme: implement organization theme
0.104.0 (2025-03-03) β
Features β
- build: minify SDK size β part 1 (background)
0.103.4 (2025-03-03) β
Version bump only.
0.103.3 (2025-02-28) β
Bug Fixes β
- ai: update AI secrets
0.103.2 (2025-02-28) β
Version bump only.
0.103.1 (2025-02-28) β
Bug Fixes β
- select: fix multiple select
0.103.0 (2025-02-28) β
Features β
- AI: add askFile function
0.102.1 (2025-02-27) β
Version bump only.
0.102.0 (2025-02-26) β
Features β
- ai: add basic OCR helper
0.101.0 (2025-02-26) β
Features β
- ai: add standard AI helpers
0.100.0 (2025-02-26) β
Features β
- file: add PDF pages extraction helpers
0.99.0 (2025-02-25) β
Features β
- file: add file and folder manipulation helpers
0.98.2 (2025-02-24) β
Bug Fixes β
- context: make assistant required in Context interface, update mock context
0.98.1 (2025-02-24) β
Version bump only.
0.98.0 (2025-02-24) β
Features β
- file: add zip support
0.97.8 (2025-02-21) β
Version bump only.
0.97.7 (2025-02-21) β
Bug Fixes β
- success: update colors in light mode
0.97.6 (2025-02-20) β
Version bump only.
0.97.5 (2025-02-20) β
Chores β
- success: extend success notice props
0.97.4 (2025-02-20) β
Bug Fixes β
- notice: remove unused import in Thumbs component
0.97.3 (2025-02-20) β
Version bump only.
0.97.2 (2025-02-20) β
Features β
- notice: redesign success bubble with feedback UI
0.97.1 (2025-02-19) β
Version bump only.
0.97.0 (2025-02-17) β
Features β
- sanitizeFilePath: handle spaces in path and add tests
0.96.7 (2025-02-17) β
Bug Fixes β
- markdown: install and use remark-breaks
0.96.6 (2025-02-17) β
Version bump only.
0.96.5 (2025-02-17) β
Bug Fixes β
- select: fix select returning default value even if default was cleared
0.96.4 (2025-02-17) β
Features β
- checkbox: add checkAll position support (top/bottom)
0.96.3 (2025-02-11) β
Version bump only.
0.96.2 (2025-02-10) β
Chores β
- checkbox: add checkAll position type to form fields
0.96.1 (2025-01-31) β
Version bump only.
0.96.0 (2025-01-31) β
Features β
- sharepoint: add user authentication for SharePoint
0.95.5 (2025-01-30) β
Bug Fixes β
- utils: fix $xEval to use element.evaluate instead of page.evaluate
0.95.4 (2025-01-30) β
Bug Fixes β
- select: fix position of select dropdown
0.95.3 (2025-01-28) β
Bug Fixes β
- license: fix license checker
0.95.2 (2025-01-23) β
Bug Fixes β
- storybook: remove unused story
0.95.1 (2025-01-22) β
Version bump only.
0.95.0 (2025-01-20) β
Features β
- sharepoint: add getFileByPath function
0.94.5 (2025-01-15) β
Version bump only.
0.94.4 (2025-01-15) β
Features β
- pages: add createMinimizedWindow extension API support
0.94.3 (2025-01-10) β
Bug Fixes β
- README: clean up test pack instructions
0.94.2 (2025-01-10) β
Bug Fixes β
- runJobs: fix background window concurrency
0.94.1 (2025-01-10) β
Bug Fixes β
- markdown: clean up callouts
0.94.0 (2025-01-10) β
Features β
- sharepoint: add SharePoint Graph API integration
0.93.3 (2025-01-10) β
Chores β
- tests: relocate test files to colocated paths
0.93.2 (2024-12-16) β
Version bump only.
0.93.1 (2024-12-16) β
Version bump only.
0.93.0 (2024-12-16) β
Features β
- utils: add getFormattedDate helper
0.92.6 (2024-12-16) β
Bug Fixes β
- form: fix masked input validation
0.92.5 (2024-12-16) β
Version bump only.
0.92.4 (2024-12-12) β
Version bump only.
0.92.3 (2024-12-12) β
Bug Fixes β
- checkbox: re-export checkboxField
0.92.2 (2024-12-11) β
Bug Fixes β
- fields: consider the
invalidprop in fields
0.92.1 (2024-12-11) β
Bug Fixes β
- select: fix select placeholder
0.92.0 (2024-12-11) β
Features β
- file: update file validation flow
0.91.4 (2024-12-10) β
Version bump only.
0.91.3 (2024-12-10) β
Version bump only.
0.91.2 (2024-12-10) β
Version bump only.
0.91.1 (2024-12-10) β
Version bump only.
0.91.0 (2024-12-09) β
Features β
- watchers: move watcher tests to separate files
0.90.1 (2024-12-09) β
Version bump only.
0.90.0 (2024-12-06) β
Features β
- showForm: resolve showForm on Enter key press
0.89.0 (2024-12-04) β
Features β
- file: pre-validate file size
0.88.0 (2024-12-03) β
Features β
- uniqueId: use crypto instead of incremented ID
0.87.5 (2024-12-02) β
Version bump only.
0.87.4 (2024-11-28) β
Bug Fixes β
- build: fix build issue with test imports
0.87.3 (2024-11-28) β
Features β
- form: add style prop to showForm
- modules: remove base64 module
0.87.2 (2024-11-28) β
Version bump only.
0.87.1 (2024-11-27) β
Chores β
- progress: reorganize progress folder and add tests
0.87.0 (2024-11-26) β
Features β
- release: send Slack message when SDK build fails
0.86.0 (2024-11-26) β
Chores β
- tests: extract each helper and test into separate files
0.85.0 (2024-11-25) β
Features β
- select: add option select width
0.84.0 (2024-11-21) β
Features β
- race: add raceSelectors and racePromises helper functions
0.83.3 (2024-11-20) β
Version bump only.
0.83.2 (2024-11-20) β
Version bump only.
0.83.1 (2024-11-20) β
Bug Fixes β
- waiters: fix waitForSelector with hidden elements
0.83.0 (2024-11-19) β
Features β
- showForm: update showForm documentation
0.82.10 (2024-11-19) β
Bug Fixes β
- build: fix puppeteer error
0.82.9 (2024-11-19) β
Version bump only.
0.82.8 (2024-11-19) β
Bug Fixes β
- test: fix test logs
0.82.7 (2024-11-19) β
Bug Fixes β
- waiters: fix waitForSelector
0.82.6 (2024-11-13) β
Bug Fixes β
- file: fix file upload text
0.82.5 (2024-11-05) β
Bug Fixes β
- fill: fix fill not working with xpath
0.82.4 (2024-10-30) β
Bug Fixes β
- form: add checked prop to radio list items
0.82.3 (2024-10-30) β
Bug Fixes β
- file: fix uploading corrupted files
0.82.2 (2024-10-16) β
Bug Fixes β
- uploadFile: remove extra overlay in showUploadFile
0.82.1 (2024-10-16) β
Version bump only.
0.82.0 (2024-10-14) β
Features β
- list-item: add
extraprop to some showForm types
0.81.5 (2024-10-14) β
Bug Fixes β
- build: fix build tests
0.81.4 (2024-10-10) β
Bug Fixes β
- form: sonarcloud form
0.81.3 (2024-10-10) β
Bug Fixes β
- tabProgress: fix removing overlay
0.81.2 (2024-10-09) β
Version bump only.
0.81.1 (2024-10-09) β
Bug Fixes β
- file: fix file upload
0.81.0 (2024-10-09) β
Features β
- bubble: specify position of the bubble
0.80.2 (2024-10-09) β
Bug Fixes β
- form: rollback form sonarcloud
0.80.1 (2024-10-09) β
Bug Fixes β
- formItem: fix formItem error
0.80.0 (2024-10-09) β
Features β
- progressList: add warning status to progresslist
0.79.1 (2024-10-07) β
Bug Fixes β
- maintainability: sonarcloud
0.79.0 (2024-10-07) β
Features β
- markdown: add support for tables in markdown
0.78.1 (2024-10-04) β
Bug Fixes β
- maintainability: sonarcloud
0.78.0 (2024-10-02) β
Features β
- sharepoint: add move, delete and copy function to sharpoint helper
0.77.2 (2024-10-02) β
Bug Fixes β
- maintainability: sonarcloud
0.77.1 (2024-09-27) β
Bug Fixes β
- reliability: sonarcloud cleanup medium reliability
0.77.0 (2024-09-27) β
Features β
- utils: get timestamp
0.76.0 (2024-09-26) β
Features β
- sharepoint: fix list files URL
0.75.17 (2024-09-26) β
Version bump only.
0.75.16 (2024-09-26) β
Version bump only.
0.75.15 (2024-09-25) β
Bug Fixes β
- theme: fix theme documentation
0.75.14 (2024-09-25) β
Bug Fixes β
- file: divide big files to chunks while uploading
0.75.13 (2024-09-24) β
Bug Fixes β
- themes: update the initialize theme function
0.75.12 (2024-09-24) β
Version bump only.
0.75.11 (2024-09-19) β
Version bump only.
0.75.10 (2024-09-19) β
Bug Fixes β
- deps: remove npm-watch
0.75.9 (2024-09-19) β
Bug Fixes β
- deps: patch semver
0.75.8 (2024-09-19) β
Version bump only.
0.75.7 (2024-09-19) β
Bug Fixes β
- deps: patch ws
0.75.6 (2024-09-19) β
Bug Fixes β
- storybook: storybook upgrade
0.75.5 (2024-09-19) β
Bug Fixes β
- axios: axios update
0.75.4 (2024-09-18) β
Bug Fixes β
- lodash: remove lodash-es
0.75.3 (2024-09-10) β
Bug Fixes β
- selectField: fix select value overflow cut
0.75.2 (2024-08-14) β
Bug Fixes β
- import: fix errors about lodash
0.75.1 (2024-08-08) β
Bug Fixes β
- showNotice: fix subtitle color in dark theme
0.75.0 (2024-07-30) β
Features β
- showForm: deprecate initialData in showForm
0.74.0 (2024-07-30) β
Features β
- toast: update toast component docs
0.73.1 (2024-07-30) β
Version bump only.
0.73.0 (2024-07-25) β
Features β
- showUploadFile: update showUploadFile docs
0.72.7 (2024-07-23) β
Bug Fixes β
- form: fix input mask
0.72.6 (2024-07-19) β
Version bump only.
0.72.5 (2024-07-19) β
Bug Fixes β
- select: fix select component storybook page
0.72.4 (2024-07-11) β
Bug Fixes β
- form: fix select styles
0.72.1 (2024-07-10) β
Version bump only.
0.72.0 (2024-07-09) β
Features β
- page: open multiple tabs in the same window in bg ctx
0.71.13 (2024-07-03) β
Bug Fixes β
- icons: restore play icon
0.71.12 (2024-07-03) β
Bug Fixes β
- release: fix slack msg
0.71.11 (2024-07-03) β
Version bump only.
0.71.10 (2024-07-03) β
Bug Fixes β
- bubble: fix drag and drop on google pages
0.71.9 (2024-07-03) β
Bug Fixes β
- release: manual release
0.71.8 (2024-07-03) β
Bug Fixes β
- pages: await browser targets
0.71.7 (2024-07-01) β
Bug Fixes β
- form: styled components import
0.71.6 (2024-07-01) β
Bug Fixes β
- navigation: fix navigation and press conditions
0.71.5 (2024-06-26) β
Bug Fixes β
- release: slack notification
0.71.4 (2024-06-26) β
Bug Fixes β
- release: auto-release alpha
0.71.3 (2024-06-25) β
Bug Fixes β
- test: mock assistant API
0.71.2 (2024-06-25) β
Bug Fixes β
- themes: update get file path
0.71.1 (2024-06-24) β
Bug Fixes β
- theme: fix theme events
0.71.0 (2024-06-24) β
Features β
- callout: left align text in callout
0.70.0 (2024-06-21) β
Features β
- form: make groups collapsable optionally
0.69.4 (2024-06-13) β
Bug Fixes β
- designer: update skillcompletition
0.69.3 (2024-06-11) β
Version bump only.
0.69.2 (2024-06-11) β
Bug Fixes β
- select: fix menu width
0.69.1 (2024-06-10) β
Bug Fixes β
- successNotice: add thumbs feedback comment
0.69.0 (2024-06-10) β
Features β
- successNotice: add thumbs feedback comment
0.68.4 (2024-06-10) β
Bug Fixes β
- docs: rm select from docs
0.68.3 (2024-06-10) β
Bug Fixes β
- release: rm commit msg
0.68.2 (2024-06-10) β
Bug Fixes β
- release: commit msg
0.68.1 (2024-06-10) β
Bug Fixes β
- release: test alpha release, closes
0.68.0 (2024-06-07) β
Features β
- release: add manual trigger and channel support to release workflow
0.67.0 (2024-06-07) β
Features β
- suggestionBox: add suggestion box to the success bubble
0.66.0 (2024-06-07) β
Features β
- xpath: refactor core modules to use XPath selectors as primary strategy
0.65.5 (2024-06-06) β
Bug Fixes β
- form: fix build
0.65.4 (2024-06-06) β
Bug Fixes β
- form: build fix
0.65.3 (2024-06-06) β
Version bump only.
0.65.2 (2024-06-04) β
Bug Fixes β
- form: fix form validation for regex and custom
0.65.1 (2024-06-03) β
Bug Fixes β
- input: fix warnings/errors for multiple and defaultValue
0.65.0 (2024-05-31) β
Features β
- icons: readd some missing icons
0.64.0 (2024-05-31) β
Features β
- ads: add white overlay option
0.63.0 (2024-05-31) β
Features β
- icons: remove unused icons
0.62.0 (2024-05-30) β
Features β
- sdk: rename watcher module to wait, add getText, refactor form and DOM modules
0.61.7 (2024-05-29) β
Bug Fixes β
- build: update build-branch workflow to be manual
0.61.6 (2024-05-29) β
Bug Fixes β
- vertical: fix broken buttons space
0.61.4 (2024-05-29) β
Bug Fixes β
- markdown: fix opening link in a new tab in info and warn
0.61.3 (2024-05-29) β
Bug Fixes β
- select: update styles of select
0.61.2 (2024-05-28) β
Version bump only.
0.61.1 (2024-05-28) β
Bug Fixes β
- ads: bubble position update
0.61.0 (2024-05-28) β
Features β
- sdk: add assistant type to Context
0.60.4 (2024-05-28) β
Bug Fixes β
- release: lerna, version, commit
0.53.1 (2024-04-29) β
Version bump only.
0.53.0 (2024-04-29) β
Features β
- architecture: cut the size of the SDK and migrate to ES6
Bug Fixes β
- form: add overlay option to showForm
0.52.2 (2024-04-17) β
Bug Fixes β
- form: add overlay option to showForm
0.52.1 (2024-04-05) β
Bug Fixes β
- form: if select is at the bottom of showForm, it will not show all items
0.52.0 (2024-03-25) β
Features β
- check-licenses: fix file drive
0.51.1 (2024-03-20) β
Version bump only.
0.51.0 (2024-03-20) β
Features β
- check-licenses: add artifact
0.50.7 (2024-03-19) β
Version bump only.
0.50.6 (2024-03-19) β
Version bump only.
0.50.5 (2024-03-19) β
Version bump only.
0.50.4 (2024-03-19) β
Bug Fixes β
- form: transformation doesnβt work
0.50.3 (2024-03-18) β
Bug Fixes β
- bubble: fix section's container radius
0.50.2 (2024-03-18) β
Bug Fixes β
- showForm: fix segmented type issues
0.50.1 (2024-03-14) β
Version bump only.
0.50.0 (2024-03-12) β
Features β
- splitview: add split view component
0.49.3 (2024-03-12) β
Version bump only.
0.49.2 (2024-03-12) β
Reverts β
- Revert "fix(form): #669 fix default values in form (#676)" (#692), closes
0.49.1 (2024-03-11) β
Version bump only.
0.49.0 (2024-03-11) β
Features β
- tiff: tiff viewer
0.48.4 (2024-03-11) β
Version bump only.
0.48.3 (2024-03-11) β
Version bump only.
0.48.2 (2024-03-11) β
Version bump only.
0.48.1 (2024-03-11) β
Bug Fixes β
- form: fix default values in form
0.48.0 (2024-03-06) β
Features β
- bubble: remove overflow hidden from Bubble
0.47.14 (2024-03-05) β
Chores β
- deps: update node-fetch
0.47.13 (2024-03-05) β
Chores β
- deps: update Prettier and reformat source
0.47.12 (2024-03-05) β
Version bump only.
0.47.11 (2024-03-05) β
Features β
- form: add date range component
0.47.10 (2024-03-05) β
Version bump only.
0.47.9 (2024-03-01) β
Features β
- xpath: rename xpath methods for consistency
0.47.8 (2024-02-20) β
Reverts β
- Revert "Fix/643 showform console errors (#645)" (#656), closes
0.47.7 (2024-02-20) β
Bug Fixes β
- form: add option to hide group in form
0.47.6 (2024-02-16) β
Version bump only.
0.47.5 (2024-02-12) β
Version bump only.
0.47.4 (2024-02-05) β
Bug Fixes β
- select: fix select not opening on click, add custom items to dropdown
0.47.3 (2024-01-29) β
Bug Fixes β
- deps: fix vulnerabilities
0.47.2 (2024-01-24) β
Version bump only.
0.47.1 (2024-01-05) β
Bug Fixes β
- select: fix select not changing state
0.47.0 (2024-01-04) β
Features β
- form: alphabetic/alphanumeric validation
0.46.1 (2024-01-02) β
Version bump only.
0.46.0 (2023-12-20) β
Features β
- analytics: send skill success event
0.45.0 (2023-12-20) β
Features β
- debug-logs: add [SDK] to console debug
0.44.0 (2023-12-18) β
Features β
- form: input mask
0.43.5 (2023-12-18) β
Bug Fixes β
- form: fix validation priority
0.43.4 (2023-12-18) β
Bug Fixes β
- checkboxlist: implement min/max/range selection validation
0.43.3 (2023-12-18) β
Bug Fixes β
- form: fix StringFormat export
0.43.2 (2023-12-13) β
Bug Fixes β
- skill-build: fix skill build
0.43.1 (2023-12-13) β
Version bump only.
0.43.0 (2023-12-12) β
Features β
- form: transform fields on blur
0.42.2 (2023-12-11) β
Version bump only.
0.42.1 (2023-12-11) β
Version bump only.
0.42.0 (2023-12-11) β
Features β
- skill: fix webpack build
0.41.2 (2023-12-11) β
Version bump only.
0.41.1 (2023-12-11) β
Version bump only.
0.41.0 (2023-12-11) β
Features β
- release: add multi select
0.40.4 (2023-12-11) β
Version bump only.
0.40.3 (2023-12-06) β
Bug Fixes β
- form: fix checked in checknoxList
0.40.2 (2023-12-05) β
Bug Fixes β
- release: fix undefined attributes
0.40.1 (2023-12-05) β
Bug Fixes β
- release: fix identifier
0.40.0 (2023-12-05) β
Features β
- release: add contextual bubble
0.39.2 (2023-12-04) β
Bug Fixes β
- form: fix validation for min/max | lessThan/moreThan
0.39.1 (2023-11-30) β
Bug Fixes β
- release: clean up
0.39.0 (2023-11-30) β
Features β
- release: update highlight to match themes
0.38.0 (2023-11-30) β
Features β
- theme: add rainbow theme
0.37.1 (2023-11-28) β
Bug Fixes β
- autosuggest: fix select autosuggest
0.37.0 (2023-11-27) β
Features β
- input: add color and onClick to prefix/suffix
0.36.5 (2023-11-22) β
Bug Fixes β
- ads: remove old widgets from ads
0.36.4 (2023-11-21) β
Version bump only.
0.36.3 (2023-11-20) β
Version bump only.
0.36.2 (2023-11-20) β
Version bump only.
0.36.1 (2023-11-20) β
Version bump only.
0.36.0 (2023-11-20) β
Features β
- page: get element from nested shadow root
0.35.3 (2023-11-17) β
Version bump only.
0.35.2 (2023-11-10) β
Bug Fixes β
- sharepoint: throw error when status is not ok
0.35.1 (2023-11-07) β
Version bump only.
0.35.0 (2023-11-07) β
Features β
- yalc: add yalc instructions
0.34.4 (2023-11-03) β
Version bump only.
0.34.3 (2023-10-30) β
Bug Fixes β
- exports: fix skill build
0.34.2 (2023-10-26) β
Bug Fixes β
- select: useRef for FormSelect
0.34.1 (2023-10-25) β
Version bump only.
0.34.0 (2023-10-24) β
Features β
- form: add support for dynamic components
0.33.38 (2023-10-24) β
Bug Fixes β
- form: fix nan validation message
0.33.37 (2023-10-23) β
Bug Fixes β
- form: do not validate hidden or disabled buttons
0.33.36 (2023-10-20) β
Bug Fixes β
- form: fix showForm text
0.33.35 (2023-10-19) β
Bug Fixes β
- scripts: downgrade background-react to work with scripts v1
0.33.34 (2023-10-18) β
Bug Fixes β
- release: revert pr 502
0.33.33 (2023-10-17) β
Bug Fixes β
- yarnlock: regenerate yarn lock
0.33.32 (2023-10-17) β
Version bump only.
0.33.31 (2023-10-17) β
Bug Fixes β
- release: remove text border
0.33.30 (2023-10-13) β
Version bump only.
0.33.29 (2023-10-12) β
Version bump only.
0.33.28 (2023-10-12) β
Version bump only.
0.33.27 (2023-10-11) β
Bug Fixes β
- file: open folder fix
0.33.26 (2023-10-05) β
Bug Fixes β
- form: fix group title and description
0.33.25 (2023-10-04) β
Version bump only.
0.33.24 (2023-10-04) β
Version bump only.
0.33.23 (2023-10-04) β
Version bump only.
0.33.22 (2023-10-04) β
Version bump only.
0.33.21 (2023-10-04) β
Version bump only.
0.33.20 (2023-10-04) β
Version bump only.
0.33.19 (2023-10-04) β
Version bump only.
0.33.18 (2023-10-04) β
Version bump only.
0.33.17 (2023-09-28) β
Version bump only.
0.33.16 (2023-09-28) β
Version bump only.
0.33.15 (2023-09-28) β
Version bump only.
0.33.14 (2023-09-28) β
Bug Fixes β
- form: disable only submit button
0.33.13 (2023-09-28) β
Version bump only.
0.33.12 (2023-09-27) β
Version bump only.
0.33.11 (2023-09-27) β
Version bump only.
0.33.10 (2023-09-27) β
Version bump only.
0.33.9 (2023-09-27) β
Version bump only.
0.33.8 (2023-09-27) β
Version bump only.
0.33.7 (2023-09-26) β
Version bump only.
0.33.6 (2023-09-26) β
Version bump only.
0.33.5 (2023-09-26) β
Chores β
- tests: add file operation tests
0.33.4 (2023-09-26) β
Features β
- waiters: add waitForXPathSelector helper
0.33.3 (2023-09-25) β
Chores β
- tests: add clear and type tests
0.33.2 (2023-09-25) β
Chores β
- tests: add domClick tests
0.33.1 (2023-09-25) β
Version bump only.
0.33.0 (2023-09-25) β
Features β
- automation: draftEmail
0.32.3 (2023-09-22) β
Version bump only.
0.32.2 (2023-09-22) β
Version bump only.
0.32.1 (2023-09-21) β
Version bump only.
0.32.0 (2023-09-20) β
Features β
- tests: global config for mocks
0.31.21 (2023-09-20) β
Version bump only.
0.31.20 (2023-09-20) β
Bug Fixes β
- form: clean values inside form after render
0.31.19 (2023-09-20) β
Version bump only.
0.31.18 (2023-09-20) β
Version bump only.
0.31.17 (2023-09-20) β
Features β
- form: update conditional fields
- waiters: add wait and waitForSelector unit tests
0.31.16 (2023-09-20) β
Version bump only.
0.31.15 (2023-09-20) β
Version bump only.
0.31.14 (2023-09-20) β
Version bump only.
0.31.13 (2023-09-20) β
Version bump only.
0.31.12 (2023-09-20) β
Version bump only.
0.31.11 (2023-09-18) β
Bug Fixes β
- release: fix highlighter position
0.31.10 (2023-09-18) β
Version bump only.
0.31.9 (2023-09-15) β
Bug Fixes β
- highlight: fix highlights position
0.31.8 (2023-09-13) β
Version bump only.
0.31.7 (2023-09-13) β
Version bump only.
0.31.6 (2023-09-13) β
Version bump only.
0.31.5 (2023-09-08) β
Bug Fixes β
- config: fix build watcher
0.31.4 (2023-09-07) β
Bug Fixes β
- storage: tmp remove storage
0.31.3 (2023-09-07) β
Version bump only.
0.31.2 (2023-09-06) β
Bug Fixes β
- storage: fix path
0.31.1 (2023-09-06) β
Bug Fixes β
- tests: fix local tests
0.31.0 (2023-09-06) β
Features β
- sdk: retry behaviour for mouse and keyboard helpers, closes
0.30.5 (2023-09-05) β
Version bump only.
0.30.4 (2023-09-05) β
Version bump only.
0.30.3 (2023-09-05) β
Version bump only.
0.30.2 (2023-09-05) β
Version bump only.
0.30.1 (2023-09-05) β
Version bump only.
0.30.0 (2023-09-05) β
Features β
- storage: storage package
0.29.3 (2023-09-05) β
Version bump only.
0.29.2 (2023-08-31) β
Version bump only.
0.29.1 (2023-08-29) β
Bug Fixes β
- release: fix release
0.29.0 (2023-08-25) β
Features β
- automation: add mouseEvent hover helper
Chores β
- deps: bump yup from 0.32.11 to 1.2.0
- deps: bump react from 17.0.2 to 18.2.0
0.28.13 (2023-08-29) β
Version bump only.
0.28.12 (2023-08-29) β
Version bump only.
0.28.11 (2023-08-29) β
Version bump only.
0.28.10 (2023-08-29) β
Version bump only.
0.28.9 (2023-08-28) β
Bug Fixes β
- file: fix UI
0.28.8 (2023-08-25) β
Version bump only.
0.28.7 (2023-08-25) β
Bug Fixes β
- npm: fix dependencies
0.28.6 (2023-08-25) β
Bug Fixes β
- themes: fix path
0.28.5 (2023-08-25) β
Version bump only.
0.28.4 (2023-08-25) β
Version bump only.
0.28.3 (2023-08-25) β
Bug Fixes β
- release: fix lerna
0.28.2 (2023-08-25) β
Bug Fixes β
- release: fix lerna
0.28.1 (2023-08-25) β
Version bump only.