Version : 90

Released : 2026-09-06

Changes in this Release

Issue

Type

Module(s)

Description

4956

Feature

Actions

Actions can now set a custom property value to a fixed value or to the result of an expression evaluated when the action runs — for example a due date of today() + days(10), the acting user, or another of the object's own properties. A value that comes out empty — whether from an expression or from data collection — clears the property, the same as Clear Property. Action preconditions and standards rule logic also gain int() and float() conversions, and an HTML custom property collected by an action is now entered through a rich-text editor.

5114

Bug

Agents

Tooltips on datapoint widgets in the Test Case editor and on the LLM agent session list no longer raise a background error when the surrounding content refreshes while a tooltip is appearing.

5178

Feature

Agents

AI usage is now limited by cost rather than tokens. Each organization has a monthly AI budget and a daily per-user cost limit, and the AI usage report shows the cost of each day's usage.

4978

Feature

Automated Testing

TrialGrid now automatically rotates stored iMedidata service account passwords on a schedule.

5061

System

Automated Testing

Test case run settings are now stored as individual overrides on top of code-defined defaults, so new settings can be added without a database migration.

5064

System

Automated Testing

Veeva Vault API rate limits are now recognised and waited out.

5097

Bug

Automated Testing

Test Case Run results now keep showing the Running state for the step in flight, and show the final state of a step that was running when a run failed or was cancelled without needing to reload the page. Results arriving for a scenario whose steps have not been displayed yet are no longer lost.

5103

Feature

Automated Testing

Veeva Rules that read an item on a linked form now generate test cases. The generated test enters data on both forms and links them with the "I link form" step, including when the rule reaches the linked form through a Form Link item.

5114

Bug

Automated Testing

Tooltips on datapoint widgets in the Test Case editor and on the LLM agent session list no longer raise a background error when the surrounding content refreshes while a tooltip is appearing.

5123

Feature

Automated Testing

Test steps checking a Folder name now capture a screenshot of the subject's folders when the expected name is not found.

5129

Bug

Automated Testing

Test Case steps which require a text block are now flagged in the editor when the block is missing, and fail with a clear message rather than an internal error if run.

5146

System

Automated Testing

TrialGrid validation tests now stop the tests the first time the credentials for a shared test account are rejected, rather than repeating the same failed login until the account is locked out. This change is internal to TrialGrid validation and does not impact user test case runs.

5151

Bug

Automated Testing

Test Case Run workers now scale down reliably when demand drops, and finish their in-progress Test Case Runs instead of pausing them.

5162

Bug

Automated Testing

Veeva test steps that cannot capture a screenshot now report the missing evidence instead of passing silently, and TrialGrid restarts the browser when screenshots repeatedly fail.

5175

Feature

Automated Testing

iMedidata service accounts are now held per organization.

5177

Bug

Automated Testing

Deleting a Test Run or Test Case now warns when Test Cases are still running and cancels them, and deleting a Draft, Project or URL cancels any running Test Cases.

5183

Feature

Automated Testing

Test steps which check received emails now ignore whitespace, line breaks and case differences when matching the email subject and message text.

5201

Feature

Automated Testing

Data entry is faster: TrialGrid now reads Rave's own save response to see whether the save changed the Subject's Folders or Forms, and only re-reads the Subject when it did.

5202

Feature

Automated Testing

The receive email Test Case steps now accept placeholders such as {subject_name} and {testcase_name} in the expected subject and message.

5200

Bug

Automated Testing

Document Templates and Test Case scripts can now only access the objects and attributes listed in the TrialGrid Object Model Reference.

5204

Bug

Automated Testing

Veeva data entry steps now recover when the browser is lost mid-run: TrialGrid relaunches the browser and resumes instead of ending the run as Cancelled.

5094

Feature

Automated Testing

The Veeva Test Set Run wizard now offers the studies and sites the Vault account can reach rather than asking for them to be typed.

5207

Bug

Automated Testing

Test case runs are no longer started by workers left over from a previous release, so runs no longer fail against updated TrialGrid data.

5220

Bug

Automated Testing

Veeva Rules that use the And() and Or() functions, or that do numeric comparisons on codelist items such as severity or grade scales, now generate Test Cases correctly instead of producing nothing. When an optional additional scenario cannot be generated, the Test Case is still created and records the reason as a comment, and internal errors during Test Case generation are now reported instead of silently producing no scenarios.

5228

Bug

Automated Testing

