Version : 89
Released : 2026-07-26
Changes in this Release
Issue |
Type |
Module(s) |
Description |
|---|---|---|---|
4886 |
Feature |
The drafts API list endpoint can now be filtered by assigned label name using the new label__in query parameter (a comma-separated list of label names returns drafts carrying any of them). |
|
4929 |
Feature |
The Custom Function AI assistant now recognises the action a function performs (merge/un-merge a matrix, add a form, derive a value, and more) and generates the correct action instead of always raising a query. |
|
4867 |
System |
Test Case PDF screenshots are now embedded using indexed colour, producing significantly smaller PDF files and reducing the memory needed to generate large exports. Screenshots remain fully lossless and unchanged in appearance. |
|
4854 |
Feature |
The Veeva Test Case generator now supports rules that use @Form.submit_counter__v, generating scenarios that submit a form enough times to exercise both first-submit and re-submit conditions. Generated scenarios cover submission counts up to 20; rules requiring a higher count report an error so they can be authored manually. |
|
4855 |
Feature |
The Veeva Test Case generator now supports rules that reference an item's value via @Item.value__v, treating it as the item's own value. Using value__v on a Date item reports an error, since Veeva requires value_normalized__v there. |
|
4856 |
Feature |
The Veeva Test Case generator now supports rules that reference an item's unit via @Item.unit__v, generating scenarios that set the item's unit from its Unit Codelist. Using unit__v on an item with no Unit Codelist reports an error. |
|
4858 |
Feature |
The Veeva Test Case generator now supports rules that reference an item's prior value via @Item.previous_submit_value__v, generating scenarios that submit the form twice (the previous value, then the current value). |
|
4876 |
Feature |
Test Case PDFs can now merge all selected Test Cases into a single file when the compact 'Results' layout is chosen. |
|
4859 |
Feature |
The Veeva Test Case generator now supports the @Site system attributes name__v (Study Site Number), oid__v, status__v, principal_investigator__v and locked__v, in addition to the existing timezone__v. Because a site is chosen when the test is run, derivation rules that build a value from a site attribute (for example Concat(@Site.name__v, "-", Text(SUBJNO))) now embed the run-time site value, which is looked up from Veeva and substituted automatically. Rules that compare a site attribute to a fixed value (for example @Site.name__v = '100') generate a scenario with a note describing the site the test must run on. |
|
4860 |
Feature |
The Veeva Test Case generator now supports the @StudyCountry system attributes name__v, country_abbreviation__v and country_code__v. |
|
4861 |
Feature |
The Veeva Test Case generator now supports the @Casebook.subject_name__v and @Casebook.version__v system attributes. |
|
4881 |
Feature |
Added a Veeva test step to re-open a submitted form for edit. |
|
4862 |
Feature |
The Veeva Test Case generator now supports the @Form.change_reason__v and @Form.form_status__v system attributes; rules using them generate test cases. |
|
4888 |
Feature |
The Test Case listing now provides the same user-assignment filter as other listings, letting you show only test cases assigned to you, to a role, or that are unassigned. |
|
4890 |
Feature |
Veeva query verification screenshots now highlight the query text for both Datapoint and Event queries, making it easy to see which query was checked. |
|
4891 |
Bug |
Item visibility on value steps is now read from the correct repeating itemgroup instance, fixing a spurious "present but not visible" note when the item is shown on the form. |
|
4892 |
System |
TrialGrid now validates Veeva API responses against typed schemas at the boundary, failing fast with a clear error when a response is missing an expected field. |
|
4893 |
Bug |
TrialGrid now navigates to Veeva forms reliably fixing missing screenshots for repeating forms. |
|
4899 |
Bug |
The Veeva test step editor helpers now correctly split datapoint references that use Jinja template variables (e.g. {{eg}}) into the EG#, F# and IG# sequence columns. |
|
4900 |
Bug |
The Veeva test case editor no longer adds a leading zero to date days that are already two digits; dates are normalised to DD-Mon-YYYY without over-padding. |
|
4901 |
Feature |
The Veeva test case editor now warns when a step enters data into an item that is not visible by default, naming the controlling item and value that make it visible. |
|
4905 |
Bug |
Rave Classic Automated Testing runs no longer fail intermittently with a 'changes cannot be saved because the form has been updated' (stale data) error when a custom function such as subject inactivation runs immediately after another; the runner now reloads the TG_UAT subject and retries the save. |
|
4913 |
Feature |
The Veeva test case editor now provides a repeat input next to every repeating event group, form and item group, and reports an error when a sequence number is missing for a repeating part, supplied for a non-repeating part, or exceeds the allowed maximum. |
|
4914 |
Feature |
The Veeva and Rave test case editor 'has value' helpers now suggest a field's codelist/dictionary values. |
|
4916 |
Feature |
Running a test set directly (without opening the wizard) now uses the screenshot and 'continue on failure' settings remembered from your last wizard run, instead of falling back to the defaults. |
|
4921 |
Bug |
The task to generate a combined Test Case PDF can now recover after a server restart. |
|
4924 |
Bug |
Veeva Set Derived Value test cases now emit a 'has value' verification step for multi-line rule expressions, and year-hinted source items are populated with a realistic year. |
|
4928 |
Feature |
Added a Veeva test step that marks a form as intentionally left blank. |
|
4927 |
Feature |
Test Cases can now assert that an email is NOT received, with steps that match on subject alone, subject and exact body, or subject and partial body. |
|
4931 |
Bug |
Fixed an error that could prevent a deleted draft from being fully removed during database cleanup when its automated test case runs had recorded subject data. |
|
4933 |
Feature |
The TrialGrid draft home page can now show test coverage for Veeva Rules and Comparison Rules. |
|
4935 |
Feature |
Automated tests can now link and unlink Veeva forms using the new "I link form ... to form ..." and "I unlink form ... from form ..." steps. |
|
4938 |
Feature |
The Veeva Test Case Advisor now generates test cases for rules that use linked-form counts (TrialGrid emits the new link-form steps to set up the required form links). |
|
4939 |
Feature |
The Veeva Test Case Advisor now generates test cases for rules that read data on linked forms (TrialGrid enters the linked form's data and links it to the rule's form using the new link-form steps). |
|
4887 |
Feature |
Custom object identifiers are now always single-line: line breaks and other invisible characters in the contributing properties are replaced with spaces so identifiers stay readable and match consistently. |
|
4912 |
Feature |
When deploying a new version of TrialGrid the database 'fingerprint functions' will be re-created without causing database locks which interfere with normal application usage. |
|
4830 |
System |
Designer study attributes (version/sync provenance, requirement text, UUIDs) are stored as native fields on imported draft objects. |
|
4882 |
Bug |
Per-project, per-draft and per-URL permission checks on the Rave and Veeva import/export/download, test-run and URL/Vault registration wizards are now enforced server-side. |
|
4882 |
Bug |
Per-project, per-draft and per-URL permission checks on the Rave and Veeva import/export/download, test-run and URL/Vault registration wizards are now enforced server-side. |
|
4930 |
Feature |
TrialGrid now includes an automated check that prevents use of the Bootstrap data-loading-text attribute, guarding against a known cross-site scripting vector (GHSA-vxmc-5x29-h64v). |
|
4936 |
Bug |
Undo and redo of a field reorder now also refresh the form editor canvas so it stays in step with the property sheet, and an in-progress custom property edit is captured on the undo history even when the sheet re-renders mid-edit. |
|
4930 |
Feature |
TrialGrid now includes an automated check that prevents use of the Bootstrap data-loading-text attribute, guarding against a known cross-site scripting vector (GHSA-vxmc-5x29-h64v). |
|
4854 |
Feature |
The Veeva Test Case generator now supports rules that use @Form.submit_counter__v, generating scenarios that submit a form enough times to exercise both first-submit and re-submit conditions. Generated scenarios cover submission counts up to 20; rules requiring a higher count report an error so they can be authored manually. |
|
4855 |
Feature |
The Veeva Test Case generator now supports rules that reference an item's value via @Item.value__v, treating it as the item's own value. Using value__v on a Date item reports an error, since Veeva requires value_normalized__v there. |
|
4856 |
Feature |
The Veeva Test Case generator now supports rules that reference an item's unit via @Item.unit__v, generating scenarios that set the item's unit from its Unit Codelist. Using unit__v on an item with no Unit Codelist reports an error. |
|
4858 |
Feature |
The Veeva Test Case generator now supports rules that reference an item's prior value via @Item.previous_submit_value__v, generating scenarios that submit the form twice (the previous value, then the current value). |
|
4859 |
Feature |
The Veeva Test Case generator now supports the @Site system attributes name__v (Study Site Number), oid__v, status__v, principal_investigator__v and locked__v, in addition to the existing timezone__v. Because a site is chosen when the test is run, derivation rules that build a value from a site attribute (for example Concat(@Site.name__v, "-", Text(SUBJNO))) now embed the run-time site value, which is looked up from Veeva and substituted automatically. Rules that compare a site attribute to a fixed value (for example @Site.name__v = '100') generate a scenario with a note describing the site the test must run on. |
|
4860 |
Feature |
The Veeva Test Case generator now supports the @StudyCountry system attributes name__v, country_abbreviation__v and country_code__v. |
|
4861 |
Feature |
The Veeva Test Case generator now supports the @Casebook.subject_name__v and @Casebook.version__v system attributes. |
|
4881 |
Feature |
Added a Veeva test step to re-open a submitted form for edit. |
|
4882 |
Bug |
Per-project, per-draft and per-URL permission checks on the Rave and Veeva import/export/download, test-run and URL/Vault registration wizards are now enforced server-side. |
|
4862 |
Feature |
The Veeva Test Case generator now supports the @Form.change_reason__v and @Form.form_status__v system attributes; rules using them generate test cases. |
|
4890 |
Feature |
Veeva query verification screenshots now highlight the query text for both Datapoint and Event queries, making it easy to see which query was checked. |
|
4891 |
Bug |
Item visibility on value steps is now read from the correct repeating itemgroup instance, fixing a spurious "present but not visible" note when the item is shown on the form. |
|
4892 |
System |
TrialGrid now validates Veeva API responses against typed schemas at the boundary, failing fast with a clear error when a response is missing an expected field. |
|
4893 |
Bug |
TrialGrid now navigates to Veeva forms reliably fixing missing screenshots for repeating forms. |
|
4915 |
Bug |
Veeva 'has value' step screenshot now highlights the value on the specified repeat instance instead of always the first repeat. |
|
4924 |
Bug |
Veeva Set Derived Value test cases now emit a 'has value' verification step for multi-line rule expressions, and year-hinted source items are populated with a realistic year. |
|
4928 |
Feature |
Added a Veeva test step that marks a form as intentionally left blank. |
|
4932 |
Bug |
The Veeva Form Review now displays every item's value for Item Group default adds, not just the first item in each repeat. |
|
4933 |
Feature |
The TrialGrid draft home page can now show test coverage for Veeva Rules and Comparison Rules. |
|
4935 |
Feature |
Automated tests can now link and unlink Veeva forms using the new "I link form ... to form ..." and "I unlink form ... from form ..." steps. |
|
4937 |
Feature |
Veeva browser locators and scripts are now stored in the database. |
|
4938 |
Feature |
The Veeva Test Case Advisor now generates test cases for rules that use linked-form counts (TrialGrid emits the new link-form steps to set up the required form links). |
|
4939 |
Feature |
The Veeva Test Case Advisor now generates test cases for rules that read data on linked forms (TrialGrid enters the linked form's data and links it to the rule's form using the new link-form steps). |