Dapr
v1.18.5Orchestration & Management2026년 10월 8일
워크플로 신뢰성, 스케줄러 안정성, 메시지 전달 보장, 관측 기능과 종료 동작을 다듬은 유지보수 릴리스입니다. 일부 구성 요소에는 새 설정 항목도 추가되었습니다.
그 외 기록된 변경 31건 전체fixes 20 · value changes 8 · additions 2 · constraints 1
fixes (20)
- The activity actor now cuts the actor ID at the last two separators, which always delimit the numeric task ID and generation, so the full parent instance ID is recovered whatever characters it contains.
daprdnow stops the meter it created for a runtime once that runtime has fully shut down, so the replacement runtime's meter is the only one exporting.- - With the default
enableInOrderMessageDelivery: false, checkpointing happened fire-and-forget, independent of message delivery to the application. - - With
enableInOrderMessageDelivery: true, the component waited for the handler to return before checkpointing, but checkpointed anyway when the handler respondedRETRY. - - A handler failure is retried with the configured backoff until it succeeds or the subscription is cancelled, instead of being dropped and checkpointed anyway.
- - Under concurrent handling, a partition's checkpoint advances only through the newest contiguous run of successful batches, and checkpoint writes for a partition are serialized so they can no longer race each other out of order.
- - Checkpointing is skipped once the subscription is cancelled or partition ownership loss is observed, and a checkpoint-store failure now surfaces as an error instead of being silently swallowed.
- When shutdown cancels the context, the component leaves the delivery unacknowledged so RabbitMQ can redeliver it after the connection closes.
- A rebalance now stops the retries and the in-flight call to the application, the message is left unacknowledged, and the consumer that takes over the partition receives it again.
- The Kafka component commits the offset when it sees that error and stops its own retry loop.
- An activity result whose execution ID differs from the recorded scheduling of its task ID is acknowledged and dropped before it reaches the inbox, on every admission path.
- A purge now invalidates the actor's cached state before it returns, unconditionally, whatever else in the purge failed.
- Streaming calls that start once the gRPC API has begun shutting down are now rejected with
Unavailable, instead of starting new goroutines. - Registering a callback stream now also returns once the stream manager has stopped, so the call ends as the sidecar shuts down.
- The sidecar could stop processing actor placement updates after it tried to close its connection to the placement service.
- This was introduced in 1.16.0.
- Every start request carries an execution ID that is generated once and resent unchanged by each retry.
- The loop now clears the flag while it still holds the queue lock, so a concurrent enqueue either lands before the empty check and is seen, or after the flag is cleared and starts a new loop.
- The Anthropic component now translates
toolChoiceinto the object Anthropic expects ([dapr/components-contrib#4542](https://github.com/dapr/components-contrib/pull/4542)): - advanced (checkpointed) their Event Hubs offsets without regard to whether the application actually handled the event successfully.
value changes (8)
- The Secret is now mounted
0440. - The Scheduler now uses go-etcd-cron [v0.12.8](https://github.com/diagridio/go-etcd-cron/releases/tag/v0.12.8), which drops a trigger for a job that has already been deleted or overwritten and logs it, instead of stopping the engine.
- Publishing now also stores the baggage in the CloudEvent, in a
baggagefield. - The Scheduler now uses go-etcd-cron with [pull request #136](https://github.com/diagridio/go-etcd-cron/pull/136), which retries the revoke with short attempts inside a 2 second budget.
- -
autois omitted, since Anthropic already defaults to{"type":"auto"}. - -
requiredandanybecome{"type":"any"}. - -
nonebecomes{"type":"none"}. - - A tool name becomes
{"type":"tool","name":"<tool name>"}.
additions (2)
- - A new
maxConcurrentHandlersoption (default100) bounds how many received-but-not-yet-checkpoint-eligible events can be in flight at once, pausing further receives once the bound is reached. - - A new subscription-level
checkPointFrequencyPerPartitionoption controls how often the checkpoint is persisted for a partition (starting with the first batch, then every N contiguous successfully-processed batches, or never if set to0); this only affects how far a restart may replay already-successful batches, not the correctness guarantee itself.
constraints (1)
- - Both delivery modes now start from the earliest retained event when a consumer group has no stored checkpoint yet; an existing stored checkpoint always takes precedence.
Dapr 스택에 추가
조치가 필요한 변경이 나오면 주간 메일로 받아볼 수 있습니다. 이번 릴리스처럼 조치가 없는 주에는 메일을 보내지 않습니다.