Skip to content

Iteration 2: Chat API Testing#9

Merged
Purple-Chicken merged 25 commits intomasterfrom
testing
Apr 10, 2026
Merged

Iteration 2: Chat API Testing#9
Purple-Chicken merged 25 commits intomasterfrom
testing

Conversation

@Purple-Chicken
Copy link
Copy Markdown
Owner

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-markdown is 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.

LTWaffles86 and others added 23 commits March 16, 2026 23:13
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
@Purple-Chicken Purple-Chicken marked this pull request as ready for review April 6, 2026 12:40
@Purple-Chicken
Copy link
Copy Markdown
Owner Author

ok gonna add all these new tests to main as well

@Purple-Chicken Purple-Chicken merged commit 3b8e2ee into master Apr 10, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants