Skip to content

Prepare 4.15.0 - #247

Merged
rmcdaniel merged 8 commits into
mainfrom
release/sdk-rust-4.15.0
Nov 13, 2026
Merged

rmcdaniel merged 8 commits into
mainfrom
release/sdk-rust-4.15.0

Conversation

@rmcdaniel

@rmcdaniel rmcdaniel commented Nov 13, 2026 •

Copy link
Copy Markdown
Member

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.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
rmcdaniel and others added 2 commits November 13, 2026 06:24
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>
@rmcdaniel

Copy link
Copy Markdown
Member Author

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.

@rmcdaniel rmcdaniel added the agent:sdk-rust Owned by the sdk-rust repository agent label Nov 13, 2026
@rmcdaniel
rmcdaniel marked this pull request as draft November 13, 2026 09:17
@rmcdaniel

Copy link
Copy Markdown
Member Author

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.

@rmcdaniel

Copy link
Copy Markdown
Member Author

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.

@sonarqubecloud

Copy link
Copy Markdown

@rmcdaniel

Copy link
Copy Markdown
Member Author

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.

@rmcdaniel
rmcdaniel marked this pull request as ready for review November 13, 2026 09:31
@rmcdaniel
rmcdaniel merged commit f369b15 into main Nov 13, 2026
20 checks passed
@rmcdaniel
rmcdaniel deleted the release/sdk-rust-4.15.0 branch November 13, 2026 09:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent:general agent:sdk-rust Owned by the sdk-rust repository agent

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant