v3.1.8
Published on Aug 31, 2026.
Features
- Updated the .NET SDK to 10.0.400 and .NET runtime images to 10.0.11.
- CVE-2026-62898 | .NET Information Disclosure Vulnerability
- CVE-2026-62899 | .NET Security Feature Bypass Vulnerability
- CVE-2026-62900 | .NET Information Disclosure Vulnerability
- CVE-2026-62901 | .NET Denial of Service Vulnerability
- CVE-2026-62886 | .NET Elevation of Privilege Vulnerability
- CVE-2026-62871 | .NET Elevation of Privilege Vulnerability
- CVE-2026-70354 | .NET Core Remote Code Execution Vulnerability
- CVE-2026-62902 | .NET Information Disclosure Vulnerability
- CVE-2026-62897 | .NET Remote Code Execution Vulnerability
- CVE-2026-62909 | .NET Elevation of Privilege Vulnerability
More details : 18451
Fixes
- [Neos Data Exchange] Fixed exports after sorting localized text columns by targeting the current language value in OData ordering. (18456), closes 35849
- [Neos Studio] Fixed a false-positive module-dependency warning (M0058) reported against a base UIView when an inheriting UIView overrides a child element (partial template, computed, field...) using a UI Component from its own module. (18373), closes 35748
- [Neos Studio] Fixed entity and entity-view diagram links in the VS Code extension. (18417), closes 35413
- Fixed background task dispatch so it no longer inherited a disposed HTTP context from the initiating request. (18530)
- Fixed chat history conversion for parallel chatbot tool calls. (18364), closes 35623, 35747
- Fixed CSV and XLSX exports to evaluate column display templates with the correct row context. (18394), closes 35633
- Shared ASP.NET Core data protection keys through Redis between gateway and backend instances to improve compatibility during mixed-version deployments. (17972)
v3.1.7
Published on Aug 12, 2026.
Features
- [Helm] Added configurable
envandenvFromentries to business-cluster frontend pods. (18169) - [Neos Data Exchange] Reported fatal background import failures to users with error notifications. (18172)
- [Neos Data Exchange] Added persistent fatal-error reporting and status visibility for failed intermediate imports. (18229)
- [Neos Data Exchange] Added sample CSV upload and download support for import templates. (18220)
- [Reporting] Added configuration capability for the Stimulsoft HTML5 Viewer backend cache mode: can be globally or selectively (on a report-by-report basis) switched from the default 'ObjectCache' to 'None'. Disabling the Viewer's backend cache is required when the reporting service runs with multiple replicas and reports allow viewer events (Save As, Print, etc.). (18227)
- Updated documentation : Removal of the unencrypted connection string. (18255)
Fixes
- [Documentation] Added notes clarifying the ambiguity regarding which Docker image versions to use for the frontend, backend, and taskrunner. See this article. (18166)
- [Neos Data Exchange] Fixed access to data mapping until a mapping model is selected. (18237), closes 35464
- [Neos Data Exchange] Fixed adding import column mappings from a file when an empty column is selected. (18232), closes 35461
- [Neos Data Exchange] Fixed import batch selection failures on Oracle when batch sizes exceeded 1,000 rows. (18294)
- [Neos Data Exchange] Preserved template column order in data import staging grids. (18244), closes 35458
- [Security] Updated dependencies to fix CVE-2026-45646 (HIGH CVSS 7.5) (18295)
- [Security] Updated dependencies to fix CVE-2026-50506 (HIGH CVSS 7.5) (18295), closes 35591
- [Security] Updated dependencies to fix GHSA-28wg-ghj8-5hjv (HIGH CVSS 5.9) (18285)
- [Security] Updated dependencies to fix GHSA-2v37-7h3g-55p8 (HIGH CVSS 5.9) (18285)
- [Security] Updated dependencies to fix GHSA-2v8p-3f2j-5mp7 (MEDIUM) (18285)
- [Security] Updated dependencies to fix GHSA-3rrr-jr9j-h3q3 (MEDIUM) (18285)
- [Security] Updated dependencies to fix GHSA-55q2-fjhq-7xh7 (MEDIUM) (18285)
- [Security] Updated dependencies to fix GHSA-6x64-9x62-f2gx (MEDIUM) (18285)
- [Security] Updated dependencies to fix GHSA-c2j3-45gr-mqc4 (LOW) (18285)
- [Security] Updated dependencies to fix GHSA-c4c3-pg64-4m4v (LOW) (18285), closes 35592, 35593, 35599, 35600
- [Security] Updated dependencies to fix GHSA-fxqj-rqcc-2cmp (MEDIUM) (18285)
- [Security] Updated dependencies to fix GHSA-r28c-9q8g-f849 (HIGH CVSS 7.5) (18285)
- [Security] Updated dependencies to fix GHSA-rhh3-jpg6-66xh (MEDIUM) (18285)
- [Task Scheduler Client] Fixed scheduling tasks without arguments by sending a null arguments payload. (18199), closes 35431
- Fixed disabled non-inherited UI view event rules being generated and executed. (18286), closes 34111, 35234
v3.1.6
Published on Jul 23, 2026.
Breaking changes
- [Security] The
GetClusterVersions,GetTenantInfo, andGetTenantClustersmethods of the tenant management API are isolated behind the gateway and, consequently, restricted to the internal network. (17971)
Features
- [Neos Data Exchange] Redesigned data-import mapping and import settings workflows. (18131)
Fixes
- [Security] Fixed forwarded-header handling so
InternalUseOnlyserver methods are properly isolated behind the gateway. (17971), closes 33655 - [Security] Updated dependencies to fix CVE-2026-41148 (MED CVSS 5.3) (18036)
- [Security] Updated dependencies to fix CVE-2026-41907 (HIGH CVSS 8.1) (18036)
- [Security] Updated dependencies to fix CVE-2026-46681 (HIGH CVSS 7.2) (18036)
- [Security] Updated dependencies to fix CVE-2026-47759 (HIGH CVSS 8.7) (18036)
- [Security] Updated dependencies to fix CVE-2026-47761 (HIGH CVSS 8.7) (18036)
- [Security] Updated dependencies to fix CVE-2026-47762 (HIGH CVSS 8.7) (18036)
- [Security] Updated dependencies to fix CVE-2026-48109 (HIGH CVSS 8.2) (18036)
- [Security] Updated dependencies to fix CVE-2026-48502 (HIGH CVSS 8.2) (18036)
- [Security] Updated dependencies to fix CVE-2026-48506 (HIGH CVSS 7.5) (18036)
- [Security] Updated dependencies to fix CVE-2026-48779 (HIGH CVSS 7.5) (18036)
- [Security] Updated dependencies to fix CVE-2026-49451 (HIGH CVSS 7.5) (18036)
- [Security] Updated dependencies to fix GHSA-39q2-94rc-95cp (MED CVSS 5.3) (18036)
- [Security] Updated dependencies to fix GHSA-7jvp-hj45-2f2m (HIGH) (18036)
- Fixed datagrid row selection so right-clicking the current selected row no longer cleared other selected rows. (18063), closes 35007
- Fixed the requirement for remote UI views opened from another remote UI view to be explicitly exposed as remote entries. (18104), closes 35029
v3.1.5
Published on Jul 03, 2026.
Features
- [Neos Data Exchange] Added an option to automatically continue from validation to live integration when a validation pass completed without warnings or errors. Updated import completion notifications to reduce duplicate completion messages during chained execution. (17904)
- [Neos Data Exchange] Added enum-type support to data imports and propagated enum metadata through mapping and validation. Updated the technical demo to include journal type import fields. (17751)
- [Neos Data Exchange] Allowed import enum values to be resolved from multilingual captions in addition to canonical member names. Reported ambiguous caption matches more clearly. (17887)
- Configured the Helm chart to use a default Kubernetes RollingUpdate strategy with
maxSurge: 1andmaxUnavailable: 50%, and added configurable per-service deployment strategy overrides. See this article (17800) - Improved AI chatbot conversation continuity by persisting tool calls and tool results in thread history so follow-up prompts can reuse previous tool outputs. (17803)
Fixes
- [Helm] Switched RabbitMQ from a Deployment to a StatefulSet to provide stable pod identity and safer volume handling during upgrades. (17811)
- [Neos Data Exchange] Fixed import simulation/integration so unassociated save errors were appended to existing row validation messages instead of overwriting prior messages. (17840)
- [Neos Studio] Fixed server code generation failing to compile when an entity view embedded as a collection references its parent through an alternate key: a call to
RegisterBeforeSavingRuleswas generated on a repository for which the method was (correctly) not generated. (17776), closes 34542 - Fixed "equal" and "not equal" filters on Date and invariant datetime properties returning no results because of the timezone. (17772), closes 34501, 34573
- Fixed Date filters with a month or year selection (and "between" ranges) not covering the full period. (17772), closes 34501, 34573
- Fixed multitenant development startup so a second cluster remained reachable when Tenant Management was already running. (17769), closes 34591
- Fixed Remote Invoke not exposing the business message when the called cluster throws a business error. (17784), closes 34606
- Fixed wrong tenant settings used for sequences and database exception converter in background server methods. (17874), closes 34734
v3.1.4
Published on Jun 23, 2026.
Fixes
- Delayed unavailable-tenants warmup and refresh calls in the development server proxy until the Tenant Management backend had started, preventing premature
getunavailabletenantsfailures during startup. (17641), closes 34121 - Fixed a crash when opening an inherited UI view whose base event rule calls a UI view method: the method was not found at runtime because the base rule resolved its members one inheritance level too high. (17695), closes 29928, 34464, 34509
- Fixed client generation failing for UI views with an inheritance chain of three or more levels. (17695), closes 29928, 34464, 34509
- Fixed SignalR notifications sent through the Redis backplane to preserve invocation IDs, allowing client response flows to work correctly in production. (17681)
v3.1.3
Published on Jun 17, 2026.
Features
- Added the ability to customise tenant selection screen according to each tenant status (disabled via tenant manager or currently unavailable, eg: migrating). See this article. (17605)
Fixes
- [Helm] Required authenticationSecret in Helm chart values and rejected empty values. (17604), closes 34342
- [Neos Studio] Fixed dependency analysis reporting UI view event rules with
Allaccessibility instead ofFrontend, which suppressed accessibility-narrowing suggestions for elements referenced only from those event rules. (17624) - [Neos Studio] Fixed report designer preview/export configuration sheets to persist tenant and generation-config selections more reliably, prompt before losing unsaved changes, and refresh stale cached selections more safely. (17517), closes 33687
- [Neos Studio] Fixed the unused-elements search incorrectly reporting string resources and constants as unused when they were referenced only in UI view event rules. (17570), closes 34320
- [Neos Studio] Partial generation now regenerates the child UIViews that inherit from a modified parent UIView, so editing an inherited action no longer requires a full generation. (17549)
- Fixed a memory leak in Semantic Kernel dependency injection configuration. (17576)
- Fixed backend monitoring rule notifications so concurrent executions were tracked safely and failures were still reported when a rule threw an exception. (17565), closes 33656
- Fixed disabled tenants displaying in tenant selection screen. (17605), closes 34071
- Fixed lookup create/edit write-back so saved reference values were applied to the original bound record even if the current record changed while the separate frame remained open. (17561), closes 34179
v3.1.2
Published on Jun 09, 2026.
Features
- Added a load-more action to lookup dropdown. (17401)
Fixes
- [Neos Studio] Fixed native UI views reopening on the Template section instead of the Header section. (17416), closes 34041
- [Tenant Management] Fixed user synchronization during tenant creation and tenant migration state changes to prevent unintended cross-cluster sync events. (17417)
- [User Permissions] Removed the automatic synchronized status update because this property could drift from the actual state depending on the cluster, making it unreliable. (17417), closes 34043
- Fixed
Search.IsMatchrewriting for captured subqueries so QuickSearch worked when retrieving rules reused a capturedIQueryablesubquery. (17420), closes 33460 - Fixed calculable
input-numberinput so replacing a fully selected value with a negative number no longer concatenated with the previous value. (17396), closes 34016 - Fixed nested cross-cluster lookup filters so suggestions and results were displayed when total-count retrieval was disabled. (17471), closes 34099
- Fixed Oracle stored procedure execution to bind parameters by name instead of declaration order. Added a Technical Demos example for executing a cross-database subtraction stored procedure. (17359)
- Updated module federation plugin (microfrontends) to fix culture of date and number inputs. (17303), closes 33948
- Updated module federation plugin (microfrontends) to fix lazy loading of remote entry scripts. (17303)
v3.1.1
Published on Jun 02, 2026.
Features
- [Documentation] Added documentation for Redis including persistence, troubleshooting and Backup and restore sections. (17280)
- Added transpilation support for
LookupDefinitionand the generatedLookupsclass, allowing UI code to reference lookup definitions throughLookups.*. (17291)
Fixes
- Database migrations for the cluster have been moved to background processing. (17298), closes 33741
- Fixed API validation for decimal properties when minimum or maximum values used a dot decimal separator. Prevented culture-dependent failures in decimal range constraints. (17347), closes 34014
- Fixed filter bar so server filter chips are displayed in advanced mode. (17333), closes 33958
- Fixed the error in the cache building process. (17298)
v3.1.0
Published on May 27, 2026.
Key insights
Welcome to the 3.1 release of Neos. There are many updates in this version that we hope you'll like, some of the key highlights include:
- Indexable computed columns
- Observability architecture around OpenTelemetry
- Support Center
- C# tooling cleanup around
.slnx - Neos Studio
- Dynamic report templates
- More performant lookups
- Tenant resolution caching
- AI model refresh
- User Permissions
- Standard components
- Neos CLI
- Native UI views
- Background processing workflows
- Run-once tenant migration interceptors
- NeosDataExchange module
- What's new in documentation
Indexable computed columns
Neos 3.1 makes it easier to optimize queries generated by the framework by relying on computed columns that can be indexed.
The important idea is that the framework keeps generating business-oriented queries from the client side, but the database can now rely on precomputed values instead of recalculating the same transformations during every query.
Two common cases are especially useful:
- extract one language from a
LocalizableStringinto a dedicated computed column so filtering and sorting on that language stay efficient, - store a normalized form of a string in a computed column so framework-generated prefix searches, especially in lookups, can remain performant.
For the practical modeling patterns and examples, see Indexing with computed columns.
Observability architecture around OpenTelemetry
Neos 3.1 introduces a unified observability architecture for backend .NET processes. Telemetry (traces, metrics, logs) is now routed through a single internal OpenTelemetry Collector, replacing the previous fragmented approach where each observability backend required its own configuration path.
A new observability section in the Helm chart centralizes all collector and OTLP settings:
observability.collector.modecontrols collector deployment:auto(default — deploys the collector when a legacy backend is enabled),enabled, ordisabled(direct OTLP mode).observability.otlpexposes endpoint, protocol, per-signal overrides, and pass-through SDK/Serilog arguments injected into all backend pods.- The internal collector previously named
neos-dapr-otel-collectorhas been replaced by the unifiedneos-otel-collector, which handles both Dapr inter-cluster traces (Zipkin receiver) and backend OTLP telemetry. - When OTLP is active, the Application Insights .NET SDK is automatically disabled to prevent duplicate telemetry emission.
For full routing rules, signal flags, configuration examples, and the upgrade checklist, see OpenTelemetry collector configuration.
Observability breaking changes
instrumentationKeySecret removed from Application Insights configuration
The interClusterCommunication.appInsights.instrumentationKeySecret property has been removed. It was deprecated since Neos 2.2. Replace it with connectionStringSecret:
# Before
interClusterCommunication:
appInsights:
enabled: true
instrumentationKeySecret: my-secret # removed
# After
interClusterCommunication:
appInsights:
enabled: true
connectionStringSecret: my-secret
The secret must expose the APPINSIGHTS_CONNECTION_STRING environment variable.
Internal OpenTelemetry Collector renamed
The Kubernetes deployment and service previously named neos-dapr-otel-collector have been replaced by neos-otel-collector. Any hardcoded references to the old name must be updated:
| Old value | New value |
|---|---|
http://neos-dapr-otel-collector:4317 |
http://neos-otel-collector:4317 |
http://neos-dapr-otel-collector:9411 |
http://neos-otel-collector:9411 |
neos-dapr-otel-collector-configmap |
neos-otel-collector-configmap |
This only affects deployments that referenced these names explicitly — for example, in custom appsettings.json overrides or external Dapr configuration. Standard Helm-managed deployments are updated automatically.
Support Center
Neos 3.1 introduces the Support Center, a new independent cluster dedicated to application support.
It provides an end-user error reporting feature automatically used by the framework error modal, along with a back-office to review reported errors and configure email alerts.
This cluster is primarily intended for production environments and gives support teams a centralized place to investigate incidents. Its scope may expand over time with additional support-related features.
For more information, see Support Center.
C# tooling cleanup around .slnx
Neos 3.1 completes the cleanup that started with the move to .slnx solution files. Beyond the format change itself, the framework now removes several legacy solution-generation patterns that used to coexist with the new model.
In practice, this means teams should update scripts and pipelines that still expect .sln or .slnf files, stop relying on GeneratedProjects.slnx, and no longer expect per-module generated solutions inside businessAssembly folders.
For generated solution structure examples, see Generated solution structure.
Neos Studio
Smarter module node interaction in the main tree-view
Navigating large modules in the Neos Studio main tree-view is now more predictable. Clicking on a module node simply expands or collapses it, instead of opening the module — a behavior that often got in the way when browsing for a specific item.
Opening a module is now handled by a dedicated Open button that appears when hovering the node, making the two interactions explicit and conflict-free.

