Release notes for Umbraco-CMS v9.4.0
Released on: Monday, January 1 1900
NuGet Package: Umbraco.Cms v9.4.0
Contributors
Of the 81 bug fixes and feature additions in release/9.4.0, a total of 50 of them have been contributed by the community, by 26 unique contributors.
We're welcoming 5 brand new contributors who have made their first pull request for Umbraco-CMS. Welcome to the contributor club: AndyBoot, Arul Prabakaran, Bartlomiej Komendarczuk, Corné Hoskam, Mehmet 🏆
All community contributors to this release

3 PRs

1 PR

1 PR

1 PR

1 PR

11 PRs

2 PRs

2 PRs

4 PRs

1 PR

1 PR

1 PR

1 PR

1 PR

1 PR

1 PR

1 PR

2 PRs

1 PR

3 PRs

1 PR

3 PRs

1 PR

1 PR

2 PRs

2 PRs
⭐ = First pull request to Umbraco-CMS
Notable features
1

#11919 Item tracking improvements
Developer experience
10

#12065 add null check for case when index is not implementing LuceneDirector…

#12016 Support async in TreeController

#11994 v9 - Allow configuring TinyMCE scripting sanitization

#11985 Lookup plugin lang / icons folders in a case insensitive way

#11945 Introduced new "large" overlay size

#11812 Constant icon blueprint

#11796 Grant access to get all content types so content templates can be moved to content section.

#11795 Update RemoveTreeController to use TController

#11673 Fixes issue with OrderByDescending generating invalid SQL

#11370 Make views compatible with Nullable Reference Types
UI and UX updates
16

#12097 Make GridPropertyEditor dirty if a control is removed

#12055 11921: Update CultureName after language change

#12042 Set current selected master template in tree

#11973 Localization: Translate "Create dictionary item" to Dutch

#11901 new stick top position for rte toolbar if tabs are present, issue #11870

#11900 fixes umbraco logo appearance on backoffice login page, issue #11830

#11817 Use pointer cursor pointer for keyboard shortcuts overview

#11816 Lookup backoffice section name in route locationTitle

#11813 Align tags vertically in content type property component

#11811 Added property way of seeing composition

#11773 Transition of lazy loaded image

#11745 Updated border radius of notification to match button

#11729 Filter block cards and show empty message

#11629 Makes the template column in NC config expandable

#11627 Makes group name wider to fit long group names

#11428 refactor setTitle in MediaPicker.Controller.js
API and API documentation updates
2
Other
52

#12161 Amend breaking change in RecurringHostedServiceBase

#12156 Use an umbra.co link for the TV replacement channel

#12153 Fixes RecurringHostServices leaking the execution context / ambient scope

#12146 Item tracking fixes and optimizations after RC

#12139 Fix media tracking of items added via macro parameters in RTE and Grid

#12132 v9: Fix image thumbnails not showing if filename contains non ascii characters

#12117 v9 Missing legacy password support for uniquely salted SHA1 hashed passwords

#12094 Adding null check to IsCulturePublished on IContent

#12093 v9 fix misc issues external member login

#12087 V9: Fix history cleanup not making content type dirty

#12077 Tune Debug logging to improve ContentStore boot performance

#12068 Random GUID in user detail view

#12061 Media entry editor listview children

#12051 ContentSavingNotification - Cannot access content that is about to be saved.

#12048 Fix namespace shown in C# API docs

#12044 Updates babel and caniuse-lite

#12040 V9: Fix missing site identifier

#12037 Filesystem based MainDomLock & extract interface for MainDomKey generation

#12034 Settings Dashboard Umbraco.tv References

#12030 Cannot replace default RenderController with Generic controller type

#12019 Ignore certificate errors for KeepAlive task.

#12014 Add using statements for IDisposables

#12013 Prevent DatabaseServerMessenger handle leak

#12012 ContentType IsDirty() is false after changing a value in HistoryCleanup

#12010 Fix Empty Recycle Bin view not found on Linux

#12008 Exclude the Umbraco Log files from UmbracoProject template gitignore

#11999 Add config to hide backoffice logo

#11996 Temp 11977 - Fixes 11977 Content Name auto-numbering is not incrementing

#11984 Redirect Url Management not working with Contenttypes(Allow vary by culture)

#11979 Fix items found in PVS-Studio analysis

#11965 TimeOut Setting not being respected in v9

#11961 Attempt to make app local icu setup less problematic.

#11957 Check form and querystring when validating `ufprt` in `ValidateUmbracoFormRouteStringAttribute`

#11952 Don't hold static UmbracoContext reference

#11950 Only select ItemIdFieldName in PublishedContentQuery.Search to improve performance

#11947 Added section for promoted packages in the back-office.

#11935 MainDom lock re-acquired by deploy slot after Azure slot swap

#11928 ServerRegistrationService.TouchServer uses the DB instead of IServerRoleAccessor to determine IsSchedulingPublisher

#11924 Allow setting the site name from appsettings

#11861 11777: Remove sorting because we need the correct order

#11858 (umbraCollab) Check media Parent for permissions when setting correct MediaType

#11807 Make the missing image caption functionality in the RTE work

#11797 Vary localization based on content or blueprint

#11772 Unable To Import DocType If Parent Folder Already Exists

#11764 Container validation (ValidateOnBuild) fails if backoffice controllers are added to IOC container (non standard setup).

#11687 Model.Url(culture) only returns "#" on multi-lingual site

#11630 Prevent non-backoffice auth schemes being overridden

#11606 Validate that imageUrl param is a relative path

#11553 Content app for dictionary items

#11492 V9: Fix Umbraco:CMS:Global:SqlWriteLockTimeOut setting value ignored

#11222 Fix JsonConfigManipulator causing upgrades to fail when appsettings.json files are not present

#10066 Redirects do not work due to missing null check