MODX Revolution 3.2.0-pl (February 17, 2026)
====================================
- Fix Resource Preview Functionality (#16777)
- Fix fatal error in trim output filter (#16757)
- Disallow Dot Character in Resource Alias for Alpha/Alphanumeric Restrictions (#16774)
- Fix and Enhance Resource Groups Functionality (#16773)
- Fix sorting logic in Security/Group/GetList.php (#16810)
- Fix memory_limit calculation in modTransportPackage (#16820)
- Resolve various deprecation warnings (#16816)
- Fix TV render sizing for non-TV panels (#16819)
- Mobile layout improvements to main nav & vertical tab panels (#16814)
- Fix and enhance checkbox and radio TV rendering (#16782)
- Fix Media Browser Sorting by Modification Date (#16772)
- Reveal Content Above & Below Regions in Form Customization (#16789)
- Fix non-existent snippet tags broken up by @ (#16682)
- Editor grids permissions refactor, enhancements, and fixes (#16653)
- Improve manager forgot login email error message (#16807)
- Fix expired session login dialog (#16806)
- Add generic return type to Container::get PHPDoc (#16808)
- Return skipExtensions directly instead of exploding (#16799)
- Ensure left bar trigger and collapsed state stay in sync (#16748)
- Bump minimum PHP requirement to 8.1 (#16802)
- Fix improper error message sanitization added in #16792 (#16798)
- Resource Tree Icons Adjustment and Contrast Increase (#16761)
- Increase default minimum and generated passsword lengths (#16796)
- Fix z-index issue in the menu (#16778)
- Add missing validation and lexicon for Roles (#16788)
- Fix undefined variable error in modTemplateVar (#16780)
- Filter special characters in error messages (#16792)
- PHP 8.5 Compatibility (#16794)
- Add settings for inline styles in modPHPMailer (#16791)
- Remove JSONP callback support in modConnectorResponse (#16775)
- Fix Textarea TV Input Options (#16747)
- Fix mail reset method call in modUser.php (#16781)
- Make modNamespace's translatePath method null-safe (#16763)
- Improve handling of visibility in S3 (#16735)
- Fix Media Browser Sorting by Modification Date (#16734)
- Avoid fatal error when Rest request fails in Package Browser (#16738)
- Register missing PSR interfaces to services (#16696)
- Make regClientScript and regClientHTMLBlock work in the manager (#16700)
- Update checkout and setup-node actions in assets workflow (#16737)
- Make all JS files editable in the MODX manager in PHP 8.4 (#16732)

MODX Revolution 3.1.2-pl (April 2, 2025)
====================================
- Fix Template Access grid being initially empty when creating a new TV (#16678)
- Fix empty attributes when special characters appear in package readme (#16713)
- Fix query to purge old installed extras (#16717)
- Convert invalid dates to NULL in modTransportPackage.installed (#16721)
- Fix usage of checkRequirement method (#16718)
- Add z-index to x-form-item class (#16712)
- Fix error in User validation that blocks creation of new Users (#16710)

MODX Revolution 3.1.1-pl (February 18, 2025)
====================================
- Fallback for dashboard widgets in custom manager theme (#16705)
- Deprecate modUserProfile->sessionid and do not set value (#16697)
- Update superboxselect.js to version 1.6 and add HTML entity encoding (#16702)
- Fix manager menu for sql_mode "ANSI_QUOTES" (#16680)
- Fix namespaces getlist processor when cache_db is active (#16681)
- Fix Remember Me login feature (#16685)
- Fix datetime settings keys (#16687)
- Fix navbar z-index (#16690)
- Fix typos in access Lexicon (#16689)
- Fix for MODX updates widget (#16694)
- Fix visibility of the Install button in packages grid (#16675)
- Fix links not clickable on 3th level (#16671)
- Fix display of notification when User password is created/updated (#16668)

MODX Revolution 3.1.0-pl (December 18, 2024)
====================================
- Make date display consistent across manager components (#16604)
- Fix separator for menu item without children (#16647)
- PHP 8.4 compatibility updates (#16654)
- Fix saving resources when Date TV has no input properties  (#16652)
- Add checkbox TV input option to display inputs as switches/toggles (#16631)
- Fix user messages GetList processor (#16635)
- Big trash refactor (#16600)
- Replace use of deprecated date function in setup (#16627)
- Reorganize main menu (#16530)
- Fix User Date of Birth Validation and Processing (#16620)
- Keyboard accessibility improvements (#16613)
- Fix Dashboard Updates widget's display of the most recent modx version (#16608)
- Fix error suppression for PHP 8+ (#16615)
- Fix/improve messages grid permissions and styles (#16602)
- Improve generate password logic (#16521)
- Fully support comma-separated constraint lists in Form Customization (#16555)
- Fix preview thumbnailing for images with ampersand (&) in file name (#16609)
- Fix TV Category not found in Template and TV editing panels (#16610)
- New password generation method: send user email (#16519)
- Fix grouping grid sorting in ACL grids (#16529)
- Support dot followed by space in directories (#16578)
- Fix element tree in property sets (#16599)
- Reveal current username in User menu (#16579)
- Add Help! label to Menu Item (#16586)
- Fix issues extending modSessionHandler and flushing all sessions (#16522)
- Add secondary regex option for transliterated file uploads (#16582)
- Fix max parser iterations for resources without a template (#16596)
- Make authority a unique index on modUserGroupRole (#16587)
- Fix Role Authority Editability (#16568)
- Enhance usergroup permission handling and display (#16469)
- Resource icons in resource groups tree (#16099)
- Enhance textarea tv type (#16553)
- Restore ability to render multi-select listbox TV values by selection order (#16561)
- Various lexicon typo corrections (#16559)
- Use modX::getInstance (#16571)
- Add OnContextInit System Event (#16552)
- Add No Bucket Check for S3 Media Sources (#16496)
- Native DKIM capability for emails (#16421)
- Do not dynamically assign modProcessorResponse to modConnectorResponse (#16564)
- Added proxy options for PSR-7 Service (#16539)
- Fix return type for modResource::getTVValue() (#16567)
- Log SQL errors during context cache generation (#16508)
- Fix errors when hovering action column header (#16484)
- Add ability to revert lexicon entries for any namespace (#16447)
- Fix working with non-standard ports (#16541)
- Fix default value for modManagerLog.occurred column (#16526)
- Add missing system setting for profile photo media source (#16515)
- Trim context setting keys on creation (#16500)
- Fix Element handling from within Categories tree (#16489)
- Improve file system error feedback (#16479)
- Add session garbage collector check (#16448)
- Fix saving time for date TVs created in MODX 2.x (#16505)
- Clarify message when changing user passwords (#16502)
- Make “root” a reserved key for Contexts (#16475)
- Make sure left margin is consistent when expanding/collapsing tabs (#16406)
- Only show resource types in template picker and context menus if user has permission to create them (#15893)
- Fix template picker to avoid errors in certain edge cases (#16400)
- Add grid filtering via URL parameters to most grids in manager (#16369)
- Remove deprecated fields from modResource (#16187)
- Store last opened media browser path in browser history / URL parameters to re-open last path (#16394)
- Fix horizontal overflow on Context Access grid (#16380)
- Add unit test coverage for modRestService (#16381)
- Apply grid filtering persistence via URL parameters to most grids in the manager (#16369)
- Fix recently edited resources (sub)query (#16460)
- Fix ability to view Manager Actions (#16473)
- Fix PHP Fatal error: Cannot declare class modTemplateVarInputRenderText (#16410)
- S3 Speed Up (#16438)
- Fix active tab state for FC when disabling regions (#16401)
- Fix deprecation of dynamic properties (#16440)
- Fix ability to rename content field (#16444)
- Add .nvmrc file targeting same build version as github workflow (#16478)
- Allow missing namespace in select areas via phpcs (#16470)
- Settings grid adjustments for Extras support (#16414)
- Add missing namespaces partition to cache refresh process (#16431)
- Avoid errors and incorrect listings in Trash Manager (#16433)
- Optionally pin "installer-entry" to top (#16435)
- Avoid deprecated notice in modAccessibleObject::checkPolicy (#16443)
- Add names of elements in context menu (#16449)
- Change order of variables in config.inc.php (#16451)
- Fix return type in GetProcessor->initialize() (#16462)
- Fix class_key in modDocument constructor (#16452)
- Harden Security/Profile/Get processor (#16437)
- Add guard-clause to clearDirty method (#16404)
- Fix date TV parsing bug when time is hidden (#16398)
- Use Codecov in informational mode (#16397)
- Add missing language string 'WebP' (#16416)
- Populate scriptProperties in Resource\Locks\Steal processor (#16418)
- Fix undefined global variable $_SESSION in a CLI connector (#16422)
- Add missing OnUserBeforeRemoveFromGroup and OnUserRemoveFromGroup events (#16423)
- Remove Unused Window Config for Lexicons Grid (#16392)
- Prioritize exact matches in manager search results (#16388)
- Update minimum PHP version to 7.4 and recommended version to 8.0.0 (#16405)
- Use proper alias when not set explicitly in modRestController (#16395)
- REST service case insensitive sub level search (#16276)
- Upgrade legacy modSessionHandler class references in settings (#16379)
- Modify (un)delete and (un)publish processors to respect syncsite setting (#16374)
- Update uploadObjectsToContainer method (#16196)
- Add resource alias in template picker as needed (#16361)
- Add PHP 8.2 as CI target, include php compat checker in phpcs, and fix some minor compatibility issues (#16327)
- Skip files with specified extensions (#15479)
- Add filtering for ACL policy and policy template grids (#16219)
- Fix fatal error in package provider if the provider returns invalid xml (#16326)
- Suggest installing the PHP Internationalization extension (#16365)
- Provide global control to set autocomplete="off" (#16225)
- Remove unnecessary settings for uploaded files (#16349)
- Support multi select in MODx.Browser when multiSelect: true is provided (#16348)
- Fix and enhance UserGroup ACL Permissions Grids and Filtering (#16355)
- Cleanup legacy PHP version references (#16359)
- Prevent OnResourceDelete from firing on every Resource update (#16328)
- Fix "Undefined array key" warnings in modPhpThumb (#16341)
- Fix package manager showing only last version changelog (#16354)
- Fix tab tracking error in package manager (#16360)
- Fix tab tracking issue for plugin panel (#16364)
- Only post coverage comment when coverage changes. (#16358)
- Fix parsing modifiers when encountering literal brackets (#16302)
- Fix parsing long template tags under some conditions (#16316)