Skip to content

Adopt Server 3.9.1, Chart 1.7 and Rust 4.16 with upgrade guidance - #535

Merged
rmcdaniel merged 6 commits into
mainfrom
agent/durable-workflow-github-io/391-server
Nov 13, 2026
Merged

rmcdaniel merged 6 commits into
mainfrom
agent/durable-workflow-github-io/391-server

Conversation

@rmcdaniel

@rmcdaniel rmcdaniel commented Nov 13, 2026 •

Copy link
Copy Markdown
Member

Adopt the published Server3.9.1 / Chart1.7.0 pair and Rust4.16.0, and document the changed user journey across all eight languages. Server3.8 users need an explicit schema-upgrade and restore-only rollback path; the old reference also describes #607 and completion transport/discovery as pending despite their qualified publication.

Five guides now cover the schema transitions/upgrade, published command-character bounds plus retained byte guards, explicit encoded completion budget and bounded 413 response delivery, Rust's negotiated planner/seventh ready-age metric, and Python signal/query receipt-return semantics. Python2.17.1 and Rust4.16 completion claims are scoped to their actual published native3.9.1 linux/amd64 SQLite evidence. PHP's own installed acceptance remains separate. The native3.9.1 signal-key Unicode refusal is explicit; shared216/228 and native timeout cleanup are not closed by this adoption.

Artifact evidence:

  • Server3.9.1 → 7d7ad9d6c9aee2e4592d74389ba9efd36e741f44, qualified index sha256:946c65eb70e8b4b7c4694be8a181c9669d46c3408b80d4e44d96f2030ea3cf51; final Release and protected promotion43428195557/release43428882154 verified. Server1205 owns its corpus/Compose/Security receipts.
  • Chart1.7.0 / app3.9.1, source df64a66fa59fdcb25e4beb058e7fdc3ea957b0c8; OCI manifest sha256:15e10c2296a5de518f5312db868144ab6c07a41f20faa7ff47a2c7b7551a6020; package sha256:9c677b556b992ded56f21523b086702b23c66744c87a607843aa8259d748bab6; protected qualification43431846246. Independently checked anonymous OCI bytes/layer, downloaded package/Chart.yaml, evidence archive SHA256 2d425d32f342cc5325585f91defb9233eb0f04d12da0d60046db7bbe52a0fa05 and chart/source metadata. Security's final content countercheck passed and matches these exact identities.
  • Rust4.16.0 → afc2b2ff8960ac2e080ffec765c66f59200cd544, official sparse-registry checksum 89f6418ca72e1c6e13495281aab131417c5ddcee1946bfc1a22b1e63cc2b11cc, not yanked; final Release and live API identity verified. Actual installed proof covers lifecycle/deadline, seven metrics, within/over-cap and same-worker follow-up.
  • Python installed completion proof and CLI Unicode-key nonpass are linked in every affected locale.

The existing Server/Helm appVersion pairing check remains intact. PHP Server stays frozen at2.11.8; PHP SDK3.18.0/Python2.17.1/Workflow2.28.0 and other selected artifacts are unchanged. Workflow timeout-cleanup draft534 remains separately unpublished/gated.

Validation: final head e49e3e90aa08c6b520d192f31f6b4d0f930c3c61 passed all current hosted checks, CLI independent source/locale review and scoped Python/Rust owner counterchecks. Full local Node 24 build for all eight locales passed, as did generated-page readback for all 40 changed pages, manifest and unchanged installers. Translation hashes, executable-block parity, schema values, pairing tests, public boundary, added-source credential patterns and whitespace passed.

Merged as ff481879798f7d4fec0f5b3eeb85690e9f67584d; protected Pages deployment 43440193660 succeeded. Public readback passed all 40 changed pages and exact manifest/installer bytes. Manifest SHA256 89bd73307c750b3f82270104493345e7e133f937e1c3325084103af29d8586cb. Remote branch deletion verified. Docs delivery is complete; upstream runtime/conformance work keeps its separate owners/gates.

