diff --git a/CHANGELOG.md b/CHANGELOG.md index a725396..e2f8a3e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,75 @@ ### Fixes +## v0.4.0 (2026-07-31) + +### Changes + +- feat(durable-functions): restore worker-side callHttp ([#333](https://github.com/microsoft/durabletask-js/pull/333), fixes [#318](https://github.com/microsoft/durabletask-js/issues/318)) +- [copilot-finds] Bug: Entity getState() produces unhelpful SyntaxError for corrupted state ([#309](https://github.com/microsoft/durabletask-js/pull/309)) +- fix: prevent infinite loop in suspend/resume event buffer iteration ([#306](https://github.com/microsoft/durabletask-js/pull/306)) +- fix: clear stale in-memory purge queue entries ([#285](https://github.com/microsoft/durabletask-js/pull/285)) +- fix: preserve error cause chains in failure details ([#310](https://github.com/microsoft/durabletask-js/pull/310)) +- fix: treat empty entity operation input as no input ([#283](https://github.com/microsoft/durabletask-js/pull/283)) +- fix: use getValue() instead of toString() on protobuf StringValue in activity execution ([#280](https://github.com/microsoft/durabletask-js/pull/280)) +- fix: clean up orchestration history streams ([#314](https://github.com/microsoft/durabletask-js/pull/314)) +- fix: make raiseIfFailed honor failed runtime status ([#308](https://github.com/microsoft/durabletask-js/pull/308)) +- fix: prevent test worker crash during completion error handling ([#305](https://github.com/microsoft/durabletask-js/pull/305)) +- Add `durable-functions@4.0.0` — Azure Functions Durable provider on the gRPC core (+ core host helpers, E2E CI, and release pipeline) ([#282](https://github.com/microsoft/durabletask-js/pull/282)) +- fix: use failure details for failed orchestration span messages ([#290](https://github.com/microsoft/durabletask-js/pull/290)) +- Fix #301: WhenAll wait-all + aggregate-exception semantics (root cause of rewind deadlock) ([#302](https://github.com/microsoft/durabletask-js/pull/302)) +- Add rewind support ([#296](https://github.com/microsoft/durabletask-js/pull/296)) +- Fix #292: align core Task/TimerTask public shape (result/isCompleted/isFaulted, cancellable TimerTask) ([#293](https://github.com/microsoft/durabletask-js/pull/293)) +- test: add missing RetryableTask coverage for non-retriable, remaining-timeout, and complete() override ([#289](https://github.com/microsoft/durabletask-js/pull/289)) +- Fix #291: accept EVENTSENT/EVENTRAISED confirmation for entity calls on classic (Azure Storage) backend ([#294](https://github.com/microsoft/durabletask-js/pull/294)) +- fix: normalize entity query prefix in client.getEntities() ([#286](https://github.com/microsoft/durabletask-js/pull/286)) +- fix: validate invalid createTimer inputs ([#288](https://github.com/microsoft/durabletask-js/pull/288)) +- fix: preserve EntityOperationFailedException details ([#277](https://github.com/microsoft/durabletask-js/pull/277)) +- fix: exclude initializeState from TaskEntity method dispatch ([#278](https://github.com/microsoft/durabletask-js/pull/278)) +- fix: preserve V2 entity operation info for index zero ([#279](https://github.com/microsoft/durabletask-js/pull/279)) +- Add input validation for empty event names in waitForExternalEvent() and sendEvent() ([#276](https://github.com/microsoft/durabletask-js/pull/276)) +- fix: reject non-finite retry policy values ([#274](https://github.com/microsoft/durabletask-js/pull/274)) +- fix: use ordinal string comparison for deterministic ordering ([#273](https://github.com/microsoft/durabletask-js/pull/273)) +- test: add Task and CompletableTask coverage ([#272](https://github.com/microsoft/durabletask-js/pull/272)) +- fix: add missing action types to non-determinism method names ([#271](https://github.com/microsoft/durabletask-js/pull/271)) +- fix: preserve continue-as-new carryover event ordering ([#269](https://github.com/microsoft/durabletask-js/pull/269)) +- Fix: Handle EntityUnlockSent events in orchestration executor replay ([#268](https://github.com/microsoft/durabletask-js/pull/268)) +- fix: Update instance status on suspend/resume in InMemoryOrchestrationBackend ([#176](https://github.com/microsoft/durabletask-js/pull/176)) +- fix: prevent duplicate completion actions when setFailed() is called after setComplete() ([#267](https://github.com/microsoft/durabletask-js/pull/267)) +- fix: use epoch fallback for entity lastModifiedTime ([#265](https://github.com/microsoft/durabletask-js/pull/265)) +- fix: handle EventSent replay events ([#264](https://github.com/microsoft/durabletask-js/pull/264)) +- fix: propagate parent instance info in in-memory backend ([#263](https://github.com/microsoft/durabletask-js/pull/263)) +- fix: avoid wildcard names for anonymous generator functions ([#262](https://github.com/microsoft/durabletask-js/pull/262)) +- fix: use epoch fallback for missing orchestration timestamps ([#261](https://github.com/microsoft/durabletask-js/pull/261)) +- fix: add UNKNOWN fallback in getNewEventSummary for unrecognized event types ([#260](https://github.com/microsoft/durabletask-js/pull/260)) +- [copilot-finds] Improve: withTimeout() input validation and remove dead sleepWithAbort ([#258](https://github.com/microsoft/durabletask-js/pull/258)) +- fix: prevent unhandled rejections in worker execution wrappers ([#257](https://github.com/microsoft/durabletask-js/pull/257)) +- build(deps): bump @grpc/grpc-js ([#259](https://github.com/microsoft/durabletask-js/pull/259)) +- fix: use toLowerCase() instead of toLocaleLowerCase() for event name matching ([#180](https://github.com/microsoft/durabletask-js/pull/180)) +- fix: track entity execution in pendingWorkItems for graceful shutdown ([#179](https://github.com/microsoft/durabletask-js/pull/179)) +- fix: move activity input JSON.parse inside try-catch for proper error handling ([#181](https://github.com/microsoft/durabletask-js/pull/181)) +- fix: Validate first yielded value in orchestrator run() method ([#164](https://github.com/microsoft/durabletask-js/pull/164)) +- fix: Sub-orchestration watcher uses unintended 30s default timeout in InMemoryOrchestrationBackend ([#156](https://github.com/microsoft/durabletask-js/pull/156)) +- fix: serialize custom status eagerly to prevent executor crash ([#195](https://github.com/microsoft/durabletask-js/pull/195)) +- fix: cancel pending timers when purging orchestration instances ([#197](https://github.com/microsoft/durabletask-js/pull/197)) +- [copilot-finds] Bug: Fix TestOrchestrationClient null serialization divergence from real client ([#199](https://github.com/microsoft/durabletask-js/pull/199)) +- [copilot-finds] Bug: newOrchestrationState drops failure details when error message or type is empty string ([#198](https://github.com/microsoft/durabletask-js/pull/198)) +- fix: Preserve original gRPC error cause in rewindInstance and restartOrchestration ([#200](https://github.com/microsoft/durabletask-js/pull/200)) +- fix: Catch exceptions from user-provided retry handlers to prevent orchestration crash ([#193](https://github.com/microsoft/durabletask-js/pull/193)) +- feat: Implement work item filters ([#168](https://github.com/microsoft/durabletask-js/pull/168)) +- fix: Add guard clause to handleSubOrchestrationCompleted to prevent unconditional resume ([#183](https://github.com/microsoft/durabletask-js/pull/183)) +- fix: Add stream cleanup and retry logic to gRPC error handler ([#182](https://github.com/microsoft/durabletask-js/pull/182)) +- fix: Use strict undefined check for taskId in completion event handlers ([#157](https://github.com/microsoft/durabletask-js/pull/157)) +- Add comprehensive unit tests for WhenAnyTask ([#162](https://github.com/microsoft/durabletask-js/pull/162)) +- fix: Add missing non-Task validation in generator failure recovery path ([#163](https://github.com/microsoft/durabletask-js/pull/163)) +- fix: Entity StateShim.setState() corrupts cache on serialization failure ([#151](https://github.com/microsoft/durabletask-js/pull/151)) +- fix: clear customStatus on continue-as-new in InMemoryOrchestrationBackend ([#155](https://github.com/microsoft/durabletask-js/pull/155)) +- fix: propagate parent notification from composite tasks (WhenAllTask/WhenAnyTask) ([#150](https://github.com/microsoft/durabletask-js/pull/150)) +- fix: use deterministic time in createTimer instead of Date.now() ([#146](https://github.com/microsoft/durabletask-js/pull/146)) +- Fix WhenAllTask constructor resetting _completedTasks counter ([#143](https://github.com/microsoft/durabletask-js/pull/143)) +- Fix retry handler treating undefined/null/NaN/Infinity as retry signal ([#142](https://github.com/microsoft/durabletask-js/pull/142)) +- Release v0.3.0 ([#147](https://github.com/microsoft/durabletask-js/pull/147)) + ## v0.3.0 (2026-03-06) ### Changes