> For the complete documentation index, see [llms.txt](https://help.tellius.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.tellius.com/whats-new/release-6.3/patch-6.3.1.md).

# Patch 6.3.1

Tellius 6.3.1 strengthens how data access is governed and adds depth to the surfaces where analysis is built and delivered.&#x20;

* **Security Tags** become the platform-wide mechanism for Row-Level Permissions, defined once and applied wherever a user asks a question, whether that is Kaiya conversation, a Mission, or an App.&#x20;
* Kaiya Apps extend furthest, with live querying behind interactive filters and a new **Analysis** tab that traces how an App was produced.&#x20;
* Vizpads receive a **Selective Export** workflow, gradient conditional formatting, and wide-ranging export consistency work across PDF, PowerPoint, Excel, and CSV.&#x20;
* The release also delivers key pair authentication for Snowflake, duplicate datasource consolidation, and session management under **Settings**.

## 🚀 New Features

### Security Tag based Row-Level Permissions

**Security Tags** are now the mechanism for Row-Level Permissions across Tellius. A Security Tag is defined under **Settings → Workspace → Users & Access**, and applied to columns in Datasets and Business Views.

<figure><img src="https://3138146484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM1pa9Nct9EmVU4Ol8Mol%2Fuploads%2FSJ2NOFeit8HZCpyDXtfY%2Fimage.png?alt=media&amp;token=ef3b9954-45f9-48d1-8bd7-3efba72ec4ae" alt="" width="375"><figcaption></figcaption></figure>

Once applied, the tag is consumed by Kaiya Missions, Apps, and conversations so a single definition governs data access consistently across every surface where a user asks a question or runs an analysis. This replaces the previous Row-Level Permission implementation in Kaiya. Group-level tags support operators including *Contains, In*, and *Not In*, with multiple values per condition.

### Live Querying in Apps

Filters in an App previously operated over data materialized at the time the App was generated. A cell can now be backed by a live query instead.&#x20;

<figure><img src="https://3138146484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM1pa9Nct9EmVU4Ol8Mol%2Fuploads%2FTJoRCrX0LaGaqxGsw18C%2Fimage.png?alt=media&amp;token=e90ab61c-5d00-48a4-aea9-f0e4cb530dbf" alt="" width="563"><figcaption></figcaption></figure>

An App can be entirely precomputed, entirely live, or mixed cell by cell — KPI cards, narrative panels, and any metric derived in Python remain precomputed, while the cells users actively slice can be live. Live cells carry a short round-trip on each filter change, and results are cached against the filter values used, so returning to a view already seen renders without re-querying the source. A fully live App carries a single Live badge, and a mixed App marks each live cell individually.

The scope of live interactivity is deliberately bounded.

* Value filters, such as Region, Brand, or Payer, and time or date-range filters are supported.
* Drill-down, changing the metric, projection, join, or table sit outside this scope, because each of those changes the structure of the query rather than a filter value.
* An existing precomputed App can also be converted, either in whole or by section: cells backed by source SQL that resolve to a single source table become live, cells derived in Python or feeding a Python step stay precomputed, and the conversation reports which cells converted along with the reason the others did not.

### Live Narratives in Apps

Apps can now generate narratives live, at the point the App is viewed, rather than only from precomputed content. An inference capability accepts a system message and a user message and returns a text response using the model configured in Kaiya.&#x20;

In practice, a user opens an App, the underlying analyses run and render, and the narrative summary is then generated against that specific result set and displayed as formatted text. This suits scenarios such as a call preparation summary for a selected healthcare professional, or a summary layered on top of a large batch of transactional records.

### Selective Export for Vizpads

Vizpads now support exporting a chosen subset of charts rather than a whole tab or the whole Vizpad. **Selective Export** is available from the Action (three-dot) menu of a Vizpad in view mode, and opens a side panel where charts are selected.&#x20;

<figure><img src="https://3138146484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM1pa9Nct9EmVU4Ol8Mol%2Fuploads%2FRWyzU4MhR4L7xMnVDbLx%2Fimage.png?alt=media&amp;token=87ede639-ddde-4647-acb8-6748058fa87e" alt="" width="563"><figcaption></figcaption></figure>

Selections are retained until the user completes or cancels the export, and they persist if the panel is closed and reopened. Charts without data are not selectable, and export formats that do not apply to a given chart type (such as CSV or Excel for image and text charts) are not offered. While a **Selective Export** is in progress, other export options and view switching are held so a single export operation completes cleanly.

### Gradient Colouring in Conditional Formatting

In Vizpad tables, conditional formatting now supports gradient colouring in addition to threshold-based rules. A gradient can be applied at the cell level, which colours each cell based on its own value, or at the row level, which colours the entire row based on the value in a selected column.&#x20;

<figure><img src="https://3138146484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM1pa9Nct9EmVU4Ol8Mol%2Fuploads%2FmutRWK2GEkeGoZ96pcd4%2Fimage.png?alt=media&amp;token=b348cc5a-d431-4e8e-a5b8-1ab3865c83a6" alt="" width="563"><figcaption></figcaption></figure>

### Snowflake Key Pair Authentication

A **Modern Snowflake** toggle has been added to the datasource configuration under **Settings → Data → Connector Settings**. When it is enabled, new Snowflake connections are established using key pair authentication rather than a username and password.

<figure><img src="https://3138146484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM1pa9Nct9EmVU4Ol8Mol%2Fuploads%2FW6FWrPUlFKgGEhxubopI%2Fimage.png?alt=media&amp;token=d8883769-26b1-4732-ad07-af4d743d6cee" alt="" width="563"><figcaption></figcaption></figure>

A public and private key pair is created at deployment time; the private key is only ever read on the server side and is never sent to the browser, while the public key is retrieved through an API and displayed so it can be registered in the Snowflake account. Existing Snowflake connections that already use username and password continue to work and continue to display those fields.

### Manage Sessions

A **Manage Sessions** option has been added under **Settings → Session Management**, giving visibility into active sessions. Super Users can view all active user sessions across the platform and end any of them. Regular users can view and end only their own sessions. Sessions are tracked across browsers and devices, so a user signed in from a laptop, tablet, and phone sees each session listed separately and can end an individual one while the others remain active. Changing a user's password clears that user's other sessions.

<figure><img src="https://3138146484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM1pa9Nct9EmVU4Ol8Mol%2Fuploads%2FWI7ushtZH9vWogMKj4Kw%2Fimage.png?alt=media&amp;token=3e5a2bc9-7025-4d58-9e07-6f1614c958b1" alt=""><figcaption></figcaption></figure>

### Custom Calendar from CSV Upload

Under **Settings → Appearance & Preferences → Preferences → Calendar Settings**, a custom calendar can now be created by uploading a CSV of the calendar definition, rather than configuring periods manually. This suits fiscal calendars, retail 4-5-4 calendars, and any other period structure that is already maintained outside the platform. Once uploaded, the calendar is available for date mapping and time-based analysis in the same way as the built-in calendar options.

<figure><img src="https://3138146484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM1pa9Nct9EmVU4Ol8Mol%2Fuploads%2FL3WNse8jKU9IVF7aHNrM%2Fimage.png?alt=media&amp;token=2fb99578-05e4-47a2-9231-50a47e7c1883" alt="" width="228"><figcaption></figcaption></figure>

### Analysis Tab for Kaiya Apps

An **Analysis** tab now sits between **Plan** and **App** in the Kaiya App interface, showing the analysis that produced the App. The tab lists every analysis step with its query type, and each step expands to show the query behind it and what that step returned. Two views are available:

<figure><img src="https://3138146484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM1pa9Nct9EmVU4Ol8Mol%2Fuploads%2FY4KWw6ZbW7UoF9HcNbRM%2Fimage.png?alt=media&amp;token=4efac4ce-3b94-41fa-8864-91cbb29716ee" alt="" width="563"><figcaption></figcaption></figure>

* **Outline** presents the steps in order, numbered, with a count of the total.
* **Diagram** presents the same work as a lineage map, tracing the Business View through each query to the App sections it feeds, with the number of views each section contains and the column count each query returns.

Together this gives a power user a way to see where a result came from — which query fed which section and what each step selected and filtered.

### Multi-Tenant Sample Content Sharing

In multi-tenant deployments, a Super User can now seed a tenant with sample content (data along with Vizpads, Missions, and Apps) and share it with a **Default** group.

<figure><img src="https://3138146484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM1pa9Nct9EmVU4Ol8Mol%2Fuploads%2FzxhGmJKJVD4PMYx733Ir%2Fimage.png?alt=media&amp;token=95c4c26a-1802-4ac2-8ece-df80c4d476a1" alt="" width="375"><figcaption></figcaption></figure>

Newly created users are automatically added to the **Default** group, so they inherit access to that content on signup and land on a populated workspace rather than an empty one. All edits happen on the user's copy, so the original shared content is never modified by a user's changes.

### Help Page: Videos and Custom Content

In the Help page, a **Videos** card has been added, giving direct access to short video guides.

A new section has been added to list custom articles and custom videos, so any articles or videos configured from the **Settings → Appearances & Preferences → Preferences → Help & Support** page are surfaced to end users in their own dedicated areas. A

<figure><img src="https://3138146484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM1pa9Nct9EmVU4Ol8Mol%2Fuploads%2FF8udGfI3qo9zXq86Uwve%2Fimage.png?alt=media&amp;token=1ed574ba-ff24-465f-80df-2b00689b92bb" alt="" width="563"><figcaption></figcaption></figure>

## :chart\_with\_upwards\_trend: Enhancements

### Missions: Draft and Published Versions

Previously, if you edit a published Mission, the entire Mission flips to draft. A Mission now holds a published version and a draft version at the same time, rather than moving between a published state and a draft state. Step edits land in the draft version, while the published version (the last promoted, validated version) continues to serve schedules and general users throughout editing. Publishing is an explicit action that overwrites the published version with the draft, and discarding the draft returns the Mission to its published version alone.

This means a Mission author can revise a Mission at any time while active schedules continue to run the version that was last approved.

### Duplicate Datasource Detection and Consolidation

Datasource management now identifies datasources that share an identical configuration (the same connection options, OAuth configuration, and credential type) and offers to consolidate them into a single canonical datasource.

This removes the maintenance overhead of repeating the same change, such as a credential rotation, across several datasources that point at the same system. When duplicates are consolidated, refresh schedules on the duplicate datasources are removed and prompts the user to set up a new schedule on the retained datasource.

### Consolidated Sharing Management

Sharing management now shows the total number of shares between a given user and a given object, rather than one entry per underlying share.

<figure><img src="https://3138146484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM1pa9Nct9EmVU4Ol8Mol%2Fuploads%2F4MsdUu4jfOAqTYbgAPn5%2Fimage.png?alt=media&amp;token=f8466093-a4cc-478d-bb37-eca6dba360fb" alt="" width="375"><figcaption></figcaption></figure>

Previously, sharing several objects that resolved to the same Business View produced a separate entry for each, and removing a user's access meant repeating the removal for every entry. The interface now presents a single consolidated entry with a count, and removing it prompts for confirmation that all shares in that group will be removed together.

Multi-share is also supported for datasets, so several datasets can be selected and shared in one action. Row-level actions are held while a multi-select is active, and the selection is cleared once the share completes or the user searches or changes tab. Sharing a single dataset behaves as it did before.

### Grounding and Citation Checks for Generated Documents

Across Tellius, a validation pass now runs on generated export artifacts, covering PowerPoint, PDF, and DOCX output. It classifies whether each numerical value in the artifact was derived from a calculation or data source, checks for claims and figures that were not present in the source data passed to the generator, and establishes traceability between statements in the artifact and the data behind them. This aligns generated documents with the citation tagging already applied to Deep Insights output.

### Plan viewer for any App

The plan attached to a Kaiya App can now be opened from the App interface at any time, rather than being visible only while the App is being built in conversation. This lets a power user review the steps and the data references the App depends on.

### Answer Mode in Apps

Kaiya can now answer questions about an App itself, within the same conversation in which the App is built.

In the same conversation you used for building an App, you can ask Kaiya how a result was produced. It returns the App's plan, the steps that ran, and the SQL, Python behind them. Targeted questions are supported as well, such as asking why a given step returned no rows, which makes it possible to identify a column selection, a filter, or a join as the point where a result diverged.

### Templatized SQL for Mission steps

The Mission planner now authors a parameterised SQL template at Mission creation time using the inputs the user supplied. At run time, the current inputs are substituted into that template directly, so a scheduled or repeated Mission run executes without regenerating the SQL step.&#x20;

This reduces the cost and the elapsed time of every Mission run, with the greatest benefit on frequently scheduled Missions. The output shape is preserved, so summary, artifact, and follow-up steps continue to behave as before. Validation has been added for the templatized SQL so a template is checked before it is used in a run.

### Clearer, more actionable messaging in Kaiya

Follow-up responses and in-product messaging in Kaiya has been reworked so that any message requiring the user's attention explains the situation and what to do next. The user's previous message is placed back into the input box so it can be edited and resubmitted directly, and retry is offered as a subtle affordance rather than a prominent action. When a user posts a correction to a previous response in an active conversation, Kaiya now treats it as intent to re-run the analysis with the correction applied.&#x20;

Options that did not lead to a useful outcome have been removed. Specific scenarios have been given tailored guidance, such as Snowflake credentials that need updating along with a pointer to where they are configured, or a source query that is taking a long time to return.

### Column selection in the Business View is enforced for query generation

Columns that participate in join conditions between tables but are not selected in the Business View are now explicitly marked as unavailable for output or filtering. They remain available as join keys, which is what they are needed for, while query generation draws its output and filter columns only from those which are enabled. This matters when similarly named columns exist across several source tables and only one is intended for use.

### Chart granularity is aligned to the underlying data

When a chart is built from a dataframe that is finer-grained than the chart requires, the chart agent now aggregates the data to the chart's granularity before rendering. Rows that share the same dimension values are combined into a single slice or row, and percentage-of-total calculations are computed against the aggregated totals.

### Business View access for Missions when the datasource is not shared

Missions can now be run against a Business View that has been shared with a user, independent of whether the underlying datasource was shared separately. Business View access is validated when the query is prepared, and the datasource metadata required to execute is resolved on the server side. This makes access behavior consistent for every user of a shared Business View.

### Executed SQL in the Missions Summary tab

For Kaiya Missions that run with multiple inputs, the SQL executed at each step is now persisted and shown on the **Summary** tab, matching what was already available for single-input runs. This means the query behind each step can be reviewed directly in the product.

### Table identification for complex SQL

Table identification for App queries now works from the full set of available tables rather than pattern matching against the text of the query. This means complex statements (nested subqueries, or several FROM clauses in one query) resolve their source tables reliably.

### Multi-Business-View Apps

Apps built across more than one Business View now pass the schema for every Business View in scope to the live query planner. Each module of the App therefore authors its templates against the Business View it is actually reading from, including cases where those Business Views sit on different underlying systems.

### **App refresh with table-prefixed column names**

When an App refreshes, it rebuilds its queries and checks the columns they return against the columns stored when the App was built. Some stored column names carry a table prefix, such as `a.patient_id`, while the rebuilt query returns the same column as `patient_id`.

Refresh now treats these as the same column and continues, since the difference is in how the name is written rather than in the data. Refresh also reads the execution plan saved with the App instead of a copy held in memory.

### **Editing the data layer of an App**

An edit to an App now reaches the original dataframes in the plan, not only the data views built on top of them. This means editing a metric changes the data the App works from rather than only the view that displays it. The plan is synced to the new schema as part of the same edit. A user can also specify the intended change to the plan directly.

### **Reusing loaded data when a filter is applied**

When a chart already holds the data a filter needs, the App filters that data in place instead of running a new query.

For example, a chart showing *Total Sales* across three categories can be filtered to one of those categories using values it already has. KPI cards and charts show their values on the first load after a filter is applied, without needing a manual refresh. A filtered view displays its matching rows on that same first load.

### Pivot table export

In Vizpads, pivot table exports to Excel and CSV have been improved across several areas. The **Export next set** action now advances the range correctly, pre-filling the next start row based on what was already exported. The notification text reflects the action being performed, and where a requested row range falls outside the available rows, a clear message is shown in place of an empty file.

### Export coverage across tabs and views

In Vizpads, export behavior has been aligned across formats and scopes. Global and tab-level filters are applied consistently when exporting all tabs or a tab other than the one the export was started from, and Custom View filters are applied to Excel and CSV exports on the first attempt. Table charts are captured in PDF and PowerPoint output without being split across pages, and the export option stays visible for tabs with long names.

### Cache handling on partial refresh

When a refresh job completes partially, the cache is now cleared for each dataset and Business View that refreshed successfully. Vizpads built on those objects therefore reflect the newly loaded data on the next open, independent of the outcome for the other objects in the same job.

### Dataset load when the source has already been loaded

When a dataset is created from a file or table that has already been loaded, the interface now names the existing dataset and offers a direct link to open it. The existence of that dataset is confirmed before it is presented, so the link resolves to a dataset that is available to the user.

<figure><img src="https://3138146484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM1pa9Nct9EmVU4Ol8Mol%2Fuploads%2F5WI7iBsJ9Ky6qeP7kiaM%2Fimage.png?alt=media&amp;token=6bd65255-3617-400c-a278-ab3a6bbe4f9a" alt="" width="375"><figcaption></figcaption></figure>

### Datasource entry points

File-based sources (CSV, XLSX, JSON, and XML) are now listed under **Data → Connect** in a **File Formats** section alongside connector-based sources, and the full set of datasources — connector-based and file-based — is shown when creating a new dataset.

<figure><img src="https://3138146484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM1pa9Nct9EmVU4Ol8Mol%2Fuploads%2F6olYntjY3jfwoPe6uNio%2Fimage.png?alt=media&amp;token=8f8d11dc-f8e5-4f02-84e2-32baf2f292bd" alt="" width="563"><figcaption></figcaption></figure>

### Name population during SAML login

During SAML login, first name and last name are now populated for an existing user when those fields are not already set, using the attributes supplied in the assertion. Values that are already present are left as they are. This applies to logins going forward.

### Diagnostics for authentication flows

Session diagnostics now initialise on the login page, before authentication, when session recording is enabled. This captures the context around sign-in outcomes  (including SSO configuration, rate limiting, and SAML redirects) and identifies which authentication method was in use, so sign-in behavior can be reviewed with the same visibility available after authentication.

### Debug Assistant availability

The **Debug Assistant** is now available to all authenticated users from the Kaiya right-hand panel, rather than to Super Users only. Conversation history is retained across follow-up messages, and the **Debug Assistant** can report which Business View was used for a given query.

<figure><img src="https://3138146484-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM1pa9Nct9EmVU4Ol8Mol%2Fuploads%2F7Fy7eohFOE9QGIUycOkP%2Fimage.png?alt=media&amp;token=5711f46a-7b16-4ed4-91b9-2998ecaab37a" alt="" width="375"><figcaption></figcaption></figure>

### Kaiya Credits visibility

The **My Kaiya Credits** page now includes a usage bar for reviewing consumption at a glance, and the over-limit indicator on the **Limits** and **Alerts** tab reflects the selected user accurately.

## :tools: Minor Fixes

#### Kaiya

1. Resolved an issue where switching between chats from the **Recently Used** section on the home page could leave the previous conversation on screen. Chat switching now navigates as expected.
2. Refined the sidebar so the Kaiya chat history control and the main navigation control use distinct icons and tooltips, with a history icon applied to the chat history sidebar.
3. Improved the ordering of in-progress status messages during PowerPoint export, so **Building PPT content** appears during content generation and **Finalise** appears only once code generation is complete.
4. Refined the progress indicator so it resolves once retry options are presented, rather than continuing alongside them.
5. Resolved an issue in the Publish dialog where the **Generating URL for** text could wrap vertically, and improved the alignment of the dialog.
6. Improved how a chart and its accompanying summary agree on percentage values, with the calculation aligned at the query step so both surfaces report the same figure.
7. Removed the **Download this response as a .DOCX file** option from the interface across standard query, Deep Insight, and Mission responses.
8. Refined the Briefing section so that Apps are filtered out of the listing.
9. Improved the **Skip** control on clarification messages so it advances the conversation, in Kaiya as well as in Apps and Missions.
10. Improved memory creation from the **Describe Memory** dialog, so extracting memories from a supplied description completes as expected.
11. Refined the import datasource dialog in Data Architect for consistent layout and spacing.
12. Improved rendering consistency for live Apps that span multiple tables, so Business View results display on the first load in both conversational analysis and Mission runs.
13. When Auto Business View selection is enabled, the Business View chosen for a query is now shown in the **Deep Insight** thinking steps and in the **Search Inspector** panel.&#x20;
14. While a query is executing and step updates are streaming in, the conversation view holds its position once the user has scrolled up. Auto-scroll resumes when the user manually returns to the bottom of the thread, submits a new message, or when the run completes, so prior context can be re-read while a long analysis is still in progress.
15. Auto Business View selection now applies previously added Learnings and memories when two or more Business Views are candidates for a question, matching the behavior that already applied when the selection resolved to a single Business View.

#### Kaiya - Security Tags and Row-Level Permissions

13. Ensured that a Group Security Tag using the **Contains** operator is applied when the analysis runs in an App or a Mission, matching how it behaves in conversational analysis.
14. Ensured that a Security Tag configured with the **Contains** operator inside Groups is retained when saved, and refined deletion so multiple tags can be removed.
15. Extended the **NOT IN** operator in Group Row-Level Permissions to accept multiple values through an add control.
16. Refined the security tag editor so that unsaved changes are discarded when switching between Groups, and each Group opens with its own configuration.
17. Ensured that a Security Tag deleted from the metadata is also removed at the Business View level, so the filter is withdrawn from Apps built on that Business View. Tags added manually on the Business View are retained, and where no tag is set at the Business View level the tag configured on the dataset is applied.
18. Refined permission handling so the Security Tag associated with the Super User role is presented as read-only to administrators, keeping the interface consistent with the permissions that apply.
19. Ensured that App creation completes for users who have a Security Tag assigned.
20. Ensured that Mission creation completes for users who have Row-Level Permissions applied.

#### Kaiya Apps

21. Resolved an issue where a version of an App could remain listed after the live App was created. Versions can now be removed as expected.
22. Improved the Analysis tab so analysis steps and their SQL are visible without refreshing the page.
23. Improved version handling so edits applied in the App are reflected in a new version, and steps are retained when a KPI is removed from a tab.
24. Refined the App front end so it reflects the version currently marked active, including after a different version is made active or edits are applied from an earlier version.
25. Improved App refresh so it runs asynchronously, keeping the interface responsive while the refresh completes.
26. Improved plan rendering so the generated plan is retained when the page is refreshed before the App reaches its built state, covering draft Apps, published Apps, and plan updates made through chat.
27. Improved the Remix action so the source conversation reference is carried over, and ensured the **Fix with Kaiya** option is presented in the right-hand panel.
28. Resolved an issue where conversation history in an App could be cleared after navigating away and reopening the same conversation.
29. Resolved an issue where responses could appear more than once after an App was created.
30. Improved filter handling on live charts so a filtered chart displays its matching data, including after a Business View change mid-conversation and across previously created versions.
31. Ensured that App library components are loaded and used when the App renders.
32. Resolved an issue where opening a new Kaiya conversation from a duplicated browser tab could carry over the App creation context. New conversations now start in the standard conversational flow.
33. Improved App metric resolution so values reported in an App match the corresponding Vizpad for the same measure.
34. Refined the conversations page so the credit quota is checked once when the chat interface loads, for a faster page load.
35. Missions and Apps now treat a step returning zero rows as a valid result rather than an exception. An empty result is frequently a meaningful business signal (no anomalies detected, no records matching a condition) and it is now passed through to downstream steps, which handle the empty case gracefully.
36. Generated App code is now produced as a set of smaller files rather than a single large one. This allows context to be fetched for just the relevant part of an App, and allows targeted updates to a specific area of an App without regenerating everything around it.
37. Skills are now supported inside Apps. This makes App behavior easier to shape deliberately, and lets reusable capability be attached to an App.
38. Apps now use the Business View description as the model's context for the data.&#x20;
39. App live queries now resolve table names dynamically, so queries continue to resolve correctly against Business Views whose underlying table names change when the Business View is published or refreshed.
40. An App keeps a limited number of saved versions, which is 10 by default. This limit now applies to modular Apps, which previously kept every version they generated. Once an App passes the limit, its oldest versions are removed.
41. App plans built over high-volume tables now aggregate at the query level rather than reading raw rows for downstream processing. This allows Apps built on tables with millions of rows to render complete results across all tabs.

#### Kaiya Missions

35. Improved the Mission creation page so that a long message entered in the chat interface renders within a scrollable area and the page layout is preserved.
36. Ensured the Mission run control remains visible when moving between the chat interface and the configuration page, and refined the publish flow so the user is returned to the listing page with the published state clearly indicated.
37. Ensured that Mission output is rendered in the Mission that produced it, when a Mission and an App are open in separate browser tabs.
38. Extended Mission PDF export so its visual layout and content align closely with the equivalent App output, allowing report distribution to run entirely from a scheduled Mission.
39. Improved Mission reliability for multi-dataset classification workflows, covering live runs, draft runs on a single category, and Apps generated from the Mission.

#### Vizpads

40. Refined the Export dialog so its content scrolls correctly within the available space.
41. Ensured the selected export format is retained when switching tabs during a Selective Export, and improved handling when an export is started from a tab where no chart has been selected.
42. Ensured that chart selections made for export are retained when navigating between tabs and returning.
43. Improved chart type switching from a bar chart to a Pivot Table so the column header width initialises to the same default applied to a newly created Pivot Table, with pagination applied as expected.
44. Refined Min/Max conditional formatting so the condition is offered on table charts, where it applies, and is not presented on chart types where it does not.
45. Improved Min/Max calculation for column-level calculated columns in conditional formatting, so the reported minimum and maximum reflect the calculated values.
46. Ensured the Min/Max highlight is applied when **Apply Formatting To** points at a different column from the one the condition is evaluated on.
47. Refined the Gradient Formatting configuration so the rule label reflects gradient behavior, and the colour preview updates to match the selected palette for each rule.
48. Improved the tooltip text for gradient scope, describing cell-level and row-level behavior at the point of selection.
49. Ensured that decimal formatting is applied to values displayed as percentages, including in 100% stacked area charts.
50. Improved measure naming in market share tooltips when the same measure is added more than once with the same change aggregation across different buckets, such as Measures and Color By.
51. Improved custom view handling so that filters and switch metrics are retained when a new tab is created from an existing custom view and the view is overwritten.
52. Ensured that a global filter applied only in a Custom View stays scoped to that view when switching between Master View and Custom View.
53. Improved section ordering in View Mode so sections keep their arrangement when tabs are switched, including when a pinned filter has been expanded.
54. Resolved an issue where collapsing a pinned filter in View Mode after a tab switch could leave additional white space in the section.
55. Refined the slider and date filter layout so the selected value remains visible alongside the Apply and Cancel controls.
56. Improved section sizing so a resized section retains its height across tab switches on a newly created tab, including across consecutive switches and before the Vizpad is saved.
57. Ensured that charts within a section remain rendered when entering Edit Mode and when saving the Vizpad.
58. Improved the section selection behavior so the first chart in the section is selected, and refined handling of section placement references so selection resolves consistently.
59. Improved chart positioning within sections so a chart moved to the top is placed at the top.
60. Improved layout persistence so chart arrangement is retained across save and reload on both the section canvas and the main canvas, including when **Show Chart Summary** is enabled and space is available to expand in place.
61. Improved the clone action for sections so the page scrolls to the newly created section, and refined placement so cloned charts stay grouped within their section.
62. Improved responsiveness during clone and delete operations so charts continue to load while the operation completes.
63. Ensured the **Show All BV** checkbox is presented in the section configuration.
64. Refined the Chart Configuration panel so it opens in Edit Mode only. After saving, the side panel returns to Filters or Formatting rather than Configuration, and configuration changes saved to a Custom View persist across reloads.
65. Improved chart type switching so moving from a Sankey chart to another chart type completes cleanly, including where date filters are applied.
66. Improved column header behavior in tables so headers remain aligned with their values while scrolling.
67. Improved Pivot Table sorting so a sort applied on a measure is carried through to child levels of a dimension hierarchy, covering both row and column subgroups.
68. Refined drag-and-drop reordering in the Multi-Sort dialog so rows shift in real time as a criterion is dragged, making the resulting sort order easier to follow.
69. Improved double-click behavior on YOY and Rich KPI charts, so the primary date column is placed in the Date Dimension bucket and Count of Records is placed in the Measure bucket.
70. Extended the filter pill for aggregated columns to display the column name, the aggregation type, and the applied condition together.
71. Improved dynamic parameter management so deleting a parameter after searching removes the parameter that was selected.
72. Extended date mapping to support custom date range selection for the default date, and refined how a pinned default date filter is presented in the side panel.
73. Improved Excel and CSV export for Vizpads containing only KPI charts, so exported files carry the expected values.
74. Improved Excel export for an individual KPI visualization.
75. Improved chart-level PDF and PowerPoint download so an individual chart exports as expected.
76. Ensured tab-level filters are included in PowerPoint downloads, and applied truncation to chart names so longer titles display cleanly.
77. Improved filter truncation in PowerPoint export so each filter is truncated independently against its own character limit, keeping all applied filters visible.
78. Ensured that a bar chart's stack-by column is represented as a stack rather than a colour grouping in PDF and PowerPoint export, including when several charts are present in the Vizpad.
79. Improved Excel and CSV export for Pivot Tables containing very large row counts, so exports complete for high-volume tables.
80. Improved insight creation from Search so applied filters are carried into the new insight automatically.
81. Ensured that a report attachment is included in the email notification following a Vizpad refresh.
82. When a filter is unpinned it now moves to the bottom of the filter list, and the most recently unpinned filter becomes the bottom-most entry. This gives a predictable order that reflects the sequence of the user's actions.
83. Section-level filter details are now included in exported PDF, PowerPoint, CSV, and Excel files, including when an individual visualization inside a section is exported on its own.

#### Data - Connect, Prepare, and Datasets

82. Improved table loading from Databricks connections where a Delta Lake source table contains a boolean column.
83. Improved refresh handling for Salesforce tables so larger table refreshes complete.
84. Improved insight creation on Business Views built from live Snowflake datasets, including cases where a reserved word is used as a column alias.
85. Refined the JDBC connector flow with advanced connection settings enabled, covering calendar selection and mapping to an existing table for both newly created and existing connections.
86. Ensured that the guidance message about refresh schedules on consolidated datasources is shown consistently.
87. Under **Settings**, improved the custom calendar configuration so a calendar marked as the default is retained across sessions.
88. Kaiya Architect now distinguishes between building a Business View from scratch and editing an existing one. The datasource selection step applies when starting a new Business View, and is not requested when an existing Business View is named for editing.
89. Downloads of Business Views and Dataframes now switch to an asynchronous flow when the operation runs beyond a short threshold, so a slow connection or a large result set does not hold the browser. If the download does not complete, the user is told so explicitly.

#### Embedding

88. Extended embedded URL handling so links generated before the current user identification format continue to resolve for the remainder of their validity period.

#### Administration and Authentication

89. Refined password validation during user creation and editing so policy requirements are surfaced in the interface before the record is submitted.
90. Updated the login screen to request a **Username**, and removed the reference to a workspace handle.
91. Ensured that a new user created through SAML login is associated with the default user group.
92. Ensured that sessions established through SSO and other non-standard login paths are captured under Manage Sessions, with the associated user details recorded on the session.
93. Ensured that session diagnostics are retained when a SAML login does not complete, so the sequence leading up to it is available for review.

#### Notifications

94. Improved the retry action for on-demand jobs so it re-runs the job, and where a dependent object has since been removed a clear message is shown in its place.
95. Improved navigation from a notification to its associated object, so the linked object opens directly, with a clear message shown where that object has since been removed.

#### Interface

96. Refined spacing between accordion panels when all panels are collapsed.
97. Universal search now prepares itself in the background while the application starts.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.tellius.com/whats-new/release-6.3/patch-6.3.1.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
