Skip to content

[SSE Completion - Tracking] Coherent multi-round gateway streaming #118

Description

@ashwing

Overview

Gateway-owned tool streaming works today — gateway calls are hidden from the client and synthetic web_search_call/mcp_tool_call frames stream in real time. But the client-visible SSE stream isn't reconciled into one coherent response across gateway rounds, and a separate reasoning-carry-forward bug leaks <think> markup into the visible answer.

Validated live against a current-main gateway (0385d6f) → vLLM (Qwen3) on a 2-round web_search stream (1411 client frames). The evidence below is observed, not inferred.

What's already correct (not in scope)

  • Gateway-owned function_calls are hidden from the client stream (0 leaked in the live run).
  • Synthetic tool-call frames stream in real time.
  • Per-round terminal frames are suppressed; a single terminal is emitted at the end.

Work breakdown

Live evidence summary

Symptom Observed (2-round stream)
response.created emitted per round 2 (should be 1)
sequence_number across rounds resets 953 → 0 at round 2; terminal chunk is null
output_index across rounds resets 3 → 0 (round-2 output collides with round-1)
<think> in visible output_text present — root-caused to reasoning carry-forward
multi-round streaming test coverage none

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions