ASB-132: Report send-on-behalf-of and the granter's addresses in deputy action=reverseIds
SCR-1844: New deputy module action reverseIds that lists the granting users without resolving grant details
SCR-1817: Replace the Guava caches with Caffeine
SCR-1827: Await the Redis end-point on start-up by default again
SCR-1828: Run IMAP-IDLE cycles on virtual threads and expose listener metrics
SCR-1838: Enable the in-memory cache layer by default with a 5 s time-to-live
SCR-1839: New configuration option for remote invalidation of the in-memory cache layer
Allow external developers to skip the VPN-only Artifactory repository
Answer only GET and HEAD on the Jetty liveness listener
Build the release image with the configuration cache now that the image content is proven version-independent
Bump OSGi Gradle plugin to 5.0.1 to close leaked JAR file handles during dependency resolution
Collect a virtual-thread-aware dump in oxsysreport
Correct the Jetty access log documentation and the bundle stop rationale
Cover virtual threads in the out-of-memory thread dump
Demote the uncaught-exception thread dump to debug level and rate-limit it
Document the measured configuration cache archive size and transfer times
Drop the NFS-read GRADLE_RO_DEP_CACHE consumption in favor of the local warm-up copy
Drop the thread dump from the uncaught-exception handlers
Dump virtual threads too when the graceful shutdown does not get through
Gate release promotion on the image version and correct the store-skip rationale
Indicate the folder admin flag on administrable calendar folders of shared accounts and reject permission changes
Keep five configuration cache entries per key so parallel merge requests no longer evict each other's entry from the shared archive
Move the build plugin pins into the version catalog gradle/libs.versions.toml
Name the exceeded limit and the client in the rate limit rejection log
Parallelize configuration cache misses so cold configuration phases finish faster
Pin the Core Image workspace path so configuration cache entries are reusable across jobs
Reject granting further entities access to the mail folders of a shared account
Remove the configuration cache wiring, its entries cannot be reused on ephemeral agents
Resolve the documented configdb configuration properties
Restore the configuration cache wiring for the non-release image build and the unit tests
Run six instead of four parallel integration tests per fork so a long suite no longer starves its fork's class queue
Run the bundle class path check in the artifact-producing build path
Skip the configuration cache store on release runs to keep the shared archive on the MR-family state
Sort mail folders by precomputed collation keys instead of re-collating on every comparison
Split the configuration cache archive into a shared user-home tier and a slim per-job entry tier
Stage the java-commons drop-in jars from Gradle instead of the Ant script
State in showruntimestats that virtual threads are not listed
Stop publishing to the shared dependency cache, core-test owns that snapshot
Stop shipping renamed configuration properties under their new names
Store configuration cache entries on release runs into a trusted-family archive so consecutive trusted-branch builds reuse the image invocation's entry
Update the documentation-properties plugin to 6.0.3 so the plugin classpath survives jackson 2.22.1 from plugin-bom 2.2.0
Update the image-builder plugin to 10.0.5 with the hardened project set discovery
Update the install plugin to 8.0.10
Update the install plugin to 8.0.8 and the image-builder plugin to 10.0.4
Update the install plugin to 9.0.0 and the osgi plugin to 5.0.2 to complete the plugin-bom alignment
Update the projectset plugin to 4.0.14 so project set file edits invalidate the configuration cache
Update the projectset plugin to 4.0.15 so directory listings no longer invalidate the configuration cache
Update to gradle-git 8.0.0 and packaging 12.0.0 with the result-carrying release version provider
Updated integrated timezone definitions to tzdata2026c
Use the shared read-only dependency cache in the core build again
Allow globaldb.yml to reference the cross-context database by name
Stop advertising the Jetty package as an HTTP service alternative (core#532)
Key IMAP trace files by context, user and server through a logback SiftingAppender (core-gitlab-com#5)
Resolve image tags, labels and the container version at execution time so configuration-cache entries stay reusable (core-gitlab-com#14)
Register RedisConnectorService only once the Redis end-point answered (core-gitlab-com#23)
Align the active-task watcher with the request watcher (core-gitlab-com#26)
SCR-1849: New configuration options for the thread pool's active-task watcher
SCR-1850: Changed reporting of long-running tasks by the thread pool's active-task watcher
Make the thread pool's saturation semantics effective and observable (core-gitlab-com#27)
SCR-1847: Changed behavior of the thread pool saturation settings
SCR-1848: New thread pool saturation metrics
Give AJAX job-queue jobs their own virtual-thread budget instead of the shared one (core-gitlab-com#28)
SCR-1841: New configuration option for the AJAX job queue
Run timer tasks on a bounded virtual-thread executor instead of the platform pool (core-gitlab-com#29)
SCR-1837: Changed timer tasks to run on virtual threads instead of the platform thread pool
SCR-1836: New configuration option for the timer executor's concurrency
Do not report a failed calendar folder lookup as a missing folder, and skip the affected events instead of deleting or failing (support#1599)