{productname} 7.9.0 was released for {enterpriseversion} and {cloudname} on Wednesday, (TBA) May 14th, 2025. These release notes provide an overview of the changes for {productname} 7.9.0, including:
The following new Premium plugin was released alongside {productname} 7.9.0.
The following new Open Source plugin was released alongside {productname} 7.9.0.
The following premium plugin updates were released alongside {productname} 7.9.0.
The following Premium plugin has been announced as reaching its end-of-life:
The following open source plugin has been announced as reaching its end-of-life:
The {productname} 7.9.0 release includes an accompanying release of the Enhanced Skins & Icon Packs.
The Enhanced Skins & Icon Packs release includes the following updates:
The Enhanced Skins & Icon Packs were rebuilt to pull in the changes also incorporated into the default {productname} 7.9.0 skin, Oxide.
For information on using Enhanced Skins & Icon Packs, see: Enhanced Skins & Icon Packs.
{productname} 7.9.0 also includes the following bug fix<es>:
Previously in {productname}, an issue occurred during pattern matching where overlapping regular expression matches caused duplicated content when processing abbreviations. For example, in the string D. dd.D., multiple overlapping patterns such as D., dd.D, and a final D. could be incorrectly matched and processed more than once. This resulted in unexpected duplication in the editor, such as D. dd.DDD..
This behavior was caused by insufficient overlap detection when identifying match regions, leading to multiple reinsertions of already matched substrings. The issue has now been resolved in {productname} 7.9.0 by refining the pattern-matching logic to accurately detect and avoid overlapping matches. The updated implementation ensures that each abbreviation is matched and processed only once, eliminating duplicated insertions and preserving the original content structure.
<!-- Original content typed by the user -->
<p>D. dd.D.</p>
<!-- Result after pattern matching (incorrect behavior) -->
<p>D. dd.DDD.</p><!-- Original content typed by the user -->
<p>D. dd.D.</p>
<!-- Result after pattern matching (correct behavior) -->
<p>D. dd.D.</p>