trackunit/iris-app-sdk-vite v1.7.0 - reproduce production-only React issues with --productionReact
serve now has a --productionReact option so you can reproduce issues that only show up in a published app, without leaving your local dev loop.
serve now has a --productionReact option so you can reproduce issues that only show up in a published app, without leaving your local dev loop.
Running npx nx g @trackunit/iris-app:extend now scaffolds your extension's unit tests with Vitest instead of Jest, matching the @trackunit/react-vite-test-setup preset already used elsewhere in the SDK's testing guides.
Breaking change: the generator's extendJestPreset option has been removed. If a script or CI step invokes the generator with --extendJestPreset, drop that flag — the generator no longer recognizes it.
@trackunit/custom-field-api (from 2.20.0) replaces owner.marketplaceEntry with owner.irisApp on every custom field definition returned by useCustomFieldDefinitions, useAllCustomFieldDefinitions, and useCustomFieldsValueAndDefinition — with no compatibility field. If your app reads definition.owner?.marketplaceEntry, bumping the dependency is a compile failure, not a deprecation warning. Apps that only use owner.irisAppId, or don't read owner at all, are unaffected.
Drawer callsites that clear their selected value on close (e.g. isOpen={Boolean(selectedRow)}) used to hand-roll a useRef/useState "last non-null value" snapshot just to keep the panel's content visible through the ~400ms exit slide — otherwise it blanked instantly. @trackunit/react-components and @trackunit/react-drawer now ship a shared primitive for this.
@trackunit/react-components (from 3.0.0) removes CopyableText, and @trackunit/react-table-base-components (from 3.0.0) removes CopyableCell, with no compatibility shim — if any of your code imports either, bumping the dependency without running the migration is a compile failure, not a deprecation warning. Repos that never used them are unaffected.
Run these two commands in the consuming repo after bumping the dependencies:
nx g @trackunit/migrations:migrate
nx g @trackunit/migrations:run-migrations
@trackunit/css-class-variance-utilities (from 2.0.0) has upgraded to the upstream cva@1.0.0-beta.8 package. cvaMerge is removed with no compatibility shim — if any of your code calls it, bumping this dependency without running the migration is a compile failure, not a deprecation warning. Repos that never called cvaMerge are unaffected.
Run these two commands in the consuming repo after bumping the dependency:
nx g @trackunit/migrations:migrate
nx g @trackunit/migrations:run-migrations
Your app can now request four new manifest scopes to check an account's connections and partnerships through the public GraphQL API: connection.view, connection.manage, partner.view, and partner.manage.
New Iris App workspaces now scaffold a databricks-unity-catalog skill under .agents/skills/, alongside the existing graphql, create-app, and other skills. It guides Claude, Cursor, and other coding agents through building a SERVERSIDE_API_EXTENSION that reads or writes customer-uploaded or app-owned tables in your IrisX Analytics Unity Catalog workspace — for data that Trackunit's GraphQL API can't serve.
If your Iris App build warned you about outdated @trackunit/* dependencies, it used to tell you to reach for npm-check-updates — a command that never actually applied our migrations, leaving you on a path that didn't work. That warning now points at the right tool.
Your extensions can now describe their own pages to Trackunit Manager's AI assistant. Add an
aiNavigation field to a manifest — a list of in-app routes, each with a path, a title, and a
description — and the assistant can take a user straight to the page inside your app that answers
their question instead of dropping them on its root.
This works today for every extension type that has a page a user can land on: Fleet, Admin, App Settings, Asset Home, Site Home, Customer Home, and Asset Events Actions. The field is opt-in and purely additive — apps that don't declare it behave exactly as before.
See Extension Point Types — AI navigation for the full reference: the manifest shape, both Tanstack Router styles, and in-app paths for entity-scoped extensions.