@@ -185,6 +185,7 @@ def _from_orm(
185185 decrypted_payload = self ._fernet .decrypt (payload )
186186 return self ._parse_config (
187187 decrypted_payload .decode ('utf-8' ),
188+ model_instance .task_id ,
188189 model_instance .protocol_version ,
189190 )
190191 except Exception as e :
@@ -218,7 +219,9 @@ def _from_orm(
218219 else payload
219220 )
220221 return self ._parse_config (
221- payload_str , model_instance .protocol_version
222+ payload_str ,
223+ model_instance .task_id ,
224+ model_instance .protocol_version ,
222225 )
223226
224227 except Exception as e :
@@ -341,20 +344,27 @@ async def delete_info(
341344 )
342345
343346 def _parse_config (
344- self , json_payload : str , protocol_version : str | None = None
347+ self ,
348+ json_payload : str ,
349+ task_id : str | None = None ,
350+ protocol_version : str | None = None ,
345351 ) -> TaskPushNotificationConfig :
346352 """Parses a JSON payload into a TaskPushNotificationConfig proto.
347353
348- Uses protocol_version to decide between modern parsing and legacy conversion.
354+ Args:
355+ json_payload: The JSON payload to parse.
356+ task_id: The unique identifier of the task. Only required for legacy
357+ (0.3) protocol versions.
358+ protocol_version: The protocol version used for serialization.
349359 """
350360 if protocol_version == '1.0' :
351361 return Parse (json_payload , TaskPushNotificationConfig ())
352-
353- legacy_instance = (
354- types_v03 .TaskPushNotificationConfig .model_validate_json (
355- json_payload
356- )
362+ inner_config = types_v03 .PushNotificationConfig .model_validate_json (
363+ json_payload
357364 )
358365 return conversions .to_core_task_push_notification_config (
359- legacy_instance
366+ types_v03 .TaskPushNotificationConfig (
367+ task_id = task_id or '' ,
368+ push_notification_config = inner_config ,
369+ )
360370 )
0 commit comments