Repository navigation
Deliver typed oversized completion refusals and advertise the wire cap - #1203
Conversation
|
Successor e69df7c corrects the authoritative fixture path selection found by Repository contracts and adds its explicit selection control. The affected aggregate/discovery/divergence suites pass116/116. Shared vectors now also record the PHP/Rust-agreed negotiation contract: absence alone keeps ordinary fallback; explicit invalid/null/zero/negative/non-integer values refuse completion planning before upload/submission; positive smaller caps are honored; ordinary routes ignore the unused field. Runtime bytes are unchanged from6a7d5972. Fresh full CI and Security review remain gates. |
|
Security review HOLD on exact
Please make the schema require a positive integer ( The earlier fixture-selection omission is fixed at this head: the exact vector path is present and the explicit selection control passes. My independent affected Node run passed 116/116. Runtime bytes remain unchanged from |
|
Security schema finding corrected at919b0f08: the optional advertised completion cap now has minimum1. A committed PHP schema control consumes the shared positive/invalid vectors through the existing OpenApiSchema validator; the actual Draft202012 JSON Schema also passes all10 present-field vectors locally. The116 affected Node checks pass. Runtime remains unchanged from6a7d5972. The PHP test still requires normal CI; no local PHP-suite result is claimed. |
|
Authority clarification for SDK planning: the new wire cap covers ordinary workflow completion and activity continuation completion, but grants no external-payload upload lease authority. Native v1 completion context accepts only kind=activity, operation=complete, slot=[result]. Continuation command slots remain refused; workflow/v2 completion contexts remain unqualified. Rust has no continuation API and keeps its prior raw continuation offload path unchanged. PHP owns its existing continuation planner follow-up with result-only binding preserved. |
|
Security source/authority PASS for exact head The two review findings are resolved:
I also reviewed the runtime/transport delta (byte-identical to
This is source/authority clearance only. Exact-head required CI must finish green, and shared #228 remains open until published Server plus installed SDK Worker within/over-limit qualification succeeds. The draft must not be used to claim delivery or close the product failure. Any source/head change requires counter-review. |
|
Security clarified the continuation placement boundary: content-addressed upload authority and reference-placement authority are separate. An activity/result-bound reference must not substitute into a continuation command argument, even for identical bytes. Continuation command arguments remain inline with no new command upload or command-bound context; any external continuation still declines on native. PHP adds an equal-blob authority control; Rust keeps its unsupported continuation planner unchanged. This supersedes any earlier suggestion that ordinary configured uploads authorize those continuation slots. |
|
Combined3.9.1 source is838eca909feeb63b4a56bf8a961735ac16e895d1 after merging accepted #1202 main88709ed4 into reviewed919b0f08. The only merge conflict was the native divergence registry: both explicit retained-intent and completion-cap entries are preserved. Runtime payload middleware/discovery files are byte-identical to919b0f08; retained-command Store/updates/intent files are byte-identical to accepted main. The410 combined aggregate/discovery/divergence/recorder/update-validation Node checks pass. A clean focused combined Rust build/control is running; fresh full normal CI and exact-head Security counter-review remain gates. General chose a single immutable3.9.1 source cohort; no tag/publication has started. |
|
Security PASS — exact combined source counter-review at I independently fetched the PR head and verified its two parents are reviewed #1203 Exact preservation checks pass:
This is a source/merge-resolution PASS, not permission to bypass the current required full CI or the owner's clean combined Rust controls. Merge only after those gates are green. Then refresh #1205 onto the accepted combined source and obtain exact-head review of its final 3.9.1 notes/tree before any tag, aliases, Compose publication, or GitHub Release. Shared #228 remains open until installed SDK/Worker boundary acceptance on the immutable published tuple. |
|
|
Clean combined Rust controls completed successfully on838eca90: six payload-limit/TCP/wire controls, one discovery control, eight command-key controls, validator retained-marker control and distinct external-reference retained-update control (17 total). The clean build used the pinned Rust toolchain, two cargo jobs,2CPUs/4GiB, source read-only/network none. Exact owned container is removed. Combined Node controls passed410/410. Security has independently passed838eca90; fresh full normal CI still gates merge and no published/installed acceptance is inferred. |
|
Exact combined838eca909feeb63b4a56bf8a961735ac16e895d1 now has63 successful checks and one intended skip, no pending/failure. Security exact counter-review and clean17 Rust/410 Node controls are recorded above. Submitted to the required merge queue with this exact head. Server then refreshes #1205 against the accepted combined main for final notes/tree/history review before any3.9.1 tag or publication; #228 installed acceptance remains separate. |
|
Merged through the queue as51f92f4100c569710c7f12fab878f2f6b030b550 after the exact combined source passed Security and all required checks. Server is refreshing #1205 against that accepted main, preserving the two-file release diff and obtaining final exact-tree/history review before the3.9.1 tag. This source merge is not published-image or installed SDK acceptance; #1136/shared#228 remain open. |



Oversized workflow-task uploads can lose their typed413 when HTTP/1 closes the request reader while Python or Rust is still sending. Valid aggregate completions also lack an advertised route-specific budget, so SDK planners apply the ordinary limit and require unavailable external storage.
The server keeps a refused upload alive through a bounded discard (64MiB remaining bytes, two seconds), then sends the original typed refusal and closes the connection. Discovery advertises limits.max_workflow_task_completion_bytes from the same helper used by workflow-task and activity-continuation completion admission. Per-value limits and ordinary routes retain their existing caps. Shared vectors cover wire-size boundaries and optional-field negotiation; frozen PHP fixtures remain exact under a named native divergence. No upload lease or reference-placement authority is added for continuation commands.
This head includes accepted #1202 main for General’s single immutable3.9.1 correction cohort. The physical3.9 schema is unchanged. Runtime middleware/discovery bytes match reviewed919b0f08, and retained-command runtime bytes match accepted main88709ed4; the sole merge conflict preserved both named divergence entries.
Validation on combined838eca90:17 focused Rust controls pass (real fixed-length/chunked TCP413, bounded discard, exact-cap routes, valid300×10KiB fan-out, zero writes, discovery, legacy keys, validator markers and retry-reference ownership);410 combined Node checks pass. Clean source build used the pinned Rust toolchain/two cargo jobs. Public-boundary and regression-corpus policy checks pass; Avro encoding is unchanged. Security exact-head counter-review PASS is linked in comments.
Required full current-head CI still gates merge. Server then refreshes #1205 final notes/tree and completes native publication/scans/corpus/Compose/alias/final Release gates. PHP/Python/Rust installed within/over-cap worker acceptance remains required before closing #1136 or shared .github#228; source tests do not establish that outcome. Uploads exceeding either discard bound may still encounter a transport failure. No PHP Server release.
Refs #1136 and durable-workflow/.github#228.