Skip to content

2. Hackbot User Widget#444

Open
ReehalS wants to merge 13 commits intomainfrom
hackbot-user-widget
Open

2. Hackbot User Widget#444
ReehalS wants to merge 13 commits intomainfrom
hackbot-user-widget

Conversation

@ReehalS
Copy link
Copy Markdown
Member

@ReehalS ReehalS commented Mar 12, 2026

Add HackBot chat widget with event cards, markdown, and layout integration

  • Chat widget with streaming responses, retry logic, and resize handle.
  • Event cards (full for workshops/activities, compact for meals/general).
  • Markdown text renderer, session-gated wrapper, cascading animations.
  • Layout integration in (hackers) route group.

MERGE ONLY AFTER #441 IS MERGED

Closes #443

ReehalS added 2 commits March 12, 2026 15:34
…CI/CD

- OpenAI streaming chat endpoint with get_events and provide_links tools
- Server actions for knowledge CRUD, reseed, import, usage metrics
- Event filtering/formatting utilities with timezone-aware LA time handling
- System prompt builder with profile-aware personalization and prefix caching
- Vector search context retrieval with retry/backoff
- Knowledge base JSON (55 entries: FAQ, tracks, judging, submission, general)
- CI/CD seed scripts for hackbot_knowledge to hackbot_docs
- Auth session extended with position, is_beginner, name fields
- Tailwind hackbot-slide-in animation keyframe
- Dependencies: ai@6, @ai-sdk/openai
…ation

Chat widget with streaming responses, retry logic, and resize handle.
Event cards (full for workshops/activities, compact for meals/general).
Markdown text renderer, session-gated wrapper, cascading animations.
Layout integration in (hackers) route group.
@ReehalS ReehalS changed the title Hackbot User Widget 2. Hackbot User Widget Mar 12, 2026
@michelleyeoh michelleyeoh marked this pull request as ready for review April 4, 2026 20:31
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds the HackBot “HackDavis Helper” chat widget to the hackers section, including streaming chat UX (events + links), a minimal markdown renderer, and small server-streaming refinements to support the UI.

Changes:

  • Adds the HackBot widget UI (panel, header, message list, input, event cards) and mounts it in the (hackers) layout with session gating.
  • Updates the HackBot streaming API to optionally disable the get_events tool based on query intent and tweaks streaming behavior for tool-first responses.
  • Adjusts stream request validation to tolerate tool-only assistant messages and increases the allowed total history size.

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
app/(pages)/(hackers)/layout.tsx Mounts the HackBot widget wrapper in the hackers route group and passes an initial profile derived from the server session.
app/(pages)/(hackers)/_components/Hackbot/MarkdownText.tsx Adds a lightweight inline markdown renderer (bold/italic + line breaks).
app/(pages)/(hackers)/_components/Hackbot/HackbotWidgetWrapper.tsx Client-side session gating for showing the widget only to hacker/admin users.
app/(pages)/(hackers)/_components/Hackbot/HackbotWidget.tsx Main chat widget: streaming fetch, retries, resize, localStorage history, and event/link buffering.
app/(pages)/(hackers)/_components/Hackbot/HackbotMessageList.tsx Renders chat bubbles, typing/retry indicators, links, and event cards/rows.
app/(pages)/(hackers)/_components/Hackbot/HackbotInputForm.tsx Input textarea, send button, character counter, and suggestions accordion.
app/(pages)/(hackers)/_components/Hackbot/HackbotHeader.tsx Chat header UI and close button.
app/(pages)/(hackers)/_components/Hackbot/HackbotEventCard.tsx Event card UI with add/remove personal-schedule actions.
app/(api)/api/hackbot/stream/route.ts Builds tools dynamically (conditionally includes get_events) and wires streaming response.
app/(api)/_utils/hackbot/stream/responseStream.ts Alters text-suppression logic after tool results to support tool-first UX.
app/(api)/_utils/hackbot/stream/request.ts Accepts empty assistant messages in history by dropping them; increases total history character cap.
app/(api)/_utils/hackbot/stream/intent.ts Adds heuristic intent detection to disable get_events for non-schedule factual queries.
.claude/settings.json Adds Claude tool permission settings.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@ReehalS ReehalS deployed to development April 8, 2026 08:38 — with GitHub Actions Active
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.

HackBot User Widget

3 participants