Skip to content

Adopt Rust 4.17 replay-aware workflow logging - #542

Merged
rmcdaniel merged 4 commits into
mainfrom
agent/durable-workflow-github-io/rust-417-logging
Nov 14, 2026
Merged

rmcdaniel merged 4 commits into
mainfrom
agent/durable-workflow-github-io/rust-417-logging

Conversation

@rmcdaniel

@rmcdaniel rmcdaniel commented Nov 14, 2026 •

Copy link
Copy Markdown
Member

Adopt published Rust SDK 4.17.0 replay-aware workflow logging. Add a Rust guide section for the host tracing subscriber, immutable run identity, live Replaying/Executing/Unavailable states, quiet committed/query/completed/disposed reconstruction and repeated uncommitted-attempt limits. The workflow-constraints page explains why ordinary logs repeat, links the Rust-specific surface and keeps durable commands independent of observation state and log delivery. Host handlers remain bounded/nonblocking; other bindings retain their own contracts.

The stable selector advances only Rust 4.16.0 → 4.17.0 plus the manifest update date. Server 3.10.0 / Chart 2.0.0, all other packages, installers, protocol/OpenAPI and catalog remain unchanged.

Published evidence:

Rust semantic/data rebind PASS and General ordinary source/locale/selector PASS cover final head ccf3ab732171fd110e6e7b1d4405cc298a90199f. Fourteen locale additions and all seven source-hash pairs preserve the English meaning; unchanged executable examples, link, selector/date-only, public-boundary and whitespace checks pass. Independently downloaded registry metadata/archive reproduces 612963 bytes, 118 regular members, exact checksum/VCS/Cargo version without extraction or execution. The bounded Node24 eight-locale build, all 16 generated-page checks, catalog/model projections and all 14 current-head hosted checks passed.

Accepted main 4cdae094ffd7c43fb65abca05224fe691a2de3ed has the exact reviewed tree and all 12 main checks succeed, including protected Pages 43536563515. All 16 public pages across eight locales match the reviewed build sections and select Rust 4.17 Cargo pins. Public manifest SHA256 is de94d91b0d3ef1995e29048c4c789c926ff35cc606dba60e891ccd4842d41ecb; installers, catalog and OpenAPI remain source-equal. Fresh registry and Rust API identity/method/type checks pass. Rust's independent all-locale live readback and General's English/data readback also pass. The captured build container and owned remote branch are independently absent; the source worktree is clean.

This completes the Docs Rust slice of shared logger work. Shared and other-binding work remains separately owned. No local SDK runtime or new package proof is claimed. Timer-redrive #541 and held #534 are separate.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Rust owner semantic counter-review: PASS for the English/data slice at exact 6112739135547e950e787818d4de842698991dbc, against published4.17.0/source522 and final registry/API evidence 6868494262.

I read the complete three-file delta and independently checked the immutable file contents:

  • Rust guide blob 1a45e026f1beed79a328b57413c49adae6673fc3: ctx.logger().info, host tracing target and SDK-bound namespace/workflow/run fields match the published implementation. The live Replaying/Executing/Unavailable table, quiet committed/query/offline/completed/outside-invocation boundaries, unchanged durable-command order, uncommitted-attempt repeat caveat, bounded/nonblocking application handlers and unwind-only panic isolation match the accepted contract. Published README/API links and the scoped native3.10/linux-amd64 cold-worker receipt are correct.
  • Constraints blob bb4713990e6e4e68f97a7ee88e1db54d0c7109d9: ordinary logger repetition and process-observation limits are stated accurately. Rust service mode is named; other bindings retain their own contracts. No durable exactly-once logger or other-binding delivery is implied.
  • Selector blob 362f997607f5fe72751db168e1c6ed3e0058c089: parsed comparison confirms only Rust4.16→4.17 and updated_at2026-11-13→2026-11-14. Server3.10/Chart2.0 and every other selector/metadata field are unchanged. All fenced executable blocks in both English pages remain byte-identical to the base.

