Chat with AI

feat~ai.chatting~1

This feature represents the AI chat, which can be a chat with an entry or a group.

Needs: impl

General AI chat requirements

Common functionalities required across all chat modes (single entry or group) to ensure a standard user experience.

User can delete messages in AI chat

feat~ai.chat.delete-messages~1

User can remove specific messages to clean up the conversation or correct context.

Needs: impl, utest

User can regenerate AI responses in AI chat

feat~ai.chat.regenerate-response~1

User may want a different answer if the previous one was unsatisfactory or hallucinated.

Needs: impl, utest

User can use smart prompt input field in AI chat

feat~ai.chat.smart-prompt-field~1

Input field supports multi-line input, auto-resizing, keyboard shortcuts, and history.

Needs: impl

User can clear AI chat history

feat~ai.chat.clear-history~1

User can reset the context completely and start a fresh conversation without previous biases.

Needs: impl, guard, utest

User can see ingestion status in AI chat

feat~ai.chat.ingestion-status~1

Rationale: User needs to know if the context files are fully indexed/embedded.

Needs: impl

User can see current AI model in AI chat

req~ai.chat.model-visibility~1

Provides transparency regarding which LLM is generating the text.

Needs: impl

User can cancel AI response generation in AI chat

feat~ai.chat.cancel-generation~1

Saves resources/tokens and time if the user realizes the prompt was incorrect while the answer is streaming.

Needs: impl

User can see errors in AI chat

feat~ai.chat.show-errors~1

Feedback must be provided within the AI chat interface if the API fails, the network drops, or rate limits are hit.

Needs: impl

User can retry AI response generation after error

feat~ai.chat.retry-error~1

Provides a quick way to re-attempt the request without re-typing the prompt if the failure was transient.

Needs: impl

User can cancel AI response generation after error

feat~ai.chat.cancel-error-state~1

User can dismiss the error state or stop a retry loop to regain control of the interface.

Needs: impl

User can customize system prompt in AI chat

feat~ai.chat.customize-system-prompt~1

User can modify the AI behavior by changing the system prompt to better suit their needs.

Needs: impl

Response engine must be used in AI chat

req~ai.chat.uses-response-engine~1

This requirement ensures that the AI has context to answer a question.

Needs: impl

AI chat with entries

feat~ai.chatting.entries~1

Specific requirements for chatting with a single bibliography entry.

Needs: impl, pp

User can hide AI chat tab

feat~ai.chat.entries.hide-tab~1

User can declutter their interface if they do not use AI features.

Needs: impl

AI entry chat is persisted

req~ai.chat.entries.history-storage~1

History must be persisted per entry, so the user can resume the conversation later.

Needs: dsn, model, impl, utest

AI chat with groups

feat~ai.chatting.groups~1

Specific requirements for chatting with a collection/group of entries simultaneously.

Needs: impl, pp

User can hide group AI chat context menu entry

feat~ai.chat.groups.hide-context-menu~1

User can customize the context menu to remove “Chat with group” if they do not use it.

Needs: impl

AI group chat is persisted

req~ai.chat.groups.history-storage~1

History must be persisted per group, so the conversation context is preserved across sessions.

Needs: dsn, model, impl, utest

Library and group names are displayed in AI group chat dialog title

req~ai.chat.groups.display-names~1

Essential for user orientation, ensuring that users can distinguish between different AI chats of a group that has the same name in different libraries.

Needs: impl