Confirmed behavior
While testing worker payload validation for #134, an authenticated worker submitted start_service_operation with nonempty endpoint_name, service_name, operation_name and request_payload. The completion returned HTTP 422 claiming all three routing fields were missing.
WorkerController::completeWorkflowTask validates individual commands.* fields but does not include these Nexus fields. Laravel drops them from the validated command before WorkflowCommandNormalizer::preflightParallelMetadata checks required service-operation values. This is distinct from malformed Avro handling: valid routing fields are lost before payload validation.
Acceptance
- Preserve and validate the supported Nexus command fields through the HTTP worker-completion ingress.
- Exercise an SDK-shaped command through the real worker HTTP route, not only direct service/normalizer calls.
- Prove valid service-operation dispatch and persisted outcome; retain rejection of malformed values and namespace/lease authority checks.
- Cover the supported optional operation fields as well as the required names and payload.
Accepted next after #134. Keep this scoped to the public Server protocol and regression tests.
Confirmed behavior
While testing worker payload validation for #134, an authenticated worker submitted
start_service_operationwith nonemptyendpoint_name,service_name,operation_nameandrequest_payload. The completion returned HTTP 422 claiming all three routing fields were missing.WorkerController::completeWorkflowTaskvalidates individualcommands.*fields but does not include these Nexus fields. Laravel drops them from the validated command beforeWorkflowCommandNormalizer::preflightParallelMetadatachecks required service-operation values. This is distinct from malformed Avro handling: valid routing fields are lost before payload validation.Acceptance
Accepted next after #134. Keep this scoped to the public Server protocol and regression tests.