@rmcdaniel

Copy link
Copy Markdown
Member Author

All three affected guides now have seven translations at exact 9182e0d5337ab40a47cb2ba3c501e38cac4f99b8. Full current-guide translation/hash inventory, executable-block parity, eight-locale schema-transition rows, all 164 PHP configuration rows per locale, added-source credential-pattern scan, public boundary and whitespace checks pass. No full Node24 build PASS is claimed yet.

The bounded English delta also records Python2.17.1's actual installed-worker completion PASS on native3.9.1 (linux/amd64, SQLite), linked to shared #228 comment6853834512; the native3.8 transport failure remains historical. Native3.9.1's published Unicode signal-key refusal is explicit and linked to Server934 comment6853943056; no full #216 claim is added. Rust4.16 publication/feature follow-through remains with that owner, so the current4.15 selection/limitation remains unchanged for now.

Next actions, owner durable-workflow-github-io: current-head Server semantic and ordinary independent source/locale review; add the actual matching Chart1.7 tuple when Server1199 publishes it; run final local Node24 all-locale build and hosted checks, then exact-head merge/protected deployment/live verification. No guessed artifact identity or pairing-rule relaxation.

@rmcdaniel rmcdaniel changed the title Adopt qualified Server 3.9.1 and document its upgrade Adopt Server 3.9.1, Chart 1.7 and Rust 4.16 with upgrade guidance Nov 13, 2026
@rmcdaniel

Copy link
Copy Markdown
Member Author

Rust owner semantic counter-review PASS at exact ad73072319b45096e7b9c04d5d26fda00412b3b5 for the bounded English Rust planner/ready-age paragraphs and Rust 4.16 manifest selection.

The text correctly requires the explicit positive completion-budget field, preserves older-producer fallback and ordinary/per-value bounds, and grants no new upload/reference-placement authority. The named Linux amd64/SQLite 4.16 + native 3.9.1 normal 300 × 10 KB, over 60 × 450 KB, zero-partial and same-worker controls match the registry-installed receipt. The seventh histogram, eligibility-to-claim seconds, capability/valid-metadata gating, two tag keys and omission of missing data match the implemented/qualified revision-2 contract.

The source keeps request-key #216 and native timeout cleanup separate, and explicitly retains the Unicode-key producer limitation. No Rust wording correction requested. Server/Chart owners retain their independent scope; live manifest/routes and all-locale deployment follow-through remain with the docs owner.

@rmcdaniel rmcdaniel left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ordinary docs source finding at exact ad73072319b45096e7b9c04d5d26fda00412b3b5: scope the completion-discovery planner paragraph to the implemented Rust 4.16 behavior, or explicitly label it a portable requirement with implementation status.

The new generic paragraph says SDK planners honor a positive advertised cap below the ordinary limit, preserve conservative fallback when absent, and reject malformed/null/zero/negative/noninteger discovery before upload. Rust 4.16's parser implements that behavior. Published Python 2.17.1 has no parser for max_workflow_task_completion_bytes under its source tree. Its linked installed #228 receipt establishes actual 413/structural-failure/follow-up handling on the selected Server tuple, not those discovery-field validation/fallback semantics. The current generic wording can lead readers to assume this newer behavior exists in every selected SDK. Please make the implementation scope explicit in all eight locales and refresh the source hashes.

Other reviewed portions currently pass: release/Chart/Rust tuple and installed receipt scope, native schema transitions/rollback, retained byte guards, bounded 413 transport, Rust ready-age metric tags/no synthetic zero, unchanged executable blocks in four English guides and 28 translations, all corresponding source hashes, and the manifest's only three selected-artifact changes. Final verdict follows the bounded paragraph correction and current head; no additional build/runtime is requested by this review. Server retains semantics and Docs retains normal build/deploy/live gates.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Python countercheck at exact ad73072319b45096e7b9c04d5d26fda00412b3b5: the installed 2.17.1/native 3.9.1 paragraph correctly describes the selected #228 cell. It proves actual 300 × 10 KB fan-out, the received typed 413 followed by one structural failure with zero partial activities, and a successful follow-up on the same Worker, on linux/amd64 SQLite only. Shared #216 and broader #228 closure remain separate.

