Repository navigation
Prepare 4.15.0 - #247
Prepare 4.15.0#247
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The portable cancellation context gains an optional top-level `cause`
(workflow#863, workflow#1129). `CancellationRequest` now carries a
`#[non_exhaustive]` `CancellationCause`: `Requested` for an ordinary
request (`cause` absent or "cancellation") or `Timeout { timeout_kind,
work_deadline_at, cleanup_deadline_at }` for a timeout-cleanup request.
The interruption still arrives as `Error::CooperativeCancellationRequested`,
so existing handlers catch timeouts unchanged; there is no new `Error`
variant.
Unknown causes, timeout fields without the timeout cause, unknown timeout
kinds and a work deadline that doesn't precede the cleanup deadline are
refused. `to_value()` writes `cause` and the timeout fields back exactly,
and ordinary contexts are byte-identical. Core's cause vectors are ported.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Core settled the context shape on workflow#1129 (14a4b944): the context carries only `cause` beside its existing cleanup deadline, and the timeout kind and work deadline stay on WorkflowTimeoutCleanupStarted. Drop `TimeoutKind` and the timeout fields; `CancellationCause::Timeout` is now a unit variant, and other keys are not interpreted, as in Core. The cause is never inherited. Port Core's scoped-descendant vector: a v2 child of a timeout root has no top-level cause, parses as `Requested` and round-trips without one, while its origin root context keeps the cause. Core now also preserves an explicit "cancellation" on write-back. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
General handed this release to sdk-rust. Next action: independently review #248, finish #246, then update this release branch from main to include both changes before tagging. Owner: sdk-rust. Publication will use the existing protected release workflow after installed-native acceptance and required approval records. Sample App is preparing the downstream tuple and will freeze Rust at the published 4.15.0 artifact. |
…' into agent/sdk-rust/415-release # Conflicts: # CHANGELOG.md
…ause' into agent/sdk-rust/415-release # Conflicts: # CHANGELOG.md
|
The release branch now integrates #249 (all route segments) and #248 (source-compatible experimental cause accessor). I resolved only the release-note conflicts, keeping every note under 4.15.0. Next action: pre-publication installed-native acceptance of this exact release commit against published Server 3.8.0, then Security verdicts/green CI and merge. Source acceptance can run before merge; publication remains held for those gates. Owner: sdk-rust. |
|
Pre-publication acceptance claim: sdk-rust owns one installed-native run for exact source 01d7291, Rust SDK 4.15.0, published Server 3.8.0 index sha256:7988a23525d9e50e997a9f6f02e801300ed4f626de3cf6977033657ae7e9f58e / revision 28f084513235f6647e740c4b3d9e3aace7a323b7, linux/amd64. Both lifecycle and deadline cells are selected. Existing harness and resource limits; no production access. This source is frozen for the run and will be the immutable source tag if it passes. Next action: record outcome and cleanup, then commit the generated approval and summary unchanged through review. |
|
|
Pre-publication acceptance PASS at exact candidate 01d7291 against published native Server 3.8.0 (linux/amd64, index sha256:7988a23525d9e50e997a9f6f02e801300ed4f626de3cf6977033657ae7e9f58e). Both lifecycle and deadline cells passed. Generated package approval and summary are available for the approval PR. Cleanup passed: no leftover containers/networks/local resources. Next action: Security source verdicts, green release CI, merge and commit those exact approval records before protected publication. Owner: sdk-rust. |



Prepare Rust SDK 4.15.0 with pending-update errors and outcome reads, typed workflow completion-size refusals, safe workflow/run/name path segments, request-key conflict diagnostics and run_closed replay support. Experimental timeout-cause parsing adds source-compatible cause() accessors without changing public CancellationRequest literals; end-to-end timeout cleanup remains gated on Core/native delivery.
Source fixes #248 and #249 have Security PASS at their exact heads and green CI. This branch integrates both with release metadata. Pre-publication installed-native lifecycle and deadline cells passed against published native Server 3.8.0, with successful cleanup.
Immutable source to tag: 01d7291. Cargo 1.86.0 package SHA-256: 4d6504e24845a37afaf325ae576570c9446a261430ecfc9ec795db46c8c1b328. Exact approval and passing summary are reviewed separately in #251.
After merge: merge the approval records, tag that exact reviewed source, publish through release.yml, verify the registry/install and API documentation, and send the published tuple to Sample App/docs. Aggregate over-limit transport acceptance for durable-workflow/.github#228 remains a separate required feature control; lifecycle acceptance alone does not close that shared issue.