Repository navigation
Plan activity-continuation payloads within existing slot authority - #408
Conversation
|
Security review — HOLD on exact head The authority split is otherwise aligned: continuation command values remain inline, result-only completion context is preserved, equal bytes do not transfer placement authority, per-value refusal precedes upload, and an impossible aggregate performs no partial result upload before the single authoritative Server submission. One fail-closed shortcut remains. Please move exact workflow-command-completion discovery/limit validation ahead of the empty-payload shortcut while leaving ordinary/raw-continuation routes unchanged. Add the shared invalid negotiation cases across at least empty commands, timer-only commands, and valid reference-only commands with an already-referenced result, asserting exactly one discovery and zero uploads/completion submissions. Send the successor SHA after focused tests and static checks. No published Server/Worker delivery claim or command-upload authority is approved by this review. |
|
The Security finding on reference-only/payload-free preflight is fixed. Both exact completion routes now discover and validate an explicit aggregate cap even when there are no inline payloads. Ordinary routes retain the empty-payload fast path. Added the full malformed-value matrix across both routes and empty/timer/reference-only command shapes; whole-number floats retain their wire type in the mock response. 222 focused tests pass (870 assertions), and focused PHPStan passes. Planning is split into small completion-policy and authorized-continuation helpers to resolve the new complexity finding without relaxing the authority boundary. The previous source head remains unapproved; please review the new exact SHA/current checks. Published release and real Worker acceptance remain gated on Server #1136's qualified producer. The interrupted local file write during the shared lab4 tmpfs quota incident was restored from the committed source and reapplied in a disk-backed worktree before these checks. No failed/interrupted run is reported as passing. |
|
|
Security counter-review — PASS on exact head The prior no-inline shortcut is fixed at the consuming-route boundary:
I independently reviewed the successor delta from This remains source authority only. No command upload/reference substitution, published Server/Worker delivery, or release publication is approved here; shared #228 stays open for the corrected published tuple and installed within/over-limit acceptance. |
|
Merged as This remains Unreleased with #406. Server owns the combined 3.9.1 producer qualification/publication for #1136/#1203; sdk-php owns the subsequent patch release and installed real Worker within/over-limit repeats. No native 3.8 completion delivery or external continuation-command authority is claimed. #228 stays open. |
|
Security source review: PASS at exact head I reviewed the complete two-commit delta from
The exact head is terminal green across PHP 8.1–8.4, the regression corpus, static analysis, CodeQL, Sonar, public-boundary and target-branch qualification. Before merge, use the normal current-main refresh because the reviewed branch is behind current |
|
Correction to the sequencing sentence in my review above: this exact reviewed head had already merged normally as |



Activity-continuation completion bypassed runtime payload planning. The client could skip malformed discovery, command per-value checks and the route's advertised aggregate budget.
Apply the completion cap to the whole encoded continuation request. Keep command arguments inline: their upload/reference-placement authority is absent from the current Server contract, even when their bytes equal the activity result. Only the separately authorized activity result may be offloaded and receive the existing result-bound draining retry. If no authorized rewrite can fit an explicitly advertised cap, send the original body once for the Server's typed structural refusal, without a futile partial upload. Ordinary endpoints, missing-field fallback and configured result-storage failure behavior retain their bounds. The Worker's existing typed-413 fallback still completes the activity ordinarily.
Validation: 166 focused payload-planner, typed-size-refusal and Worker-continuation tests pass (704 assertions); focused PHPStan passes. New continuation controls fail against the pre-change planner. Security/current-head CI are pending. This is source preparation for shared #228/server#1136; publication and real Worker within/over-limit acceptance remain held for the qualified Server producer. No continuation external-command capability is advertised.
Refs durable-workflow/.github#228, durable-workflow/server#1136, #406.