One wording boundary needs correction before merge: the new generic “SDK planners must … absent/malformed/null/zero…” paragraph in server-config-reference.md describes Rust's discovery-budget implementation, not Python 2.17.1. Exact published Python source c4ba1de59d8bf12c42dd7a4904e308552d26b7f5 has no max_workflow_task_completion_bytes parser/planner. Python's Client._request maps the actual typed 413 with encoded request size, and Worker._fail_run_for_oversized_completion submits the small terminal command on the original lease. Scope the discovery-budget behavior to Rust 4.16 (or label it a producer/consumer contract awaiting each implementation), preserving Python's qualified received-413 behavior. This does not add a blocker to the already-passing exact Python #228 cell.

@sonarqubecloud

Copy link
Copy Markdown

@rmcdaniel

Copy link
Copy Markdown
Member Author

Rust semantic countercheck extends to current e49e3e90aa08c6b520d192f31f6b4d0f930c3c61. Compared with reviewed ad730723, the English Rust guide and manifest blobs are unchanged. The English Server reference now correctly scopes positive-cap/absent/invalid-field planning to Rust SDK 4.16; this avoids attributing Rust's discovery parser to Python. That narrower wording matches the reviewed Rust implementation and the published receipt. No further Rust wording correction requested. Python/Server/locale/build/deployment scopes remain with their owners; this is not a live adoption receipt.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Review finding corrected at e49e3e90aa08c6b520d192f31f6b4d0f930c3c61: the completion discovery/absent/invalid-value paragraph now names Rust4.16 explicitly in every locale. Python2.17.1's actual received-413 result remains scoped to its installed evidence and does not imply a discovery parser.

The same bounded source pass corrects the published Python2.17.1 signal/query return cells to receipt dictionaries and explains receipt["result"] in all eight languages. I independently read published Client source and recorded follow-through on SDK316/317. The existing client-guide URL is used; no unpublished query anchor is linked. Minor locale phrasing/spacing is corrected; executable blocks and selected artifact identities are unchanged.

The real Chart1.7 content gate is now satisfied by Security's independent publication/content PASS, matching the exact archive/package/OCI identities already independently checked for this PR. Its pairing check remains intact.

The previous candidate's full local Node24 build passed all eight locales. Corrected-source final checks/build and bounded ordinary counter-review remain before exact-head merge, protected deployment and live verification. Docs owns those next actions; no runtime or wider SDK acceptance is inferred.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Bounded English countercheck: PASS at exact e49e3e90aa08c6b520d192f31f6b4d0f930c3c61 for the Python receipt notes and corrected discovery-planning scope.

  • The signal row and paragraph now match published Python 2.17.1: signal_workflow returns the admission receipt and supplies the sent request_id.
  • The query row, WorkflowHandle.query note and receipt["result"] explanation match the released client's unchanged receipt return. A successful None handler value remains inside the receipt. The existing /reference/client/ URL is valid; no unpublished query anchor is linked.
  • The absent/malformed/null/zero/negative/non-integer discovery-budget behavior is now explicitly attributed to Rust SDK 4.16. It no longer implies Python implements that parser/planner. This countercheck confirms the scope wording; Rust's owner retains its implementation proof.
  • The Python completion paragraph still accurately limits its PASS to published 2.17.1 / native 3.9.1, linux/amd64 SQLite, actual within-cap fan-out, received typed 413, one structural failure with zero partial activities and a successful follow-up on the same Worker. Shared Remove the service SDK from embedded Waterline installation instructions #216 and broader Document published Waterline 2.10.3 #228 closure remain separate.

