Iteration 1: Multi-threaded conversations in the chat
**ACCEPTANCE CRITERIA**:
- § :white_check_mark: retention is generally fix to 30 days and that is documented in the documentation
- § / :raising_hand: (to balance the admin's potential needs for protecting data and the user needs for an easy to understand and convenient product) the 30 day retention is defined as the time since the user LAST interacted with a conversation.
- § / :lock: :white_check_mark: [Conversations are red data and hence the same rigor is applied to conversation data storage and transport as is for other red data, e.g. applying encryption standards and processes](https://gitlab.com/groups/gitlab-org/-/work_items/11449#note_2090600728 "Design discussion: Multi-threaded conversations in the chat (IDE/in-product)").
- :lock: :white_check_mark: [Rate limits for chat requests per user](https://docs.gitlab.com/ee/security/rate_limits.html#ai-action) MUST continue to exist (to curb attempts of DoS attacks).
- :gear: :white_check_mark: Conversations are stored in [PostgreSQL DB storage](https://gitlab.com/gitlab-org/gitlab/-/issues/425172 "Consider switching to DB storage for chat messages")
- :gear: :white_check_mark: Context is stored as a copy in the DB
- :gear: :white_check_mark: When a conversation reaches the maximum lengths of context window and LLM provider returns an prompt length error, the user should start a new conversation.
- :raising_hand: :white_check_mark: Each Quick Chat conversation uses its own thread rather than adding to the existing thread in the normal chat.
- :raising_hand: :white_check_mark: In the normal chat users can start a new conversation with `/new_conversation`. It should behave like `/clear`. `/clear` and `/reset` should be removed. This allows them to create and delete conversations. https://gitlab.com/gitlab-org/gitlab/-/issues/470818+s
- :raising_hand: :white_check_mark: no limitation on the message count (i.e. drop the limit of 50 messages; but use the 30 days limit for retention as mentioned above)
**WHAT NOT TO EXPECT**:
The following is a list of requirements that will not need to be met in the first iteration. This list provides transparency for stakeholders what not to expect from the first iteration:
- :raising_hand: :x: no list feature;
- :raising_hand: :x: no multiple conversations;
- :raising_hand: :x: no editing of individual conversations
- § :x: conversations will not be deleted when the account is deleted (deletion will happen after 30 days anyway);
- § :x: users will not be enabled to delete all conversations other than by deleting each individual conversations (within 30 days they will not accumulate too many conversations anyway so a one by one deletion is acceptable);
- § :x: retention is not controllable by admins (as it is fixed to 30 days anyway)
- :gear: :x: Context is not stored in form of references to the context
- § :x: When a Quick Chat is closed its conversation is not deleted but it is not reachable anymore. The conversation is deleted after 30 days.
epic