--- title: "9.2.0 Release Notes" slug: "9-2-0-platform-release-notes" status: "update" updated: 2026-11-05T21:47:12Z published: 2026-11-05T21:47:12Z canonical: "docs.unqork.io/9-2-0-platform-release-notes" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.unqork.io/llms.txt > Use this file to discover all available pages before exploring further. # 9.2.0 Release Notes > [!WARNING] > The 9.2.0 release schedule differs from previous releases. Staging and UAT deploy on the same day, and Production follows one week later. | Environment | Release Date | | --- | --- | | Staging | Nov 12, 2026 | | UAT | Nov 12, 2026 | | Production | Nov 19, 2026 | Version 9.2.0 builds on the 9.0 release. For UnqorkAI customers, it adds Build Agent controls, Context documents, MCP support in two directions, and module-scoped private Smart Components. For all customers, it improves Module Builder and Explorer and resolves platform issues. For a short summary of this release, see the [9.2.0 Overview](/unqorkai/docs/9-2-0-overview). ## Release Highlights ### ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/unqorkai-sparkle.svg?sv=2026-02-06&spr=https&st=2026-11-05T23%3A43%3A18Z&se=2026-11-06T00%3A43%3A18Z&sr=c&sp=r&sig=UhneiVRaL5gDZpevRMzID1zQTGmW9TVuZU8Pb9sN7KY%3D) UnqorkAI > [!WARNING] > The following highlights are available to customers with an active AI capabilities agreement. Contact an Unqork representative to learn about activating AI-powered features. #### Build Agent **Control who uses the Build Agent.** Administrators select **Administration** > **Environment Settings** > **Build Agent** > **Access Control**. They set each role to **No Access**, **Ask Only**, or **Builder**. With **Ask Only**, the Build Agent answers questions about a workspace but cannot change it. Access can differ by environment and workspace. **Limit each run.** The **Limits** page caps **LLM calls per run** and **Run time limit (minutes)**, with defaults of 500 calls and 60 minutes. When a run reaches a limit, the Build Agent pauses, and Creators select **Continue** to resume. Changes to these settings are recorded in audit logs. **Shared context across tasks.** The Build Agent now keeps documents for a workspace, starting with an architecture document for each application. A plan for a new application begins with a task that writes that document, and later tasks read it before planning. Creators read, edit, and delete these documents on the **Context** tab next to **History**. The Build Agent checks content before saving it and rejects credentials and other sensitive values. A gauge in the prompt box displays how full the agent's working space is. **Better building blocks.** The Build Agent now reads formulas, exact values, and numeric formats from attached Excel workbooks. It can then implement the calculations in a rater or pricing model. It builds login, registration, and group management flows for Express end-users. #### Working with MCP The Model Context Protocol (MCP) is an open standard that lets AI agents use external tools and data. Version 9.2.0 supports MCP in two directions. **Build Agent to external systems (MCP Connectors).** Administrators connect the Build Agent to systems outside Unqork on the **MCP Connectors** page under **Build Agent**. They choose a connector from the catalog: Atlassian, Google Drive, Google Docs, Exa, or Firecrawl. They then select which of its tools the Build Agent can use. For example, an administrator can connect Google Docs so the Build Agent works from a requirements document while it plans an application. Each Creator signs in to the connector with their own account from **Manage Connectors** in the Build Agent composer menu. Creators then set each connection to **Ask**, which pauses for approval on every call, or **Trusted**, which runs without asking. **External AI agents to Unqork (MCP Server, Beta).** Published API modules become tools that external AI agents call at one endpoint, `/api/1.0/mcp`. In an API module's settings, an administrator turns on **Agents can call this module as a tool (MCP)** on the **MCP Settings** page. For example, a company assistant outside Unqork can call a published quote-calculation API module as a tool instead of rebuilding that logic. An agent signs in with an API credential. Its Express role needs Write on the module's **User Permissions**, so existing permissions still decide what the agent can reach. #### Smart Components **Private Smart Components are scoped to a module.** A public Smart Component is scoped to the environment, and a private one is scoped to a module. Before 9.2.0, a module could place a private component only once. Now a module can place it any number of times. The component is versioned with the application, promoted with the module, copied when Creators duplicate or paste the module, and rolled back with the module. Names must be unique only in the module. **Move from private to public.** **Make Public** creates a public Smart Component from a private one. Creators name the public component and choose which instances in the module switch to it. Public Smart Components stay environment-wide and reusable across modules. Restoring a module revision brings its private components back and does not roll back public ones. **Simpler editing.** Private Smart Components no longer have drafts. Changes the Build Agent makes to a private component save straight into its module. The **Components** tab lists a module's private components in an **In This Module** group. The Smart Components Hub groups them by workspace, application, and module. #### Chat Agent Smart Component **One place for conversation logging.** Before 9.2.0, each Chat Agent Smart Component had its own conversation logging settings. Now the **Conversation audit module** field on the LLM Config sets the module for every Chat Agent Smart Component that uses that LLM Config. Each conversation is one submission. Components that relied on the old settings stop recording until Creators set the audit module. A blank field records no conversations. **Visualizations from data questions.** Creators turn on **Enable Generated Visualizations**, which is off by default. The Chat Agent Smart Component can then answer a data question with a visualization that it writes at runtime. The platform validates the visualization on the server first. The visualization displays in that conversation only and is not saved. The data comes from the API modules approved in **Server Modules**. An empty list means the component reads only the live form. **Server-side runtime.** The Chat Agent Smart Component now runs on the server with its LLM Credential, and end-user behavior stays the same. Its **LLM Config** and **LLM Credential** must be fixed values. ### Unqork Platform These highlights are available to all customers on version 9.2.0. **Module Builder.** **Save** now stays unavailable until Creators apply or discard all draft settings changes. A tooltip names the components with unapplied changes, because saving first could lose configuration. With **Debug** on, the Unit Tests panel for a Data Workflow component displays a step-by-step Debug Trace. Each operator's input and output has an expandable JSON view. Module Builder also uses less processing time with large modules. **Explorer.** The new **Config Search** tab searches component settings across an application. Creators pick an application, and a branch or version for versioned applications, then enter at least 4 characters. Search finds whole-word, case-insensitive matches and returns up to 1,000 components. **API Debugger.** The **Docs** tab has a **Copy link** button that copies a link to the selected documentation. Opening the link displays that endpoint in the API Debugger, and the link survives sign-in. **Platform fixes.** Version 9.2.0 resolves issues across Application Versioning, Workflow, Workspaces, and Module Builder. ## Key Updates Review these changes before upgrading. Each one can affect an existing application, a permission, or a setting that works today. ### ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/unqorkai-sparkle.svg?sv=2026-02-06&spr=https&st=2026-11-05T23%3A43%3A18Z&se=2026-11-06T00%3A43%3A18Z&sr=c&sp=r&sig=UhneiVRaL5gDZpevRMzID1zQTGmW9TVuZU8Pb9sN7KY%3D) UnqorkAI > [!WARNING] > The following updates are available to customers with an active AI capabilities agreement. Contact an Unqork representative to learn about activating AI-powered features. - **Private Smart Components.** A module can now place the same private Smart Component more than once. Restoring an earlier revision of the module restores its private components with it. - **Chat Agent Smart Component conversation logging.** In 9.0, each Chat Agent Smart Component set its own logging with the **Enable Conversation Logging** and **Audit Submissions Module ID** settings. In 9.2.0, the new **Conversation audit module** field on the LLM Config sets the module that records conversations. It applies to every Chat Agent Smart Component that uses that LLM Config. The component settings are deprecated and ignored, and nothing migrates their values. Components that relied on them stop recording conversations until Creators set the field. ### Unqork Platform The following updates are available to all customers on version 9.2.0. - **Creator permissions.** Creators without create permissions no longer see **Create Library Module** or **Create Library Data Collection**. Creators with only View and Update permissions on an application no longer see **Create Application** or **Create Module**. Module settings stay read-only unless Creators hold the editing lock. Clearing **Designer Access (Super-user)** on an Express role no longer removes the option from the role. Review the roles of Creators who relied on these options. - **Application Versioning read-only views.** Creators who hold the editing lock can no longer edit a module on the default version, a published version, or a historic commit. Those views stay read-only. - **Versioned workflow applications.** Creators can now work with workflows in versioned workflow applications. Workflow reads and writes in these applications no longer return a 400 error, so review any retry logic that handled it. - **Navigation component.** The **Hide Previous**, **Hide Next**, **Hide Submit**, and **Hide Draft** settings in the Panels grid now apply in Express. Modules that set them display differently. Review the settings on existing Navigation components. - **Workflow `stateHistory`.** `stateHistory` now updates every time an Automated Task returns an error. Review logic that reads `stateHistory`. - **Deleted applications.** Deleting an application that is already deleted now returns a 404 error instead of a 500 error. Update any integration that checks for the 500 response. - **Single sign-on.** OIDC token validation accepts a 5-second clock difference between the identity provider and the Unqork server for the `nbf`, `exp`, and `auth_time` claims. No configuration changes are required. ## Improvements ### ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/unqorkai-sparkle.svg?sv=2026-02-06&spr=https&st=2026-11-05T23%3A43%3A18Z&se=2026-11-06T00%3A43%3A18Z&sr=c&sp=r&sig=UhneiVRaL5gDZpevRMzID1zQTGmW9TVuZU8Pb9sN7KY%3D) UnqorkAI > [!WARNING] > The following capabilities are available to customers with an active AI capabilities agreement. Contact an Unqork representative to learn about activating AI-powered features. #### [Build Agent](/unqorkai/docs/build-agent-overview) **Build Agent administration.** Designer Administrators manage the Build Agent from **Administration** > **Environment Settings** > **Build Agent**. Changes to these settings are recorded in audit logs. The following pages control the Build Agent: - **Access Control**: Controls who can use the Build Agent by environment, role, and workspace. Each role is set to **No Access**, **Ask Only**, or **Builder**. Creators without access see a message that points them to their administrator. - **Limits**: Sets **LLM calls per run** and **Run time limit (minutes)** for a single Build Agent run. The defaults are 500 LLM calls and 60 minutes. When a run reaches a limit, the Build Agent pauses with a notice and a **Continue** button. - **Context Documents**: Turns context documents on or off for the environment and for each workspace. - **MCP Connectors**: Connects the Build Agent to external systems, as described in **MCP Connectors** below. **Context documents.** The Build Agent keeps workspace-level documents that it reads and updates across tasks, starting with an architecture document for each application. Plans for new applications now begin with a task that writes that document, and later tasks read it before planning. Creators can also read, edit, and delete these documents, by hand or by asking the Build Agent. They do this on the new **Context** tab next to **History** in the Build Agent panel. The **Context** tab is available where an administrator has left Context Documents on. The Build Agent checks content before saving it to a context document and rejects credentials and other sensitive values. **Context usage gauge.** The Build Agent prompt box has a context gauge. The ring fills as the agent's working space is used and turns to a warning color at about 85 percent. Selecting it opens a **Context usage** pop-up that lists the share used by **Skills**, **Agent context**, **Conversation**, and **Free space**. At about 90 percent, the agent summarizes earlier messages automatically. **Plan approval.** **Request Changes** is available after the Creator saves at least one comment on the plan. A hint on the approval card explains how to highlight text and add comments. **MCP Connectors.** Administrators connect the Build Agent to external systems on the **MCP Connectors** page under **Build Agent**. They choose a connector from the catalog (Atlassian, Google Drive, Google Docs, Exa, or Firecrawl). They then select which of its tools the Build Agent can use. Each Creator signs in with their own account from **Manage Connectors** in the Build Agent composer menu. Creators set each connection to **Ask** or **Trusted**. **Ask** pauses for approval on every call, and **Trusted** runs without asking. Exa and Firecrawl need an API key from the vendor. Google Drive and Google Docs need an OAuth client from a Google project that is enrolled in the Google Workspace Developer Preview. Complete that setup with the vendor before adding the connector. **Attachments.** The Build Agent now reads formulas, exact stored values, and numeric formats from attached Excel workbooks (XLS, XLSX, XLSM, and ODS). It can then implement the calculations in a rater or pricing model. **Express users and groups.** The Build Agent builds login, logout, registration, and user and group management flows for Express end-users. **Component selection.** The Build Agent no longer creates new instances of nine components, and uses V2 components or Smart Components instead. The nine are Address, Advanced Data Grid, Checkpoint, Content, Data Mapper, Map, Phone Number, Plaid, and Rich Text Editor. The existing components remain in the tray. **Transforms.** The Build Agent creates, edits, renders, and deletes module transforms. Creators can ask for a document built from application data, like a quote PDF, an application summary, or an XML file for an integration. The Build Agent chooses the transform type (PDF, XML, or text) and writes the template. It then wires the transform to the application, for example through a **Plug-In** component behind a **Download** button. It renders the transform with sample data and checks the result before it reports success. The Build Agent asks for approval before it saves or deletes a transform, and a card names the transform and its module. An approval covers that transform only, and every delete asks again. The module's **Transforms** tab updates as the Build Agent saves and deletes without a reload. If Creators have unsaved edits to the same transform, a warning displays before they can save over the Build Agent's version. Rolling back a task undoes its transform changes, and a warning names any transform that could not be restored. A transform that fails to render reports the line and cause of the failure. **History search.** Searching **History** matches words from the conversation and tool calls, and module and application IDs, in addition to task titles. Each match displays a snippet under its row. **Responsiveness and reliability.** The Build Agent responds faster after Creators send a message. The Module Builder UI View updates automatically when the Build Agent changes a module. The Build Agent runs on Claude Opus 5.5. #### [Smart Components](/unqorkai/docs/smart-components-overview) **Private and public Smart Components.** A private Smart Component is scoped to one module. It is versioned, promoted, copied, and rolled back with that module. A public Smart Component is scoped to the environment, is reusable across modules, and is promoted on its own. **Private Smart Components are scoped to a module.** A private Smart Component now behaves as part of the module that owns it. It is versioned with the application, promoted with the module, copied when Creators duplicate or paste the module, and rolled back with the module. A module can place the same private component any number of times, and component names must be unique only in the module. Creators delete a private component that no instance uses, and the deletion takes effect when they save the module. **Save with a copy.** A module can place only the private components it owns. If a module places one that another module owns, saving it opens a **Save with a copy?** dialog. Confirming gives the module its own copy. The copy is identical to the original at first and does not receive later changes to it. **Working with private components.** The **Components** tab lists a module's private components in an **In This Module** group. Hovering a component row and selecting **Preview** opens a read-only definition preview with **Definition** and **Tests** tabs and a **Used In** section. The Smart Components Hub groups private components by workspace, application, and module, and opening one takes the Creator to its module. Restoring a module revision brings its private components back with the module and does not roll back public Smart Components. The restore dialog links each public component that the saved module used to the Smart Components Hub. **Focused Component View.** Private Smart Components no longer have drafts. Changes the Build Agent makes to a private component save straight into its module, and **Review Changes** and **Discard Draft** no longer display for it. For a public component, the **Edit Component** button is now **Edit Definition**, or **View Definition** for Creators without permission to edit Smart Components. The new **Duplicate** action on a public component asks for confirmation, then saves the module and creates a private copy that only the module uses. A public component that has never been published displays a **Publish** button. It lists the component in the component tray and makes it available to the Build Agent. **Build Agent and private components.** Build Agent plans list each module's Smart Components under **Smart Components in this module**. Each entry displays its kind, **Private** or **Public**, and a badge: new, reused, edited, or copied from another component. **Make Public.** **Make Public** creates a new public Smart Component from a private one. In the **Make Public** dialog, Creators name the public component and choose which instances in the module switch to it. The **Delete private component** switch is on by default. It is unavailable while any instance stays private, and the private component stays in the module. Whether a Smart Component is public or private is fixed when it is created. **Import, export, and promotion.** Promoting a module includes its private components by default. Bundles carry a module's private components, and the importing module owns the private components it brings. Exporting a private Smart Component from the Hub uses the application's default version. Promotion offers public components only, so the private promote permission is hidden on the Creator role form. **Merge and tests.** Merging a branch carries private components and their tests with their module. The merge picker lets Creators compare and choose a side for each component. Module tests and Smart Component tests are versioned with the module or component they test. #### [Chat Agent Smart Component](/unqorkai/docs/chat-agent-smart-component) **Generated visualizations.** Creators turn on **Enable Generated Visualizations**, which is off by default. The Chat Agent Smart Component can then answer a data question with a visualization that it writes at runtime. The platform validates the visualization on the server first. The visualization displays in that conversation only and is not saved. The data comes from the API modules approved in **Server Modules**. **Server Modules.** The new **Server Modules** setting lists the API modules that the Chat Agent Smart Component can run. An empty list means the Chat Agent Smart Component reads only the live form. **Server-side runtime.** The Chat Agent Smart Component now runs on the server with its LLM Credential, and end-user behavior stays the same. Because of this, the component's **LLM Config** and **LLM Credential** must be fixed values, and a binding to a form field no longer runs. Creators refresh the page after the 9.2.0 deployment. #### API **MCP Server (Beta).** For customers with UnqorkAI, the environment exposes published API modules as tools to AI agents that run outside Unqork. Each environment has one endpoint, `/api/1.0/mcp`, on the Express host. In an API module's settings, the **MCP Settings** page has the **Agents can call this module as a tool (MCP)** switch. The Build Agent sets up the tool's name, description, inputs, and outputs. Inputs and outputs can come from any field in the module, including fields outside the request and response panels. A module that returns data with `sse['httpResponseBody']` returns its outputs from the root of that body. An agent signs in with an Express API credential and gets a token that lasts 60 minutes. Its Express role must have Default Permission set to **No Access** and Write on the module's **User Permissions**. Calls are rate-limited per credential and recorded in Service Logs and audit logs. ### Unqork Platform The following improvements are available to all customers on version 9.2.0. #### Module Builder **Module Outline.** The Module Outline is visible and usable when Creators view a module in Config View. **Outline controls.** The **Outline** tab has an **Expand all** or **Collapse all** button above **Show Labels**. The button changes only the outline and is unavailable while search displays results. **Config View search.** The search field displays the current match and the total, like **2 of 5**. Press **Enter** or **Shift+Enter**, or select the previous and next arrows, to step through matches. Stepping wraps at either end. The canvas and the Module Outline highlight every match. **Config View toolbar.** The **Sort components** control is removed from Config View. Components always display in module order. Config View keeps its toolbar selections and the open **Components** or **Outline** tab separately for each tab. **Module Details and Outline.** The **Outline** tab header displays the component count. **Module Size** and **Module Size in Express** moved from **Advanced Settings** to **Module Details**. **Viewing mode.** When a module is in Viewing mode, **Rename** and **Delete Module** are unavailable in File Explorer. **Import**, **Paste**, and **Clear Module** are unavailable in the Module Builder toolbar. A tooltip tells Creators to switch the module to Editing. **Saving.** Creators can save a Data Workflow while node settings are open. **Calculator component.** Config View now displays a reference icon on a Calculator component that a data workflow triggers. **Performance.** Module Builder now uses less processing time when Creators work with large modules. **Save button.** **Save** stays unavailable until Creators apply or discard all draft settings changes, including changes to newly dropped components. A tooltip names the components with unapplied changes. Saving before applying could lose configuration. **Property ID field.** Dragging a new component onto the canvas selects the generated value in its **Property ID** field, so typing replaces it. **Module drop-downs.** When a module name is clipped in a settings panel drop-down, hovering displays a tooltip with the full module name and module ID. **Keyboard move.** Moving an existing component with the keyboard now enters empty nested contexts, like panels, columns, and tables. **Saving with translations.** Pressing the save shortcut with unsaved translation or transform changes no longer saves the unchanged module. In the Translations or Transforms view, the shortcut saves those changes. Elsewhere, a message asks Creators to save or discard them in that view first. **Server-side unit tests.** Unit tests in the **Unit Tests (Legacy)** section of a Data Workflow or Calculator component run on the server. Tests run against the component's current configuration, including unsaved changes. Data Workflow test results display **Console** , and each output's **Actual** value has a copy icon. A single run accepts up to 50 Data Workflow tests or 500 Calculator tests. **Unit testing in Viewing mode.** **Refresh** in the **Unit Tests (Legacy)** section of a Decisions, Calculator, or Data Workflow component syncs the test rows to the component's inputs and outputs. Creators no longer switch to Editing mode first. Creators can also edit and run tests in Viewing mode. Those changes are not saved to the module, so Creators switch to Editing mode to keep them. This behavior matches 8.2. **Data Workflow Debug Trace.** With **Debug** on, the Unit Tests panel displays a step-by-step Debug Trace for Data Workflow component unit tests. Each operator's input and output has an expandable JSON view. **Spreadsheet-style table keyboard interactions.** Tables in the Component Settings Editor, like the **Conditionals** table in the Decisions component, and in Data Collections now work like a spreadsheet. The following interactions are available: - **Editing**: Type in a selected cell to edit it. **Enter** saves and moves down a row, and **Shift+Enter** moves up. - **Navigation**: **Tab** moves between cells and on into the next table. **Home**, **End**, and **Ctrl**+arrow keys jump to the edge of a row or table. - **Clearing and cutting**: **Delete** clears the selected cells, and **Ctrl+X** cuts them. - **Pasting**: Pasting from Excel, Google Sheets, or a CSV file keeps quoted commas and line breaks in their cells. - **Blank row**: A blank row at the end of a table is ready for the next entry. It is saved only after Creators enter a value. **Canvas tooltips.** In Config View, hovering a component card displays a tooltip with its Property ID and component type when either is truncated. Cards in Legacy View previews display the same tooltip. **Canvas font.** The workflow canvas and the Data Workflow canvas render text in the Inter font. #### Explorer **Search Values Within Components.** The legacy Designer feature that searches component settings returns as **Config Search**, a tab in Explorer. Creators select an application (and a branch or version for versioned applications), enter at least 4 characters, and select **Search**. Search finds whole-word, case-insensitive matches in component settings and returns up to 1,000 components. Double-clicking an item in Explorer to open it in a new tab now closes the unpinned preview tab instead of leaving it open. Record collections now display an open-tab indicator in Explorer, like applications, modules, and data models. Each record collection also displays a record count badge after Creators expand the group. #### API The API documentation now includes the response format for the Delete Module Attachments (`PUT /modules/:formId/submissions/attachments`) and Delete Workflow Attachments (`PUT /workflows/:workflowId/submissions/attachments`) endpoints. Each response lists the attachment URL, a status of success or failed, and an error message when a deletion fails. The endpoints behave as before. **API Debugger links.** The **Docs** tab includes a **Copy link** button that copies a link to the selected endpoint's documentation. Opening the link displays that endpoint in the API Debugger, and the link survives sign-in. Adding `#/apidocs` to the environment address opens the API Debugger with **All routes** selected. Bookmarks to a specific endpoint on the earlier address open that endpoint. ## Bug Fixes ### ![](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/unqorkai-sparkle.svg?sv=2026-02-06&spr=https&st=2026-11-05T23%3A43%3A18Z&se=2026-11-06T00%3A43%3A18Z&sr=c&sp=r&sig=UhneiVRaL5gDZpevRMzID1zQTGmW9TVuZU8Pb9sN7KY%3D) UnqorkAI > [!WARNING] > The following fixes are available to customers with an active AI capabilities agreement. Contact an Unqork representative to learn about activating AI-powered features. #### Build Agent **Messaging and Connection** - Resolved an issue where sending a message twice in quick succession sent a duplicate message. - Resolved an issue where messages typed after reloading a Build Agent chat could disappear or stop the next run. - Resolved an issue where **Request couldn't be sent** displayed because the Build Agent request had no thread ID. - Resolved an issue where **Request couldn't be sent** displayed for the first message sent before the Build Agent panel connected, and **Retry** failed too. The panel now displays a loading skeleton until it connects. - Resolved an issue where a message sent in the first 3 seconds after selecting **Stop** received no reply. - Resolved an issue where double-clicking **Send** stopped the message and delayed it by about 10 seconds. - Resolved an issue where the Build Agent logged an API key in clear text when an LLM provider rejected it. The Build Agent now masks API keys in its logs and error records. **Plans and Runs** - Resolved an issue where intermittent issues occurred when Creators selected **Build This Plan** or answered a question card. - Resolved an issue where a plan Creators built with **Build This Plan** did not change status or display its execution plan. - Resolved an issue where comments on one plan could be sent with the approval of another plan. - Resolved an issue where the Build Agent ended its turn partway through a plan to report progress. Creators had to tell it to keep going. - Resolved an issue where tests did not finish after a build completed. - Resolved an issue where runs failed when a tool returned results in an unexpected format. - Resolved an issue where the Build Agent did not receive the details of the failure when a module failed to run. It retried without them. - Resolved an issue where Build Agent edits to the open module paused for 10 seconds when the Preview view was closed. - Resolved an issue where a failure of the Build Agent service's own credentials displayed a message to wait and resend. The message now tells Creators to contact an administrator. - Resolved an issue where Creators could not remove the **App Preview** from the Build Agent context. A removed tab stays out of context until Creators switch to another tab or application. - Resolved an issue where the workspace and module tabs closed when the Build Agent built a plan. **Compaction and Attachments** - Resolved an issue where answering a permission request after the Build Agent chat was compacted stopped the run. - Resolved an issue where the Build Agent could no longer read an attached PDF or workbook after the chat was compacted. A compaction that produced no summary text also no longer erases the earlier summary. - Resolved an issue where file attachments failed after Creators began a new task with the **Continue** button. **Output and Rollback** - Resolved an issue where Smart Component updates failed when a category contained an ampersand. - Resolved an issue where rolling back a second time left a Smart Component that the first rollback could not delete. The rollback now deletes it. - Resolved an issue where a Smart Component added through the Build Agent did not render until Creators sent another message. - Resolved an issue where Data Workflow operators displayed stacked and unreadable when manual layout was on and the Build Agent changed them. The canvas now regenerates the layout. - Resolved an issue where the Build Agent recited its Smart Component authoring rules and schema when a Creator asked a simple question. - Resolved an issue where Build Agent chat warning text in light mode did not meet color contrast requirements. - Resolved an issue where the Build Agent built a Smart Component with a CSV download that did not work. It now offers an Excel export instead. - Resolved an issue where the Build Agent omitted the **frozen** setting when it imported a module into a panel. The Build Agent now sets it with the import. - Resolved an issue where rolling back a task did not restore a module that the Build Agent deleted on an Application Versioning branch. Rollback now restores the module and its header, footer, login, or logout setting. **Context Documents** - Resolved an issue where Creators with view-only access to a workspace could edit and delete context documents. A refused save displayed **Could not save this entry — refresh and retry.** These Creators no longer see **Edit** and **Delete**, and a refused change now says they do not have permission. **LLM Credentials** - Resolved an issue where creating an LLM credential opened its edit page. Creators now return to the **LLM Credentials** list, and selecting a **Default** radio button no longer opens the credential. #### Smart Components - Resolved an issue where the Build Agent created private Smart Components that no module owned. - Resolved an issue where **Edit Component** in the Smart Components Hub opened a versioned module on the Creator's branch. It now opens the module's active version. - Resolved an issue where Creators could delete a public Smart Component that an open draft still placed. The **Unable to delete** dialog now lists the application drafts that block the deletion. - Resolved an issue where the Smart Components Hub stayed on a not-found page after Creators deleted a public Smart Component. The Hub tab now closes, and a stale link displays a **Smart Component not available** card with a link back to the Hub. - Resolved an issue where Smart Components with long names could not be duplicated. Long names were also truncated or hidden in the Hub and on the module canvas. Names now truncate or wrap in Smart Component and module dialogs. - Resolved an issue where text and descriptions in the Smart Component viewer did not meet WCAG AA color contrast ratios. - Resolved an issue where the Combobox example scrolled the page when Creators selected it. - Resolved an issue where a Chat Agent Smart Component failed the end user's turn when the model called a nonexistent tool. The model now receives an error result it can recover from. - Resolved an issue where a Chat Agent Smart Component answered with the credential's default model when the credential did not offer the LLM Config's model. The chat now returns an error that names the model and the credential. - Resolved an issue where **In Scope** references did not render correctly in the Component Settings Editor. - Resolved an issue where the Query Smart Component validation message asked Creators to add a form match. The root `$match` stage already set `form` to a variable. The message now says that `form` must be a fixed module ID (`{ "$oid": "<formId>" }`). - Resolved an issue where every Smart Component instance in a module displayed as a conflict in Application Versioning after both branches saved the module. - Resolved an issue where Dynamic Refresh of a module containing Smart Components worked inconsistently. - Resolved an issue where a module that used a Smart Component missing from the environment failed in server-side execution with an unclear compilation error. The error now reads `Smart Component with id: <id> not found`. ### Unqork Platform The following fixes apply to the Unqork platform and are available to all 9.2.0 customers. Version 9.2.0 also includes every fix from the 9.0.1.0 through 9.0.8.0 patch releases. See the [9.0.0 release notes](/unqorkai/docs/9-0-0-platform-release-notes) for the patch list. - **API Access Management**: Resolved an issue where expired credentials had no **Revoke** action. - **API Access Management**: Resolved an issue where the expiration days setting reverted to the default value when Creators regenerated the for an existing credential. **Days to Expiration** now begins at the days the credential has left. - **API Access Management**: Resolved an issue where **Cancel** in the **Generate New Secret** dialog needed two clicks when the **Days to Expiration** field had a validation error. The button now closes the dialog on the first click. - **API Debugger**: Resolved an issue where the **Event Log**, **Data Changes**, **Timeline**, and **Execution Chain** tabs were missing from **Execute via Proxy - POST** results. The tabs now match those displayed for **Execute Module**. - **API Debugger**: Resolved an issue where the role drop-down did not stay anchored to its . - **API**: Resolved an issue where `GET /datamodels/{dataModelId}/records/count` did not return a record count because another route matched first. The endpoint now returns the count for Designer Administrators. - **Application Versioning**: Resolved an issue where a new branch did not display in the merge **Source** and **Target** lists until Creators refreshed the page. A branch removed after merging was also still selectable. - **Application Versioning**: Resolved an issue where **View Source** and **View Target** in a Layout conflict opened an invalid link during a merge. - **Application Versioning**: Resolved an issue where Creators deleted the default branch name before typing their own when they enabled Application Versioning or created a first branch. The **Branch Name** field now selects the default text, so typing replaces it. - **Application Versioning**: Resolved an issue where module dialogs like Module Settings refused to open after Creators switched from a version to a branch. The dialogs also stayed available after a switch from a branch to a version. - **Application Versioning**: Resolved an issue where adding a versioned dependency failed with "Failed to add draft dependency." because **Add Dependency** preselected **Environment default**. The option now displays only where the environment accepts it. - **Application Versioning**: Resolved an issue where merge conflicts and results were wrong because a merge did not compare against the nearest shared commit. Removing a component that another branch edited now removes it. Keeping a component that the target branch deleted returns it to its original parent and position. A module layout conflict resolves as one **Layout** item. - **Application Versioning**: Resolved an issue where **Open** on a version in **Manage Versions** left the dialog open over the destination. The dialog now closes when the checkout navigates. - **Application Versioning**: Resolved an issue where version names did not display in the version pickers and the version tree. They now display beside the version number. **Set as Default** is now an action on each version row in **Manage Versions**, and **Set Default Version** no longer displays in the promote dialog. - **Application Versioning**: Resolved an issue where Creators could not create a branch, publish, or begin a merge from the checkout menu. **Versioned Actions** now lists **Create Branch**, **Publish**, and **Start Merge** for the checked-out branch. - **Applications**: Resolved an issue where the **Header Module**, **Footer Module**, **Login Module**, and **Logout Module** drop-downs in application settings listed modules from other workspaces. Typing to search returned no results. - **Custom Components**: Resolved an issue where a Vega custom component in a Vega panel on a Centauri module displayed **Custom Component Not Available**. The message displayed in the Component Settings Editor. The editor now loads the component list for the panel's runtime. A Centauri custom component inside a Vega panel displays a message that names the panel, because it does not render there. - **Data Collections**: Resolved an issue where Global Search displayed the wrong Creator for **Last Modified** after a data collection was updated. - **Data Collections**: Resolved an issue where the library data collection create dialog was not labeled as a library item. The dialog and its button now read **Create Library Data Collection**. - **Data Collections**: Resolved an issue where creating or reloading a data collection from a CSV file rejected files over 10 MB or 10,000 rows. The platform limit of 1 GB now applies. - **Data Collections**: Resolved an issue where saving a large data collection after adding a column failed. The editor now saves only the rows that Creators changed. - **Data Table component**: Resolved an issue where pasting data from Excel appended `/r` to rows. - **Data Table component**: Resolved an issue where long values in Data Table cells could not be edited inline. Long values now open in a multiline cell editor, and cells in Viewing mode use the same two-line display and column width. - **Data Collections**: Resolved an issue where the schema editor displayed a validation error before Creators edited it. The error now displays after Creators touch the editor. - **Decisions component**: Resolved an issue where duplicate values in the **Inputs** table caused infinite scrolling in the **Conditionals** table. - **Decisions component**: Resolved an issue where the horizontal scrollbar of the **Conditionals** table sat below the visible area, and the header row scrolled out of view. The header row now stays in view, and the scrollbar sits at the bottom of the table's visible area. - **Data Workflow component**: Resolved an issue where a unit test with **Debug** enabled did not print step-level debug output to the browser DevTools Console. - **Data Workflow component**: Resolved an issue where unit tests Creators added were cleared when they edited an operator, like **Create Field**. - **Data Workflow component**: Resolved an issue where the canvas scroll bars flickered when Creators resized the panel. - **Data Workflow component**: Resolved an issue where a Moment value that a Data Workflow passed to a worker thread arrived serialized instead of as a Moment instance. Workflows that used it directly could fail. It now arrives as a Moment instance. - **Data Workflow component**: Resolved an issue where server-side execution requests hung when Data Workflow input data could not be passed to a worker thread. The data now converts, and a failed worker is replaced. - **Date Input component**: Resolved an issue where a Date Input component at the bottom of a module extended the page to display the date picker. - **Dynamic Grid component**: Resolved an issue where a Dynamic Grid seemed to add new rows when Creators updated a column type. The placeholder row is now dimmed, and each cell placeholder matches its column header. - **Dynamic Refresh**: Resolved an issue where a Text Field component in a Uniform Grid threw a JavaScript masking error on the second interaction. The component had an input mask and **Read Only - Legacy** input behavior. - **Environment Administration**: Resolved an issue where **Save Changes** stayed unavailable when **Looping Limit for Component Execution** or **Looping Limit for Workflow Node Execution** exceeded 10,000. - **Integration Gateway**: Resolved an issue where the Workato link to **Create client credentials** opened an invalid page. The link now opens **API Access Management** with the matching tab selected. - **Integration Gateway**: Resolved an issue where the **Learn More** link opened a broken documentation page. - **Mark Up Preview**: Resolved an issue where Mark Up Preview dropped an annotation without a message when a module had a slow or loading image. - **Module Builder**: Resolved an issue where **Save as Snippet** embedded the components of a reference-imported module in the snippet. - **Module Builder**: Resolved an issue where a component or Data Workflow operator in more than one tray group, like **Frequently Used**, could be dragged from only one. - **Module Builder**: Resolved an issue where the **Duplicate ID** error on an imported panel remained after Creators fixed the collision. - **Module Builder**: Resolved an issue where the **Tests** and **History** pages displayed new tests and revisions only after Creators reloaded the page. - **Module Builder**: Resolved an issue where **Input Behavior** did not display the disabled value when a pasted module definition set it. - **Module Builder**: Resolved an issue where saving a module that reference-imports a header or footer module failed with a duplicate error. - **Module Builder**: Resolved an issue where importing an API module bundle (.uqbundle), or pasting or copying an API module, produced a blank API template. The module now keeps its imported components. - **Module Builder**: Resolved an issue where a module switched from API to Other in the Designer still displayed as an API module. The module now displays as an Other module, and its play button behaves as it does for a module created as Other. - **Module History**: Resolved an issue where filtering the history prevented restoring from the first matching revision. - **Module History**: Resolved an issue where revisions of a module that imports other modules failed to open, compare, or preview. - **Module History**: Resolved an issue where Module History did not select the current revision when Creators opened another module. - **Multi-Select Dropdown component**: Resolved an issue where screen readers did not read the component label. - **Number component**: Resolved an issue where pressing **Enter** in the component disabled buttons on the page. - **Platform**: Resolved an issue where **Unknown error** displayed on the Designer sign-in page after a successful sign-in. - **Rich Text Editor component**: Resolved an issue where a Rich Text Editor in a modal Panel took 3 to 5 seconds to become usable on first open. This occurred when a data workflow populated the editor. - **Transforms**: Resolved an issue where switching module tabs or selecting another module in Explorer discarded an in-progress transform without warning. Leaving an edited transform now raises the **Unsaved Changes** prompt with **Save & Continue**, **Discard Changes**, and **Cancel**. The **Update** button now enables only after the transform type or template changes. - **Transforms**: Resolved an issue where a transform created in a versioned module could not be updated or deleted. - **Transforms**: Resolved an issue where long transform names and details were truncated or overflowed the list. They now wrap. - **Send Feedback**: Resolved an issue where the form displayed **An unexpected error occurred** and did not submit when an attachment was larger than 25 MB. The form now accepts attachments up to 100 MB. - **Workflow**: Resolved an issue where node connections displayed as disconnected when Creators returned to a workflow after switching workflows in Explorer. - **Workflow**: Resolved an issue where pasted workflow nodes moved to new positions after saving. Pasted nodes keep the same positions after undo, redo, restoring an earlier version, and reloading. - **Workflow**: Resolved an issue where Task nodes in the Automated swimlane did not offer valid **Task Type** values. The drop-down now lists **Script** and **Service** for Automated swimlane tasks, and other swimlanes keep **User**. - **Workflow**: Resolved an issue where the Pause node displayed in the Designer tray. Workflows that already use a Pause node are unchanged. - **Workspaces**: Resolved an issue where opening a link to a missing workspace resource replaced the workspace with a full-page 404 error. The panels and tabs now stay in place, and record collection tabs keep their view when Creators switch workspaces. ## Security This release includes scheduled security patches. No action is required. --- **Changelog** | Date | Change | | --- | --- | | 2026-11-05 | Initial publication. | The Staging environment is the first level of application building in Unqork. Use it to build, test, and style your applications. Use the UAT (user acceptance testing) environment to realistically test and navigate your applications as end-users would use them. The Production environment is the final stage of the development process. Use this environment to promote tested and functioning application so your end-user can interact with it. Large Language Models (LLM) are artificial intelligence (AI) programs that use deep learning algorithms to analyze and generate text and other content based on large amounts of data. A definition Also known as Unqork Users, or Designer Users; is anyone who is inside the Unqork platform. The Unqork front-end application framework that delivers Creator-built applications to end-users. Express is the layer end-users interact with—the published forms, screens, and navigation built in the Module Builder. Express is distinct from Express View, which is a Creator-facing preview tool in the IDE. End-users, also known as Express Users, are the individuals accessing an application through Express View. In most cases, end-users are the customers using the product. Also known as Unqork Users, or Designer Users; is anyone who is inside the Unqork platform. APIs (application programming interfaces) are a set of protocols and definitions developers use to build and integrate application software. APIs act as the connective tissue between products and services. An API endpoint is the location where an API receives requests for a specific resource on its server. It's the point of contact between an API client and an API server, and is usually a uniform resource locator (URL) that provides the location of the resource. End-users, also known as Express Users, are the individuals accessing an application through Express View. In most cases, end-users are the customers using the product. JSON (JavaScript Object Notation) is an open standard file and data interchange format. Unqork uses JSON for submission (record) data. In Unqork an application is a program used to perform specific tasks. An application can be one of two types: workflow or module. A Data Collection is any static data referenced by your application. OIDC (OpenID Connect) is an identity authentication protocol that lets two applications share user information without exposing user credentials. Identity provider (IdP) provide a service that creates, manages, and verifies users' digital identities, allowing them to securely authenticate and access different applications or services. A key-value pair is a fundamental data structure where a unique "key" is associated with a specific "value," used for organizing and retrieving data efficiently, like in dictionaries or databases. OAuth, or Open Authorization, is an authorization protocol that lets users grant third-party access to their information without sharing their passwords. OAuth is an industry standard that's used by many companies, including Google, Amazon, and Microsoft. The Number data type accepts integer or floating point values. The number data type does not use quotes around numerical values. Rendering is the process of loading components and displaying the final result on the front-end screen. PDF (Portable Document Format) is a file format that allows users to share and print documents without modifying them. Extensible Markup Language (XML) is markup language that lets you define and store data in a shareable way. The UI (user interface) is a device's end-user interaction and communication point. It can include display screens, keyboards, and mouse. It is also how a user interacts with your application. An app versioning Merge combines changes from one branch or draft, into another branch, draft, or published version of an application. Enter inputs components and actions you want the component to perform.. A Property ID is the unique field ID used by Unqork to track and link components in your module. A key-value pair is a fundamental data structure where a unique "key" is associated with a specific "value," used for organizing and retrieving data efficiently, like in dictionaries or databases. Rendering is the process of loading components and displaying the final result on the front-end screen. A functionality of a software. For example, Copy and Paste is a feature of a computer's operating system. An API endpoint is the location where an API receives requests for a specific resource on its server. It's the point of contact between an API client and an API server, and is usually a uniform resource locator (URL) that provides the location of the resource. A URL (uniform resource locator) is a unique identifier used to locate a resource on the internet. Also known as a web address. Schema is a declarative language that defines the structure, content, and constraints of the data. Scope is a tool that limits an application's access to a user's account. An application can request one or more scopes, this information is then presented to the user in the consent screen, and the access token issued to the application will be limited to the scopes granted. Includes the Short Answer component, Long Answer component, Select Boxes, Radio component, Dropdown, Number component and Single Checkbox. The HTTP POST method is used to send data to a server to create or update a resource, typically including the data in the body of the request. The Vega (v 2.0.0) runtime is the next-generation engine of the UDesigner platform. Vega uses cutting-edge technologies to improve the Creator and end-user experience. The Centauri (v 1.0.0) runtime is the first-generation foundation of the Unqork Designer Platform. Centauri provides Creators a codeless experience for developing applications. Debugging is the process of finding and resolving errors or bugs in an application. To debug an application in Unqork, use UNQENG tools in Express View. The DevTools Console helps you securely store, build, test, and deploy your software. Includes the Short Answer component, Long Answer component, Select Boxes, Radio component, Dropdown, Number component and Single Checkbox. JavaScript is an object-oriented computer programming language. It is most-commonly used for interactive effects in the browser. An input mask is a string expression that constrains an end-user's input. For example, constraining a phone number input to 10 integers. Assistive technology that reads digital text aloud for users with visual impairments or reading disabilities.