Release Notes - 2026
Release 2026.4

iOS version
2.105.2
Android version
2.98.2
Jigx Builder
1.45.1
Announcement : Introducing JigxForms
What is JigxForms? AI-powered forms. Built for the field. Ready anytime, anywhere. Create and submit powerful, customizable forms, directly from your phone.
Mobile Apps
New features & improvements
Added the ability to manage notifications in the app using the Mark All as Read icon, and the Trash icon to delete read or all notifications.
A redesigned media picker flow for the mobile app. Updated user experience for selecting and managing media across image, video, and document fields.
Bug Fixes
Improved performance and rendering of image-heavy grids. Fixed navigation stutter and layout pop-in when opening grid screens. Prevented unnecessary image reloads and flashing during re-renders. This fix provides a smoother and more responsive grid browsing experience.
Resolved an issue where video previews could appear as a black screen after recording or selecting a video from the device.
Fixed notifications when tapping a push notification now correctly marks it as read.
Fixed an issue where downstream actions could run before selected or captured files were fully saved. The media picker now waits for file persistence to complete before closing, improving reliability for scenarios such as signature capture and PDF generation.
Files with spaces or special characters in their names now copy and upload correctly.
Signing out now correctly clears downloaded files.
Components and jig types
New features & improvements
jig-header – Added support for displaying a custom logo in the navigation bar and controlling title visibility. This enables more flexible header configurations with different combinations of branding, titles, and actions to match your application’s design and branding requirements.
Builder
New features & improvements
Enhanced
onTableChangedevent handling for the Dynamic Data provider when Row-Level Security (RLS) is enabled. What’s changed :onTableChangedevents are now triggered only for data changes that the current user is permitted to see under RLS rules.Prevented unnecessary
onTableChangedevents from firing when no actual data change has occurred.
Updates to Quick-Start sample solutions
jigx-samples
jig-header component with logo
Release 2026.3

iOS version
2.99.3
Android version
2.92.3
Jigx Builder
1.44.0
Announcement : Introducing JigxForms
What is JigxForms? AI-powered forms. Built for the field. Ready anytime, anywhere. Create and submit powerful, customizable forms, directly from your phone.
Mobile Apps
New features & improvements
Added support for packages - solutions composed inside other solutions. A jig can navigate into a package, execute its actions, with expression-resolved targets, and pass callback actions for the package to invoke back. The package property (target solution name) is available in the action.go-to and execute.action. Package
onLoad,datasources, and@ctx.solution.*state are scoped to the package. The app switcher now hides package, form, and data solutions, showing only real apps.Solution title available in expressions - The
=@ctx.solution.titleexpression is now supported in YAML configurations, allowing you to reference the solution's display title (as defined inindex.jigx) directly within your jigs. This follows the same pattern as other solution metadata properties such as=@ctx.solution.name,=@ctx.solution.id, and=@ctx.solution.organizationId. Use this expression wherever you need to dynamically display or reference the solution title, for example, in screen headers, labels, banners, or conditional logic, without hardcoding the title string into individual components.
Bug Fixes
Persistent file storage for media, signatures, and generated outputs - Media picker selections, captured signatures, and generated PDFs and files are now written to permanent storage locations that survive cache purges, app restarts, and low-memory events. On iOS, media and signatures are saved to
Library/Application Support(excluded from iCloud backup), and generated PDFs and files are saved toDocuments/Generated PDFsandDocuments/Generated Filesrespectively. On Android, outputs are directed to internal storage and the documents directory. A loading indicator is displayed in the media field while the background copy is in progress, keeping the experience responsive. This resolves a number of issues where files appeared to save successfully but were lost after the OS purged temporary or cache directories.Fixed an incorrect item height calculation in list widgets that caused list items to not properly fill the available container space. Items now render at the correct height regardless of screen size or the number of items in the list.
Fixed an issue on the sign-in screen where the on-screen keyboard remained visible when entering the SSO flow from the email field, covering the SSO options modal and making it difficult or impossible to interact with. The keyboard is now dismissed before the SSO options modal opens, ensuring it is fully visible and accessible.
Fixed an issue where
component.gridrendered slowly on Android, with tiles appearing sequentially after the rest of the screen had already loaded. The per-tile entrance animation that triggered off-screen layer processing has been removed on both Android and iOS, so grid tiles now appear in a single frame and render consistently across platforms.Remove orphaned cached files during a full entity sync to prevent unbounded storage growth.
Resolved issues affecting file uploads and downloads when using the Dynamic Data provider on unreliable network connections. File uploads and downloads now correctly transition to a Failed status when a network error occurs, instead of remaining indefinitely in an Uploading or Downloading state. Active file transfers on slow but functioning connections are no longer incorrectly cancelled by connection timeout checks during the transfer process.
Components and jig types
New features & improvements
Web-view component - Add
allowInAppRedirectoption tocomponent.web-view, when enabled, Jigx deeplinks navigate within the app, regular URLs open in an in-app browser, and other schemes delegate to the system.Added the
listHeaderproperty to jig.list, enabling fully configurable custom child components in the list header. This eliminates the need to usejig.defaultwithcomponent.listas a workaround for custom list header content, while maintaining the performance benefits ofjig.list. The existingheader/jig-headerproperty remains reserved for configuring the hero header.
Jigx Management
Bug fixes, performance improvements, and usability improvements.
Updates to Quick-Start sample solutions
jigx-samples
List jig with listHeader
List jig with listHeader & jig-header
Changed CSV data files to JSON files to upload to Management
Release 2026.2

