Skip to content

Conversation

@hirokiterashima
Copy link
Member

@hirokiterashima hirokiterashima commented Jan 5, 2026

Changes

  • Student VLE can be launched with a chatbot via settings in the project.json. The chatbot persists across steps, similar to the student notebook. You can create/rename/delete chat windows.

Student Experience

  1. Student sees a floating chatbot button (robot icon) in bottom-right corner
  2. Click to open the chatbot interface
  3. Type questions and press Enter or click Send
  4. AI responds with helpful answers
  5. Conversation history is saved automatically
  6. Can minimize, maximize, or add/rename/delete chat anytime

Technical Flow

Student Input → Frontend (Angular) → Backend API → LLM (GPT/Gemini) → Response → Frontend → Display
                                          ↓
                                    Database (Chat History)

Test prep

{
  ...
  "chatbot": {
    "enabled": true,
    "systemPrompt": "You are helping a middle school science teacher make changes to their curriculum. Respond in 50 words or less."
  },
  ...
}

Test

Note: you must be logged in as a student and launch the VLE for the run that you edited above.

  • send chat/receive response from AI
  • chat messages persist across refresh
  • create new chat
  • edit chat title
  • delete chat -> This actually does a soft delete. The chat should become hidden from view.
  • units that don't have the chatbot enabled should work as before

@hirokiterashima hirokiterashima self-assigned this Jan 5, 2026
@hirokiterashima hirokiterashima added the enhancement New feature of any size or improvement (UI, performance, security) label Jan 5, 2026
@qltysh
Copy link

qltysh bot commented Jan 5, 2026

Qlty

Coverage Impact

Unable to calculate total coverage change because base branch coverage was not found.

Modified Files with Diff Coverage (8)

RatingFile% DiffUncovered Line #s
New file Coverage rating: F
src/assets/wise5/vle/vle.component.ts57.1%74-223
New file Coverage rating: B
src/app/chatbot/chatbot.component.ts83.7%80-81, 129, 138-157...
New file Coverage rating: F
src/app/chatbot/chatbot.service.ts50.0%14-35
New file Coverage rating: D
src/app/chatbot/awsBedRock.service.ts75.0%11-12
New file Coverage rating: C
...emes/default/themeComponents/stepTools/step-tools.component.ts100.0%
New file Coverage rating: F
src/app/chatbot/chat.service.ts30.0%13-53
New file Coverage rating: A
src/app/chatbot/chat.ts100.0%
New file Coverage rating: F
src/app/chatbot/chat-history-dialog.component.ts12.5%23-105
Total55.1%
🤖 Increase coverage with AI coding...

In the `persistent-chatbot` branch, add test coverage for this new code:

- `src/app/chatbot/awsBedRock.service.ts` -- Line 11-12
- `src/app/chatbot/chat-history-dialog.component.ts` -- Line 23-105
- `src/app/chatbot/chat.service.ts` -- Line 13-53
- `src/app/chatbot/chatbot.component.ts` -- Lines 80-81, 129, 138-157, 165, and 176-179
- `src/app/chatbot/chatbot.service.ts` -- Line 14-35
- `src/assets/wise5/vle/vle.component.ts` -- Line 74-223

🚦 See full report on Qlty Cloud »

🛟 Help
  • Diff Coverage: Coverage for added or modified lines of code (excludes deleted files). Learn more.

  • Total Coverage: Coverage for the whole repository, calculated as the sum of all File Coverage. Learn more.

  • File Coverage: Covered Lines divided by Covered Lines plus Missed Lines. (Excludes non-executable lines including blank lines and comments.)

    • Indirect Changes: Changes to File Coverage for files that were not modified in this PR. Learn more.

Copy link
Member

@breity breity left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍

@hirokiterashima hirokiterashima merged commit 3085a0a into develop Jan 14, 2026
1 check passed
@hirokiterashima hirokiterashima deleted the persistent-chatbot branch January 14, 2026 23:45
@hirokiterashima
Copy link
Member Author

🎉 This PR is included in version 5.201.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature of any size or improvement (UI, performance, security) released

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants