diff --git a/CHANGELOG.md b/CHANGELOG.md
index 60f7789c..bf07dbab 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,9 +2,18 @@
## Unreleased
+## v1.27.0
+
- Add `Microsoft.DurableTask.LargePayloadPurge.Abstractions` with shared fetch/report and service-setting interfaces, and expose the existing blob purge tasks for host integration ([#805](https://github.com/microsoft/durabletask-dotnet/pull/805)).
-- Preserve the original orchestration version when restarting through the orchestration-service client shim ([#463](https://github.com/microsoft/durabletask-dotnet/issues/463)).
+- Isolate in-process test-host work-item completion by delivery token ([#815](https://github.com/microsoft/durabletask-dotnet/pull/815)).
+- Await backend operations for in-process test-host task-hub lifecycle changes ([#813](https://github.com/microsoft/durabletask-dotnet/pull/813)).
+- Release streamed history snapshots after in-process test-host work items complete ([#811](https://github.com/microsoft/durabletask-dotnet/pull/811)).
+- Treat omitted purge start times as unbounded in the in-process test host ([#810](https://github.com/microsoft/durabletask-dotnet/pull/810)).
+- Fix orchestration history retrieval in the in-process test host ([#809](https://github.com/microsoft/durabletask-dotnet/pull/809)).
+- Preserve the original orchestration version when restarting through the orchestration-service client shim ([#808](https://github.com/microsoft/durabletask-dotnet/pull/808), [#463](https://github.com/microsoft/durabletask-dotnet/issues/463)).
- Support configurable scheduler token audiences and government defaults ([#806](https://github.com/microsoft/durabletask-dotnet/pull/806))
+- Add opt-in large-payload blob auto-purge with a persistent orchestration and shared Client purge models ([#758](https://github.com/microsoft/durabletask-dotnet/pull/758)).
+- Update `Microsoft.Azure.DurableTask.Core` from `3.9.0` to the published `3.11.1` release.
## v1.26.0
- Adding rewind to the sidecar by sophiatev ([#802](https://github.com/microsoft/durabletask-dotnet/pull/802))
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 7b634b8f..b45a4435 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -39,7 +39,7 @@
-
+
diff --git a/eng/targets/Release.props b/eng/targets/Release.props
index 6c5d6ae4..9912064e 100644
--- a/eng/targets/Release.props
+++ b/eng/targets/Release.props
@@ -18,7 +18,7 @@
- 1.26.0
+ 1.27.0
diff --git a/test/Grpc.IntegrationTests/OrchestrationPatterns.cs b/test/Grpc.IntegrationTests/OrchestrationPatterns.cs
index 6ae19097..f2815e5b 100644
--- a/test/Grpc.IntegrationTests/OrchestrationPatterns.cs
+++ b/test/Grpc.IntegrationTests/OrchestrationPatterns.cs
@@ -98,7 +98,7 @@ public async Task ScheduleSubOrchestrationWithTags()
});
- await server.Client.ScheduleNewOrchestrationInstanceAsync(orchestratorName, input: 1);
+ string parentInstanceId = await server.Client.ScheduleNewOrchestrationInstanceAsync(orchestratorName, input: 1);
OrchestrationMetadata metadata = await server.Client.WaitForInstanceCompletionAsync(
subOrchestrationOptions.InstanceId, this.TimeoutToken);
@@ -109,6 +109,12 @@ public async Task ScheduleSubOrchestrationWithTags()
Assert.Equal(2, metadata.Tags.Count);
Assert.Equal("value1", metadata.Tags["tag1"]);
Assert.Equal("value2", metadata.Tags["tag2"]);
+
+ // The shared sidecar still needs this worker to process the child's result in its parent.
+ OrchestrationMetadata parentMetadata = await server.Client.WaitForInstanceCompletionAsync(
+ parentInstanceId, this.TimeoutToken);
+ Assert.NotNull(parentMetadata);
+ Assert.Equal(OrchestrationRuntimeStatus.Completed, parentMetadata.RuntimeStatus);
}
[Fact]
@@ -155,7 +161,7 @@ public async Task ScheduleSubOrchestrationWithTagsAndRetryPolicy()
}));
});
- await server.Client.ScheduleNewOrchestrationInstanceAsync(orchestratorName, input: 1);
+ string parentInstanceId = await server.Client.ScheduleNewOrchestrationInstanceAsync(orchestratorName, input: 1);
// Confirm the orchestration eventually succeeded after some delay for the retry to complete
await Task.Delay(TimeSpan.FromSeconds(3));
@@ -169,6 +175,11 @@ public async Task ScheduleSubOrchestrationWithTagsAndRetryPolicy()
Assert.Equal("value2", metadata.Tags["tag2"]);
// 3 invocations - one for the parent orchestration, one for the first suborchestration attempt, one for the final suborchestration attempt
Assert.Equal(3, invocationCounter);
+
+ OrchestrationMetadata parentMetadata = await server.Client.WaitForInstanceCompletionAsync(
+ parentInstanceId, this.TimeoutToken);
+ Assert.NotNull(parentMetadata);
+ Assert.Equal(OrchestrationRuntimeStatus.Completed, parentMetadata.RuntimeStatus);
}
[Fact]