SurfSense/surfsense_backend/app/tasks/chat/streaming
CREDO23 b2a0888588 refactor(chat): add streaming/flows/new_chat/orchestrator.stream_new_chat
Slim composition root for the new-chat streaming flow. Sequences:

1. validate inputs and load the LLM bundle (negative id => YAML)
2. open the OTEL chat_request span; set agent_mode tag
3. spawn the four pre-stream DB writes (set-ai-responding, persist
   user turn, persist assistant shell, first-assistant probe)
4. reserve premium quota (with free-fallback retry on denial)
5. build connector + checkpointer + agent + input_state
6. emit first frames (message-start, step-start, initial thinking step)
7. spawn the background title generator
8. run the shared stream_loop with a flow-local _recover closure that
   reroutes to the next auto-pin config on provider 429s
9. finalize: emit terminal title/token frames, shielded assistant
   finalize, release-or-finalize premium quota, close session, GC,
   record OTEL outcome

Public entry-point flows/new_chat/__init__ re-exports stream_new_chat.

Existing wiring (routes, tests) still imports the legacy function from
app.tasks.chat.stream_new_chat. Cutover is a later commit.
2026-05-25 21:49:55 +02:00
..
agent refactor(chat): add streaming/agent/event_loop.stream_agent_events 2026-05-25 21:48:26 +02:00
context refactor(chat): add streaming/context/ for mentioned-docs and deep-agents todos 2026-05-25 21:48:08 +02:00
contract refactor(chat): add streaming/contract/ for file-write contract enforcement 2026-05-25 21:48:14 +02:00
errors Add chat streaming error classification, helpers, and StreamResult. 2026-05-06 20:08:48 +02:00
flows refactor(chat): add streaming/flows/new_chat/orchestrator.stream_new_chat 2026-05-25 21:49:55 +02:00
graph_stream refactor: remove memory extraction functions and related components from the new chat agent 2026-05-20 14:03:28 +05:30
handlers refactor: remove memory extraction functions and related components from the new chat agent 2026-05-20 14:03:28 +05:30
helpers chat/stream_new_chat: emit one SSE frame per pending interrupt 2026-05-13 20:59:48 +02:00
relay refactor: remove memory extraction functions and related components from the new chat agent 2026-05-20 14:03:28 +05:30
shared refactor(chat): add streaming/shared/ package for StreamResult and utils 2026-05-25 21:48:04 +02:00
__init__.py refactor(chat): drop alternate streaming entry path; use graph_stream 2026-05-07 19:25:20 +02:00