Changelog
🚀 Features
ai
core
- 6c75b62 report translation keys that render as their raw id at runtime (#19037), closes #19037 #19041
📘 Subtasks
version
- 137e9ec update to version '2.0.1'
🐛 Bug Fixes
ai
- 249e0e5 grow the copilot composer around a prompt that is already in it when it opens (#19389), closes #19389
core
- 6d9d42c FlowServiceTest compilation
- ff84cd1 reject invalid BOOL input values
- d953f86 mask secrets in log-to-file exception traces
- d02c78f renew a stale CSRF cookie token instead of failing the initial setup with 403 access denied (#18965), closes #18965
- c22fda1 drop the definitions of input types excluded from a schema (#19142) (#19231), closes #19142 #19231
- 91d7f71 stop LoopUntil after maxIterations instead of maxIterations + 1 (#19209), closes #19209
- f6fcb48 private cache-control on tenant-scoped execution downloads
- 9318eae Content-Disposition filename injection on export endpoints
- d51059f translate the remaining hardcoded strings (#19129), closes #19129
- b5a85e9 fix grammar issues in english UI text (#19127), closes #19127
- 11642d6 translate the hindi kill message instead of leaving it in english (#19126), closes #19126
- fcf92cf use the global translator in the logs pager and plugin card templates (#19048), closes #19048 #19049
- 283b86b the browser back button no longer skips the page you came from (#19124), closes #18994 #19124
- 74f5800 stop the generator upper-casing state words and mangling casing in non-latin locales (#19036), closes #19036 #19046
- 121f3e9 translate sentence-initial nouns instead of keeping them in english (#19035), closes #19035 #19044
- 21616ff make the translation generator reroll and refuse english copies (#19032), closes #19032 #19040
- 4d303ea let the english-copy rule accept kestra entity nouns and product names (2.0 backport) (#19118), closes #19118
- 7561119 inspect getDeadline() in DAILY_TIME_WINDOW branch of TimeWindowValidator, closes #18763
- 303c025 reject restart of a PAUSED execution
- e85c9f2 match HTTP allow/deny lists on the URI authority and re-check redirects
dashboards
- 05d026e drill-down page filters, clicked time bucket, drawer reload (#18988) (#19205), closes #18988 #19205
design-system
- 85d3369 align the "last 30 days" filter value with the app's PT720H (#19141) (#19232), closes #19141 #19232
- 3c837f8 drop the trailing comma that makes the manifest unparseable (#19315), closes #19257 #19315
- c484cbf apply-to option highlight in the interval filter (#19086), closes #19086
executions
- bc3a6b3 reject executing a soft-deleted flow by explicit revision
- 76fe90a unify webhook 404 so flow existence isn't leaked
- 9398b12 api action downloads the execution json as a link (#18902), closes #18902
- bb7349e show the task run state-change hints again (#19038), closes #19038 #19045
executor
- 6008c2e do not resume a Pause twice when its pauseDuration expires after a manual resume (#18597), closes #18507 #18597
flows
- a572fc1 clear the draft flag when deleting a flow's draft head
- fc2225f breadcrumb navigation from execution to flow edit no longer blanks the page (#18997) (#19111), closes #18997 #19111
plugins
scheduler
- d0476c1 publish vNode assignments as immutable snapshots
- bb88cbf stop() lost on a scheduling loop still queued for start
- 2f3200c spurious thread-starvation warning on fresh start
- 744b28b compile the unparseable-flow trigger test against the 2.0.x store API, closes #19137
- 8a2162a an unparseable flow no longer stalls its scheduling loop or floods the logs (#19137), closes #19137
tests
- ecfe04e DefaultSchedulerTest liveness-manager stalls and vacuous assertions
triggers
global
- c1f4190 prevent NPE when Switch task has only defaults and no cases, closes #18357
- 1f6d142 use schedule timezone for cron validation
- 20fd0fe reject unsatisfiable schedule cron expressions
🏭 Tests
core
🔄️ Changes
core
- 495cfda delete the components and utils nothing imports (2.0 backport) (#19264), closes #19218 #19264
iam
- 331c2f4 centralize repository namespace ACL into one policy bean (#19145), closes #19145
- 92fe374 name no-ACL repository reads *WithoutAcl and split findLatestForStates (#18944), closes #18944
🛠 Build
core
- 586c613 keep the release branches translated with the auto-translate bot (#19203), closes #19201 #19203
- 94966a0 generate the translations of a pull request from a fork on demand (#19192), closes #19185 #19192
- 98cccf5 tell the enterprise repository when a push changes the translation keys (#19191), closes #19184 #19191
- 27d4d61 declare the node version the translation scripts need (#19190), closes #19186 #19190
- 5508835 make translations:check run the PR gate before the comparer (#19136), closes #19131 #19136
- c571150 run the translation gate on every push to develop and the release branches (#19135), closes #19130 #19135
- 3f33e2d check the namespace of runtime-built translation keys in the gate (#19033), closes #19033 #19042
- c67de14 fail the translation gate on stale fingerprints in the locale files (#19031), closes #19031 #19039
deps
tests
- 6887c66 one script naming convention across the frontend packages (2.0 backport) (#19257), closes #19257
📝 Documentation
core
- 637b634 reword the 'An unexpected error occurred' UI error in EE edition
tests
- fece264 describe the translation gate on pushes, the OSS to EE dispatch and the fork workflow (#19197), closes #19195 #19197
- dee9de2 correct build-comment's note on what an empty output is for (#19128), closes #19128
Contributors
We'd like to thank the following people for their contributions:
Aradhya Sharma, Barthélémy Ledoux, Claude Opus 5, Fayupable, Florian Carre, Florian Hussonnois, GitHub, Loïc Mathieu, MilosPaunovic, Miloš Paunović, Nicolas K., Piyush Bhaskar, Roman Acevedo, Rémi Barthe, ThurDas, Zhang ChuanJin, brian-mulier-p, github-actions[bot], nKwiatkowski, ssdalai, yuri1969