iOS version
2.90.4
Android version
2.83.4
Jigx Builder
1.43.4
Announcement : Introducing JigxForms
What is JigxForms? AI-powered forms. Built for the field. Ready anytime, anywhere. Create and submit powerful, customizable forms, directly from your phone.
Mobile Apps
Bug Fixes
Fixed progressive performance degradation on Android.
Resolved an issue where newly created users in existing or new organizations could see the “No Solution” screen in the mobile app, despite solutions being assigned correctly. This was caused by an update to the backend identity provider which introduced non-standard user IDs (GUIDs) for newly created users. This caused validation checks used during solution assignment to fail
Actions
New features & improvements
Add
pageproperty to action.generate-pdf to control papersize(letter, legal, tabloid, a4, a3),orientation(portrait, landscape), custom dimensions (width/height in PDF points), andmargins(uniform number or per-side object). Fix iOS PDF generation to paginate multi-page content correctly instead of producing a single oversized page.A new
onAppActivatedevent is available on solution and jig level, allowing you to define actions that automatically execute when the app returns to the foreground from the background or inactive state. This is useful for refreshing data or triggering syncs when a user returns to the app mid-session. Note thatonAppActivateddoes not fire on initial app launch, only on subsequent foreground transitions.
Builder
New features & improvements
REST functions have been enhancement to allow the
UseLocal:trueproperty to be used with secrets.Index.jigx - You can now use the
bundleIdproperty in thedependenciessection of the index.jigx file to restrict a solution to specific mobile app bundle IDs. This enhancement allows greater control over which branded or distributed mobile apps can load a solution. This enhancement is useful for managing solution availability across multiple branded mobile apps or deployment environments.
Jigx Management
Bug fixes, performance improvements, and usability improvements.
Release 2026.1

