Merged
Conversation
Prepare for regular chat expiry dates. The expiration should not be implemented yet, for now only add the expiration date field and assume all chats are alive forever. (Tests will only check if field exists, not if its deleted) Temporary chats are to be stored in browser memory. Once you navigate away, you lose that temporary chat forever. As a visual effect / cue, add "Thinking..." loading animation and LLM typing animation. Styling feature, not critical or important. (Tests will not check this yet) Add support for markdown rendering. Possible tool for implementation is ts-markdown. Basically the best way to render text in a standard way that is beautiful (unless we want to use LaTeX) Prepare for chat branching. Instead of linked list, store conversations as trees to allow parallel paths from shared nodes. (Tests will assume only linear conversation trees) MSG me if it needs clarification, I did my best to be brief but there is only so much I can cover in commit message.
Prepare for regular chat expiry dates. The expiration should not be implemented yet, for now only add the expiration date field and assume all chats are alive forever. (Tests will only check if field exists, not if its deleted) Temporary chats are to be stored in browser memory. Once you navigate away, you lose that temporary chat forever. As a visual effect / cue, add "Thinking..." loading animation and LLM typing animation. Styling feature, not critical or important. (Tests will not check this yet) Add support for markdown rendering. Possible tool for implementation is ts-markdown. Basically the best way to render text in a standard way that is beautiful (unless we want to use LaTeX) Prepare for chat branching. Instead of linked list, store conversations as trees to allow parallel paths from shared nodes. (Tests will assume only linear conversation trees) MSG me if it needs clarification, I did my best to be brief but there is only so much I can cover in commit message.
Fixes conflicts between divergent main branch -PC
Owner
Author
|
ok gonna add all these new tests to main as well |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Main contributions are definitions and testing of chat API.
Features to test:
Chat history: regular conversations are stored in DB. Testing this soon.
Chat expiration: Regular conversations have an expiry date field, actual expiration logic not to be tested
Chat deletion: Chats can also be manually deleted by user. More testing soon.
Temporary chat: temp chats are stored in user's browser memory. Upon refresh, page navigation, or tab deletion, the chat is inaccessible and cannot be recovered. Testing soon.
Conversation branching: the implementation of Conversation should store individual Messages in a tree, not in a linked list. This allows future support for conversation branching. Testing will assume only linear conversation trees.
Markdown rendering: LLM response, if it contains MD formatting, should be rendered properly.
ts-markdownis one library that supports it, but you can choose how to implement it. Testing for this TBD.Chat steaming: Update ui by simulating LLM typing response through dynamic rendering. No tests implemented for this.
Copy-Pasta: Adds button to copy iraw individual messages or codeblocks. No tests implemented for this.