Skip to content

feat(chatbot-ui): modernize OpenCRE chatbot experience (stacked on #795) - #796

Open
PRAteek-singHWY wants to merge 12 commits into
OWASP:mainfrom
PRAteek-singHWY:feat/chatbot-modern-ai-ui-stack
Open

PRAteek-singHWY wants to merge 12 commits into
OWASP:mainfrom
PRAteek-singHWY:feat/chatbot-modern-ai-ui-stack

Conversation

@PRAteek-singHWY

@PRAteek-singHWY PRAteek-singHWY commented Mar 7, 2026 •

Copy link
Copy Markdown
Contributor

Summary

This PR modernizes the OpenCRE chatbot UI/UX while keeping existing chatbot functionality and data flow intact.

Stacked PR Context

What Changed

  • Redesigned chatbot layout with modern, production-style UI
  • Improved chat message presentation and conversation flow
  • Added instruction presets and improved composer ergonomics
  • Improved mobile responsiveness and spacing behavior
  • Added better scroll-to-latest interaction placement/styling
  • Improved frontend error display for HTML 500 responses (clean message instead of raw HTML)

Scope Safety

Validation

Screenshots / Video

Before

image

After

Screen.Recording.2026-03-07.at.15.50.53.mov

@northdpole

Copy link
Copy Markdown
Collaborator

Reviewed together with #795 — see comment there. UI modernization looks polished but stacked + conflicting; rebase chain after #795.

…swer-language-input

# Conflicts:
#	application/frontend/src/pages/chatbot/chatbot.tsx
#	application/prompt_client/openai_prompt_client.py
#	application/prompt_client/prompt_client.py
#	application/prompt_client/vertex_prompt_client.py
#	application/web/web_main.py
The OpenAI and Vertex clients this change was written against are gone from
main, so instructions now go through chat_prompt.j2. They are user input, so
the template gives them their own block limited to language, tone and format,
and they are capped at 200 chars. Non-string values fall back to the default
instead of crashing. Matching still uses the question alone.
…ot-modern-ai-ui-stack

# Conflicts:
#	application/frontend/src/pages/chatbot/chatbot.tsx
The UI field is one line but the API takes anything, and a newline could close
the template's block and open a fake one.
@coderabbitai

coderabbitai Bot commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 59 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 2 included reviews currently available.

Learn how review limits work.

Review configuration:

Run configuration

  • Source mode: Auto
  • Repository: OWASP/OpenCRE
  • Branch: main
  • File: .coderabbit.yml
  • Commit: facfd46
  • Layers: Repository YAML
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 7abfd9e9-3da2-49a3-97b6-bde2f7331763
Commits

Reviewing files that changed from the base of the PR and between facfd46 and 5b32e32.

Files selected for processing: 7

  • application/frontend/src/pages/chatbot/chatbot.scss
  • application/frontend/src/pages/chatbot/chatbot.tsx
  • application/prompt_client/prompt_client.py
  • application/prompt_client/templates/chat_prompt.j2
  • application/tests/prompt_client_test.py
  • application/tests/web_main_test.py
  • application/web/web_main.py
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

This branch has not been deployed

No deployments
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.

Have a separate UI element to enter language request, to prevent requests in the prompt to bother the matching

2 participants