You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit daae8b8
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: CHANGELOG.md
+23-36Lines changed: 23 additions & 36 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,71 +7,58 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
8
8
## Unreleased
9
9
10
+
## v1.13.0
11
+
10
12
ADDED
11
13
12
14
- Added `OrchestrationQuery.task_hub_names` to filter orchestration instances
13
15
by one or more task hubs.
16
+
- Added deterministic JSON-array serialization for sets and frozensets.
17
+
Generic set reconstruction is opt-in through `JsonDataConverter`; enabling it
18
+
for existing orchestrations can change replay behavior.
14
19
15
20
CHANGED
16
21
17
22
- Dropped Python 3.10 support. Python 3.11 or later is now required.
18
-
- Removed the obsolete PyPI `asyncio` backport dependency; all supported
19
-
Python versions use the standard-library module.
23
+
- Removed the obsolete PyPI `asyncio` backport dependency.
20
24
- Context managers now preserve subclass types in type checkers, including
21
25
Azure Managed clients and workers.
22
26
- Entity ID copy and pickle hooks now preserve subclass types in type checkers.
23
27
- Multiple task completion callback failures now raise the built-in
24
28
`ExceptionGroup`, preserving each exception and its traceback in memory and
25
-
the first callback error as the explicit cause and serialized inner failure.
26
-
A single callback failure is still raised directly.
29
+
the first callback error as the cause. A single callback failure is still
30
+
raised directly.
27
31
28
32
> [!WARNING]
29
33
> The aggregate exception type and message have changed. Orchestrations that
30
34
> branch on the old aggregate type or message can take a different path during
31
35
> replay; drain affected instances on the previous SDK or use a separate task
32
-
> hub for new instances. Branches on the aggregate's explicit first-error cause
33
-
> retain their previous behavior.
36
+
> hub for new instances.
34
37
35
38
FIXED
36
39
37
40
- Activity and sub-orchestration retry policies now honor
38
41
`failureDetails.isNonRetriable`, surfacing the failure immediately without
39
-
scheduling a retry timer or another attempt. Existing histories that already
40
-
retried such failures can replay differently; drain affected instances on the
41
-
previous SDK before upgrading.
42
+
retrying. Existing histories that already retried such failures can replay
43
+
differently; drain affected instances on the previous SDK before upgrading.
42
44
- Grouped failures now retain nested exception messages, tracebacks, and notes
43
45
in failure details, including `ExceptionGroup` failures from task callbacks.
44
-
Traceback rendering is limited to 15 children per group and 10 group levels,
45
-
with truncation markers for omitted diagnostics. Failure details do not
46
-
serialize a complete structured tree of group children.
47
-
- Optimized set and frozenset serialization, particularly for deeply nested
48
-
frozensets and large singleton elements. JSON object names within sets are now
49
-
ordered consistently after conversion to strings, including numeric names.
50
-
Equivalent surrogate-pair and non-BMP object names retain the last value
51
-
rather than emitting duplicate JSON properties.
52
-
Set reconstruction remains opt-in.
53
-
- With set reconstruction enabled, annotated sets of typed tuples are now
54
-
recognized during input and activity-result discovery, and bare
55
-
`collections.abc.Set` annotations reconstruct JSON arrays as concrete sets.
56
-
- Implemented `__hash__` and `__repr__` for `EntityInstanceId`, making identity attributes immutable to guarantee hash stability when used in sets or dict keys.
57
-
- Large-payload externalization now checks every eligible payload's maximum
58
-
size before uploading or replacing any protobuf values, including carryover
59
-
events and entity payloads, for both synchronous and asynchronous calls.
60
-
Oversized messages remain unchanged and cause no uploads; their size error
61
-
now takes precedence over hypothetical earlier storage failures.
46
+
- Improved set and frozenset serialization performance and consistent JSON
47
+
object-key handling.
48
+
-`EntityInstanceId` is now hashable and has a diagnostic `repr`, allowing use
49
+
in sets and as dictionary keys. Entity IDs are now immutable.
50
+
- Oversized payloads now fail validation before any payload uploads or
51
+
replacements occur.
62
52
- Orchestrations that exceed the configured external payload storage limit now
63
53
fail without retrying and release their entity locks, allowing other callers to
0 commit comments