Version : 91
Released : 2026-10-04
Changes in this Release
Issue |
Type |
Module(s) |
Description |
|---|---|---|---|
5388 |
Bug |
The project roles by user API responds quickly for organizations with many users. |
|
5334 |
Feature |
An Action can now set a User Custom Property to the person running it, by using the expression user. |
|
5381 |
Bug |
An Action precondition that can result in something other than True or False is now rejected when the Action is saved, instead of saving without error and being skipped every time it runs. For Agent actions, the agent configuration page and the Action editor also check the precondition against the variables of each hook the action is selected for. |
|
5289 |
Feature |
Object Definitions have an Agent Instructions tab showing what the AI agents are told about that object type — the type's own instruction, and for each of its properties whether the value is sent and what guidance goes with it. Editing needs the Manage Agent Configuration permission; anyone who can see the URL can read it. |
|
5290 |
Bug |
AI agents no longer send every populated custom property to the model. Each Custom Property now carries a "Send to agents?" setting which is off until you turn it on, so a value reaches the model only once someone has decided it belongs in the specification. Values recording who tested or reviewed an object are no longer sent. Existing object types need their specification properties marked as sent on the Object Definition's Agent Instructions tab before an agent will build from them. |
|
5324 |
Feature |
Custom Properties can carry their own agent instruction, sent alongside the property's value so the model is told what an individual property means rather than relying on one instruction for the whole object type. |
|
5290 |
Bug |
The URL settings export now includes each Custom Property's Send to Agents setting and Agent Instruction, and the object type's own Agent Instruction, so an export shows which property values are sent to an AI agent. |
|
5380 |
Bug |
The Bulk Edit Check Creator's created_high_confidence hook now exports "created" and "updated" as True/False rather than 1/0, so an action precondition such as agent("created") or agent("updated") runs the action instead of being rejected as not returning True or False. |
|
5381 |
Bug |
An Action precondition that can result in something other than True or False is now rejected when the Action is saved, instead of saving without error and being skipped every time it runs. For Agent actions, the agent configuration page and the Action editor also check the precondition against the variables of each hook the action is selected for. |
|
5382 |
Feature |
Every Bulk Edit Check Creator action hook now exports an "outcome" variable naming the hook that fired, so one action can be selected under several hooks, for example with the precondition agent("outcome") in ["custom_function_required", "build_failed"]. |
|
5383 |
Bug |
When an agent hook action cannot run because its precondition is invalid, the agent's results now show it in a warning with the reason, instead of counting it among skipped actions in a collapsed detail list. |
|
5093 |
Bug |
The Test Case Run log now displays log messages as text, so a study name containing HTML cannot affect the page. |
|
5212 |
Feature |
When an expected email is not received, TrialGrid now lists the emails the organization received during the Scenario with their date, time and subject, and highlights the differences between the expected text and the closest email. |
|
2333 |
Feature |
Objects can now be deleted from the object editor, using the Delete option in the dropdown beside Save, with confirmation before deletion. |
|
5265 |
Feature |
Deleted Test Cases now appear on a Deleted page in the Test Case list, showing when each was deleted and by whom. Select any number and restore them in the background. A restored Test Case does not get back its labels, comments, ticket links or Test Run history. |
|
5296 |
Bug |
Saving a Test Case now always leaves the page working, whether the save succeeds or fails, so it keeps showing other users' changes and can be saved again. |
|
5348 |
System |
The Rave EDC and Rave Classic wait times for automated test runs are now runtime settings, so they can be tuned in the admin and take effect from the next test case run. |
|
5351 |
Bug |
The Test Data Advisor now enters one value per DataPoint when a Field is made visible by an Edit Check, choosing a value that makes the Field visible and entering it in the same log record as that Field. |
|
5354 |
Bug |
The Test Case Advisor now chooses Folders consistently. With AI, wild-carded Forms use the same Folder as without AI and Forms with a specified Folder keep it, and Edit Checks that also have IsPresent actions are tested through their Custom Function or Dynamic Search List action. A check action with no Folder now follows all the Folder rules, and uses the Folder the Edit Check specifies for its Form rather than the wild-carded Folder. The alternate Folder for the Primary Form is no longer 'SUBJECT'. |
|
5261 |
Feature |
On Veeva vaults at release 26R2 or later, test runs open forms directly with Veeva EDC's stable form links, and each form screenshot in the results links to that form in Veeva EDC. |
|
5357 |
Bug |
The maximum number of concurrent Test Case Runs set for a Rave URL or Veeva Vault now applies to your Organization's own runs, and the progress message shown when your Organization is at its limit now shows the right count. |
|
5362 |
Feature |
The Veeva Vaults list shows which Veeva release each vault is on, read automatically from the vault when it is registered and when test cases run. |
|
5365 |
Bug |
The Veeva Test Case Advisor now generates test cases for Comparison Rules whose identifiers are written as paths. Test cases for a Comparison Rule whose Operator is 'must be equal to' now expect the query when the two dates differ and no query when they are equal, as Vault fires it; previously they expected the reverse. |
|
5378 |
Bug |
Test Case Runs against a Rave EDC URL using the old user interface no longer fail at login with an unexpected error when user access was recorded while the URL used the new user interface. Access is checked again, and a user with no recorded access now stops the run with a message naming the study, site and role. |
|
5379 |
Feature |
When registering a Medidata Rave URL, users now choose whether it is Rave Classic (direct or via iMedidata) or Rave EDC (old or new user interface), instead of TrialGrid inferring it from the Rave version. Registering a URL again resets its user access, so access is checked again before the next run, and any Test Case Runs in progress on it are cancelled after confirmation. A URL already using the new Rave EDC user interface keeps its access and runs when registered as the new user interface again. |
|
5384 |
Bug |
Ticking Cancel previous runs in the Test Run wizard now cancels the earlier runs of the same Test Cases that are still running or waiting to run; unticking it on the final step keeps them. |
|
5387 |
Bug |
Starting or cancelling a Test Run with many Test Cases is faster. |
|
5240 |
Feature |
The URL settings export now includes a tab for Object Definition layouts, showing the layout definition and the roles it is assigned to. |
|
5267 |
Feature |
Custom Properties can now be of type User. Setting a value shows a picker of names and email addresses, and the chosen person is shown with their avatar in listings. |
|
5277 |
Bug |
Exporting custom properties to another URL now correctly clears the target URL's property definition cache, so exported properties appear immediately. |
|
5289 |
Feature |
Object Definitions have an Agent Instructions tab showing what the AI agents are told about that object type — the type's own instruction, and for each of its properties whether the value is sent and what guidance goes with it. Editing needs the Manage Agent Configuration permission; anyone who can see the URL can read it. |
|
5324 |
Feature |
Custom Properties can carry their own agent instruction, sent alongside the property's value so the model is told what an individual property means rather than relying on one instruction for the whole object type. |
|
5333 |
System |
TrialGrid now remembers whether a URL uses User Custom Properties instead of checking on every page load, and refreshes that record when URL settings are copied. This change is internal and does not alter what you see. |
|
5359 |
Bug |
Custom object saves are now rejected when any property value is invalid, and errors are shown for every row in the save. Custom objects with no property values, and Folders whose current values would not pass validation, can now be deleted from a property sheet. |
|
5255 |
Bug |
The help note for Diagnostic 0003 Field OID Length Limit now correctly states that the length threshold is inclusive. |
|
5257 |
Bug |
The Display Name of a Document Template setting can now be changed after the setting has been created. Setting names within a template must now differ by more than capitalisation, and a name that differs only in case is refused with an error rather than being silently ignored. |
|
5239 |
Bug |
The PDF worker is now reliably stopped after its configured period of inactivity, instead of occasionally restarting its inactivity countdown and staying up for another cycle. |
|
5254 |
Bug |
Diagnostic information is now recorded when the platform refuses a request to start a test case run worker, and a scale up that could not create a worker is reported as a failure rather than passing unnoticed. |
|
5276 |
Bug |
Cleanup of test run screenshots and reports now removes every stored file for large runs, and no longer records files as deleted when the deletion did not succeed. |
|
5328 |
Feature |
A test case run worker being retired is now returned to service when demand recovers, instead of sitting idle while TrialGrid starts a replacement. |
|
5251 |
System |
Routine status messages and duplicated lines are no longer written to the production logs, cutting log volume by around 40% while keeping the record of what each test case run did. |
|
5275 |
Bug |
When no labels are enabled for an object type, the Add/Remove labels menu item in object lists is now shown greyed out with an explanation instead of appearing to do nothing. |
|
5328 |
Feature |
A test case run worker being retired is now returned to service when demand recovers, instead of sitting idle while TrialGrid starts a replacement. |
|
5331 |
Bug |
Progress bars for two background tasks running at the same time no longer stop each other updating, and a page showing a progress bar no longer polls the server continuously. |
|
5345 |
Bug |
Background compliance recalculations now complete much faster and no longer saturate the production database. |
|
5385 |
Bug |
The Drafts list for a Project loads quickly however much activity the Project has accumulated. |
|
5386 |
Bug |
The Tasks page loads quickly for users with a long history of Tasks. |
|
5387 |
Bug |
Starting or cancelling a Test Run with many Test Cases is faster. |
|
5388 |
Bug |
The project roles by user API responds quickly for organizations with many users. |
|
5389 |
Bug |
The home page and pinned objects list load quickly for users with many pinned objects. |
|
5258 |
Feature |
Organization roles can now be defined and viewed on the new Organization Roles page. They are not yet used to control access. |
|
2272 |
Bug |
TrialGrid no longer reveals that a Project, Draft or URL has been deleted, or when it will be permanently removed, to users without permission to view it. |
|
5269 |
Feature |
Organization Roles now decide what their holders can do. Holding 'Administer Permissions' no longer grants the other permissions, and a new 'Can manage Icons' permission controls who can change Organization Icons. |
|
5359 |
Bug |
Custom object saves are now rejected when any property value is invalid, and errors are shown for every row in the save. Custom objects with no property values, and Folders whose current values would not pass validation, can now be deleted from a property sheet. |
|
5342 |
Bug |
Wizard steps no longer fail with a security error when the page has been open across a session change. |
|
5093 |
Bug |
The Test Case Run log now displays log messages as text, so a study name containing HTML cannot affect the page. |
|
5253 |
Bug |
Custom Diagnostics can no longer use the .format() and .format_map() methods of text values. Use an f-string, or join the pieces with +. |
|
2272 |
Bug |
TrialGrid no longer reveals that a Project, Draft or URL has been deleted, or when it will be permanently removed, to users without permission to view it. |
|
5290 |
Bug |
AI agents no longer send every populated custom property to the model. Each Custom Property now carries a "Send to agents?" setting which is off until you turn it on, so a value reaches the model only once someone has decided it belongs in the specification. Values recording who tested or reviewed an object are no longer sent. Existing object types need their specification properties marked as sent on the Object Definition's Agent Instructions tab before an agent will build from them. |
|
5341 |
Bug |
Error responses to background requests no longer restart the page's JavaScript, so a failed action leaves the rest of the page working. |
|
5342 |
Bug |
Wizard steps no longer fail with a security error when the page has been open across a session change. |
|
5290 |
Bug |
The URL settings export now includes each Custom Property's Send to Agents setting and Agent Instruction, and the object type's own Agent Instruction, so an export shows which property values are sent to an AI agent. |
|
5327 |
Bug |
A locked Draft now refuses changes to its objects at the server, not only by hiding the controls, so a page opened before the Draft was locked can no longer change it. This also covers labels, assignments, comments, Diagnostic fixes and Agent saves, and a locked Draft's own properties can no longer be edited. |
|
5373 |
Bug |
Folder and Form reordering now protects against malicious attempts to renumber Folders and Forms that belong to a different Draft. |
|
5226 |
Bug |
A Must Not Exist Standard Rule naming an object that is in a Draft but not in its Library is now reported as a Rule Failure. Previously the object was reported as compliant. |
|
5355 |
Bug |
When a library Must Exist or Must Not Exist rule is recalculated, missing objects are now added and removed in every linked draft. Previously some linked drafts could keep outdated missing objects or not show new ones. |
|
5360 |
Bug |
Recalculating a library rule no longer fails when another recalculation has just written the same missing objects for a draft. |
|
5226 |
Bug |
A Must Not Exist Standard Rule naming an object that is in a Draft but not in its Library is now reported as a Rule Failure. Previously the object was reported as compliant. |
|
5345 |
Bug |
Background compliance recalculations now complete much faster and no longer saturate the production database. |
|
5237 |
Feature |
Organizations can now register Import Scripts, ready for importing data from Excel, JSON and YAML files. |
|
5246 |
Feature |
Import Scripts can now declare the settings they need. |
|
2333 |
Feature |
Objects can now be deleted from the object editor, using the Delete option in the dropdown beside Save, with confirmation before deletion. |
|
5262 |
Feature |
Import Scripts can now be tested against a real file, showing what the script would do without changing anything. |
|
2135 |
Feature |
Deleting a Field in the Form Editor now warns which Edit Checks, Derivations and Lab Settings will be removed with it, rather than refusing the delete. They are removed when the Form is saved. |
|
3547 |
Feature |
Fields can now be deleted from the Fields list, individually or in bulk, with a warning listing the Edit Checks and Derivations that will be deleted with them. |
|
5297 |
Bug |
Error messages returned by the server as a full web page are now shown as text, so the page reporting the error keeps working. In the Form editor, Load default values is hidden for fields with no data dictionary. |
|
5323 |
Feature |
A test run of an Import Script can now be pointed at a Draft, Project or URL, and the script can read from it. Settings that name a Draft, Project or URL are chosen from the same searchable list, with Projects that hold Standard libraries marked. |
|
5289 |
Bug |
The URL settings export lists Property Sheets, their Roles and their Columns in a consistent order across environments. They were ordered by an internal identifier whose value depends on the database, so the same URL exported from different environments produced the tabs in different orders. |
|
5327 |
Bug |
A locked Draft now refuses changes to its objects at the server, not only by hiding the controls, so a page opened before the Draft was locked can no longer change it. This also covers labels, assignments, comments, Diagnostic fixes and Agent saves, and a locked Draft's own properties can no longer be edited. |
|
5373 |
Bug |
Folder and Form reordering now protects against malicious attempts to renumber Folders and Forms that belong to a different Draft. |
|
5385 |
Bug |
The Drafts list for a Project loads quickly however much activity the Project has accumulated. |
|
3249 |
Feature |
Deleting a Project, Draft or URL now requires typing DELETE to confirm, so a mis-click can no longer destroy work. |
|
5264 |
Feature |
Deleted Drafts now appear on a Deleted tab of the Project's Drafts list, showing who deleted them and when they will be removed permanently, and can be restored from there. |
|
5295 |
Bug |
An icon that fails to load now shows the missing-icon placeholder without raising a browser error. |
|
5297 |
Bug |
Error messages returned by the server as a full web page are now shown as text, so the page reporting the error keeps working. In the Form editor, Load default values is hidden for fields with no data dictionary. |
|
5331 |
Bug |
Progress bars for two background tasks running at the same time no longer stop each other updating, and a page showing a progress bar no longer polls the server continuously. |
|
5349 |
Feature |
The build now checks that every issue referenced from the tests has a release note. |
|
5261 |
Feature |
On Veeva vaults at release 26R2 or later, test runs open forms directly with Veeva EDC's stable form links, and each form screenshot in the results links to that form in Veeva EDC. |
|
5357 |
Bug |
The maximum number of concurrent Test Case Runs set for a Rave URL or Veeva Vault now applies to your Organization's own runs, and the progress message shown when your Organization is at its limit now shows the right count. |
|
5362 |
Feature |
The Veeva Vaults list shows which Veeva release each vault is on, read automatically from the vault when it is registered and when test cases run. |
|
5364 |
Bug |
The Veeva Vaults list now shows each vault's latest test case run and number of test case runs, including runs made before this release. |
|
5367 |
Bug |
Veeva Comparison Rules whose identifiers are fully qualified ($) paths now reference the Event Groups, Events, Forms, Item Groups and Items those paths name, so they appear in those objects' 'in use' lists and are counted when checking whether an object can be deleted. |