Back to Signal Feed
CodeTracked since May 19, 2026

Reduce DeerFlow chat SSE payload by removing `values` stream mode

The pull request changes chat streaming to stop subscribing to the `values` SSE mode, which was sending full-message snapshots on every graph step. It now keeps only `messages-tuple`, `updates`, and `custom`, reducing transfer for long-running tasks from about 6.56 MB to 1.64 MB (~75% reduction).

SSEstreamModevaluesmessages-tuple

What Happened

  • The pull request changes chat streaming to stop subscribing to the `values` SSE mode, which was sending full-message snapshots on every graph step. It now keeps only `messages-tuple`, `updates`, and `custom`, reducing transfer for long-running tasks from about 6.56 MB to 1.64 MB (~75% reduction).
  • The pull request changes chat streaming to stop subscribing to the `values` SSE mode, which was sending full-message snapshots on every graph step. It now keeps only `messages-tuple`, `updates`, and `custom`, reducing transfer for long-running tasks from about 6.56 MB to 1.64 MB (~75% reduction).
  • 1 evidence item attached for review.

What is Different

Before

Scattered source updates, isolated context, and manual follow-up across multiple feeds.

Now

In `frontend/src/core/threads/hooks.ts`, the PR sets `streamMode` to `['messages-tuple','updates','custom']` for `thread.submit()` so `values` is no longer subscribed, and `frontend/tests/e2e/utils/mock-api.ts` is updated to emit matching token-by-token `messages` (messages-tuple) events for E2E consistency.

Why Track This

Why It Matters

Chat users and operators running long tasks will experience much less network chatter and smoother streaming because each step no longer retransmits the entire conversation history, but teams integrating custom SSE consumers should verify they do not depend on `values` snapshots for state reconstruction after rollout. The remaining stream still carries token-level updates and other metadata via `messages-tuple`, `updates`, and `custom`, while observed payload size drops from ~6.56 MB to ~1.64 MB per long task (~75%), so this is worth tracking for both cost and UI responsiveness at scale.

Impact

Chat users and operators running long tasks will experience much less network chatter and smoother streaming because each step no longer retransmits the entire conversation history, but teams integrating custom SSE consumers should verify they do not depend on `values` snapshots for state reconstruction after rollout. The remaining stream still carries token-level updates and other metadata via `messages-tuple`, `updates`, and `custom`, while observed payload size drops from ~6.56 MB to ~1.64 MB per long task (~75%), so this is worth tracking for both cost and UI responsiveness at scale.

What To Watch Next

  • Watch whether SSE becomes a repeated pattern.
  • Track follow-up changes around Observability and Tracing.
  • Compare future signals against this evidence trail.
  • Re-check risk flags: clients_depends_on_values_snapshot, state_reconstruction_regression_with_custom_consumers.
Open Topic TimelineOpen Technical EventOpen Original Sourceclients_depends_on_values_snapshot / state_reconstruction_regression_with_custom_consumers / long_task_streaming_behaviour_needs_manual_verification

Supporting Evidence