7.20.4
Clarive 7.20.4 Release Notes¶
Release date: September 15, 2026
We're pleased to present our new patch release of Clarive 7.20.4 with some important features and bugfixes:
Improvements and issues resolved¶
[ENH] #3917 Refactor compare rule versions panel¶
The rule version comparison panel has been redesigned. Instead of a raw text diff of the underlying JSON, versions are now presented as two side-by-side rule trees with color-coded changes: green for added operations, red for removed ones and yellow for modified ones. Placeholders keep both trees aligned so matching operations always sit at the same height, and the two panels scroll in sync. You can double-click any node to open a configuration comparison window showing which individual fields changed, walk through the differences with the PREVIOUS and NEXT buttons, and use "Copy to Current" to bring an operation from the compared version into the rule you are editing.
[ENH] #3920 Jest 28 setup for frontend unit testing¶
Added a Jest 28 test environment for the frontend code base, so React components and JavaScript modules can now be covered by unit tests that run without a browser or a live server. This is internal tooling that does not change application behaviour, but it lets new UI work ship with automated regression tests.
[ENH] #3926 #3932 #3942 #3944 #3946 #3963 Pre-migration to Vite¶
Groundwork for a future migration of the frontend build to Vite. jQuery has been removed from the shared utilities, the ExtJS compatibility layer, the kanban board, the topic HTML rendering, the rule tree, the mention editor and the remaining UI widgets, all of which now use native browser APIs. The dashboard layout engine has been upgraded to a current, jQuery-free version, the legacy chart library has been replaced with a C3-based donut chart, and unused third-party libraries and dead code have been deleted. Webpack-specific constructs have also given way to standard equivalents, including the way lazy-loaded pages are declared.
This is a large internal refactor with no intended change in behaviour, beyond more graceful handling of page load failures and corrected dashlet spacing, heights and chart redrawing when a dashlet is resized.
[ENH] #3945 Remove delete option from files attached list window¶
The attached files list window no longer shows a remove icon on each file. Deleting attachments from that secondary listing could be done accidentally and bypassed the usual attachment management flow, so the option has been withdrawn from this window.
[ENH] #3960 Refactor sending email configuration + methods¶
Email notification sending has been reworked and now supports secure connections. New configuration parameters let you set the SMTP port, choose the security mode (plain, STARTTLS or direct SSL) and provide certificates where your mail server requires them. Plain SMTP continues to work as before, so existing configurations keep running unchanged, but installations whose mail servers demand encrypted connections can now be configured without workarounds.
[ENH] #3972 Preview attached documents¶
Topic attachments can now be previewed directly in Clarive without downloading them first. A new eye icon next to each supported attachment opens a preview window that renders PDFs, images, plain text and Markdown, Word documents, Excel and CSV spreadsheets, and PowerPoint presentations. Spreadsheets are shown full width with their own scrolling and Word documents are laid out like a printed page. Files whose type cannot be previewed keep the usual download behaviour.
[ENH] #3974 Add status to the action.topics.comment permission scope¶
Comment permissions can now be granted per topic status, not only per topic category. The action.topics.comment and action.topics.create_internal_comment permissions accept a status scope that depends on the selected category, so you can, for example, allow comments while a topic is in progress and block them once it has been closed. The rule is enforced both when posting a comment and when listing the activity and comments of a topic.
[ENH] #3979 Inline editor buttons on the right¶
The SAVE and CANCEL buttons of the in-view field editors are now right-aligned, consistently across the text, date, resource, combo, project, assignees, topic, release, HTML and pills editors.
[ENH] #3985 Add a creators parameter to the effort calculation¶
The calculate_effort function accepts a new creators parameter with a list of usernames. When the list has values, only efforts logged by those users are taken into account; when it is empty or absent, results are unfiltered as before. This makes it possible to report effort per person without post-processing the result.
[ENH] #3995 Add first and last date fields to the effort calculation¶
The calculate_effort function now also returns first_effort_date and last_effort_date, spanning the efforts of the lower levels and honouring the same effort type, category, status and date filters used for the total. This gives you the real time span over which effort was logged, not just the accumulated amount.
[ENH] #4006 Fill out the description for auto-created branch topics¶
When pushing a new branch automatically creates a topic, its Description field is now filled in from the commit messages of that branch, formatted as readable paragraphs without dates, usernames, commit identifiers or branch names. Only commits made on top of the project's production branch are considered. The description is only filled when it is still empty, so any default value configured in the category is respected.
[ENH] #4007 Topic concurrent queries causing OOM kill of MongoDB¶
The counters shown next to the topic filters were forcing MongoDB to scan entire collections, which on large databases consumed enough memory to have the database process killed under concurrent use. The counters are now computed with index-friendly queries in a single aggregation pass and cached briefly, and a defect that made the query fail outright on databases using SLA has been corrected. Filter counters are noticeably faster and no longer put the database at risk.
[ENH] #4015 Ensure the scheduler roadkill cleans up running processes¶
The scheduler's recovery mechanism now reliably rescues tasks left stuck in RUNNING, for instance after an abrupt server stop. It picks up orphan tasks with no host assigned, recovers tasks with no process recorded instead of skipping them, and verifies that a recorded process really belongs to the task so a reused process identifier cannot keep a task locked forever. Tasks can additionally declare a maximum run time, after which they are terminated and rescheduled, and a new event.scheduler.task_road_killed event lets you react to these recoveries from a rule.
[FIX] #3930 Production branch is not used by project correctly¶
Fixed the handling of the production branch configured in a project's branching model. The value entered when creating a project was being overwritten with master, and several parts of the git interface assumed master regardless of configuration. The configured production branch is now preserved on creation and used consistently by the repository information, the differences view, the branch selector and the ahead/behind indicators.
[FIX] #3931 Root users cannot manage project members¶
Fixed the Members tab of a project, which showed "No Data" instead of the project team and hid the buttons for adding or editing members. The member list is now retrieved correctly, and root users and users with the root role get the Add button and the row actions back, in line with the permissions applied elsewhere in project administration.
[FIX] #3935 Missaligned topic UI buttons¶
Fixed the alignment of the action buttons in the topic view. The buttons on the left and the status button on the right could end up on different heights depending on the length of the title or the size of the badges. Both sides now share a fixed header height and line up correctly, while long titles still get their trailing ellipsis.
[FIX] #3939 What's new last seen is saving the whole user¶
Fixed a problem where dismissing the What's New window could undo recent changes to a user's group membership. Recording the last version seen re-saved the entire user record from a possibly outdated copy, discarding group changes made in the meantime. The information is now stored with a targeted update that does not touch the user's relations.
[FIX] #3941 User can see all projects topics in my effort new effort¶
Fixed a visibility problem in the topic selector of My Effort. When logging a new effort, the topic list was not applying project security, so users could see and select topics from projects they have no access to. The selector now returns only the topics the user is entitled to see.
[FIX] #3943 Multiple files uploaded is not working¶
Fixed the upload of several files at once to an attachments field, where all but one file could be silently discarded. Concurrent uploads were overwriting each other's result on the server; each file is now added individually so the complete set is stored. The modification date recorded for each file is also correct now, instead of every file inheriting the date of the last one selected.
[FIX] #3947 List topic dashlet not showing any data if no columns configured¶
Fixed the list topics dashlet, which appeared empty when no columns had been configured. It now falls back to a default set of columns (name, title, status, created by and creation date), matching what the dashlet shows when it is first added.
[FIX] #3951 Starting nginx should check if the process exists¶
Fixed the nginx start command when a process identifier file was left behind by a previous run. The command assumed the recorded process was alive and failed while trying to reload it. It now checks whether the process actually exists, removes the stale file and starts cleanly.
[FIX] #3961 The activity of new topics created on new branch push show all the repo commits¶
Fixed the activity of topics created automatically when pushing a new branch, which listed the entire history of the repository instead of the work actually contained in the branch. Commits are now calculated relative to the project's production branch, falling back to the full history only when that branch does not exist in the repository.
[FIX] #3965 Labels and topic badge are touching in topic grid¶
Fixed the spacing in the topic grid preview, where label badges that wrapped onto a second line appeared stuck to the topic badge above them. Wrapped rows now keep a small vertical separation while inline badges stay compact.
[FIX] #3966 Empty effort fields are not hidden in topic view¶
Fixed the "Hide empty fields" option in the topic view, which was not hiding effort fields without entries. Effort fields are loaded after the rest of the form, so they were not considered when empty fields were detected. They are now hidden when empty and reappear as soon as an effort is added.
[FIX] #3967 Left topics grid not synched on topic title update¶
Fixed the topic grid not reflecting a title change made by the same user from the preview panel. Notifications about your own changes were being filtered out; topic modifications are now exempt from that filter, as status changes already were, so the grid refreshes immediately.
[FIX] #3968 Add dates to CHANGELOG and RELEASE_NOTES files¶
The version headers in the CHANGELOG.txt and RELEASE_NOTES.txt files now include the month and year of each release. Dates have been filled in for past versions as well, from 7.6.4 onwards, making it easier to see when a given version was published.
[FIX] #3971 Baseliner::Controller::CI->store failing¶
Fixed a server error that prevented resource combos from loading. When a resource box sent a filter that was not a structured value, the server failed while interpreting it and returned an error instead of the list of resources. Such filters are now safely ignored and the combo loads normally.
[FIX] #3973 REACT error messages are not HTML compatible¶
Fixed the display of controlled error messages configured to allow HTML. Messages raised from rules were shown with their internal markup visible as plain text instead of being formatted. They are now rendered as intended, both in comment actions and in the in-view field editors. The Allow HTML and Remove Message Headers options are also documented now in the FAIL palette operation.
[FIX] #3975 Saving large user groups takes ages to finish¶
Saving a user group with many members was extremely slow and gave no indication of progress. The save now applies membership changes in batches and recalculates security once for the whole group, with a progress bar in the group edit window showing how many members have been processed. Users whose permissions do not actually change no longer generate audit entries.
[FIX] #3977 What's New modal shows wrong version when CHANGELOG headers include dates¶
Fixed the What's New window, which showed the notes of an older version once the changelog headers started including dates. The version is now detected correctly, and the window is no longer displayed on development versions.
[FIX] #3978 Field permissions icon is lost in right panel when simulating user¶
Fixed the field permission icons disappearing from the right panel while simulating another user. The icons are now drawn as part of the in-view editors themselves, so they survive the panel being redrawn and appear consistently on all field types.
[FIX] #3980 Data filter in CI boxes based on other boxes data is not working¶
Fixed resource combos that filter their contents according to the value of another field, which were ignoring the configured filter and offering the complete list. The filter is now applied from the moment the form is displayed, dependent combos stay empty until their parent field has a value, and the same filtering now also works while editing the field in view mode, which was not supported before.
[FIX] #3981 back_to_core error on post-offline job event rules¶
Fixed an error that interrupted rules triggered after offline job events. The job recovered from storage could arrive without its object information, causing the rule to fail with an internal error. Such cases are now detected and handled, so the rules complete normally.
[FIX] #3982 Linked combos should be edited together in-line¶
Chained combos, where the options of one field depend on the value of another, can now be edited together in view mode. Editing any field of the chain opens all of the linked fields at once; changing a parent value re-filters its dependent fields and clears selections that are no longer valid, and the whole chain is saved in a single operation.
[FIX] #3984 Avoid empty files upload as attachment¶
Uploading a zero-byte file as an attachment now fails immediately with a clear message. Previously the upload only failed deep inside the storage provider with a confusing error and could leave an incomplete upload behind.
[FIX] #3986 Clicking on plus icon does nothing when adding a topic to another topic¶
Fixed the "+" buttons used to create a related topic from within another topic, which had stopped responding. The related topic grids affected by the same problem also work again.
[FIX] #3987 Error saving status with confirmation request on¶
Fixed the saving of statuses whose name contains accented characters when the confirmation option is enabled, which failed with an encoding error. Creating a status also failed due to an internal defect, now corrected. Additionally, the error page no longer crashes when the reported message is not text.
[FIX] #3988 Rule-tree copy/paste throws "Converting circular structure to JSON"¶
Fixed copy and paste in the rule designer, which had stopped working and reported an internal conversion error. Copying an operation now correctly duplicates its configuration.
[FIX] #3990 Deploy-status UI filter wrongly blocks change_status permission check¶
Fixed a permission problem where a rule or job that legitimately moved a topic into a deployment status was denied. A filter meant only to hide deployment statuses from the manual status menu was also being applied when verifying permissions. The filter is now restricted to the interface, leaving the permission check unaffected.
[FIX] #3994 Race condition on topic status transition¶
Fixed a race condition when two status changes were applied to the same topic simultaneously, which could leave the topic in an inconsistent status. Transitions are now applied safely under concurrency.
[FIX] #3998 CI viewer (Resources grid) times out with large CI counts¶
Fixed the Resources grid timing out on installations with a large number of resources. The grid was sorting on data that had no supporting index, forcing the database to load and order the whole set in memory. New indexes have been added so sorting and listing are served efficiently, while the search keeps matching any part of the name as before.
[FIX] #4002 Editing a variable fails with HTTP 500¶
Fixed the editing of variables, which failed with a server error. The variables screen was still calling an address that no longer exists after the module was migrated.
[FIX] #4003 Variable duplication fails with "Copied variable undefined"¶
Fixed the duplication of variables, which did not create the copy and reported an unhelpful message. The copy is now created correctly, and any error that does occur is reported with its real cause.
[FIX] #4004 Admin grids show blank/stale pages after create, delete, edit or activate¶
Fixed the administration grids showing a blank page or outdated rows after creating, deleting, editing or activating an entry while positioned on a page other than the first. The grids now reload from the server after each of these operations, so the list always reflects the current data. Projects and statuses were the screens most affected.
[FIX] #4008 Job removed if db not reachable¶
Fixed a serious problem where a loss of connectivity with the database could lead to jobs and resources being deleted. A failed query was indistinguishable from a genuinely missing record, so records were treated as orphans and removed. Connection errors are now reported as such and never trigger deletions, the job daemon survives these failures, and the cleanup of genuine orphan records has been moved to the purge service with safety limits that abort the operation if it would affect an unexpected proportion of the data.
[FIX] #4012 Huge _txt in old topics causes very long update times¶
Fixed the growth of the internal search text of a topic, which accumulated duplicated values on every update and made saving progressively slower on long-lived topics. Values are now stored once, internal identifiers that were never searched are no longer included, and the content is ordered so that unchanged topics do not force a needless reindex.
[FIX] #4013 Indexes cleanup¶
Removed ten database indexes that were unused or redundant with existing ones, across topics, files, relations and activity. This reduces the work required on every write and the space occupied by the database, with no impact on query performance.
[FIX] #4014 When modifying a scheduler entry execution time it is not being saved¶
Fixed the editing of scheduled tasks, where changes to the date and time were not being saved. Scheduler entries containing accented characters are also handled correctly now.
[FIX] #4018 Debounce touch events¶
Changing the status of a release refreshed the topic view once for every changeset it contained, so a release with 53 changesets flickered through around 50 consecutive refreshes. Updates that arrive in quick succession are now grouped together: the view still refreshes immediately, and then settles once more when the burst is over. No update is lost, and topics with many changesets no longer become unusable while the refreshes run.
Ready to upgrade?¶
Just follow the standard procedure for installing the new version. Click here to get it from our Install page.
Acknowledgements¶
Join us in our Community to make suggestions and report bugs.
Thanks to everyone who participated there.