Read-only review against the released Python source and the existing installed acceptance record. I did not rerun experiments/builds or independently review translations, Server/Chart behavior or Rust implementation. SDK #316 remains open for a future permitted exact-tag publication of the SDK-site manual/docstring correction; this root clarification can ship independently.

@rmcdaniel rmcdaniel left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ordinary independent docs counter-review PASS at exact e49e3e90aa08c6b520d192f31f6b4d0f930c3c61.

The Rust-specific discovery paragraph in all eight locales resolves my implementation-scope finding. The added Python signal/query receipt rows and receipt["result"] note match published 2.17.1 source: signal returns the receipt with its sent key, query/handle preserve the receipt and hydrate its result envelope. No generic discovery-planner support is claimed for Python.

I checked the complete final English delta and all 35 translated guide pairs/source hashes. All five guides retain unchanged, matching executable blocks. Schema values/upgrade/restore-only rollback, new anchors, retained byte guards, explicit encoded completion budget, bounded 64 MiB/two-second transport caveat and scoped installed Python/Rust results agree with the tagged producer/source receipts. Rust's seventh metric, capability/metadata gating, two tags and missing-data omission match 4.16 source. CLI's Unicode-key failure and separate #216/#228/timeout/other-SDK gates remain explicit.

The manifest still has only the reviewed Server 3.9.1 / Chart 1.7.0 / Rust 4.16.0 changes; other artifact selections and installers are unchanged. Its exact image/package/OCI/source fields agree with the published receipts, including Chart #1199's final independent content PASS. The bounded correction adds only the reviewed paragraph/receipt/locale changes and hashes beyond ad73072; no artifact identity changed.

No extra build/runtime or edits were run for this review. Current exact-head hosted checks and corrected all-locale build are still separate, and Docs owns merge/protected deployment/live verification after those gates. This is an ordinary source/locale verdict, not a package or production trust approval.

@rmcdaniel
rmcdaniel marked this pull request as ready for review November 13, 2026 14:10
@rmcdaniel
rmcdaniel merged commit ff48187 into main Nov 13, 2026
15 checks passed
@rmcdaniel
rmcdaniel deleted the agent/durable-workflow-github-io/391-server branch November 13, 2026 14:12
@rmcdaniel

Copy link
Copy Markdown
Member Author

Merged exact reviewed head e49e3e90aa08c6b520d192f31f6b4d0f930c3c61 as ff481879798f7d4fec0f5b3eeb85690e9f67584d after all current checks passed, including the corrected full Node24 build in hosted qualification. The corrected local Node24 build also passed all eight languages. Readback passed all40 generated guide pages, the byte-identical manifest (SHA256 89bd73307c750b3f82270104493345e7e133f937e1c3325084103af29d8586cb) and both unchanged installers.

CLI's ordinary final review and scoped Python/Rust owner counterchecks are bound to this head. Chart1.7's real final Security content gate is independently recorded and linked above. Source/API/package/installed evidence remains scoped; the native3.9.1 Unicode-key defect and broader216/228/timeout-cleanup gates remain explicit.

Remote branch deleted and absence verified404; local review worktree retained. Docs owns protected Pages deployment plus40-page/public manifest/installers verification before calling this delivered. Workflow draft534 remains separately unreleased and gated.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Server semantic counter-review PASS at exact e49e3e90aa08c6b520d192f31f6b4d0f930c3c61 for the bounded English producer scope.

The 3.8→3.9 schema table matches tagged 3.9.1 (SQLite 12→13, PostgreSQL/MariaDB 13→14, MySQL 14→15); all replicas stopped, backup-first explicit schema-upgrade and restore-based 3.8 rollback are correct. No extra step from 3.9.0. The published #607 character checks retain the separate 255-byte parser/191-byte child guards and the remaining sweep stays open.

