mirror of
https://github.com/bytedance/deer-flow.git
synced 2026-11-08 03:30:34 +00:00
* fix(gateway): strip server-owned metadata from run input todos and goal (#7803 follow-up) Commit 459fc8c introduced shape validation for caller-written todos in both strip_server_owned_state_metadata and normalize_input, but only applied _strip_external_metadata_from_message_like in strip_server_owned_state_metadata. External callers submitting POST /runs or POST /threads/{id}/runs with input.todos or input.goal could supply forged server-owned metadata (such as untrusted_input: False, original_user_content, or artifact knowledge_sources) directly into the agent graph. Apply _strip_external_metadata_from_message_like to both normalized todos and goal in normalize_input when trusted_internal=False. * fix(gateway): mirror normalized goal and todos into canonical run record input * fix(gateway): replace non-dict additional_kwargs and cover edge cases - Ensure non-dict additional_kwargs in message-like entries is replaced with an empty dict instead of surviving the strip - Remove redundant None-check on normalized_goal in normalize_input - Add regression tests covering non-dict additional_kwargs replacement and untrusted_input stamping on human-like entries * test(gateway): format todo input validation cases --------- Co-authored-by: Willem Jiang <willem.jiang@gmail.com>