Deleting a Test Run now completes immediately and reliably, however many Test Cases, results and log entries it recorded. The run disappears from TrialGrid straight away and its data is removed in the background.

5218

Bug

Automated Testing

Veeva rule bindings containing a hyphen in a form label are now parsed correctly. When a rule references a form TrialGrid cannot resolve, the error now names the Rule Bindings that were skipped and the level each name actually sits at, instead of reporting an unrelated missing form. A rule stops only when none of its Rule Bindings can be parsed.

5225

Bug

Automated Testing

Test Case Runs that use the same named subject on the same study and site no longer run at the same time. Subjects visited by a Test Case Run on the new Rave EDC are now recorded individually rather than as a single unidentified entry, which changes what document templates listing them show for runs from this release onwards.

5230

Bug

Automated Testing

Rules that call a function Veeva does not support in rules now report which function is the problem, instead of a low-level parser error.

5231

Bug

Automated Testing

Progress logs in the Test Case Advisor and library Draft import modals now only follow new messages while you are at the bottom of the log, so you can scroll back and read earlier messages while generation is still running.

5219

Bug

Automated Testing

A Vault domain can be registered by more than one organization, each with its own account, and a duplicate registration no longer fails a Test Case Run at start-up

5268

Bug

Automated Testing

Test Cases in a Veeva Draft can now be exported to Excel. The Test Data upload, which reads a Rave Folder/Form/Field file, is no longer offered for Veeva Drafts.

5270

Bug

Automated Testing

Editing a Test Case Template in a Veeva Draft now updates the Test Cases that include it.

5271

Bug

Automated Testing

A test run whose save was refused by Rave with "ChangeCode can not be zero!" now reloads the form and tries once more, which recovers the save when the browser session had lost the Change Codes it started with. Where the Rave role genuinely has no Change Codes configured for the study, the run now says so and names the role, instead of repeating Rave's message.

5252

Feature

Automated Testing

Data entry steps now check the values TrialGrid entered were stored, retrying a save that stored nothing and failing the step where the stored values differ.

5272

Bug

Automated Testing

When a Test Case step enters a value that is not in a Dynamic Search List on a log form, TrialGrid now reports the values the list does contain.

5215

Feature

Collaboration

Empty data columns (Labels, Standards, Test Cases, Custom Properties) in object list views are now selectable in the column picker even when they have no data, and are included in CSV, Excel, PDF, clipboard and print exports when shown.

5216

Feature

Collaboration

Users can now view and bulk assign users from spreadsheet views via an Assignments column.

4956

Feature

Custom Properties

Actions can now set a custom property value to a fixed value or to the result of an expression evaluated when the action runs — for example a due date of today() + days(10), the acting user, or another of the object's own properties. A value that comes out empty — whether from an expression or from data collection — clears the property, the same as Clear Property. Action preconditions and standards rule logic also gain int() and float() conversions, and an HTML custom property collected by an action is now entered through a rich-text editor.

5131

Bug

Custom Properties

Comparing two Veeva Drafts with 'Ignore Custom Properties' now compares the built-in Veeva object types on their standard properties, ignoring only Custom Properties added by users.

5133

System

Custom Properties

Whether a Property is part of a Veeva object's built-in definition or was added by a user is now recorded on the Property itself, so Draft compares which ignore Custom Properties stay correct as the Veeva schema changes.

5164

Bug

Custom Properties

Deleting a custom object now preserves the earlier activity history of both the object and any child objects removed with it, and the deletion is recorded as "[Deleted <object type>] Deleted <identifier>" wherever it is performed. Deleting an object definition likewise preserves the history of every object built from it and from its child definitions.

5174

Feature

Custom Properties

Custom Properties which are part of the built-in definition of an object type can no longer be edited, deleted or copied.

5152

Bug

Custom Properties

Changing a Custom Property's type now recalculates the identifiers of Custom Objects built from that property, so they no longer keep the old values. A Reference Property's target Object Definition can no longer be changed once values are stored against it.

5217

Bug

Custom Properties

Changing the Display Order of a Custom Property that forms part of a Custom Object identifier now rebuilds those identifiers, instead of leaving them to change on their own later.

5001

Feature

Document Templates

Document Template reports can now be run from Draft object listings such as Forms, Fields and Custom Objects. The report receives the objects selected on the page and those matching the active search and filters.

5033

Feature

Document Templates

The Document Template AI tag now supports effort levels, reports truncated output instead of silently clipping it, and new ai_json_list and ai_json_object functions return structured data for the template to lay out.

