SurfSense/surfsense_backend/app/tasks/chat/streaming
CREDO23 b54b803dc9 refactor(chat): add streaming/flows/shared/ rate-limit recovery + stream loop
Two cooperating modules that wrap stream_agent_events with in-stream
recovery from provider 429s:

* rate_limit_recovery: can_recover_provider_rate_limit truth-table
  guard, reroute_to_next_auto_pin (selects the next eligible auto-pin
  config and reloads the LLM bundle), log_rate_limit_recovered.
* stream_loop: run_stream_loop drives stream_agent_events in a
  while-True loop, delegating recovery to a flow-supplied RecoverFn
  callback so new_chat and resume_chat can share the same loop while
  keeping their own nonlocal state.

Add-only; not yet wired into any orchestrator.
2026-05-25 21:49:27 +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/shared refactor(chat): add streaming/flows/shared/ rate-limit recovery + stream loop 2026-05-25 21:49:27 +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