Two releases shipped in the first quarter of 2024, 7.12.0 and 7.13.0. The largest change is a new job system that puts rules and backups on shared background infrastructure, with notifications when a job finishes, alongside fixes to comments, the Rich Editor, full text search and the API.
Squidex released two versions in the first quarter of 2024: 7.12.0 on 9 January and 7.13.0 on 24 January. The work in both releases is concentrated on background processing, collaboration in the editor and a set of correctness fixes in content handling and the API.
Before 7.12.0, long running background operations were implemented separately. Rules had their own machinery for running and reporting, and backups had another. That meant two places to look when something was slow or stuck, and two different behaviours to learn.
7.12.0 introduces a job system that unifies these operations. Rules and backups now run through the same mechanism, so the way a background operation is started, tracked and reported is consistent. The same infrastructure is available for other background work, which keeps future long running operations from having to reinvent scheduling and status handling.
For you as an operator, the practical effect is that background work has one shape. When you look at a running backup or a rule job, you are looking at the same kind of object with the same lifecycle, rather than at two systems that happen to do similar things.
7.13.0 builds directly on that foundation and adds notifications for completed jobs. A backup of a large app or a rule run over a large content set can take a while, and until now the only way to know whether it had finished was to go back and check.
With job completion notifications, you get told when the work is done. That removes the polling habit from workflows like taking a backup before a schema migration, or triggering a rule job and waiting for it to work through the content of an app. It also makes the unified job system from 7.12.0 more useful in practice, because every job type that runs through it benefits from the same notification behaviour.
Comments in Squidex had a restriction that limited their usefulness for review workflows: you could only reply to your own comments. In practice, that is the wrong way round. The comment you most want to answer is the one somebody else left on a content item.
7.12.0 removes the restriction. You can now reply to all comments, regardless of who wrote them. If you use comments to run editorial review, to ask an author about a field value or to leave notes for a translator, the discussion can now happen as a thread between the people involved instead of a set of parallel monologues.
The Rich Editor received two fixes in 7.13.0.
The first concerns class names. Overlapping class names are now allowed, so styling that applies more than one class to the same region of text no longer conflicts. If you had markup where a formatting class and a semantic class covered the same span, that case now works.
The second is the word and character count. It is now calculated correctly. If you write content against a length budget, for example for teaser fields or SEO descriptions, the number shown under the editor is the number you can act on.
Both are small changes, but they belong to the part of Squidex that authors spend the most time in, and an incorrect character count is the kind of detail that erodes trust in the whole editor.
The rest of the quarter is made up of corrections spread across the API and the content layer.
Error responses from the API no longer normalize field names. When Squidex reports a problem with a field, it now returns the field name as you defined it in the schema, which matters if you parse error responses and map them back to your own form fields or client models.
Full text handling was fixed for large content IDs, so search behaves correctly for content items whose identifiers exceed the previously assumed size. Assets that were stored without a total asset size are now deserialized correctly, which affects apps carrying older asset records.
On the app level, registration of the app deleter is fixed for installations that have permanent app deletion enabled. If you run Squidex with that setting, deleted apps are now cleaned up as intended.
Finally, two dependencies were updated in 7.13.0: NSwag, which generates the OpenAPI definition and the clients derived from it, and OpenIdDict, which handles authentication and token issuing. Both updates are part of keeping the API surface and the identity stack on current libraries.
The full changelog for 7.12.0 and 7.13.0 lists every entry, including the fixes that did not make it into this post. If you self host Squidex, the release notes on GitHub are the place to check before you upgrade; if you use Squidex Cloud, the changes are already live.