5200

Bug

Document Templates

Document Templates and Test Case scripts can now only access the objects and attributes listed in the TrialGrid Object Model Reference.

5113

Bug

Help

Inline scripts in dynamically loaded page fragments and in the help search page now carry the correct Content Security Policy nonce.

5061

System

Infrastructure / System

Test case run settings are now stored as individual overrides on top of code-defined defaults, so new settings can be added without a database migration.

5104

System

Infrastructure / System

Recent activity lists and test case validation now respond quickly on drafts, projects, studies and organizations with large change histories.

5151

Bug

Infrastructure / System

Test Case Run workers now scale down reliably when demand drops, and finish their in-progress Test Case Runs instead of pausing them.

5166

Bug

Infrastructure / System

Test outputs belonging to a deleted project or URL are now removed from storage when the project or URL is permanently deleted.

5171

Bug

Infrastructure / System

The task-metrics recorder no longer produces duplicate key errors in the database log when several worker processes record the first task of a new hour.

5207

Bug

Infrastructure / System

Test case runs are no longer started by workers left over from a previous release, so runs no longer fail against updated TrialGrid data.

5104

System

Performance

Recent activity lists and test case validation now respond quickly on drafts, projects, studies and organizations with large change histories.

5107

Bug

Performance

The Linked Objects count and tab on standards library drafts now load quickly, even for libraries used by many studies.

5151

Bug

Performance

Test Case Run workers now scale down reliably when demand drops, and finish their in-progress Test Case Runs instead of pausing them.

5201

Feature

Performance

Data entry is faster: TrialGrid now reads Rave's own save response to see whether the save changed the Subject's Folders or Forms, and only re-reads the Subject when it did.

5209

Bug

Performance

Bulk Compare updates are substantially faster on large selections, so copying many changes between Drafts in one operation no longer times out.

4990

Feature

Permissions

Project Roles are now defined and managed at the organization level and shared across all of an organization's URLs, instead of being defined separately per URL. Role management (add, edit, delete, and a new bulk merge) is available to organization administrators from organization navigation.

5156

Feature

Permissions

Project role descriptions can now be edited.

5113

Bug

Security

Inline scripts in dynamically loaded page fragments and in the help search page now carry the correct Content Security Policy nonce.

5200

Bug

Security

Document Templates and Test Case scripts can now only access the objects and attributes listed in the TrialGrid Object Model Reference.

5107

Bug

Standards

The Linked Objects count and tab on standards library drafts now load quickly, even for libraries used by many studies.

5161

Bug

Standards

Standards compliance recalculation now continues correctly when an object is deleted while the calculation is in progress.

5170

Bug

Standards

Removing a standards deviation explanation, deleting a Draft, a Project or a Role, and revoking an API token no longer mark the earlier activity history of the surviving Project, URL or account as deleted. Existing activity records are repaired.

5193

Bug

Standards

Compare rows for added and deleted child objects are now labelled with the object's own identifier, and attributes that were previously hidden behind that label are shown again.

5170

Bug

Study build

Removing a standards deviation explanation, deleting a Draft, a Project or a Role, and revoking an API token no longer mark the earlier activity history of the surviving Project, URL or account as deleted. Existing activity records are repaired.

5172

Bug

Study build

Deleting a Form, Folder, Matrix or Dictionary no longer destroys the activity history of the objects deleted with it; those records are now kept and marked as deleted

5198

Feature

Study build

A new Import Applicable Library Objects command on the Draft home page finds Matrices, Edit Checks and Derivations in the Draft's Standard Library whose Folders, Forms and Fields already exist in the Draft, and copies the ones you select along with any Custom Functions they use.

5208

Bug

Study build

A bulk Compare update that cannot finish now leaves the target Draft untouched instead of applying only part of the changes, so the operation is safe to retry.

5209

Bug

Study build

Bulk Compare updates are substantially faster on large selections, so copying many changes between Drafts in one operation no longer times out.

5193

Bug

Study build

Compare rows for added and deleted child objects are now labelled with the object's own identifier, and attributes that were previously hidden behind that label are shown again.

5231

Bug

Study build

Progress logs in the Test Case Advisor and library Draft import modals now only follow new messages while you are at the bottom of the log, so you can scroll back and read earlier messages while generation is still running.

5273

Bug

Study build

Organization activity lists now include activity from Veeva Vaults.

5274

Bug

Study build