Preview reports with reusable generation settings
Neos Studio now lets you keep a dedicated Preview and export configuration directly next to a report. The designer can auto-pick the most relevant configuration for the current datasource and tenant, then reuse it for preview and portability exports.
A configuration can cap the number of retrieved rows, apply an OData filter, and pass entity view parameters without modifying the report template itself. This makes large-report preview much safer and removes a lot of repetitive setup when you need realistic sample data.

For more information, see Configure preview and export in the report designer.
Better build diagnostics and source-file navigation
Neos Studio now surfaces server compilation issues directly in build results with file, line, and column details, which shortens the feedback loop when a generation or compilation step fails.
It also improves the handoff to the editor: source files can now be opened directly from the Build Result Viewer, and business class files are opened through the VS Code extension.
Dynamic report templates
Neos 3.1 introduces a dynamic report template management system through the NeosReportCustomization module. It allows cluster developers to register standard report templates and advanced end users to create customized copies, enable or disable templates, and upload their own .mrt files — all without any code deployment.
At development time, cluster developers can:
- declare classes of reports via the
ReportFamilyenumeration, - register standard templates by calling
AddStandardReportTemplatein their module'sStartup.cs - and use the
SelectReportTemplateAsyncshared UI method as the entry point to open a report
At runtime, the framework resolves which template to use based on the available enabled templates for a given ReportFamily:
- If a single template is available, it opens directly.
- If multiple templates are available, a selection UI lets the user choose.
- If none is available, a warning is displayed.
For more information, see Dynamic report templates.
More performant lookups
Neos 3.1 improves lookup suggestions in three concrete ways:
- the total count is no longer requested by default, which avoids an extra cost on every typed value,
StartsWithlookup searches can now be optimized properly by relying on indexed computed columns,- and a lookup can now search on a property different from the displayed one.
This last point is especially useful when you want efficient StartsWith behavior on a dedicated search field while keeping the displayed value user-friendly. It also keeps the least bad possible behavior for Contains searches, with support for word-by-word matching regardless of word order.
In short, lookups keep the same user experience, but developers now have much better control over what is displayed, what is searched, and how to keep suggestions efficient on larger datasets.
If you want the practical modeling patterns and examples, see Lookup performance and Indexing with computed columns.
Tenant resolution caching
Neos 3.1 significantly strengthens tenant-resolution caching for multitenant environments. The rebuild model is now more complete, with clearer monitoring, explicit recovery flows, and self-heal behavior when the distributed cache or the usual rebuild path is not available.
For operational details, see Tenant resolution caching.
AI model refresh
Neos 3.1 refreshes the framework AI model baseline by moving framework clusters to GPT 5.4 and GPT 5.4 Mini, while also removing a set of older or unused model definitions.
User Permissions
New "Use Enter as Tab" user setting
Neos 3.1 introduces a built-in Use Enter as Tab preference in the user settings UI of the UserPermissions module.
When enabled, pressing Enter moves the focus to the next field, similarly to Tab. This is intended for keyboard-driven data-entry workflows where users move rapidly through forms and want to keep their hands on the main typing keys.
The setting is disabled by default and can be exposed to end users through the UserSettingsUI. For more information, see User Settings.
Standard components
Persistent splitter layouts with size-model
Until now, resizing a splitter panel was a one-shot deal — the layout snapped back to its default the moment the user navigated away. Neos 3.1 fixes that with the new size-model attribute, which turns any panel into a fully reactive, two-way bound layout element. Every time the user finishes dragging, the new size flows back through a computed setter (or a field), giving the UI view complete control over where to store it — local storage, a user-preference service, or anything else. The layout the user crafted is the layout they come back to.

