Overview of merged pull requests
When overriding the FrontendRouterPartHandler with a custom implementation but inheriting from it the configuration was not read from Neos.Neos but from the package that did the override. This causes the setting to always be false and makes the routing not work properly when having empty segments for dimensions. This is then quite difficult to debug.
Custom implementations can still decide to override the config and read it from somewhere else if required.
The technical name as title can be confusing as it doesn’t change when the workspace title is changed.
The AssetProxyInterface declares getImportStream() must return resource. The NeosAssetProxy returns ?UriInterface there, which breaks the contract.
In some places getImportStream() is used to access the original URI (see #2190), but for other proxies, the resulting link target is Resource id #x since the resource is cast to string and used as is.
This fixes the issue by making getImportStream() in NeosAssetProxy return resource as expected and add (back) getOriginalUri() to the proxy. The URI can be used for a download.
An additional ProvidesOriginalUriInterface is added, which can be implemented by asset sources at will.