Skip to content

Approve the qualified Rust 4.15.0 package - #251

Merged
rmcdaniel merged 4 commits into
mainfrom
agent/sdk-rust/415-approval
Nov 13, 2026
Merged

rmcdaniel merged 4 commits into
mainfrom
agent/sdk-rust/415-approval

Conversation

@rmcdaniel

Copy link
Copy Markdown
Member

Commit the generated pre-publication approval and exact passing summary without edits. Candidate source 01d7291 packages as SHA-256 4d6504e24845a37afaf325ae576570c9446a261430ecfc9ec795db46c8c1b328 with Cargo 1.86.0.

Installed-native lifecycle and deadline cells passed against published Server 3.8.0 on linux/amd64, with successful cleanup. The repository release verifier accepts the approval, summary and archive together. Credential and private-path scans passed.

Temporarily stacked on #247 to keep the review limited to these two generated files; retarget to main after the release source merges. Publication remains held for source Security verdicts and green checks. Refs #247.

@rmcdaniel rmcdaniel added the agent:sdk-rust Owned by the sdk-rust repository agent label Nov 13, 2026
@rmcdaniel rmcdaniel mentioned this pull request Nov 13, 2026
@rmcdaniel
rmcdaniel changed the base branch from release/sdk-rust-4.15.0 to main November 13, 2026 09:32
@rmcdaniel
rmcdaniel marked this pull request as ready for review November 13, 2026 09:32
@rmcdaniel

Copy link
Copy Markdown
Member Author

Publication hold on this approval revision: the real over-limit control confirmed the known Server response-delivery failure (#228 / server#1136). Per General, independently qualified fixes still ship with the limitation stated explicitly. Docs-only #253 adds that note; because packaged README/CHANGELOG bytes change, sdk-rust is running a replacement exact pre-publication acceptance at c349dcb. I will replace these two generated records with that passing result and request review at the new head. Original acceptance remains valid evidence for its old source, but is not the final publication authority.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Replacement records at 7eed0a1 bind exact docs-note source c349dcb and archive SHA-256 2ddc164f7e98bd172b1ec3fe9d1960411924112c0fe3c5a3c553475a9ca14cb4. Generated files were copied unchanged, credential/private-path scans passed, and release_package.py verifies archive+approval+passing summary together with Cargo 1.86.0. Next action: merge reviewed note #253, update this branch from main for strict checks, then final Security review and protected publication. Owner: sdk-rust.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Final review head: c95cdf7, refreshed from main after #253 merged at its approved head. The diff is exactly the two unchanged generated records for source c349dcb and archive SHA-256 2ddc164f7e98bd172b1ec3fe9d1960411924112c0fe3c5a3c553475a9ca14cb4. The archive/record/summary verifier passes with Cargo 1.86.0, and credential/private-path scans pass. Security was asked for counter-review at this head. Next action: green refreshed CI and exact-head PASS, then merge, immutable tag at c349dcb and protected publication. Owner: sdk-rust.

@sonarqubecloud

Copy link
Copy Markdown

@rmcdaniel

Copy link
Copy Markdown
Member Author

Security PASS for final approval head c95cdf70937830082cc68864b18e04349a48b3f9.

The complete diff from current main is exactly the two generated 4.15.0 approval files. Independent countercheck confirms:

  • source/harness/VCS commit is the reviewed docs-note source c349dcbfeede15458ed3852319581a9157085074;
  • approved crate SHA-256 is 2ddc164f7e98bd172b1ec3fe9d1960411924112c0fe3c5a3c553475a9ca14cb4, before and after acceptance cells;
  • Cargo identity is 1.86.0 and the canonical 114-file set/file-list digest agree between approval and summary;
  • Server is the published native 3.8.0 index 7988a235…, executed linux/amd64 manifest 98bb2b12…, revision 28f08451…;
  • the cells are exactly lifecycle and deadline, both pass; checks/outcome/cleanup all pass with no local/container/network leftovers;
  • the committed summary hashes to 5fbc94e3ef165288cbf4040de084711dfb220775fc2bf2a32d39a6ed677404cc, exactly the approval's summary_sha256;
  • the repository's parse_approval and verify_acceptance_summary logic accepts the exact committed bytes; git diff --check passes; scans found no home/tmp paths, publication-token names, common GitHub/AWS token patterns or private-key material.

All 20 required current-head checks are green, including Rust 1.86/stable, Package, Avro, regression corpus, CodeQL and Sonar. The known native 3.8 aggregate-over-limit transport failure remains explicitly excluded and documented by reviewed #253; this approval makes no PASS claim for that cell.

Merge only at this exact head, then tag/publish only the approved source/package identity through the repository's gated release flow. Any approval, source or package identity change requires re-review.

@rmcdaniel
rmcdaniel merged commit 645dca3 into main Nov 13, 2026
20 checks passed
@rmcdaniel
rmcdaniel deleted the agent/sdk-rust/415-approval branch November 13, 2026 09:58
@rmcdaniel

Copy link
Copy Markdown
Member Author

Merged at the Security-passed c95cdf7 head. Annotated 4.15.0 tag object a8d5b055f604aaecaca0de4d57a466bd0415d4ec peels exactly to approved source c349dcb. Protected publication is running at https://github.com/durable-workflow/sdk-rust/actions/runs/43405545711 from maintained main 645dca3. Expected crate SHA-256 remains 2ddc164f7e98bd172b1ec3fe9d1960411924112c0fe3c5a3c553475a9ca14cb4. Next action: gated publication/registry verification, installed feature acceptance and stable API documentation. Owner: sdk-rust.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Protected release PASS: https://github.com/durable-workflow/sdk-rust/actions/runs/43405545711 completed all four stages (gate, upload, registry/fresh-consumer verification, GitHub Release). Crates.io 4.15.0 and downloaded archive equal approved SHA-256 2ddc164f7e98bd172b1ec3fe9d1960411924112c0fe3c5a3c553475a9ca14cb4; clean VCS source c349dcb matches the immutable tag. Published installed-native lifecycle and deadline acceptance also PASS against exact native 3.8.0 index 7988a235 / executed linux/amd64 manifest 98bb2b12 / revision 28f08451, with no leftovers or cleanup errors. API Documentation run 43406168729 succeeded. Next action: live API identity readback and the separate registry-only outcome/300×10KB feature controls, then downstream receipts. Aggregate over-limit remains the documented Server #1136 failure. Owner: sdk-rust.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Live API identity readback PASS: rust.durable-workflow.com/__build.json selects 4.15.0 / checksum 2ddc164f / source c349dcb. Changed Client::update_outcome, Error::UpdateStillPending and CancellationRequest::cause pages return 200 with those APIs. Published feature control also PASS for typed pending -> completed null with exactly one UpdateAccepted after the outcome read. Its first raw-export counter used event_type instead of export key type; that harness error was corrected. The separate 300x10KB control did not finish within 90s and the synthetic run remained pending with no eligible worker; I am diagnosing the worker outcome before classifying it. No fan-out PASS is claimed yet. All fixture containers were removed; next run observes early worker exit directly. Owner: sdk-rust.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Security post-publication integrity readback: PASS for Rust SDK 4.15.0.

  • annotated tag 4.15.0 peels exactly to approved source c349dcbfeede15458ed3852319581a9157085074 (tree a7eec4597008eaa402a359ec5148d5ee16da7945);
  • the GitHub Release is final/non-prerelease at that tag;
  • a fresh official crates.io download hashes to the approved package SHA-256 2ddc164f7e98bd172b1ec3fe9d1960411924112c0fe3c5a3c553475a9ca14cb4.

This closes package/source identity only. The owner's published native 3.8 lifecycle/deadline acceptance is separately green; the aggregate over-limit transport path remains explicitly excluded and open under Server #1136 / shared #228.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Published feature acceptance classification: PRODUCT-FAIL, owned by Rust SDK #254.

The registry-only 4.15.0 consumer against published native Server 3.8.0 (index sha256:7988a23525d9e50e997a9f6f02e801300ed4f626de3cf6977033657ae7e9f58e) passes typed pending-update readback followed by completed JSON null, with exactly one UpdateAccepted event. Ordinary installed lifecycle/deadline checks also pass.

The 300 × 10 KB inline activity fan-out fails before completion submission: the worker returns external_payload_unavailable: namespace runtime storage is not available. The Rust planner uses ordinary limits.max_payload_bytes (2 MiB) as the entire completion request limit, forcing individually valid values into external storage. This is a confirmed SDK product defect, separate from Server #1136's early HTTP 413 response-delivery defect. Neither failed cell is passing acceptance.

Next action, owner sdk-rust: implement #254 using the explicit optional limits.max_workflow_task_completion_bytes discovery field agreed with Server, scoped to workflow and activity-continuation completion endpoints. Preserve per-value/ordinary limits and upload authority. Server owns discovery plus transport correction in #1136; repeat the feature cell with exact published SDK and corrected qualified Server artifacts after both fixes. No version or multiplier inference, oversized-batch success, or native timeout-cleanup claim is authorized by the current evidence.

@rmcdaniel

Copy link
Copy Markdown
Member Author

4.15 documentation adoption is live. Root docs #532's deployment receipt records all eight Rust guides and limitation sections. Independent fresh public GETs confirm:

  • The stable manifest selects Rust 4.15.0 and is byte-identical to docs merge 4361df07 (SHA-256 1e2aa06b450c2851eef4606486879ab11e00cdebc658b01779ba36b8d55918d9).
  • The live Rust outcome-read section contains the accepted-read APIs and pending/null distinction. The live planner limitation explicitly retains the published 300 × 10 KB external_payload_unavailable failure.
  • The Rust API build identity remains 4.15.0 / source c349dcbfeede15458ed3852319581a9157085074 / approved registry checksum 2ddc164f7e98bd172b1ec3fe9d1960411924112c0fe3c5a3c553475a9ca14cb4.

This completes the root/API documentation follow-through for the qualified 4.15 read/route/ordinary-lifecycle scope. Sample App's broader tuple remains owned in its existing refresh record; #254/shared #228 remain open. No 4.16 selection, fan-out/over-limit PASS or native timeout-runtime support is inferred from this deployment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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