For usage patterns and examples, see Splitter panel — Two-way binding the panel size.
Neos CLI
Metadata check formatting
Neos 3.1 improves neos check-metadata so it can compare and optionally rewrite formatted metadata values inside YAML files, including embedded C# snippets and XML UI templates.
Use --format to detect formatting drift without rewriting files, or combine it with --fix to normalize metadata in place. Three modes are available:
allreformats both XML templates and embeddedC#codetemplate-valuestargets XML templates onlycsharp-valuestargets embeddedC#code only
The same capability can also be enabled in Neos Studio through the cluster YAML configuration so metadata is auto-formatted when it is saved from the graphical editor:
YamlPersistence:
TemplateValueAutoFormatting: true
CSharpValueAutoFormatting: true
Enable one or both settings depending on whether you want automatic normalization for XML templates, embedded C# code, or both. This makes metadata cleanup safer during large refactors and reduces noisy diffs caused by inconsistent formatting, including edits made directly in Neos Studio.
For more information, see Metadata check.
Native UI views
Neos 3.1 introduces native UI views, a new authoring mode that lets you build a UI view as a plain Vue component instead of the XML template editor.
This mode is ideal for complex, highly interactive views that would be difficult to implement in XML, or for teams that prefer working directly with Vue. It provides full access to Vue's capabilities while still integrating with the Neos framework.
For more information, see Native UI view.
Background processing workflows
Neos 3.1 adds a BackgroundService-based execution mode for background server methods when Dapr Workflow is disabled.
This gives the framework a local execution path inside the task runner, with dedicated configuration to switch between BackgroundService execution and Dapr Workflow support depending on the runtime setup.
For more information, see BackgroundService execution mode.
Run-once tenant migration interceptors
Neos 3.1 introduces IRunOnceTenantDatabaseMigrationInterceptor, a dedicated interface for tenant post-migration logic that must be applied only once per tenant instead of after every successful migration.
This is especially useful for one-shot data corrections or initialization steps that should be tracked explicitly across tenant migrations. Neos persists one execution marker per tenant and per interceptor name, so the same logic is skipped on subsequent migrations once it has already completed successfully.
Because the execution marker is stored after the interceptor succeeds, implementations must still be idempotent and retry-safe if the business logic succeeds but marker persistence fails afterwards.
For implementation details, storage format, and maintenance guidance, see Executing a tenant database migration interceptor only once per tenant and Tenant migration.
NeosDataExchange module
Neos 3.1 expands the NeosDataExchange module beyond export customization by introducing a complete CSV import workflow based on templates, staging, validation, and integration.
The module now provides:
- interactive configuration for server data export,
- an import workspace with template management and column mapping,
- staging-based execution with row-level validation summaries,
- integration options with background execution support.
For implementation and usage details, see Data exchange.
What's new in documentation
This release includes significant documentation improvements:
New articles
Large-volume import and data adjustment workflows - Explains how to implement high-throughput import workflows using batch processing, scope recycling, and the new
SaveOptionsto fine-tune the save pipeline for performance-sensitive scenarios.Query transformation - Documents the
GetTransformedListAsyncmethod, which enables arbitrary LINQ projections — groupings, aggregations, distinct selections, and custom projections — directly against the data source, with multiple overloads and practical examples.Manager - Comprehensive documentation for the Manager development dashboard: service monitoring, state indicators, REST API call inspection, Swagger access, real-time statistics charts, distributed tracing integration with Jaeger, and server log viewing.
Customize the local collector, Jaeger and Prometheus - Explains how to customize the local OpenTelemetry Collector, Jaeger, and Prometheus configuration files used by Neos development tooling, with practical examples for span enrichment, noise reduction, and local trace investigation.
Data import how-to - Added a practical guide describing how to configure and run data imports with templates, mapping, validation, and integration workflows.
Data import pipeline and runtime - Added a detailed technical walkthrough of the NeosDataExchange import architecture, including runtime stages, staging model, validation/integration behavior, and operational guidance.
Updated documentation
Best practices for data importing - Added a new "Save options for bulk imports" section documenting how to use
SaveOptionsto configure validation rules, event rules, and query logging for high-volume import workflows, including post-migration data adjustment scenarios.Unit of work pattern - Added a new "Save options" section documenting the new
SaveOptionsclass (available since Neos 3.1), covering all available flags, usage withSaveMode, and convenience methods (SaveOrThrowAsync,TrySaveAsync).Helm configuration - Added
taskRunnerresource configuration properties for the License Management service, and extended the reference resource sizing table to cover License Management, Task Scheduler, and Neos AI services.Navigation - Added a new "Common patterns" section illustrating how to refresh a calling list after an add or edit UI closes, using navigation callbacks with partial and full reload strategies.
Data exchange - Expanded the module documentation to cover the full NeosDataExchange scope, including export configuration and the complete CSV import flow (templates, mapping, staging, validation, integration, and extension points).
Breaking changes
- [Helm]
instrumentationKeySecretremoved from Application Insights configuration. See this article. (16456) - [Helm] Internal OpenTelemetry Collector renamed. See this article. (16456)
- [Neos Studio] Removed the template editor assistant and end-to-end test creator assistant. (16904)
- [NeosAICore] Removed unused and old AI models (
AzureAIInferenceGpt5Mini,AzureGpt41Nano,AzureGpt5,AzureGpt5Mini,AzureGpt5Nano,Gemini25Flash,Gemini25Pro,MistralMedium,OllamaMistralSmall32). If one was used, recreate it in one of your modules. (16910) - [User Permissions] User information has been moved from the
Contextdictionary to theClientOnlyContextdictionary in theon-authenticatedAPI response. (16902) - Enum properties without an
EnumTypeNamenow raise an error. (16838) - Migrated
.slnand.slnfsolution files to.slnx, a new and simpler format. Since the.slnand.slnffiles have been deleted, you will need to review your pipelines and scripts to replace.slnand.slnfto.slnx. See this article for more information about the new format. (15659) - Removed
--omnisharp(-o) option of theneos runcommand since IntelliSense without OmniSharp is stable. (15975) - Removed
GeneratedProjects.slnxgenerated solution. (16350) - Removed the generation of solution files from the businessAssembly folder of each module. You can still create them manually if needed. Existing ones will not be deleted automatically. (15976)
Features
- [C# Dependencies] Replaced the custom ModelContextProtocol.AspNetCore fork (0.5.0-neos.3) with the official 1.1.0 SDK in server projects to align MCP support with the upstream release. (16519)
- [C# Dependencies] Updated the recommended .NET SDK to 10.0.201 and .NET runtime Docker base images to
mcr.microsoft.com/dotnet/aspnet:10.0.5-alpine3.23. (16354) - [Chore] Updated System.CommandLine version to
2.0.3. (16107) - [Documentation] Added documentation about deployment, rollback, and tenant migration workflows. (17012)
- [Helm] Added the
clusters.dapr.workflowproperty to configure specific cluster sidecar workflow behavior (see this article). (14255) - [Helm] Added the ability to configure or disable the creation of Prometheus
PodMonitorto expose Dapr sidecar metrics. See this article. (16021) - [License Management] Automatically added mandatory commercial solution modules to existing licenses and enabled existing license modules when they became mandatory. (17178)
- [LicenseManagement] Added subscription lifecycle fields (Subscription Date, Expiration Date, Status, and Holding Period) to licenses. (16166)
- [Neos Studio] Added server compilation issue surfacing in build results with file/line/column details, and enabled opening source files directly from the Build Result Viewer. (16506)
- [Neos Studio] Enabled organizing server method implementation files in subfolders. (15764)
- [Neos Studio] Added automatic scalar property generation on collection relations, aligning behavior with reference relations. (16445)
- [Neos Studio] Added computed column support across Neos Studio, code generation, migrations, and runtime query translation. Improved lookup configuration with dedicated search properties, optional suggestion counts, and more resilient suggestion loading. (17070)
- [Neos Studio] Added detailed metadata to save validation errors returned by generated entity view APIs, including entity view name, entity name, flattened key properties, and the failing item path for nested references and collections. (16757)
- [Neos Studio] Added splitters between the main grids and the right-hand side panels in the following screens: DataTable, Entity, EntityView, UIView (Properties and StyleRules), DataObject, EntityAlternateKey, Interface, Module, ProgrammableObject, StringResourceList and UIComponent. (16100)
- [Neos Studio] Added support for native Vue-based UIViews in Neos Studio, (16572)
- [Neos Studio] Added VS Code extension-based opening for business class files instead of relying on backend launch. (16694)
- [Neos Studio] Adds report-generation configuration support for Designer preview and Portable report exporting (OData filter, EntityView parameters, max-items behavior), plus related Designer UI/editor flows, configuration auto-selection according to a pertinence scoring heuristic, and client/server reporting plumbing. (16387)
- [Neos Studio] Disabled the UI template Format Document command when template value auto-formatting was enabled for the edited cluster. (17164)
- [Neos Studio] Exposed
SourceBindingModein the entity view properties options and prevented strictly read-only entity views from writing back TwoWay-bound scalar properties. (17202) - [Neos Studio] In the main tree-view, clicking on the module nodes expands instead of opening the items: the opening of the module is taken care of by a dedicated 'Open' button that shows when hovering the nodes. (15236)
- [NeosAICore] Added
AzureGpt54,AzureGpt54MiniAI models. (16910) - [NeosNotificationCenter] Added notification forwarding from the nested cluster’s notification center to the main cluster. (15922)
- [NeosReportCustomization] Added a module for tenant-level management for standard and custom report templates, including copy creation, activation controls, and runtime selection when multiple templates are available. Provided capability to load customized
.mrttemplates from the database alongside the existing file-based standard reports of the application. (16843) - [NeosStudio] Added a complete Visual Studio solution including server-side and UI code. (16083)
- [NeosStudio] Added display of the property name of an event UI rule in the metadata tree label. (16208)
- [Observability] Added
neos_tenant_cache_rebuild_requests_totalmetric (see this article). (17012) - [Observability] Unified observability architecture with Open Telemetry. See this article (16456)
- [Tenant Management] Added new metric for tenant cache rebuild duration. See this article. (16405)
- [Tenant Management] Added
POST /api/v1/methods/resetalltenantcacheendpoint to force rebuilding all tenant cache. See this article. (17012) - [Tenant Management] Added
TenantsResolutionCacheFullRebuildUseTaskRunnerByDefaultandTenantsResolutionCachePartialRebuildUseTaskRunnerByDefaultto override tenant cache building dispatch mode (task-runner vs backend service). See this article. (17012) - [Tenant Management] Added an endpoint GET
methods/tenantscacherebuildingstatusto check tenants state stores rebuilding status. See this article. (16403) - [Tenant Management] Added new metric for tenant cache rebuild state. See this article. (16366)
- [Tenant Management] Improved migration error display in the migration summary by adding inline actions to copy and view full error details. (16319)
- [User Permissions] Added a user preference allowing the Enter key to behave like the Tab key for changing focus. (16437)
- [VSCode extension] Added the module that overrides a UI event rule in the VS Code extension explorer. (16250)
- Added
AddNewmethod to theIViewModelPropertiesinterface to allow adding unbound UI view properties programmatically. (15665) - Added
AddValidationMessage,RemoveValidationMessage,ClearValidationMessages, andClearPropertyValidationMessagesmethods to theIUIViewinterface for manual control of validation messages. (15665) - Added
FilterComponentproperty toIViewModelFilterableAttributeinterface to set the default display mode of the filter component. (15564) - Added
FilteringBehavior.ExecutionSideoption to the ViewModel to enable client side filtering. (16015) - Added
Nonereasoning effort level. (16910) - Added
ReloadDataAsyncmethod toIViewModelinterface so specific records could be refreshed without reloading the entire list. (16610) - Added
SaveOptionssupport toIUnitOfWorksave operations to control save pipeline behavior (EnableValidationRules,EnableEventRules,EnableQueryLogging) with new overloads onSaveAsync,TrySaveAsync, andSaveOrThrowAsync. (15963) - Added
SetValuemethod to theIUIViewinterface to set an item's property value by property name. (15665) - Added
WithUrlParameter/WithUrlParameterson theNavigationOptionsclass. The frame parameters will show as being prefixed with anf_in the URL to distinguish them from global parameters. They can be accessed via theUrlContextproperty of the view-model. (15702) - Added a
BackgroundService-based execution mode for background server methods when Dapr Workflow was disabled. Added configuration to switch between local background execution and Dapr Workflow support. (17091) - Added a complete Technical Demos example for end-to-end background processing with real-time batch/task progress tracking, manual retry, and generated dashboard results. (16258)
- Added a configuration option to disable line-break validation for single-line text fields. (15920)
- Added a full workflow guide and idempotency guidance in the backend documentation. (16258)
- Added a new filter component for lookup properties. (15612)
- Added a propagation of current UIView id changes to the VSCode integration. (16763)
- Added a TechnicalDemos example that aggregated multiple asynchronous report generations into a single merged PDF or ZIP with one final notification. Added documentation describing the batch report generation pattern. (16684)
- Added AI support to read and apply the current screen configuration so chatbot interactions could update the active layout, filters, sorting, and style rules. (16568)
- Added an option on AI agent to allow attachments. (16090)
- Added backend entity validation to enforce MaxLength constraints on string and localizable string properties, with a configuration switch to disable enforcement. (15966)
- Added configurable
sizesupport for filter-bar chips and enabled custom filter icons for filterable UI view properties and entity view parameters. (17051) - Added generation warnings (M0067/M0068) to detect multiline inconsistencies between metadata and UI templates. (15977)
- Added new
neos_unavailable_tenantmetrics. See this article. (17162) - Added new lookup on TechnicalDemos (16911)
- Added new metrics for tenants accessor. See this article. (15876)
- Added quick search filter operator option (
Contains,Starts withorEqual to) to entity view properties. (17008) - Added several display modes to the date filter component:
Default(existing mode),CalendarDay(calendar with day view),CalendarMonth(calendar with month view),CalendarYear(calendar with year view). (15564) - Added SQL query in Jager traces. (15898)
- Added support for executing multiple server-method subscribers for the same event in a deterministic order. (15699)
- Added support for linked second values on entity view parameter range filters, including range chip rendering and synchronized updates for start/end date parameters. (17055)
- Added support for report-generated interceptors to post-process generated reports before end-user notifications or server-side callbacks. (15561)
- Added support for run-once tenant migration interceptors and surfaced executed/skipped interceptor statuses in tenant migration history. (17214)
- Added support for targeting a specific
filter-barinstance with anidand assigning filters to it throughFilterBarId. Updated filter bar examples and template reference accordingly. (17054) - Added support for triggering background server methods via Pub/Sub subscriptions. (15699)
- Added the
calculabletype to theinput-numbercomponent to enable calculations to be performed directly in the input. (15593) - Added the
input-number-typeattribute to thedatagridcomponent. (15593) - Added the
size-modeltwo-way bound attribute for thesplitter-panelso resized panel sizes could be persisted after drag operations. (16546) - Added the
typeattribute to theinput-numbercomponent. (15593) - Added UI component snippets to UI template completions. (16992)
- Added VSCode-aware
Ctrl+Shift+Enavigation to open the Neos Studio UIView directly from the app. (16763) - Added warning logs when entity text validation checks are disabled and incoming values would otherwise violate multiline or max length constraints. (17202)
- Added WithClientOnlyContextValue method on TenantResolvedResult to populate the client-only application context so UI-only data remains available in the client without being resent on subsequent API calls. (16902)
- Added Yaml persistence event rule migration to a C# project. (15377)
- Blocked gateway routing to unavailable or migrating tenants by returning HTTP 503 instead of forwarding requests. See this article. (17162)
- Enabled automatic startup of the reporting server when proxy requests targeted nested cluster reporting endpoints. (16359)
- Enabled extra client-side UI logs only when the
?debugURL parameter was present, reducing default console noise and improving load/save performance. (16966) - Implemented documentation-variable substitution from
DocumentationVariablesin generated frontend string resources andUIView.Documentationvalues. (16379) - Improved
neos check-metadatawith formatting modes for XML templates and embeddedC#code, and added cluster YAML settings to enable the same auto-formatting behavior in Neos Studio when saving metadata from the graphical editor. (16943) - Improved
neos setupby always forcing development certificate creation, making the--force-create-dev-certoption obsolete. (16945) - Improved
neos setupto handlenpm -voutputs more robustly when warnings are printed before the npm version. (16945) - Improved authentication in development mode: Neos Studio API requests for a cluster requiring authentication are no longer authenticated; only access to the cluster itself requires authentication. (16032)
- Improved filter bar to use character casing, whitespace handling, and max length constraints from UI view string and localizable string properties. (16371)
- Improved Windows
neos setupreliability by forcing thewingetsource for Dapr CLI, Memurai, and .NET SDK installations. (16945) - Moved Neos version metadata in generated .gen files to a single header line to reduce merge conflicts while keeping legacy format parsing compatible. (16005)
- Replaced the AI models used in Framework clusters with GPT 5.4 and GPT 5.4 Mini. Previously, GPT 5.2, GPT 4.1, GPT 4o and GPT 4o Mini were used. (16910)
- Updated the
radio-groupstyles to use theCheckedBackgroundcolor from theCheckboxcomponent to color the radio input. (15683)
Fixes
- [Deployment] Added missing environment configuration in Dockerfiles for backend and taskrunner. See this article. (16348), closes 32468
- [Helm] Fixed Dapr sidecar metrics not scraped by Prometheus. (16021), closes 32035
- [Helm] Fixed volume name too long error while deploying chart. (16261), closes 32383
- [Helm] Fixed Zipkin pod OOM crashes in production by configuring JVM heap settings to automatically detect container memory allocations (16140), closes 32267
- [Neos AI] Clarified the
NeosTextTaskPerformerprompt so task-only requests explicitly generated new text when no source text was provided. Removed fixed punctuation after{{task}}to avoid misinterpreting task instructions. (17240), closes 32343 - [Neos Studio - VsCode] Fixed VS Code navigation handling so UIView default open mode is applied before delegation, preventing popup navigations without an explicit target from being redirected to the extension. Initial route-based view openings were kept local to avoid unintended delegation loops. (16364), closes 32467
- [Neos Studio] Fixed StringResource dependency detection so that string resources used as UI action panel group captions are correctly resolved. (15779), closes 30840, 30987
- [Neos Studio] Excluded the current action from parent-action selectors when configuring
ChildOforRelativeToaction locations. (17210), closes 33769 - [Neos Studio] Fixed C# editor completion help for entity view source expressions. (17222), closes 33469
- [Neos Studio] Fixed data table columns datagrid virtualization. (16639), closes 32855
- [Neos Studio] Fixed data table name validation to skip name format checks when the table was marked as excluded from migration. (16476), closes 32780
- [Neos Studio] Fixed default Entity View MCP tools from being kept under the previous name after an entity view rename. (16071), closes 32111
- [Neos Studio] Fixed Json reporting data export from the Report Designer. (15757), closes 30289
- [Neos Studio] Fixed layout shift in the VS Code extension when opening modal dialogs. (16840), closes 33172
- [Neos Studio] Fixed modification indicator badge in Report and ReportStyle designers. (16387), closes 30903, 32944, 32977
- [Neos Studio] Fixed persistance of tenant selection across refreshes of the Datasource in Report and ReportStyle designers. (16387), closes 30903, 32944, 32977
- [Neos Studio] Fixed status property validation to resolve the configured status property through base-entity inheritance, preventing false errors when the property is defined on an ancestor entity. (16501), closes 32604
- [Neos Studio] Fixed tenant API path detection for tenant identifiers containing
_or-. (17220) - [Neos Studio] Fixed the
DatagridWidthdocumentation for UI view properties. (17081), closes 32440 - [Neos Studio] Fixed the definition of the tags for a menu item on the menu screen. (16612), closes 32836
- [Neos Studio] Fixed the lookup free-value property selection to return UI view properties with their correct data types, including inherited entities. (16019), closes 31897
- [Neos Studio] Fixed the multi-line control error when saving a function with authorization condition. (15950), closes 32020
- [Neos Studio] Fixed UI Template editor IntelliSense so selecting a suggestion after partially typing a bound expression no longer dropped characters. (16388), closes 32572
- [Neos Studio] Removed expensive client-side duplicate-name prevalidation checks in property and data column UIs, improving responsiveness on large embedded collections. (16984)
- [NeosAI] Fixed an issue that caused answers to display incorrectly. (15994), closes 32088, 32093
- [NeosStudio] Fixed an error when opening the YAML editor (Ctrl+Shift+Y) in the VS Code extension. (16069), closes 32118
- [Security] Updated
NuGet.*package references to7.0.3across the affected .NET projects to addressGHSA-g4vj-cjjj-v7hg. (16793), closes 33222 - [Studio] Fixed the layout of the "Menu entry" view in the right-hand side panel of the Menu editor: the code editor wasn't filling the available vertical space. (15702)
- [Task Scheduler] Fixed tasks failing to start with Dapr version 1.16+. (16124), closes 32233
- [Tenant Management] Added synchronous tenant-cache rebuilding for partial rebuilds (eg: during tenant migration). (17012)
- [Tenant Management] Fixed cluster lookup filtering by aligning the cluster/version display label format. (16993), closes 33441
- [Tenant Management] Fixed tenants cache not rebuilding correctly when firing multiple database migrations. (16403), closes 32470
- [Tenant Management] Improved tenant cache rebuild reliability by clearing tenant cache completion markers before triggering a full rebuild, so tenant data can fall back to the database while caches are being reconstructed. (16877)
- [Tenant Management] Improved unavailable-tenant cache recovery after Redis subscription failures. (17220), closes 33766
- [Tenant Management] Optimized tenant-user state store rebuilds by batching tenant/cluster retrieval and processing normalized user logins once, reducing cache reconstruction overhead. (16423)
- [Tenant Management] Renamed
ExecutionTimeproperty caption from "Temps d'exécution" to "Heure d'exécution" in french. (15939) - [UI Customization] Fixed auto-save custom view flow by skipping explicit default-view assignment authorization checks during the internal save process. (16419)
- [UI Customization] Fixed auto-saved personal view updates so newly added UI view fields were persisted correctly when linked to an unbound entity view. (16522), closes 32808
- [UI Customization] Fixed custom view ownership checks to compare user identifiers case-insensitively, so users can edit their own custom views even when casing differs. (16408)
- [User Permissions] Fixed the "Default printer" field and "Report print settings" tab of the user settings UI, which are now hidden when not in the desktop application (tauri). (15755), closes 31792
- [User Permissions] Handled distributed state store failures in permission cache writes so permission resolution can continue when the cache is unavailable. (17107), closes 33691
- [User Permissions] Prevented automatic authentication-provider synchronization failures from blocking user saves and tenant creation. (16680), closes 33041
- Added service account documentation. (16303)
- Disabled sorting for grouped scalar lookup-backed properties to avoid OData errors. (16429)
- Fixed
horizontal-layoutchildren usinglayout:width="fill"to keep consistent widths when multiple siblings were set to fill. (15972), closes 31052 - Fixed
input-localizable-stringso the same value entered for multiple languages is correctly persisted on Firefox. (17114), closes 33667 - Fixed
neos check-metadataso it only considered YAML files located under modulemetadatadirectories. This prevented unrelated YAML files from being reported as missing or obsolete. (17024), closes 33588 - Fixed AcceptEntityViewChanges in the XUnit test framework so manually assigned IDs are preserved instead of being overwritten during change acceptance. (16120), closes 32254
- Fixed alternate key resolution for inherited entities so keys defined on base entities were correctly available in Designer views and generated facades. (16654), closes 32841, 32842
- Fixed an issue in multilingual clusters where localized string fields (lookup and datagrid) displayed the neutral language (first configured language) instead of the user's current language. (15885), closes 31841
- Fixed an issue in TPH metadata generation where the table name was incorrectly initialized for derived entities. (15823), closes 31644
- Fixed an issue related to the generation of the MCP class of a server method. (16004), closes 32032
- Fixed an issue that occurred when initializing foreign keys from composite alternative keys. (16767), closes 33195
- Fixed an issue where a Vscode tab would not close after deleting an element from Neos Studio. (16763)
- Fixed an issue where all UI views implicitly used by a UI view in micro-frontends had to be listed in the
ExposedUIViewsconfiguration. (16150) - Fixed an issue where editable reference properties without a sub-view were incorrectly stripped from data sent to the server, causing save errors. (15779), closes 30840, 30987
- Fixed an issue where the folder of a dependent external module was incorrectly determined in clusters using symlink to reference modules. (16083), closes 31498
- Fixed an issue where validation rules were not triggered when the validation rule name matched a property name. (15942), closes 32002
- Fixed automatic vertical scrolling during datagrid row drag-and-drop when hovering near the top or bottom edges. (16384), closes 32561
- Fixed background server method parameter deserialization to correctly populate getter-only collection properties from JSON payloads. (16213), closes 32336
- Fixed bound entity view serialization by excluding the internal Entity property when using System.Text.Json. Added unit tests to validate consistent behavior with both System.Text.Json and Newtonsoft.Json. (16526), closes 32817
- Fixed change tracking for reference assignments that keep the same scalar key. (16985), closes 33440
- Fixed chatbot attachment handling to support non-image files (including PDFs). Users can now attach PDF files in chatbot conversations. (16536), closes 32820
- Fixed chatbot message deserialization for follow-up questions. (16407), closes 32599
- Fixed client library code backing the transpilation of a property's FilterDefaultOperator; it should be a string (Example usage:
Properties.MyAmount.FilterDefaultOperator = FilterOperator.GreaterOrEqual.ToString();). (16387), closes 30903, 32944, 32977 - Fixed client library code for transpiled
DateTimeconstructor with optional milliseconds. (16597), closes 32892 - Fixed client-side total summaries so watched getter-backed properties recalculated their aggregations when values changed. (16560), closes 32859
- Fixed code generation when an embedded collection is not bound to an entity. (15892), closes 31452
- Fixed contextual action handling so item-scoped actions no longer targeted the wrong selection after duplication or navigation. (17042), closes 33034, 33176
- Fixed data loading using the configured page size when filters or sorting changed, while preserving the loaded item count for manual refresh in infinite scrolling scenarios. (16686), closes 33092
- Fixed Datagrid infinite scrolling fallback to the view model setting when the
infinite-scrollingprop isnull. (16429) - Fixed Datagrid infinite scrolling so rows kept loading while scrolling inside expanded server-side groups. (16873), closes 33308
- Fixed datagrid refresh when validation messages are applied. (16113), closes 32177
- Fixed datagrid row detail height recalculation to follow asynchronous detail content changes and reload scenarios. Detail rows now resize more reliably without relying on a short timeout window. (16443), closes 32179
- Fixed datagrid row validation indicator style. (15942)
- Fixed decorator execution order by sorting business assemblies by module hierarchy. (15921), closes 31991
- Fixed default value retrieving row count limited to 10 when querying the cluster version. (15946), closes 31969
- Fixed double execution
PropertyChangedevent rule when property watcher is enabled (Properties.MyProperty.EnableWatcher()). (16254), closes 32301 - Fixed EF Core translation of date time extension methods. (17037), closes 33480
- Fixed end-to-end automation library
GetComponent/FindComponentmethods for elements located in partial templates embedded in UI Component slots. (16387), closes 30903, 32944, 32977 - Fixed entity view expression rewriting so explicit casts preserved parent entity paths in generated select sources. (16836), closes 33212
- Fixed entity view retrieval by key to correctly apply retrieving-rule filters (including entity-level filters). (15818), closes 31829
- Fixed filter bar popovers issue where multiple could be open at the same time. (15970), closes 31985, 31993, 32014
- Fixed foreign key initialization issue from the alternate key in the case of nested entity references. (16709), closes 33130
- Fixed frame titles consistency across browser page refreshes by storing the relevant navigation information in the URL. (16690), closes 9336
- Fixed generated business classes to resolve
INeosLogger<T>using the implementation type instead of the interface type. (16773), closes 33161 - Fixed images within UI views opened in micro-frontend mode. (16128), closes 32261
- Fixed incorrect number of format parameters when generating alternative keys error message. (16778), closes 33203
- Fixed IntelliSense for Getter/Setter expressions of UI view properties when Required is an expression. (16588), closes 32899
- Fixed keyboard input in the lookup of an unbound UI property should not trigger the edit badge. (17159), closes 33757
- Fixed lookup filter behavior so selected suggestions stayed synchronized when selections changed externally or during search. (16254)
- Fixed metadata generation for inheritance by preventing derived TPT tables from being marked as multitenant. (15863), closes 30986
- Fixed micro-frontends when the tenant identifier contains an underscore. (16805)
- Fixed micro-frontends when the tenant identifier starts with the prefix of a nested cluster. (16805), closes 33166
- Fixed migration history incorrectly displaying an error when creating a tenant. (15836), closes 31697
- Fixed multi-tenant cluster access when the state store is unavailable by catching tenant cache completion check failures. (17143), closes 33696
- Fixed multiple reloads on the first launch of the application after a
neos runwith the micro-frontends. (16150) - Fixed namespace generation for invalid alternate key message in entity view repository. (15762), closes 31691
- Fixed navigation within UI views opened in micro-frontend mode. (16128)
- Fixed neos migrate-metadata to fail fast with a clear error when module dependencies were missing (e.g., when neos restore had not been run). (15849), closes 31228
- Fixed non-blocking errors in development when the proxy server tries to call Tenant Management while not in a multi-tenant mode. (16222), closes 32321
- Fixed OpenAPI schema with
RangeAttribute's default maximal value being now a valid decimal format. The previous format was causing NSwag to crash with JsonReaderException "Input string '7.922816251426434E+28' is not a valid decimal". Now, the maximum for a decimal in the swagger.json file is noted as 79228162514264337593543950335, which is the actual maximal value for a decimal. (16161), closes 32281 - Fixed parallel loading of summaries alongside data requests and improved error handling by logging summary load failures without triggering blocking API error popups. (15999)
- Fixed popup CSS class names to prevent style conflicts with the LockSelf browser extension. (16878), closes 33313
- Fixed project file discovery to exclude bin and obj only at the project root, while still scanning nested folders with the same names. This resolved compilation issues when legitimate nested directories were named bin or obj. (16469), closes 32773
- Fixed Pub/Sub processing so remote calls to Tenant Management
GetClusterVersionsnow propagated the user. This prevented 403 permission errors when tenant cache was unavailable. (17213), closes 33858 - Fixed reactivity initialization for remote UI views in micro-frontends. (17212), closes 33853
- Fixed report generation toast download/print actions to use the application base URL instead of the reporting base URL, preventing invalid links when the
NeosNotificationCentermodule is not used. (16263), closes 32390 - Fixed saving custom views when an active filter targeted a
LocalizableStringproperty. (16996), closes 33438 - Fixed server method enum parameter default values by normalizing short enum member expressions to fully qualified values and comparing equivalent defaults consistently during synchronization. (15915), closes 31630
- Fixed SignalR backward compatibility issue caused by tenant and user identifier casing normalization. (16731), closes 33026
- Fixed SignalR notification serialization so dictionary argument keys kept their original casing instead of being converted to camelCase. (16743), closes 33157
- Fixed special character ('"', '', '\r', '\n', '\t', '\f', '\b') escape in JSON values when data convertion. (15756), closes 31484
- Fixed tab selection when opening a non-closeable frame. (16387), closes 30903, 32944, 32977
- Fixed tenants cache rebuild triggering unnecessary subscriptions on business clusters. (16297)
- Fixed the
input-localizable-stringmodal closing immediately in merged datagrid cells when the first merged column used a lookup. (16880), closes 33315 - Fixed the bad visual effect when saving a custom view. (15755)
- Fixed the closure of the UI view of the
view-containerwhen closing the UI view that contains theview-container. (15755) - Fixed the issue of theme previews not displaying in the vsCode extension. (15843), closes 31800
- Fixed the issue where the HTTP 200 code was being returned by the development proxy server instead of the 502 code when the backend was not responding. (16014), closes 31997
- Fixed the Neos Studio MCP tool "get-information-about-neos" so that it does not return an excessive amount of information rejected by the latest versions of github copilot. (15897)
- Fixed the NeosAI cluster Dapr
app-idwhich was colliding with the identifier of the main application. (17200), closes 33805 - Fixed the read-only lock icon display on filter condition chips in the filter bar. (16559), closes 32852
- Fixed the test helper method AcceptEntityViewChanges() to properly call AcceptChanges() on entity views, ensuring that original values are correctly reset when changes are accepted. (15928), closes 31946
- Fixed the width of the datagrid floating bar when actions have conditional visibility. (15815), closes 31884
- Fixed transpilation of C# array declarations that used implicit array initializers without explicit array creation, such as
string[] array = { "A", "B" }. (16593), closes 32864 - Fixed TypeScript transpilation for nullable
LocalizableString.DefaultTranslationaccesses using the null-conditional operator. (17029), closes 33412 - Fixed UI template IntelliSense by filtering snippet and attribute-value completions based on typed prefixes. (16255), closes 32375
- Fixed UI views remaining non-idle when their initial data load failed, ensuring initialization completed consistently after errors. (16776), closes 33205
- Fixed unbound Lookup required validation messaging when clearing input. (16429), closes 32672
- Fixed unintended initialization of foreign keys from alternative keys when creating entities. (16798), closes 33219
- Fixed user permissions cache invalidation on tenant update. (16125), closes 32015
- Fixed ViewModel fields initialization after remote services initialization. (16272), closes 32400
- Fixed visibility of actions on datagrid rows that were appearing behind frozen columns. (16281), closes 32403
- Prevented default tenant lookups from triggering state store or database access in
TenantsAccessorcalls. (16297), closes 32402 - Reduced the log severity of
InternalBufferOverflowExceptionevents emitted byProjectFileSearchCacheInvalidatorwatchers while preserving full cache invalidation on watcher errors. (16813), closes 33014 - Removed the
castof OData quick search filter condition. (16947) - Removed the maximum length constraint of the
Messageproperty from theNeosUserNotificationentity. (16868), closes 33297 - Removed unnecessary
using GroupeIsa.Neos.Application.Errors;directives from generated entity views to reduce compiler warnings. (15784), closes 31827 - Restricted technical exception details in save error responses to development environments while keeping business-visible error details in API responses. (16757)
- Stopped redirecting asset requests without a tenant to the tenant selection page and returned HTTP 400 instead. (17179), closes 33772
- Update of the Dapr .NET SDKs to version 1.17.9. (17067)
- Updated
@module-federation/vitedependency to stabilize micro-frontends. (16558) - Updated quick search on
LocalizableStringproperties to filter only on the current language. (16991) - Updated Stimulsoft library from version 2026.1.1 to version 2026.1.3 (fixes bugs with images). (15832), closes 31617
Previous releases
You can find the changelog of previous releases by clicking on the following links :