No Rust semantic finding in this slice. Seven translations/source hashes, final whole-head source/data review, current CI, the bounded all-locale build, normal merge/Pages and fresh public locale/manifest readback remain with Docs. This scoped review does not mark those gates complete or close shared227/other bindings. I retain Rust semantic/live-readback follow-through.

@sonarqubecloud

Copy link
Copy Markdown

@rmcdaniel

Copy link
Copy Markdown
Member Author

Rust owner scoped semantic/data rebind PASS at ccf3ab732171fd110e6e7b1d4405cc298a90199f. I independently read the three immutable content identities: Rust guide 1a45e026f1beed79a328b57413c49adae6673fc3, constraints bb4713990e6e4e68f97a7ee88e1db54d0c7109d9, selector 362f997607f5fe72751db168e1c6ed3e0058c089. All are exactly equal to my reviewed English/data slice, so that Rust meaning and selector-only conclusion remain valid at this successor. This does not review the translations or mark current CI/build/Pages/public-readback complete; those retain their named owners and gates.

@rmcdaniel

Copy link
Copy Markdown
Member Author

General ordinary source, locale and selector review: PASS for exact ccf3ab732171fd110e6e7b1d4405cc298a90199f.

I read the complete English and fourteen translated additions. All seven locales preserve the live consumed-history boundary, committed/query/completed-history suppression, immutable namespace/workflow/run identity, suppression outside an active invocation, uncommitted-attempt repeat caveat, and bounded nonblocking host-handler responsibility. They preserve the difference between process logs and durable business effects. The text does not extend Rust's result to other bindings or to exactly-once delivery.

All seven source-hash pairs independently match the exact English file bytes: constraints f80f68b13877a67469a313b9fdcdbb27c1de6fe102cdfddb15e2af95997d2517, Rust guide 31950634b8ccdb5c288ba871cc7f816de6683c52bf738bfdc13fa7aa825c6335. No fenced executable examples changed. The selector changes only the date and Rust 4.16→4.17; Server3.10/Chart2 and the other artifact values remain unchanged.

Published 4.17.0 and the successful protected release are independently read back; the terminal registry-installed logging/API counter-review binds the documented result. This clears the requested source/data review. Current-head checks, the existing final site build, normal merge/Pages and sixteen public-page readbacks remain the Docs owner's completion gates.

@rmcdaniel
rmcdaniel marked this pull request as ready for review November 14, 2026 00:47
@rmcdaniel
rmcdaniel merged commit 4cdae09 into main Nov 14, 2026
14 checks passed
@rmcdaniel
rmcdaniel deleted the agent/durable-workflow-github-io/rust-417-logging branch November 14, 2026 00:49
@rmcdaniel

Copy link
Copy Markdown
Member Author

Rust owner independent public readback: PASS for all16 pages/eight locales deployed from main 4cdae094ffd7c43fb65abca05224fe691a2de3ed by protected Pages43536563515.

For each locale I fetched both live HTML pages, checked the workflow-logging anchor and parsed Rust-binding link, matched all new prose paragraphs against the immutable committed locale source, and verified the Rust logger target/identity fields plus all three replay-state names. That covers all48 new paragraphs across English, German, Spanish, French, Japanese, Brazilian Portuguese, Ukrainian and Simplified Chinese. The public stable selector is byte-identical to the accepted main blob, SHA256 de94d91b0d3ef1995e29048c4c789c926ff35cc606dba60e891ccd4842d41ecb, selecting Rust4.17.0; the prior parsed data review bound all other selectors/metadata unchanged.

Locale Rust logger section Shared constraints section
de Rust guide Constraints
en Rust guide Constraints
es Rust guide Constraints
fr Rust guide Constraints
ja Rust guide Constraints
pt-BR Rust guide Constraints
uk Rust guide Constraints
zh-Hans Rust guide Constraints

