SurfSense/surfsense_backend/app/tasks
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
..
celery_tasks feat(connectors): add retry and auth telemetry events 2026-05-22 17:50:02 +05:30
chat refactor(chat): add streaming/flows/new_chat/orchestrator.stream_new_chat 2026-05-25 21:49:55 +02:00
connector_indexers perf(indexers): offload sync embed_text to thread across background workers 2026-05-20 10:09:38 +02:00
document_processors perf(indexers): offload sync embed_text to thread across background workers 2026-05-20 10:09:38 +02:00
__init__.py feat: SurfSense v0.0.6 init 2025-03-14 18:53:14 -07:00
composio_indexer.py chore: ran frontend and backend linting 2026-02-01 22:54:25 +05:30
surfsense_docs_indexer.py chore: ran linting 2026-03-17 04:40:46 +05:30