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: req, 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
User needs to know if the context files are fully indexed/embedded.
Needs: impl
AI chat must display current AI model
req~ai.chat.model-visibility~1
Provides transparency regarding which LLM is generating the text.
Needs: impl
Covers:
- feat~ai.chatting~1
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
AI chat must use a response engine for query context
req~ai.chat.uses-response-engine~1
This requirement ensures that the AI has context to answer a question.
Needs: impl
Covers:
- feat~ai.chatting~1
User can jump to entry PDF from citation links in AI chat
feat~ai.chat.jump-to-entry-pdf~1
Clicking a citation link in the format [{key}](entries/{key}#page={page}) jumps to the entry with the citation key {key} and opens the internal PDF viewer at page {page}.
The link is the REST API path of the entry relative to the library (/libraries/{id}/entries/{key}), so the absolute form jabref://libraries/{id}/entries/{key} addresses an entry in any open library. An optional /files/{n} segment selects the {n}-th linked file (1-based); without it, the first PDF is opened. The page is given as a #page={page} fragment, following the PDF Open Parameters known from Acrobat.
Needs: impl, utest
AI chat with entries
feat~ai.chatting.entries~1
Specific requirements for chatting with a single bibliography entry.
Needs: req, impl
A privacy policy banner must be shown when user uses entry chat for the first time
req~ai.chatting.entries.privacy-policy~1
Needs: impl
Covers:
- feat~ai.chatting.entries~1
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
Entry AI chat history must be persisted across sessions
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
Covers:
- feat~ai.chatting.entries~1
AI chat with groups
feat~ai.chatting.groups~1
Specific requirements for chatting with a collection/group of entries simultaneously.
Needs: req, impl
A privacy policy banner must be shown when user uses group chat for the first time
req~ai.chatting.groups.privacy-policy~1
Needs: impl
Covers:
- feat~ai.chatting.groups~1
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
Group AI chat history must be persisted across sessions
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
Covers:
- feat~ai.chatting.groups~1
AI group chat dialog title must display library and group names
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
Covers:
- feat~ai.chatting.groups~1