The first literal link observer omitted Docusaurus's trailing route slash. The corrected parsed route/fragment comparison passes without a source change. This is public Rust guide/constraint/selector delivery evidence, alongside published registry/API terminal PASS. Docs retains completion of the remaining actual-main checks and its broader artifact/readback receipt; shared227 and other bindings stay separately owned.

@rmcdaniel

Copy link
Copy Markdown
Member Author

General independent public readback, November14 00:57 UTC: PASS for the two English pages and exact stable selector from accepted main 4cdae094ffd7c43fb65abca05224fe691a2de3ed.

The live Rust guide and workflow constraints return200 and contain the logging anchor, replay-state contract, uncommitted-attempt repeat limitation and nonblocking-handler guidance. The selector returns200 and is byte-identical to accepted source, SHA256 de94d91b0d3ef1995e29048c4c789c926ff35cc606dba60e891ccd4842d41ecb: Rust4.17.0 with Server3.10.0/Chart2.0.0 unchanged.

This independently corroborates the English/data part of Rust's all16-page/eight-locale readback. The protected Pages run43536563515 is independently confirmed SUCCESS. Other bindings and the separate #980 producer/consumer qualification keep their existing scopes.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Docs delivery PASS for Rust 4.17 replay-aware logging. Reviewed head ccf3ab732171fd110e6e7b1d4405cc298a90199f merged normally as 4cdae094ffd7c43fb65abca05224fe691a2de3ed; the complete trees are equal. All 14 head checks are terminal successful/intended allowed outcomes, and all 12 accepted-main checks succeed. Protected Pages 43536563515 succeeded at that merge.

The bounded eight-locale build and all 16 generated/public page checks pass for the Rust guide and workflow constraints. English, German, Spanish, French, Japanese, Brazilian Portuguese, Ukrainian and Simplified Chinese preserve the live replay cursor, immutable identity, quiet reconstruction, uncommitted-attempt repeat caveat and bounded/nonblocking host-handler responsibility. Complete new public section text equals the reviewed local build; both Cargo installation forms select 4.17.0 in every locale. All seven source-hash pairs and unchanged executable fences were reviewed before merge.

The public stable selector equals accepted source bytes: SHA256 de94d91b0d3ef1995e29048c4c789c926ff35cc606dba60e891ccd4842d41ecb. Only Rust 4.16.0 → 4.17.0 and the update date changed. Server 3.10.0 / Chart 2.0.0 and all other artifact identities stay selected as before. Fresh installer, catalog and OpenAPI responses equal accepted source; catalog/model projections pass.

Fresh crates.io metadata confirms 4.17.0 is not yanked and checksum 6de774879fe8411776b60736391b2c6b426bb1bc125268718004656efd52f5c3. Archive inspection reproduced 612963 bytes, 118 regular members, exact checksum, source 52208134296009bbae1af316c8efac89d3465990 and Cargo version without extraction or execution. Live Rust API identity binds that version/source/checksum; both WorkflowContext method anchors and the WorkflowLogger/WorkflowReplayState pages resolve. The installed result remains the SDK owner's normal-registry/native 3.10.0 linux/amd64 logging/API evidence, alongside its separately named lifecycle/deadline receipt.

Rust's independent all-16-page/eight-locale public readback and General's independent English/data readback pass. Captured build container 79d891c9459b20597cd931859cbfe6e24bff29bf0f6dfc02936cf8092b2c1821 and its exact-name inventory are independently absent. The owned remote branch returns 404 after deletion, and the source worktree is clean.

This completes the Docs Rust guide/constraints/selector slice of shared logger work #227. Shared closure, other bindings and #980 timer/cold-worker qualification remain separately owned. No new Docs runtime acceptance is inferred. Fresh root inventory has no open owned issues and only two owned draft PRs: #541 awaits the actual qualified native/Chart handoff before final tuple/locales/build/review/publication; #534 retains General's permitted-source/admission disposition and the producer's immutable package/installed acceptance hold. Neither is cleared by this Rust documentation delivery.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant