v0.4.0
What's Changed
- Release v0.3.0 by wangbill (@YunchuWang) in #147
- Fix retry handler treating undefined/null/NaN/Infinity as retry signal by wangbill (@YunchuWang) in #142
- Fix WhenAllTask constructor resetting _completedTasks counter by wangbill (@YunchuWang) in #143
- fix: use deterministic time in createTimer instead of Date.now() by wangbill (@YunchuWang) in #146
- fix: propagate parent notification from composite tasks (WhenAll/When… by wangbill (@YunchuWang) in #150
- fix: Reset customStatus on continue-as-new in InMemoryOrchestrationBackend by wangbill (@YunchuWang) in #155
- fix: Entity StateShim.setState() corrupts cache on serialization failure by wangbill (@YunchuWang) in #151
- Export History by wangbill (@YunchuWang) in #114
- fix: Add missing non-Task validation in generator failure recovery path by wangbill (@YunchuWang) in #163
- test: Add comprehensive unit tests for WhenAnyTask by wangbill (@YunchuWang) in #162
- fix: Use strict undefined check for taskId in completion event handlers by wangbill (@YunchuWang) in #157
- Double daily code review agent run timeout by wangbill (@YunchuWang) with @Copilot in #170
- fix: Add stream cleanup and retry logic to gRPC error handler by wangbill (@YunchuWang) in #182
- fix: Add guard clause to handleSubOrchestrationCompleted to prevent unconditional resume by wangbill (@YunchuWang) in #183
- feat: Implement work item filters by wangbill (@YunchuWang) in #168
- fix: Catch exceptions from user-provided retry handlers to prevent orchestration crash by wangbill (@YunchuWang) in #193
- fix: Make connection string property key lookup case-insensitive by wangbill (@YunchuWang) in #196
- fix: Preserve original gRPC error cause in rewindInstance and restartOrchestration by wangbill (@YunchuWang) in #200
- fix: Preserve failure details when error message or type is empty string by wangbill (@YunchuWang) in #198
- fix: Align TestOrchestrationClient null serialization with TaskHubGrpcClient by wangbill (@YunchuWang) in #199
- fix: upgrade @azure/identity to resolve msal-browser vulnerability (MVS-2026-vmmw-f85q) by wangbill (@YunchuWang) in #216
- fix: Preserve original URL parsing error cause in getHostAddress() by wangbill (@YunchuWang) in #194
- fix: Cancel pending timer handles when purging orchestration instances by wangbill (@YunchuWang) in #197
- fix: Serialize custom status eagerly to prevent executor crash on non-serializable values by wangbill (@YunchuWang) in #195
- fix: Sub-orchestration watcher uses unintended 30s default timeout in InMemoryOrchestrationBackend by wangbill (@YunchuWang) in #156
- fix: Validate first yielded value in orchestrator run() method by wangbill (@YunchuWang) in #164
- fix: Move activity input JSON.parse inside try-catch for proper error logging by wangbill (@YunchuWang) in #181
- fix: Track entity execution in pendingWorkItems for graceful shutdown by wangbill (@YunchuWang) in #179
- fix: Use toLowerCase() consistently for event name normalization by wangbill (@YunchuWang) in #180
- feat: add self-reflection agent, js-fact-checking and simulation skills by wangbill (@YunchuWang) in #184
- Add es-metadata.yml (schema 1.0.0) by Jacob Viau (@jviau) in #244
- Remove Copilot agent GitHub Actions workflows by wangbill (@YunchuWang) in #252
- Bump tar from 7.5.9 to 7.5.10 in the npm_and_yarn group across 1 directory by Dependabot (@dependabot)[bot] in #135
- build(deps): bump the npm_and_yarn group across 1 directory with 5 updates by Dependabot (@dependabot)[bot] in #254
- fix(deps): resolve all Dependabot security alerts by Tomer Rosenthal (@torosent) in #253
- build(deps): bump uuid from 8.3.2 to removed in the npm_and_yarn group across 1 directory by Dependabot (@dependabot)[bot] in #255
- build(deps): bump @grpc/grpc-js from 1.14.3 to 1.14.4 in the npm_and_yarn group across 1 directory by Dependabot (@dependabot)[bot] in #259
- fix: prevent unhandled rejections in worker execution wrappers by wangbill (@YunchuWang) in #257
- fix: Deduplicate concurrent token fetches in AccessTokenCache by wangbill (@YunchuWang) in #178
- Improve withTimeout validation and remove dead sleepWithAbort by wangbill (@YunchuWang) in #258
- fix: use UNKNOWN fallback for unrecognized event summaries by wangbill (@YunchuWang) in #260
- fix: use epoch fallback for missing orchestration timestamps by wangbill (@YunchuWang) in #261
- fix: avoid wildcard names for anonymous generator functions by wangbill (@YunchuWang) in #262
- fix: propagate parent instance info in in-memory backend by wangbill (@YunchuWang) in #263
- fix: handle EventSent replay events by wangbill (@YunchuWang) in #264
- fix: use epoch fallback for entity lastModifiedTime by wangbill (@YunchuWang) in #265
- feat: add entity registration methods to Azure managed worker builder by wangbill (@YunchuWang) in #266
- fix: guard setFailed after orchestration completion by wangbill (@YunchuWang) in #267
- Refactor official-build.yml to include new parameters by Tomer Rosenthal (@torosent) in #270
- fix: Update instance status on suspend/resume in InMemoryOrchestrationBackend by wangbill (@YunchuWang) in #176
- fix: handle EntityUnlockSent replay events by wangbill (@YunchuWang) in #268
- fix: preserve continue-as-new carryover event ordering by wangbill (@YunchuWang) in #269
- fix: add missing action types to non-determinism method names by wangbill (@YunchuWang) in #271
- test: add Task and CompletableTask coverage by wangbill (@YunchuWang) in #272
- fix: use ordinal string comparison for deterministic ordering by wangbill (@YunchuWang) in #273
- fix: reject non-finite retry policy values by wangbill (@YunchuWang) in #274
- fix: validate empty external event names by wangbill (@YunchuWang) in #276
- fix: preserve V2 entity operation info for index zero by wangbill (@YunchuWang) in #279
- fix: exclude initializeState from entity operation dispatch by wangbill (@YunchuWang) in #278
- fix: preserve EntityOperationFailedException details by wangbill (@YunchuWang) in #277
- fix: validate invalid createTimer inputs by wangbill (@YunchuWang) in #288
- fix: normalize entity query prefix in client.getEntities by wangbill (@YunchuWang) in #286
- fix: convert maxRetries to gRPC maxAttempts correctly by wangbill (@YunchuWang) in #287
- Fix #291: accept EVENTSENT/EVENTRAISED confirmation for entity calls on classic (Azure Storage) backend by wangbill (@YunchuWang) in #294
- test: add RetryableTask regression coverage by wangbill (@YunchuWang) in #289
- Fix #292: align core Task/TimerTask public shape (result/isCompleted/isFaulted, cancellable TimerTask) by wangbill (@YunchuWang) in #293
- Pin GitHub Actions to full-length commit SHAs by Microsoft Open Source Security Bot (@OssSecurityBot) in #295
- Add rewind support by wangbill (@YunchuWang) in #296
- Fix #301: WhenAll wait-all + aggregate-exception semantics (root cause of rewind deadlock) by wangbill (@YunchuWang) in #302
- fix: use failure details for failed orchestration span messages by wangbill (@YunchuWang) in #290
- test: add gated Azure Functions host E2E suite (Storage backend) by wangbill (@YunchuWang) in #303
- build(deps): bump the github-actions group with 5 updates by Dependabot (@dependabot)[bot] in #297
- build(deps-dev): bump tar from 7.5.13 to 7.5.20 in the npm_and_yarn group across 1 directory by Dependabot (@dependabot)[bot] in #298
- build(deps): bump the github-actions group with 2 updates by Dependabot (@dependabot)[bot] in #316
- Add
durable-functions@4.0.0— Azure Functions Durable provider on the gRPC core (+ core host helpers, E2E CI, and release pipeline) by wangbill (@YunchuWang) in #282 - fix: prevent test worker crash during completion error handling by wangbill (@YunchuWang) in #305
- fix: make raiseIfFailed honor failed runtime status by wangbill (@YunchuWang) in #308
- fix: clean up orchestration history streams by wangbill (@YunchuWang) in #314
- fix: only swallow not-found export deletion errors by wangbill (@YunchuWang) in #312
- fix(durable-functions): route sync single-arg orchestrators to core-native (#321) by wangbill (@YunchuWang) in #323
- fix: read protobuf StringValue activity input with getValue by wangbill (@YunchuWang) in #280
- fix: treat empty entity operation input as no input by wangbill (@YunchuWang) in #283
- Update pipelines to route npm through the azfunc feed by Varshitha Bachu (@bachuv) in #332
- fix: trim additional tenant IDs from connection strings by wangbill (@YunchuWang) in #311
- fix: preserve error cause chains in failure details by wangbill (@YunchuWang) in #310
- fix: clear stale in-memory purge queue entries by wangbill (@YunchuWang) in #285
- build(deps): bump the github-actions group with 2 updates by Dependabot (@dependabot)[bot] in #334
- fix: prevent suspend/resume event buffer infinite loop by wangbill (@YunchuWang) in #306
- fix: add context to corrupted entity state errors by wangbill (@YunchuWang) in #309
- feat(durable-functions): restore worker-side callHttp (#318) by wangbill (@YunchuWang) in #333
- ci(release): per-package ADO release stages + build on Node 22 by wangbill (@YunchuWang) in #336
- ci(release): per-package prepare-release workflow + changelog script by wangbill (@YunchuWang) in #337
- docs(release): changelog, README, and copilot-instructions updates by wangbill (@YunchuWang) in #339
- docs(release): rewrite release_process.md for the per-package model by wangbill (@YunchuWang) in #340
- fix: trim whitespace from tenant values in connection string parsing (#311)
- [copilot-finds] Bug: Fix off-by-one in createServiceConfig maxRetries→maxAttempts conversion (#287)
- [copilot-finds] Improve: Add addEntity/addNamedEntity methods to DurableTaskAzureManagedWorkerBuilder (#266)
- Fix race condition in AccessTokenCache concurrent token fetches (#178)
- build(deps): bump @grpc/grpc-js (#259)
- fix: preserve error cause in getHostAddress() for better debugging (#194)
- [copilot-finds] Bug: Connection string parser uses case-sensitive key lookup (#196)
- feat: Implement work item filters (#168)
New Contributors
- Jacob Viau (@jviau) made their first contribution in #244
- Microsoft Open Source Security Bot (@OssSecurityBot) made their first contribution in #295
- Varshitha Bachu (@bachuv) made their first contribution in #332
Full Changelog: v0.3.0...v0.4.0