iOS version
2.80.0
Android version
2.73.0
Jigx Builder
1.42.0
Announcement : Introducing JigxForms
What is JigxForms? AI-powered forms. Built for the field. Ready anytime, anywhere. Create and submit powerful, customizable forms, directly from your phone.
Mobile Apps
New features & improvements
All input components that support the
isRequiredproperty have been enhanced to provide a clearer visual indicator for mandatory fields. WhenisRequiredis set totrue, the field label now displays an asterisk (*) instead of the previous (optional) text. This change brings the visual design in line with common UI standards and improves form clarity for users completing required information.
Bug Fixes
Resolved an issue where resetting a list’s
amount.stateon a default jig did not work as expected. The state now resets correctly, ensuring consistent behavior when clearing or reinitializing list data.Fixed a backward compatibility issue with the
numberOfLinesproperty that caused display problems in swipeable lists. The UI now renders correctly, ensuring text truncation and layout behave as expected across both new and existing configurations.Fixed an issue where the
signature-fielddid not respect the disabled configuration. Even when configured withisDisabled: true, the field remained interactive.Fixed an issue that caused signatures saved to dynamic files to display with a black background. Signatures now render with a white background in the app.
Improved geolocation loading performance on Android 16, resolving an issue that caused slow load times.
Improved continue logging alert wording and appearance.
Fixed an issue where setting
isDisabled: trueon amedia-fieldblocked all interaction, preventing users from viewing existing media. Tapping a disabled media field now opens the detail modal so existing media can be viewed. Add and delete actions remain blocked as expected.
Components and jig types
New features & improvements
Banner - The
component.bannerintroduces a consistent and flexible way to display prominent, text-based messages directly within your Jigx screens. It standardizes how messages are presented with built-in styling, contextual icons, and optional actions for user interaction. Banners make it easy to communicate system states, important information, or contextual guidance in a visually distinct area of your app. Whether you’re confirming success, warning about an issue, or guiding users through next steps, Banners ensure critical messages stand out without disrupting the user flow. Banners can include actions such as Retry or Dismiss. Common use cases include:Error — “Something went wrong. Please try again.”
Warning — “Changes not saved.”
Success — “Your settings were updated successfully.”
Informational Text — Highlight short messages or announcements that need visual emphasis within a section or card, such as updates, notices, or reminders.
Sections - The
component.sectionhas been enhanced to supportactions,iconsandstylingon the section header, allowing you to add interactive options such as “Show More” directly within the section title area. This enhancement provides a smoother and more intuitive user experience, resulting in faster navigation and improved usability across your screens.Default placeholder Enhancement - When configuring screens that use array-based data (such as lists or dropdown components), the app now displays a default placeholder whenever no data is available. If you prefer not to show a placeholder, you can control this by setting a when condition on the component so it only renders when data exists. When configuring screens that use array-based data (such as lists or dropdown components), the app now displays a default placeholder whenever no data is available. If you prefer not to show a placeholder, you can control this by setting a when condition on the component so it only renders when data exists.
Enhanced lists to support multi-column layouts using the new
numberOfColumnsproperty, ideal for product catalogs, category menus, and compact dashboards. Multi-column layouts apply only to vertical lists and are supported exclusively in component.product-item and component.menu-item.Menu-item - Added a new list child component, the
menu-itemis a lightweight list-item designed for quick selection and navigation. It’s ideal for presenting categories, filters, or simple choices that guide you to the next screen or refine the data being displayed. Use a menu-item when you want users to tap an option to view related content, for example, selecting a project, choosing a day of the week, or filtering items by category.Header - Introduced new
tinyheight option, providing greater flexibility for space-constrained UI layouts. This option complements the existingsmallandmediumheader sizes. You can now display a hero-style header even when no child components are present, simply assign aheightvalue to the header. If noheightis provided, the header defaults to a compact size.Enhanced amount control - The
amount-controlcan now be used as a standalone component which provides a simple and intuitive way to adjust numeric values using plus and minus buttons. It’s ideal for shopping carts, quantity selectors, and any form where values need to increase or decrease in defined steps.The product-item has been enhanced with the following:
Support for two distinct visual types to better fit your design needs.
default: The classic list row style. Best for dense lists where vertical space is at a premium.card: A boxed, card-style presentation with elevation. Best for emphasizing individual items, especially when used with column (numberOfColumns) layouts.
Updated pricing colors: The current
pricenow displays in red and thediscountedamount in black, reversing the previous color hierarchy.The bulk remove option (previously indicated by an 'X' icon) has been removed from the component and is no longer available.
Decimal formatting: You must explicitly handle decimal precision and formatting in data or expressions. Failure to format decimals (e.g., limiting to 2 decimal places) may result in UI alignment issues when multiple decimal points are displayed.
Rating - The Rating component allows users to capture and display ratings within the app. It is commonly used in frontline workflows such as service feedback, inspections, and performance scoring.
Summary component has been enhanced to include a
progressvalue, which is useful for displaying completion or status over time, such as task progress, goals, or performance metrics. The value is shown as a visual progress indicator, making it easy to track how much has been completed at a glance.Slider - Use the
slidercomponent to select a numeric value within a defined range by dragging a thumb control. Typical use cases include price ranges, quantity selection, thresholds, and score inputs.The bottomSheet
initialValueproperty now supports expressions, for example,initialValue: =@ctx.solution.state.defaultSheet.Added support for
component.field-rowwith flex styling, enabling precise control over the proportional width of input components within a row. This allows for more flexible and responsive form layouts.Added
videoQualityPresetproperty tomedia-field,avatar-field, andaction.open-media-picker, enabling control over video compression on iOS - helping reduce file sizes or preserve original quality as needed.Added two new optional properties on
jig.list:initialItemCount- number of items to render on the first frame. Lower = faster initial display; higher = more upfront rendering. Accepts a number or expression.scrollRenderBuffer- multiplier for how many viewports of content to keep rendered off-screen while scrolling. Lower = less memory; higher = smoother fast scrolling. Accepts a number or expression.
The list's default behavior is improved - A FlatList now uses the calculated item-count based on screen/item height instead of a hardcoded 25, and
windowSizedefaults to 5 instead of 2.jig.tabs - The tab navigation bar now automatically hides when only 1 tab is present in a jig.
Bug Fixes
Fixed an issue where the media picker did not enforce the
maximumFileSizerestriction when opening, and file size validation errors were not displayed to the user.Add automatic file upload/download for
media,signature, andavatarfields. Files now persist across form reopens with diff-based upload logic (only new files uploaded, removed files deleted). Per-field datasources enable efficient file comparison. Implements round-trip file persistence: capture → upload → reopen → display.
Actions
New features & improvements
Show-alert action - The new
action.show-alertprovides a flexible way to deliver context-aware notifications without interrupting user flow. Configure alerts with atitle,description,icon, andstyle, and choose whether they appear as atoastormodal. You also have full control over dismiss timing and behavior. This action introduces support forgroupId, allowing related alerts to be grouped and reducing repeated or duplicate messages, especially useful for handling recurring errors. These enhancements offer clearer communication, prevent alert overload, and ensure users receive timely information in a consistent and non-disruptive way. In addition to screen actions,show-alertis also available within functions, allowing you to configure user-friendly alerts for errors coming from the remote systems.Two improvements to state management actions:
New:
action.reset-component-state- Reset component state. Optionally target specific components byinstanceId, or omit to reset all components.Enhanced:
action.reset-solution-state- Thechangesparameter is now optional. Omit it to reset all solution state keys at once.
Added
videoQualityPresetproperty toaction.open-media-picker, enabling control over video compression on iOS - helping reduce file sizes or preserve original quality as needed.action.go-back - Add support for navigating to a specific jig using the go-back action's
tooption.Action-evaluate - An action that evaluates any data structure. The
action.evaluateaction evaluates any value you pass into the optionsvalueproperty. It supports objects, arrays, primitives, and nested combinations of all three. Expressions are evaluated first. AnyTextLocaleorTextWithFormatvalues in the result are then resolved to strings. The final result is stored in outputsvalueand keeps the original shape.Added the onBlur event which is triggered when you leave a form field, for example, when you tap into another field, close a picker, or dismiss the keyboard. It allows you to run actions after the user finishes interacting with a field, rather than on every value change.
OnBluronly applies to certain form fields.Added
=@ctx.actions.<id>.state.isPendingexpression to track whether an async action is currently executing. Returnstruewhile an async action is in progress andfalsewhen idle. Supported for all async actions. Sync-only actions (e.g.go-to,set-state,reset-state) always returnfalse.
Builder
New features & improvements
Enhancement to REST functions now include the
show-alertaction withinerrorsin functions, allowing you to display alerts automatically when errors occur.This enhancement enables you to:
Configure custom alerts that trigger on function errors.
Configure customized OAuth error messages in function errors.
Define actions directly on those alerts (e.g., Retry, Dismiss).
Use
groupIdto group related alerts and control how repeated error notifications are handled.
This integration provides greater flexibility and visibility during error handling, helping users quickly understand and respond to issues within the app.
A unified approach for text style and formatting options has been introduced to simplify how you configure text across components. This enhancement standardizes the way line options (such as
fontSize,isBold,color, andnumberOfLines) are defined in YAML, ensuring a consistent structure and behavior across all components that display text.Instantly visualize color values in Builder - a color decorator has been added to the YAML editor in Jigx Builder, making it easier to visually identify color values directly within your jigx configuration files. Color details also appear in hover pop-ups, providing quick previews and hex values, ensuring accuracy when selecting or adjusting colors.
Automatic change queuing for Dynamic Data tables (
default/tableName) — All local database operations (CRUD, SQL, and find/replace) now track and queue changes using a temporary table workflow. Changes are detected, batched (INSERT/UPDATE/DELETE), and prepared for sync automatically. Includes built-in error handling and guaranteed cleanup, with no changes required to existing implementations.Global datasources now support inputs - A global datasource can be instantiated multiple times within a Jig, each with its own input values. Use
ctx.inputsinside the global datasource configuration to access them, the same way inputs work in custom components.Cross-package data access and action execution
You can now query data from and execute actions in another installed solution directly from your datasource or jig configuration. Add a
packageproperty to any entity definition in adatasource.sqliteconfig to include data from another solution's SQLite database. In your SQL query, reference cross-package tables using[package-name].[entity-name]notation, making it straightforward toJOINorUNION ALLdata across solutions in a single query. To execute an action from another solution, add apackageproperty toaction.execute-actionalongside the action name and any parameters. This release also adds aperformOperationsproperty toguardfunctions, giving you explicit control over whether table write operations run after a guard executes, useful when the default behavior (run on guard failure) does not fit your logic.
Bug fixes:
Fixed an issue where using a shared expression inside a
whencondition did not evaluate correctly. This occurred in cases where the shared expression referencedctx.datasourceand was used within anonFocusevent. The condition now evaluates properly, ensuring consistent behavior whether the expression is used directly in thewhencondition or referenced through a shared expression.
Jigx Management
Bug fixes, performance improvements, and usability improvements.
Known Issues
Referenced actions for
jig.tabsnot executing at runtime - Referenced actions configured within jig.tabs are currently detected in Builder, but fail to run in the app. At runtime, the action returns a “no configuration found for … action” error, indicating that the referenced action is not being resolved correctly.Workaround: None at this time.
Header image not displaying when iOS preview is triggered - When a jig is configured with iOS
preview, the header image does not display in the preview window. This occurs only when preview is invoked, normal navigation into the jig displays the header image as expected.Workaround: None currently available.
Updates to Quick-Start sample solutions
jigx-samples
Banner component
Sections component
Show-alert action
Menu-item component
Product-item component
Amount-control component
Rating component
Summary (progress) component
Last updated
Was this helpful?