## kestra-io/kestra — v2.0.3…v2.0.4

_34 commits._

### Features
- **feat(core): add isDateBetween() Pebble function** (721b8ca)
- **feat(execution): allow to break out of Loop iterations** (4e9ffc4)
- **feat(worker): reach the KV store through the controller, configurably (#19812)** (4fbfda0)
- **feat(worker): chunked streaming on the worker controller grpc surface** (b267293)
- **feat(controller): add tenancy access check (#19689)** (328de91)
- **feat(worker): carry the client edition on gRPC requests (#19525)** (204b9a6)
- **feat(triggers): link each trigger to the executions it created (#19816)** (5677a89)

### Fixes
- **fix(flows): suggest nested and errors task ids after `outputs.` (#19888)** (219d6dd)
- **fix(core): handle Kestra markers inside OTLP log bodies (2.0.x) (#19902)** (e2cbf2c)
- **fix(core): compilation issue** (215acdb)
- **fix(iam): resolve the MCP server id from the matched route, not the raw path** (fbbe901)
- **fix(system): keep /prometheus reachable on the management endpoint (#18258)** (edca577)
- **fix(executor): only expose dependsOn executions outputs in Flow trigger outputs (#19810)** (b220d10)
- **fix(ui): add blueprint template argument validation to the blueprints store** (3cbcca0)
- **fix(ui): add templateArgumentsOrder to the flow blueprint template type** (e6cd260)
- **fix(worker): report a forced termination when results may not have reached the controller** (6c2ea77)
- **fix(executor): release the lease of a WorkingDirectory once it ends** (bc86c85)
- **fix(worker): reclaim the worker jobs orphaned by an inactive worker** (6dbe5b2)
- **fix(executor): do not resubmit a task run that has already ended** (fdd3614)
- **fix(flows): filter the blueprint tag list by the search (#19855)** (869475a)
- **fix(design-system): center one-line alerts (#19761)** (c6cd65f)
- **fix(ai): keep copilot custom header names verbatim for yaml providers (#19677)** (dd8b0e2)
- **fix(ai): keep the copilot hero visible and the empty state scrollable on short viewports (#19800)** (7b39a05)
- **fix(plugins): show the class name first when picking a type in the editor (#19747)** (cb7c65e)
- **fix(executions): a kill ends a retrying task run, and an expired retry never revives a killed execution** (6e0747d)
- **fix(core): resolve host from raw authority in HTTP allow/deny-list matching** (a5d1325)
- **fix(core): order SubflowExecutionEnd batch locks by parent to avoid executor deadlock (#19745) (#19750)** (4c34bba)
- **fix(plugins): plugin scan in configs commands (#19737)** (ba99e32)
- **fix(plugins): prevent installed versions from leaking across navigation (#19735)** (c72b638)
- **fix(design-system): await the i18n registration install starts (#19743)** (4634b2a)
- **fix(design-system): 29 --ks-* references that resolve to nothing (#19193)** (a1ebfde)

### Backend
- **backport(2.0.x): executor refactor (ExecutorCore, injectable clock) and executor test kit (#19714)** (01cf501)

### Tests
- **test(executions): run the real DefaultExecutor in the testkit, one delivery at a time** (3ba78b6)

### Chore
- **chore(version): update to version '2.0.4'** (d97ca67)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/kestra-io/kestra?utm_source=github-action)._