The menu on a Field in the Form Editor can now be used after Fields have been dragged; previously it opened behind the Fields below it, making Clone and Delete unreachable.

5215

Feature

UX

Empty data columns (Labels, Standards, Test Cases, Custom Properties) in object list views are now selectable in the column picker even when they have no data, and are included in CSV, Excel, PDF, clipboard and print exports when shown.

5231

Bug

UX

Progress logs in the Test Case Advisor and library Draft import modals now only follow new messages while you are at the bottom of the log, so you can scroll back and read earlier messages while generation is still running.

4963

Bug

Validation

Validation-doc issue pages now handle escaped characters properly in titles and content.

5076

System

Validation

The Validation Plan now identifies ALCOA++ as the governing framework for data integrity and maps each attribute to the controls which deliver it. Python package licences are now checked against an approved list, with each exception and the reason for it published in the Python Packages Inventory.

5077

System

Validation

The Annex 11 personnel response and the Validation Plan Roles and Responsibilities section now state how independent review is achieved. Each change to the software is reviewed and approved by someone other than its author, and a release assembles work which has already been reviewed in that way rather than acting as a further review of the content itself.

5089

Feature

Validation

A check in the build pipeline now reports when GitLab.com has been upgraded in order to ensure validation of gitlab for TrialGrid Ltd is maintained.

5195

Feature

Validation

Every TrialGrid behave test scenario must now name the issue it validates, enforced when the build runs, so the validation documentation continues to show a test for every issue. This change is internal to TrialGrid validation and does not impact user test case runs.

5058

Feature

Veeva

Veeva Lab Codelists and Lab Unit Codelists now import into TrialGrid as object types in their own right, so a Lab codelist and a study codelist sharing a name can both be held in the same draft. Items referencing a Lab codelist resolve to it via new Lab Codelist and Lab Unit Codelist properties. Existing drafts are converted automatically; Lab codelists previously skipped because of a name collision need a re-import from the SDS.

5064

System

Veeva

Veeva Vault API rate limits are now recognised and waited out.

5103

Feature

Veeva

Veeva Rules that read an item on a linked form now generate test cases. The generated test enters data on both forms and links them with the "I link form" step, including when the rule reaches the linked form through a Form Link item.

5131

Bug

Veeva

Comparing two Veeva Drafts with 'Ignore Custom Properties' now compares the built-in Veeva object types on their standard properties, ignoring only Custom Properties added by users.

5133

System

Veeva

Whether a Property is part of a Veeva object's built-in definition or was added by a user is now recorded on the Property itself, so Draft compares which ignore Custom Properties stay correct as the Veeva schema changes.

5162

Bug

Veeva

Veeva test steps that cannot capture a screenshot now report the missing evidence instead of passing silently, and TrialGrid restarts the browser when screenshots repeatedly fail.

5204

Bug

Veeva

Veeva data entry steps now recover when the browser is lost mid-run: TrialGrid relaunches the browser and resumes instead of ending the run as Cancelled.

5094

Feature

Veeva

The Veeva Test Set Run wizard now offers the studies and sites the Vault account can reach rather than asking for them to be typed.

5220

Bug

Veeva

Veeva Rules that use the And() and Or() functions, or that do numeric comparisons on codelist items such as severity or grade scales, now generate Test Cases correctly instead of producing nothing. When an optional additional scenario cannot be generated, the Test Case is still created and records the reason as a comment, and internal errors during Test Case generation are now reported instead of silently producing no scenarios.

5218

Bug

Veeva

Veeva rule bindings containing a hyphen in a form label are now parsed correctly. When a rule references a form TrialGrid cannot resolve, the error now names the Rule Bindings that were skipped and the level each name actually sits at, instead of reporting an unrelated missing form. A rule stops only when none of its Rule Bindings can be parsed.

5230

Bug

Veeva

Rules that call a function Veeva does not support in rules now report which function is the problem, instead of a low-level parser error.

5219

Bug

Veeva

A Vault domain can be registered by more than one organization, each with its own account, and a duplicate registration no longer fails a Test Case Run at start-up

5268

Bug

Veeva

Test Cases in a Veeva Draft can now be exported to Excel. The Test Data upload, which reads a Rave Folder/Form/Field file, is no longer offered for Veeva Drafts.

5270

Bug

Veeva

Editing a Test Case Template in a Veeva Draft now updates the Test Cases that include it.

5273

Bug

Veeva

Organization activity lists now include activity from Veeva Vaults.