Open
Conversation
…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.
…o hackbot-user-widget
There was a problem hiding this comment.
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_eventstool 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.
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.
Add HackBot chat widget with event cards, markdown, and layout integration
MERGE ONLY AFTER #441 IS MERGED
Closes #443