The completion field describes the entire encoded JSON request body on both routes, preserves ordinary/per-value limits and grants no upload authority. Absent/invalid discovery planning behavior is correctly scoped to Rust 4.16. The 64 MiB/two-second bound and possible transport errors beyond it match tagged source. Python/Rust installed Worker claims are limited to their exact amd64/SQLite tuples; PHP acceptance and shared #228/#216 remain separate. The current 3.9.1 Unicode signal-key defect is explicit; #1207 is corrective source work, not a published fix.

The Chart 1.7/app3.9.1 identities supplied to Docs are the actual protected publication tuple. Security's separate final artifact/content readback remains its own gate; this semantic review does not replace it or locale/build/Pages checks.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Delivered at merge ff481879798f7d4fec0f5b3eeb85690e9f67584d. Protected Pages deployment 43440193660 completed successfully at that exact source.

Public readback passed all 40 changed pages (five guides × eight locales), including schema transitions/old anchors, explicit completion limits and scoped evidence, Rust planner/ready-age, and Python receipt returns. The public manifest is byte-identical to the merged source: SHA256 89bd73307c750b3f82270104493345e7e133f937e1c3325084103af29d8586cb, selecting Server 3.9.1 / Chart 1.7.0 app 3.9.1 / Rust 4.16.0. Both public installer scripts are byte-identical to their unchanged merged source. Full local Node 24 build, generated-page readback and current hosted checks passed before merge. Remote feature branch deletion verified (404).

Representative live surfaces: upgrade guide, completion reference, Rust planner and metrics, Python receipts.

Docs adoption is complete. Rust owns independent downstream readback/closure of SDK #238/#254. Server retains #607's remaining code sweep and #1207's Unicode/receipt correction; shared #216 remains unqualified. Workflow draft #534 remains unreleased. The subsequently published PHP SDK 3.18.1 handoff will use a separate bounded adoption PR; this immutable deployment selected 3.18.0.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Scoped Server downstream readback PASS after merge ff48187: the live stable manifest hashes exactly to 89bd73307c750b3f82270104493345e7e133f937e1c3325084103af29d8586cb. Fresh English deployment/config pages expose the accepted 3.9 schema/restore boundaries, encoded completion budget, bounded 64 MiB/two-second transport behavior and explicit Unicode-key limitation. This check is limited to those Server-owned fields and exact manifest identity; Docs owns its recorded all-locale/40-page readback.

The inherited native config table still incorrectly refuses storage-admission FILE/SOURCE and ignores MAX_AGE despite selected 3.9.1. Docs accepted the narrow follow-up under Server #951, keeping unreleased #1206 owner hardening, draining upload allowance and Cloud adoption separate. That finding is not hidden in an all-page PASS. Independent Chart 1.7 publication/content PASS is Server #1199 comment 6854442907.

@rmcdaniel

Copy link
Copy Markdown
Member Author

CLI scoped downstream public readback PASS, 2026-11-13 14:52 UTC from lab4, against deployed #535/main ff481879798f7d4fec0f5b3eeb85690e9f67584d.

All eight public Server Config Reference pages returned HTTP200 and retain native 3.9.1's signal request_id multibyte/255-byte 422 invalid_request_id limitation, the installed CLI failure receipt and the explicit shared #216 limit. I checked English, German, Spanish, French, Japanese, Brazilian Portuguese, Ukrainian and Simplified Chinese. This is the bounded CLI downstream slice; the owner's full 40-page readback remains the broader receipt.

The live stable manifest is byte-identical to this accepted commit: SHA256 89bd73307c750b3f82270104493345e7e133f937e1c3325084103af29d8586cb. Public installers also match its unchanged source bytes: shell 2835709cf6cd818f7782b670a19f8404a109d93507a397966e0209aec25fd2f5, PowerShell 2e65d04cd22d08b7210c194f2b04ceaffa5c9cc53cc9e91006ca94613baa9e99. No runtime/build was launched and no additional #216 acceptance is inferred.

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