twenty/.github
Félix Malfait 8fa3962e1c
feat: add resumable stream support for agent chat (#19107)
## Overview
Add resumable stream support for agent chat to allow clients to
reconnect and resume streaming responses if the connection is
interrupted (e.g., during page refresh).

## Changes

### Backend (Twenty Server)
- Add `activeStreamId` column to `AgentChatThreadEntity` to track
ongoing streams
- Create `AgentChatResumableStreamService` to manage Redis-backed
resumable streams using the `resumable-stream` library with ioredis
- Extend `AgentChatController` with:
  - `GET /:threadId/stream` endpoint to resume an existing stream
  - `DELETE /:threadId/stream` endpoint to stop an active stream
- Update `AgentChatStreamingService` to store streams in Redis and track
active stream IDs
- Add `resumable-stream@^2.2.12` dependency to package.json

### Frontend (Twenty Front)
- Update `useAgentChat` hook to:
- Use a persistent transport with `prepareReconnectToStreamRequest` for
resumable streams
  - Export `resumeStream` function from useChat
  - Add `handleStop` callback to clear active stream on DELETE endpoint
- Use thread ID as stable message ID instead of including message count
- Add stream resumption logic in `AgentChatAiSdkStreamEffect` component
to automatically call `resumeStream()` when switching threads

## Database Migration
New migration `1774003611071-add-active-stream-id-to-agent-chat-thread`
adds the `activeStreamId` column to store the current resumable stream
identifier.

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-30 18:19:25 +02:00
..
actions Refactor twenty client sdk provisioning for logic function and front-component (#18544) 2026-03-24 18:10:25 +00:00
ISSUE_TEMPLATE Prepare field option dropdown for RecordField usage (#13935) 2025-08-18 10:34:12 +02:00
vale-styles Fix Vale CI and change vision (#4724) 2024-04-01 11:39:04 +02:00
workflows feat: add resumable stream support for agent chat (#19107) 2026-03-30 18:19:25 +02:00
CLA.md Remove CLA Assistant (#2479) 2023-11-13 16:09:59 +01:00
CODE_OF_CONDUCT.md add contibuting_example.md (#6998) 2024-09-12 12:31:34 +02:00
CONTRIBUTING.md Fix markdown link formatting in CONTRIBUTING.md (#16176) 2025-11-28 13:53:45 +01:00
crowdin-app.yml fix: add base_path to Crowdin configs for correct path resolution (#17196) 2026-01-16 16:54:40 +01:00
crowdin-docs.yml fix: add base_path to Crowdin configs for correct path resolution (#17196) 2026-01-16 16:54:40 +01:00
dependabot.yml Exclude community apps from Dependabot scanning (#17345) 2026-01-22 14:47:21 +01:00
release-drafter.yml feat(ci): add release drafter (#4970) 2024-04-15 20:09:06 +02:00
SECURITY.md changes as per vale warnings (#2353) 2023-11-07 11:39:29 +01:00
vale.ini chore: cleanup repository root structure (#17147) 2026-01-14 12:56:30 +00:00
verdaccio-config.yaml Refactor twenty client sdk provisioning for logic function and front-component (#18544) 2026-03-24 18:10:25 +00:00