Skip to content

Fix task result payload null fields#2597

Open
he-yufeng wants to merge 1 commit into
modelcontextprotocol:mainfrom
he-yufeng:fix/task-result-exclude-none
Open

Fix task result payload null fields#2597
he-yufeng wants to merge 1 commit into
modelcontextprotocol:mainfrom
he-yufeng:fix/task-result-exclude-none

Conversation

@he-yufeng
Copy link
Copy Markdown

Summary

  • serialize stored task results with mode="json", exclude_none=True
  • keep tasks/result payloads from emitting optional fields as explicit null
  • add a regression test for TextContent results returned through TaskResultHandler

Fixes #2539.

To verify

  • uv run pytest tests\experimental\tasks\server\test_task_result_handler.py::test_handle_omits_none_fields_from_result_payload tests\experimental\tasks\server\test_task_result_handler.py::test_handle_returns_result_for_completed_task -q --basetemp .tmp\pytest -p no:cacheprovider
  • uv run ruff check src\mcp\server\experimental\task_result_handler.py tests\experimental\tasks\server\test_task_result_handler.py
  • uv run ruff format --check src\mcp\server\experimental\task_result_handler.py tests\experimental\tasks\server\test_task_result_handler.py
  • uv run pyright src\mcp\server\experimental\task_result_handler.py tests\experimental\tasks\server\test_task_result_handler.py
  • uv run python -m py_compile src\mcp\server\experimental\task_result_handler.py tests\experimental\tasks\server\test_task_result_handler.py
  • git diff --check

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug: task_result_handler.py serializes None optional fields as JSON null, breaking Node SDK Zod validation

1 participant