feat(web): Show user chat history - #721

Merged
brendan-kellam merged 15 commits into
sourcebot-dev:mainfrom
Nil2000:feat/chat-history
Jan 24, 2026
Merged

feat(web): Show user chat history#721
brendan-kellam merged 15 commits into
sourcebot-dev:mainfrom
Nil2000:feat/chat-history

Conversation

@Nil2000

@Nil2000Nil2000 commented Jan 8, 2026

Copy link
Copy Markdown
Contributor

Fixes : #660

Implemented recent chats
For now I have set to 3
image


Note

Introduces a resizable chat sidebar with recent history on the Ask homepage and wires up authenticated chat history retrieval.

  • Adds ChatSidePanel, ResizablePanelGroup, ResizablePanel, and AnimatedResizableHandle to chat/page.tsx for a collapsible, resizable layout
  • Retrieves session via auth() and loads getUserChatHistory(); surfaces service errors with ServiceErrorException
  • Minor UI tweaks (spacing/class adjustments) on chat and search landing pages
  • Updates CHANGELOG.md to note the new ask sidebar

Written by Cursor Bugbot for commit 4344a18. This will update automatically on new commits. Configure here.

Summary by CodeRabbit

  • New Features
    • Chat history for authenticated users
    • New horizontal, resizable sidebar layout (ask sidebar) for improved chat navigation and content organization
  • Bug Fixes
    • Runtime validation surfaces chatHistory and service errors before rendering
  • Style
    • Minor spacing adjustment on the search landing page for medium+ screens
  • Chores
    • Updated changelog to note the new ask sidebar on the homepage

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai

coderabbitaiBot commented Jan 8, 2026

Copy link
Copy Markdown
Contributor

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

The chat page now fetches authenticated users' chat history, validates it, and renders a new horizontal resizable two-panel layout with a chat sidebar and main chat area; minor spacing tweak in the search landing page and changelog updated with an "ask sidebar" entry.

Changes

Cohort / File(s)Summary
Chat Page Layout & Data Flow
packages/web/src/app/[domain]/chat/page.tsx
Adds auth() and getUserChatHistory() usage, validates chatHistory and throws on error; replaces prior single-column UI with ResizablePanelGroup (left ChatSidePanel, animated handle, right ResizablePanel containing LandingPageChatBox, SourcebotLogo, repository carousel and demo content); updates container/layout classes and overflow behavior.
Changelog
CHANGELOG.md
Adds Unreleased "Added" entry: "Added ask sidebar to homepage. #721".
Search Landing Page Spacing
packages/web/src/app/[domain]/search/components/searchLandingPage.tsx
Minor spacing change: mt-18mt-16 at md breakpoint (presentation only).

Sequence Diagram

sequenceDiagram
participant Page as Chat Page
participant Auth as auth()
participant Service as getUserChatHistory()
participant Layout as ResizablePanelGroup
participant Sidebar as ChatSidePanel
participant Main as Main Chat Panel
Page->>Auth: request auth state
Auth-->>Page: return auth state
alt authenticated
Page->>Service: fetch user chat history
Service-->>Page: return chatHistory
alt chatHistory is error
Page->>Page: throw ServiceErrorException
else valid chatHistory
Page->>Layout: render resizable layout
Layout->>Sidebar: provide chatHistory + auth state
Sidebar-->>Layout: render history UI
Layout->>Main: render main chat area (LandingPageChatBox, logo, carousel, demos)
Main-->>Layout: render complete
end
else unauthenticated
Page->>Layout: render layout without chatHistory
Layout->>Sidebar: render empty sidebar
Layout->>Main: render main chat area
end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • msukkari
🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title accurately describes the main change: adding user chat history display to the web interface.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

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

Comment @coderabbitai help to get the list of available commands and usage tips.

@brendan-kellam

Copy link
Copy Markdown
Contributor

Hey @Nil2000 thanks for the PR.

image

Instead of having cards, I think we would be better off re-using the existing chat history sidebar. This is a more common UX pattern, as seen in tools like claude:
image
image

@Nil2000

Copy link
Copy Markdown
ContributorAuthor

@brendan-kellam I believe this would do
image

@brendan-kellam

Copy link
Copy Markdown
Contributor

@brendan-kellam I believe this would do image

Nice I think this is a better. There are definitely improvements we can make to the sidebar (using the shadcn sidebar component comes to mind as it has a better UX interaction pattern imo), but we can leave that for the future.

Comment threadpackages/web/src/app/[domain]/chat/page.tsx Outdated

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This PR is being reviewed by Cursor Bugbot

Details

You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

Comment threadpackages/web/src/app/[domain]/chat/page.tsx
@Nil2000

Copy link
Copy Markdown
ContributorAuthor

@brendan-kellam any update on this?

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@packages/web/src/app/`[domain]/chat/page.tsx:
- Line 95: The Tailwind class "md:mt-18" in the JSX div with classes "flex
flex-col justify-center items-center mt-8 mb-8 md:mt-18 w-full px-5" is invalid
and will be ignored; update that class to "md:mt-16" in the same div (page.tsx)
so the medium-screen top margin uses the project's valid spacing scale.

Comment threadpackages/web/src/app/[domain]/chat/page.tsx Outdated
@brendan-kellam
brendan-kellam merged commit bbabfe4 into sourcebot-dev:mainJan 24, 2026
6 checks passed
@brendan-kellam

Copy link
Copy Markdown
Contributor

Thanks @Nil2000 !

@github-actionsgithub-actionsBot mentioned this pull request Jan 24, 2026
Sign up for freeto 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.

[FR] Allow users to view chat history from home page

2 participants

@Nil2000@brendan-kellam
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

feat(web): Show user chat history - #721

Merged
brendan-kellam merged 15 commits into
sourcebot-dev:mainfrom
Nil2000:feat/chat-history
Jan 24, 2026
Merged

feat(web): Show user chat history#721
brendan-kellam merged 15 commits into
sourcebot-dev:mainfrom
Nil2000:feat/chat-history

Conversation

@Nil2000

@Nil2000Nil2000 commented Jan 8, 2026

Copy link
Copy Markdown
Contributor

Fixes : #660

Implemented recent chats
For now I have set to 3
image


Note

Introduces a resizable chat sidebar with recent history on the Ask homepage and wires up authenticated chat history retrieval.

  • Adds ChatSidePanel, ResizablePanelGroup, ResizablePanel, and AnimatedResizableHandle to chat/page.tsx for a collapsible, resizable layout
  • Retrieves session via auth() and loads getUserChatHistory(); surfaces service errors with ServiceErrorException
  • Minor UI tweaks (spacing/class adjustments) on chat and search landing pages
  • Updates CHANGELOG.md to note the new ask sidebar

Written by Cursor Bugbot for commit 4344a18. This will update automatically on new commits. Configure here.

Summary by CodeRabbit

  • New Features
    • Chat history for authenticated users
    • New horizontal, resizable sidebar layout (ask sidebar) for improved chat navigation and content organization
  • Bug Fixes
    • Runtime validation surfaces chatHistory and service errors before rendering
  • Style
    • Minor spacing adjustment on the search landing page for medium+ screens
  • Chores
    • Updated changelog to note the new ask sidebar on the homepage

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai

coderabbitaiBot commented Jan 8, 2026

Copy link
Copy Markdown
Contributor

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

The chat page now fetches authenticated users' chat history, validates it, and renders a new horizontal resizable two-panel layout with a chat sidebar and main chat area; minor spacing tweak in the search landing page and changelog updated with an "ask sidebar" entry.

Changes

Cohort / File(s)Summary
Chat Page Layout & Data Flow
packages/web/src/app/[domain]/chat/page.tsx
Adds auth() and getUserChatHistory() usage, validates chatHistory and throws on error; replaces prior single-column UI with ResizablePanelGroup (left ChatSidePanel, animated handle, right ResizablePanel containing LandingPageChatBox, SourcebotLogo, repository carousel and demo content); updates container/layout classes and overflow behavior.
Changelog
CHANGELOG.md
Adds Unreleased "Added" entry: "Added ask sidebar to homepage. #721".
Search Landing Page Spacing
packages/web/src/app/[domain]/search/components/searchLandingPage.tsx
Minor spacing change: mt-18mt-16 at md breakpoint (presentation only).

Sequence Diagram

sequenceDiagram
participant Page as Chat Page
participant Auth as auth()
participant Service as getUserChatHistory()
participant Layout as ResizablePanelGroup
participant Sidebar as ChatSidePanel
participant Main as Main Chat Panel
Page->>Auth: request auth state
Auth-->>Page: return auth state
alt authenticated
Page->>Service: fetch user chat history
Service-->>Page: return chatHistory
alt chatHistory is error
Page->>Page: throw ServiceErrorException
else valid chatHistory
Page->>Layout: render resizable layout
Layout->>Sidebar: provide chatHistory + auth state
Sidebar-->>Layout: render history UI
Layout->>Main: render main chat area (LandingPageChatBox, logo, carousel, demos)
Main-->>Layout: render complete
end
else unauthenticated
Page->>Layout: render layout without chatHistory
Layout->>Sidebar: render empty sidebar
Layout->>Main: render main chat area
end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • msukkari
🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title accurately describes the main change: adding user chat history display to the web interface.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

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

Comment @coderabbitai help to get the list of available commands and usage tips.

@brendan-kellam

Copy link
Copy Markdown
Contributor

Hey @Nil2000 thanks for the PR.

image

Instead of having cards, I think we would be better off re-using the existing chat history sidebar. This is a more common UX pattern, as seen in tools like claude:
image
image

@Nil2000

Copy link
Copy Markdown
ContributorAuthor

@brendan-kellam I believe this would do
image

@brendan-kellam

Copy link
Copy Markdown
Contributor

@brendan-kellam I believe this would do image

Nice I think this is a better. There are definitely improvements we can make to the sidebar (using the shadcn sidebar component comes to mind as it has a better UX interaction pattern imo), but we can leave that for the future.

Comment threadpackages/web/src/app/[domain]/chat/page.tsx Outdated

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This PR is being reviewed by Cursor Bugbot

Details

You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

Comment threadpackages/web/src/app/[domain]/chat/page.tsx
@Nil2000

Copy link
Copy Markdown
ContributorAuthor

@brendan-kellam any update on this?

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@packages/web/src/app/`[domain]/chat/page.tsx:
- Line 95: The Tailwind class "md:mt-18" in the JSX div with classes "flex
flex-col justify-center items-center mt-8 mb-8 md:mt-18 w-full px-5" is invalid
and will be ignored; update that class to "md:mt-16" in the same div (page.tsx)
so the medium-screen top margin uses the project's valid spacing scale.

Comment threadpackages/web/src/app/[domain]/chat/page.tsx Outdated
@brendan-kellam
brendan-kellam merged commit bbabfe4 into sourcebot-dev:mainJan 24, 2026
6 checks passed
@brendan-kellam

Copy link
Copy Markdown
Contributor

Thanks @Nil2000 !

@github-actionsgithub-actionsBot mentioned this pull request Jan 24, 2026
Sign up for freeto 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.

[FR] Allow users to view chat history from home page

2 participants

@Nil2000@brendan-kellam
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(web): Show user chat history - #721

Merged
brendan-kellam merged 15 commits into
sourcebot-dev:mainfrom
Nil2000:feat/chat-history
Jan 24, 2026
Merged

feat(web): Show user chat history#721
brendan-kellam merged 15 commits into
sourcebot-dev:mainfrom
Nil2000:feat/chat-history

Conversation

@Nil2000

@Nil2000Nil2000 commented Jan 8, 2026

Copy link
Copy Markdown
Contributor

Fixes : #660

Implemented recent chats
For now I have set to 3
image


Note

Introduces a resizable chat sidebar with recent history on the Ask homepage and wires up authenticated chat history retrieval.

  • Adds ChatSidePanel, ResizablePanelGroup, ResizablePanel, and AnimatedResizableHandle to chat/page.tsx for a collapsible, resizable layout
  • Retrieves session via auth() and loads getUserChatHistory(); surfaces service errors with ServiceErrorException
  • Minor UI tweaks (spacing/class adjustments) on chat and search landing pages
  • Updates CHANGELOG.md to note the new ask sidebar

Written by Cursor Bugbot for commit 4344a18. This will update automatically on new commits. Configure here.

Summary by CodeRabbit

  • New Features
    • Chat history for authenticated users
    • New horizontal, resizable sidebar layout (ask sidebar) for improved chat navigation and content organization
  • Bug Fixes
    • Runtime validation surfaces chatHistory and service errors before rendering
  • Style
    • Minor spacing adjustment on the search landing page for medium+ screens
  • Chores
    • Updated changelog to note the new ask sidebar on the homepage

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai

coderabbitaiBot commented Jan 8, 2026

Copy link
Copy Markdown
Contributor

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

The chat page now fetches authenticated users' chat history, validates it, and renders a new horizontal resizable two-panel layout with a chat sidebar and main chat area; minor spacing tweak in the search landing page and changelog updated with an "ask sidebar" entry.

Changes

Cohort / File(s)Summary
Chat Page Layout & Data Flow
packages/web/src/app/[domain]/chat/page.tsx
Adds auth() and getUserChatHistory() usage, validates chatHistory and throws on error; replaces prior single-column UI with ResizablePanelGroup (left ChatSidePanel, animated handle, right ResizablePanel containing LandingPageChatBox, SourcebotLogo, repository carousel and demo content); updates container/layout classes and overflow behavior.
Changelog
CHANGELOG.md
Adds Unreleased "Added" entry: "Added ask sidebar to homepage. #721".
Search Landing Page Spacing
packages/web/src/app/[domain]/search/components/searchLandingPage.tsx
Minor spacing change: mt-18mt-16 at md breakpoint (presentation only).

Sequence Diagram

sequenceDiagram
participant Page as Chat Page
participant Auth as auth()
participant Service as getUserChatHistory()
participant Layout as ResizablePanelGroup
participant Sidebar as ChatSidePanel
participant Main as Main Chat Panel
Page->>Auth: request auth state
Auth-->>Page: return auth state
alt authenticated
Page->>Service: fetch user chat history
Service-->>Page: return chatHistory
alt chatHistory is error
Page->>Page: throw ServiceErrorException
else valid chatHistory
Page->>Layout: render resizable layout
Layout->>Sidebar: provide chatHistory + auth state
Sidebar-->>Layout: render history UI
Layout->>Main: render main chat area (LandingPageChatBox, logo, carousel, demos)
Main-->>Layout: render complete
end
else unauthenticated
Page->>Layout: render layout without chatHistory
Layout->>Sidebar: render empty sidebar
Layout->>Main: render main chat area
end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • msukkari
🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title accurately describes the main change: adding user chat history display to the web interface.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

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

Comment @coderabbitai help to get the list of available commands and usage tips.

@brendan-kellam

Copy link
Copy Markdown
Contributor

Hey @Nil2000 thanks for the PR.

image

Instead of having cards, I think we would be better off re-using the existing chat history sidebar. This is a more common UX pattern, as seen in tools like claude:
image
image

@Nil2000

Copy link
Copy Markdown
ContributorAuthor

@brendan-kellam I believe this would do
image

@brendan-kellam

Copy link
Copy Markdown
Contributor

@brendan-kellam I believe this would do image

Nice I think this is a better. There are definitely improvements we can make to the sidebar (using the shadcn sidebar component comes to mind as it has a better UX interaction pattern imo), but we can leave that for the future.

Comment threadpackages/web/src/app/[domain]/chat/page.tsx Outdated

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This PR is being reviewed by Cursor Bugbot

Details

You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

Comment threadpackages/web/src/app/[domain]/chat/page.tsx
@Nil2000

Copy link
Copy Markdown
ContributorAuthor

@brendan-kellam any update on this?

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@packages/web/src/app/`[domain]/chat/page.tsx:
- Line 95: The Tailwind class "md:mt-18" in the JSX div with classes "flex
flex-col justify-center items-center mt-8 mb-8 md:mt-18 w-full px-5" is invalid
and will be ignored; update that class to "md:mt-16" in the same div (page.tsx)
so the medium-screen top margin uses the project's valid spacing scale.

Comment threadpackages/web/src/app/[domain]/chat/page.tsx Outdated
@brendan-kellam
brendan-kellam merged commit bbabfe4 into sourcebot-dev:mainJan 24, 2026
6 checks passed
@brendan-kellam

Copy link
Copy Markdown
Contributor

Thanks @Nil2000 !

@github-actionsgithub-actionsBot mentioned this pull request Jan 24, 2026
Sign up for freeto 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.

[FR] Allow users to view chat history from home page

2 participants

@Nil2000@brendan-kellam
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(web): Show user chat history - #721

Merged
brendan-kellam merged 15 commits into
sourcebot-dev:mainfrom
Nil2000:feat/chat-history
Jan 24, 2026
Merged

feat(web): Show user chat history#721
brendan-kellam merged 15 commits into
sourcebot-dev:mainfrom
Nil2000:feat/chat-history

Conversation

@Nil2000

@Nil2000Nil2000 commented Jan 8, 2026

Copy link
Copy Markdown
Contributor

Fixes : #660

Implemented recent chats
For now I have set to 3
image


Note

Introduces a resizable chat sidebar with recent history on the Ask homepage and wires up authenticated chat history retrieval.

  • Adds ChatSidePanel, ResizablePanelGroup, ResizablePanel, and AnimatedResizableHandle to chat/page.tsx for a collapsible, resizable layout
  • Retrieves session via auth() and loads getUserChatHistory(); surfaces service errors with ServiceErrorException
  • Minor UI tweaks (spacing/class adjustments) on chat and search landing pages
  • Updates CHANGELOG.md to note the new ask sidebar

Written by Cursor Bugbot for commit 4344a18. This will update automatically on new commits. Configure here.

Summary by CodeRabbit

  • New Features
    • Chat history for authenticated users
    • New horizontal, resizable sidebar layout (ask sidebar) for improved chat navigation and content organization
  • Bug Fixes
    • Runtime validation surfaces chatHistory and service errors before rendering
  • Style
    • Minor spacing adjustment on the search landing page for medium+ screens
  • Chores
    • Updated changelog to note the new ask sidebar on the homepage

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai

coderabbitaiBot commented Jan 8, 2026

Copy link
Copy Markdown
Contributor

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

The chat page now fetches authenticated users' chat history, validates it, and renders a new horizontal resizable two-panel layout with a chat sidebar and main chat area; minor spacing tweak in the search landing page and changelog updated with an "ask sidebar" entry.

Changes

Cohort / File(s)Summary
Chat Page Layout & Data Flow
packages/web/src/app/[domain]/chat/page.tsx
Adds auth() and getUserChatHistory() usage, validates chatHistory and throws on error; replaces prior single-column UI with ResizablePanelGroup (left ChatSidePanel, animated handle, right ResizablePanel containing LandingPageChatBox, SourcebotLogo, repository carousel and demo content); updates container/layout classes and overflow behavior.
Changelog
CHANGELOG.md
Adds Unreleased "Added" entry: "Added ask sidebar to homepage. #721".
Search Landing Page Spacing
packages/web/src/app/[domain]/search/components/searchLandingPage.tsx
Minor spacing change: mt-18mt-16 at md breakpoint (presentation only).

Sequence Diagram

sequenceDiagram
participant Page as Chat Page
participant Auth as auth()
participant Service as getUserChatHistory()
participant Layout as ResizablePanelGroup
participant Sidebar as ChatSidePanel
participant Main as Main Chat Panel
Page->>Auth: request auth state
Auth-->>Page: return auth state
alt authenticated
Page->>Service: fetch user chat history
Service-->>Page: return chatHistory
alt chatHistory is error
Page->>Page: throw ServiceErrorException
else valid chatHistory
Page->>Layout: render resizable layout
Layout->>Sidebar: provide chatHistory + auth state
Sidebar-->>Layout: render history UI
Layout->>Main: render main chat area (LandingPageChatBox, logo, carousel, demos)
Main-->>Layout: render complete
end
else unauthenticated
Page->>Layout: render layout without chatHistory
Layout->>Sidebar: render empty sidebar
Layout->>Main: render main chat area
end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • msukkari
🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title accurately describes the main change: adding user chat history display to the web interface.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

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

Comment @coderabbitai help to get the list of available commands and usage tips.

@brendan-kellam

Copy link
Copy Markdown
Contributor

Hey @Nil2000 thanks for the PR.

image

Instead of having cards, I think we would be better off re-using the existing chat history sidebar. This is a more common UX pattern, as seen in tools like claude:
image
image

@Nil2000

Copy link
Copy Markdown
ContributorAuthor

@brendan-kellam I believe this would do
image

@brendan-kellam

Copy link
Copy Markdown
Contributor

@brendan-kellam I believe this would do image

Nice I think this is a better. There are definitely improvements we can make to the sidebar (using the shadcn sidebar component comes to mind as it has a better UX interaction pattern imo), but we can leave that for the future.

Comment threadpackages/web/src/app/[domain]/chat/page.tsx Outdated

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This PR is being reviewed by Cursor Bugbot

Details

You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

Comment threadpackages/web/src/app/[domain]/chat/page.tsx
@Nil2000

Copy link
Copy Markdown
ContributorAuthor

@brendan-kellam any update on this?

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@packages/web/src/app/`[domain]/chat/page.tsx:
- Line 95: The Tailwind class "md:mt-18" in the JSX div with classes "flex
flex-col justify-center items-center mt-8 mb-8 md:mt-18 w-full px-5" is invalid
and will be ignored; update that class to "md:mt-16" in the same div (page.tsx)
so the medium-screen top margin uses the project's valid spacing scale.

Comment threadpackages/web/src/app/[domain]/chat/page.tsx Outdated
@brendan-kellam
brendan-kellam merged commit bbabfe4 into sourcebot-dev:mainJan 24, 2026
6 checks passed
@brendan-kellam

Copy link
Copy Markdown
Contributor

Thanks @Nil2000 !

@github-actionsgithub-actionsBot mentioned this pull request Jan 24, 2026
Sign up for freeto 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.

[FR] Allow users to view chat history from home page

2 participants

@Nil2000@brendan-kellam
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

feat(web): Show user chat history - #721

Merged
brendan-kellam merged 15 commits into
sourcebot-dev:mainfrom
Nil2000:feat/chat-history
Jan 24, 2026
Merged

feat(web): Show user chat history#721
brendan-kellam merged 15 commits into
sourcebot-dev:mainfrom
Nil2000:feat/chat-history

Conversation

@Nil2000

@Nil2000Nil2000 commented Jan 8, 2026

Copy link
Copy Markdown
Contributor

Fixes : #660

Implemented recent chats
For now I have set to 3
image


Note

Introduces a resizable chat sidebar with recent history on the Ask homepage and wires up authenticated chat history retrieval.

  • Adds ChatSidePanel, ResizablePanelGroup, ResizablePanel, and AnimatedResizableHandle to chat/page.tsx for a collapsible, resizable layout
  • Retrieves session via auth() and loads getUserChatHistory(); surfaces service errors with ServiceErrorException
  • Minor UI tweaks (spacing/class adjustments) on chat and search landing pages
  • Updates CHANGELOG.md to note the new ask sidebar

Written by Cursor Bugbot for commit 4344a18. This will update automatically on new commits. Configure here.

Summary by CodeRabbit

  • New Features
    • Chat history for authenticated users
    • New horizontal, resizable sidebar layout (ask sidebar) for improved chat navigation and content organization
  • Bug Fixes
    • Runtime validation surfaces chatHistory and service errors before rendering
  • Style
    • Minor spacing adjustment on the search landing page for medium+ screens
  • Chores
    • Updated changelog to note the new ask sidebar on the homepage

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai

coderabbitaiBot commented Jan 8, 2026

Copy link
Copy Markdown
Contributor

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

The chat page now fetches authenticated users' chat history, validates it, and renders a new horizontal resizable two-panel layout with a chat sidebar and main chat area; minor spacing tweak in the search landing page and changelog updated with an "ask sidebar" entry.

Changes

Cohort / File(s)Summary
Chat Page Layout & Data Flow
packages/web/src/app/[domain]/chat/page.tsx
Adds auth() and getUserChatHistory() usage, validates chatHistory and throws on error; replaces prior single-column UI with ResizablePanelGroup (left ChatSidePanel, animated handle, right ResizablePanel containing LandingPageChatBox, SourcebotLogo, repository carousel and demo content); updates container/layout classes and overflow behavior.
Changelog
CHANGELOG.md
Adds Unreleased "Added" entry: "Added ask sidebar to homepage. #721".
Search Landing Page Spacing
packages/web/src/app/[domain]/search/components/searchLandingPage.tsx
Minor spacing change: mt-18mt-16 at md breakpoint (presentation only).

Sequence Diagram

sequenceDiagram
participant Page as Chat Page
participant Auth as auth()
participant Service as getUserChatHistory()
participant Layout as ResizablePanelGroup
participant Sidebar as ChatSidePanel
participant Main as Main Chat Panel
Page->>Auth: request auth state
Auth-->>Page: return auth state
alt authenticated
Page->>Service: fetch user chat history
Service-->>Page: return chatHistory
alt chatHistory is error
Page->>Page: throw ServiceErrorException
else valid chatHistory
Page->>Layout: render resizable layout
Layout->>Sidebar: provide chatHistory + auth state
Sidebar-->>Layout: render history UI
Layout->>Main: render main chat area (LandingPageChatBox, logo, carousel, demos)
Main-->>Layout: render complete
end
else unauthenticated
Page->>Layout: render layout without chatHistory
Layout->>Sidebar: render empty sidebar
Layout->>Main: render main chat area
end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • msukkari
🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title accurately describes the main change: adding user chat history display to the web interface.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

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

Comment @coderabbitai help to get the list of available commands and usage tips.

@brendan-kellam

Copy link
Copy Markdown
Contributor

Hey @Nil2000 thanks for the PR.

image

Instead of having cards, I think we would be better off re-using the existing chat history sidebar. This is a more common UX pattern, as seen in tools like claude:
image
image

@Nil2000

Copy link
Copy Markdown
ContributorAuthor

@brendan-kellam I believe this would do
image

@brendan-kellam

Copy link
Copy Markdown
Contributor

@brendan-kellam I believe this would do image

Nice I think this is a better. There are definitely improvements we can make to the sidebar (using the shadcn sidebar component comes to mind as it has a better UX interaction pattern imo), but we can leave that for the future.

Comment threadpackages/web/src/app/[domain]/chat/page.tsx Outdated

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This PR is being reviewed by Cursor Bugbot

Details

You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

Comment threadpackages/web/src/app/[domain]/chat/page.tsx
@Nil2000

Copy link
Copy Markdown
ContributorAuthor

@brendan-kellam any update on this?

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@packages/web/src/app/`[domain]/chat/page.tsx:
- Line 95: The Tailwind class "md:mt-18" in the JSX div with classes "flex
flex-col justify-center items-center mt-8 mb-8 md:mt-18 w-full px-5" is invalid
and will be ignored; update that class to "md:mt-16" in the same div (page.tsx)
so the medium-screen top margin uses the project's valid spacing scale.

Comment threadpackages/web/src/app/[domain]/chat/page.tsx Outdated
@brendan-kellam
brendan-kellam merged commit bbabfe4 into sourcebot-dev:mainJan 24, 2026
6 checks passed
@brendan-kellam

Copy link
Copy Markdown
Contributor

Thanks @Nil2000 !

@github-actionsgithub-actionsBot mentioned this pull request Jan 24, 2026
Sign up for freeto 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.

[FR] Allow users to view chat history from home page

2 participants

@Nil2000@brendan-kellam
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(web): Show user chat history - #721

Merged
brendan-kellam merged 15 commits into
sourcebot-dev:mainfrom
Nil2000:feat/chat-history
Jan 24, 2026
Merged

feat(web): Show user chat history#721
brendan-kellam merged 15 commits into
sourcebot-dev:mainfrom
Nil2000:feat/chat-history

Conversation

@Nil2000

@Nil2000Nil2000 commented Jan 8, 2026

Copy link
Copy Markdown
Contributor

Fixes : #660

Implemented recent chats
For now I have set to 3
image


Note

Introduces a resizable chat sidebar with recent history on the Ask homepage and wires up authenticated chat history retrieval.

  • Adds ChatSidePanel, ResizablePanelGroup, ResizablePanel, and AnimatedResizableHandle to chat/page.tsx for a collapsible, resizable layout
  • Retrieves session via auth() and loads getUserChatHistory(); surfaces service errors with ServiceErrorException
  • Minor UI tweaks (spacing/class adjustments) on chat and search landing pages
  • Updates CHANGELOG.md to note the new ask sidebar

Written by Cursor Bugbot for commit 4344a18. This will update automatically on new commits. Configure here.

Summary by CodeRabbit

  • New Features
    • Chat history for authenticated users
    • New horizontal, resizable sidebar layout (ask sidebar) for improved chat navigation and content organization
  • Bug Fixes
    • Runtime validation surfaces chatHistory and service errors before rendering
  • Style
    • Minor spacing adjustment on the search landing page for medium+ screens
  • Chores
    • Updated changelog to note the new ask sidebar on the homepage

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai

coderabbitaiBot commented Jan 8, 2026

Copy link
Copy Markdown
Contributor

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

The chat page now fetches authenticated users' chat history, validates it, and renders a new horizontal resizable two-panel layout with a chat sidebar and main chat area; minor spacing tweak in the search landing page and changelog updated with an "ask sidebar" entry.

Changes

Cohort / File(s)Summary
Chat Page Layout & Data Flow
packages/web/src/app/[domain]/chat/page.tsx
Adds auth() and getUserChatHistory() usage, validates chatHistory and throws on error; replaces prior single-column UI with ResizablePanelGroup (left ChatSidePanel, animated handle, right ResizablePanel containing LandingPageChatBox, SourcebotLogo, repository carousel and demo content); updates container/layout classes and overflow behavior.
Changelog
CHANGELOG.md
Adds Unreleased "Added" entry: "Added ask sidebar to homepage. #721".
Search Landing Page Spacing
packages/web/src/app/[domain]/search/components/searchLandingPage.tsx
Minor spacing change: mt-18mt-16 at md breakpoint (presentation only).

Sequence Diagram

sequenceDiagram
participant Page as Chat Page
participant Auth as auth()
participant Service as getUserChatHistory()
participant Layout as ResizablePanelGroup
participant Sidebar as ChatSidePanel
participant Main as Main Chat Panel
Page->>Auth: request auth state
Auth-->>Page: return auth state
alt authenticated
Page->>Service: fetch user chat history
Service-->>Page: return chatHistory
alt chatHistory is error
Page->>Page: throw ServiceErrorException
else valid chatHistory
Page->>Layout: render resizable layout
Layout->>Sidebar: provide chatHistory + auth state
Sidebar-->>Layout: render history UI
Layout->>Main: render main chat area (LandingPageChatBox, logo, carousel, demos)
Main-->>Layout: render complete
end
else unauthenticated
Page->>Layout: render layout without chatHistory
Layout->>Sidebar: render empty sidebar
Layout->>Main: render main chat area
end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • msukkari
🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title accurately describes the main change: adding user chat history display to the web interface.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

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

Comment @coderabbitai help to get the list of available commands and usage tips.

@brendan-kellam

Copy link
Copy Markdown
Contributor

Hey @Nil2000 thanks for the PR.

image

Instead of having cards, I think we would be better off re-using the existing chat history sidebar. This is a more common UX pattern, as seen in tools like claude:
image
image

@Nil2000

Copy link
Copy Markdown
ContributorAuthor

@brendan-kellam I believe this would do
image

@brendan-kellam

Copy link
Copy Markdown
Contributor

@brendan-kellam I believe this would do image

Nice I think this is a better. There are definitely improvements we can make to the sidebar (using the shadcn sidebar component comes to mind as it has a better UX interaction pattern imo), but we can leave that for the future.

Comment threadpackages/web/src/app/[domain]/chat/page.tsx Outdated

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This PR is being reviewed by Cursor Bugbot

Details

You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

Comment threadpackages/web/src/app/[domain]/chat/page.tsx
@Nil2000

Copy link
Copy Markdown
ContributorAuthor

@brendan-kellam any update on this?

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@packages/web/src/app/`[domain]/chat/page.tsx:
- Line 95: The Tailwind class "md:mt-18" in the JSX div with classes "flex
flex-col justify-center items-center mt-8 mb-8 md:mt-18 w-full px-5" is invalid
and will be ignored; update that class to "md:mt-16" in the same div (page.tsx)
so the medium-screen top margin uses the project's valid spacing scale.

Comment threadpackages/web/src/app/[domain]/chat/page.tsx Outdated
@brendan-kellam
brendan-kellam merged commit bbabfe4 into sourcebot-dev:mainJan 24, 2026
6 checks passed
@brendan-kellam

Copy link
Copy Markdown
Contributor

Thanks @Nil2000 !

@github-actionsgithub-actionsBot mentioned this pull request Jan 24, 2026
Sign up for freeto 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.

[FR] Allow users to view chat history from home page

2 participants

@Nil2000@brendan-kellam
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(web): Show user chat history - #721

Merged
brendan-kellam merged 15 commits into
sourcebot-dev:mainfrom
Nil2000:feat/chat-history
Jan 24, 2026
Merged

feat(web): Show user chat history#721
brendan-kellam merged 15 commits into
sourcebot-dev:mainfrom
Nil2000:feat/chat-history

Conversation

@Nil2000

@Nil2000Nil2000 commented Jan 8, 2026

Copy link
Copy Markdown
Contributor

Fixes : #660

Implemented recent chats
For now I have set to 3
image


Note

Introduces a resizable chat sidebar with recent history on the Ask homepage and wires up authenticated chat history retrieval.

  • Adds ChatSidePanel, ResizablePanelGroup, ResizablePanel, and AnimatedResizableHandle to chat/page.tsx for a collapsible, resizable layout
  • Retrieves session via auth() and loads getUserChatHistory(); surfaces service errors with ServiceErrorException
  • Minor UI tweaks (spacing/class adjustments) on chat and search landing pages
  • Updates CHANGELOG.md to note the new ask sidebar

Written by Cursor Bugbot for commit 4344a18. This will update automatically on new commits. Configure here.

Summary by CodeRabbit

  • New Features
    • Chat history for authenticated users
    • New horizontal, resizable sidebar layout (ask sidebar) for improved chat navigation and content organization
  • Bug Fixes
    • Runtime validation surfaces chatHistory and service errors before rendering
  • Style
    • Minor spacing adjustment on the search landing page for medium+ screens
  • Chores
    • Updated changelog to note the new ask sidebar on the homepage

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai

coderabbitaiBot commented Jan 8, 2026

Copy link
Copy Markdown
Contributor

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

The chat page now fetches authenticated users' chat history, validates it, and renders a new horizontal resizable two-panel layout with a chat sidebar and main chat area; minor spacing tweak in the search landing page and changelog updated with an "ask sidebar" entry.

Changes

Cohort / File(s)Summary
Chat Page Layout & Data Flow
packages/web/src/app/[domain]/chat/page.tsx
Adds auth() and getUserChatHistory() usage, validates chatHistory and throws on error; replaces prior single-column UI with ResizablePanelGroup (left ChatSidePanel, animated handle, right ResizablePanel containing LandingPageChatBox, SourcebotLogo, repository carousel and demo content); updates container/layout classes and overflow behavior.
Changelog
CHANGELOG.md
Adds Unreleased "Added" entry: "Added ask sidebar to homepage. #721".
Search Landing Page Spacing
packages/web/src/app/[domain]/search/components/searchLandingPage.tsx
Minor spacing change: mt-18mt-16 at md breakpoint (presentation only).

Sequence Diagram

sequenceDiagram
participant Page as Chat Page
participant Auth as auth()
participant Service as getUserChatHistory()
participant Layout as ResizablePanelGroup
participant Sidebar as ChatSidePanel
participant Main as Main Chat Panel
Page->>Auth: request auth state
Auth-->>Page: return auth state
alt authenticated
Page->>Service: fetch user chat history
Service-->>Page: return chatHistory
alt chatHistory is error
Page->>Page: throw ServiceErrorException
else valid chatHistory
Page->>Layout: render resizable layout
Layout->>Sidebar: provide chatHistory + auth state
Sidebar-->>Layout: render history UI
Layout->>Main: render main chat area (LandingPageChatBox, logo, carousel, demos)
Main-->>Layout: render complete
end
else unauthenticated
Page->>Layout: render layout without chatHistory
Layout->>Sidebar: render empty sidebar
Layout->>Main: render main chat area
end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • msukkari
🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title accurately describes the main change: adding user chat history display to the web interface.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

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

Comment @coderabbitai help to get the list of available commands and usage tips.

@brendan-kellam

Copy link
Copy Markdown
Contributor

Hey @Nil2000 thanks for the PR.

image

Instead of having cards, I think we would be better off re-using the existing chat history sidebar. This is a more common UX pattern, as seen in tools like claude:
image
image

@Nil2000

Copy link
Copy Markdown
ContributorAuthor

@brendan-kellam I believe this would do
image

@brendan-kellam

Copy link
Copy Markdown
Contributor

@brendan-kellam I believe this would do image

Nice I think this is a better. There are definitely improvements we can make to the sidebar (using the shadcn sidebar component comes to mind as it has a better UX interaction pattern imo), but we can leave that for the future.

Comment threadpackages/web/src/app/[domain]/chat/page.tsx Outdated

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This PR is being reviewed by Cursor Bugbot

Details

You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

Comment threadpackages/web/src/app/[domain]/chat/page.tsx
@Nil2000

Copy link
Copy Markdown
ContributorAuthor

@brendan-kellam any update on this?

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@packages/web/src/app/`[domain]/chat/page.tsx:
- Line 95: The Tailwind class "md:mt-18" in the JSX div with classes "flex
flex-col justify-center items-center mt-8 mb-8 md:mt-18 w-full px-5" is invalid
and will be ignored; update that class to "md:mt-16" in the same div (page.tsx)
so the medium-screen top margin uses the project's valid spacing scale.

Comment threadpackages/web/src/app/[domain]/chat/page.tsx Outdated
@brendan-kellam
brendan-kellam merged commit bbabfe4 into sourcebot-dev:mainJan 24, 2026
6 checks passed
@brendan-kellam

Copy link
Copy Markdown
Contributor

Thanks @Nil2000 !

@github-actionsgithub-actionsBot mentioned this pull request Jan 24, 2026
Sign up for freeto 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.

[FR] Allow users to view chat history from home page

2 participants

@Nil2000@brendan-kellam
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

feat(web): Show user chat history - #721

Merged
brendan-kellam merged 15 commits into
sourcebot-dev:mainfrom
Nil2000:feat/chat-history
Jan 24, 2026
Merged

feat(web): Show user chat history#721
brendan-kellam merged 15 commits into
sourcebot-dev:mainfrom
Nil2000:feat/chat-history

Conversation

@Nil2000

@Nil2000Nil2000 commented Jan 8, 2026

Copy link
Copy Markdown
Contributor

Fixes : #660

Implemented recent chats
For now I have set to 3
image


Note

Introduces a resizable chat sidebar with recent history on the Ask homepage and wires up authenticated chat history retrieval.

  • Adds ChatSidePanel, ResizablePanelGroup, ResizablePanel, and AnimatedResizableHandle to chat/page.tsx for a collapsible, resizable layout
  • Retrieves session via auth() and loads getUserChatHistory(); surfaces service errors with ServiceErrorException
  • Minor UI tweaks (spacing/class adjustments) on chat and search landing pages
  • Updates CHANGELOG.md to note the new ask sidebar

Written by Cursor Bugbot for commit 4344a18. This will update automatically on new commits. Configure here.

Summary by CodeRabbit

  • New Features
    • Chat history for authenticated users
    • New horizontal, resizable sidebar layout (ask sidebar) for improved chat navigation and content organization
  • Bug Fixes
    • Runtime validation surfaces chatHistory and service errors before rendering
  • Style
    • Minor spacing adjustment on the search landing page for medium+ screens
  • Chores
    • Updated changelog to note the new ask sidebar on the homepage

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai

coderabbitaiBot commented Jan 8, 2026

Copy link
Copy Markdown
Contributor

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

The chat page now fetches authenticated users' chat history, validates it, and renders a new horizontal resizable two-panel layout with a chat sidebar and main chat area; minor spacing tweak in the search landing page and changelog updated with an "ask sidebar" entry.

Changes

Cohort / File(s)Summary
Chat Page Layout & Data Flow
packages/web/src/app/[domain]/chat/page.tsx
Adds auth() and getUserChatHistory() usage, validates chatHistory and throws on error; replaces prior single-column UI with ResizablePanelGroup (left ChatSidePanel, animated handle, right ResizablePanel containing LandingPageChatBox, SourcebotLogo, repository carousel and demo content); updates container/layout classes and overflow behavior.
Changelog
CHANGELOG.md
Adds Unreleased "Added" entry: "Added ask sidebar to homepage. #721".
Search Landing Page Spacing
packages/web/src/app/[domain]/search/components/searchLandingPage.tsx
Minor spacing change: mt-18mt-16 at md breakpoint (presentation only).

Sequence Diagram

sequenceDiagram
participant Page as Chat Page
participant Auth as auth()
participant Service as getUserChatHistory()
participant Layout as ResizablePanelGroup
participant Sidebar as ChatSidePanel
participant Main as Main Chat Panel
Page->>Auth: request auth state
Auth-->>Page: return auth state
alt authenticated
Page->>Service: fetch user chat history
Service-->>Page: return chatHistory
alt chatHistory is error
Page->>Page: throw ServiceErrorException
else valid chatHistory
Page->>Layout: render resizable layout
Layout->>Sidebar: provide chatHistory + auth state
Sidebar-->>Layout: render history UI
Layout->>Main: render main chat area (LandingPageChatBox, logo, carousel, demos)
Main-->>Layout: render complete
end
else unauthenticated
Page->>Layout: render layout without chatHistory
Layout->>Sidebar: render empty sidebar
Layout->>Main: render main chat area
end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • msukkari
🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title accurately describes the main change: adding user chat history display to the web interface.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

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

Comment @coderabbitai help to get the list of available commands and usage tips.

@brendan-kellam

Copy link
Copy Markdown
Contributor

Hey @Nil2000 thanks for the PR.

image

Instead of having cards, I think we would be better off re-using the existing chat history sidebar. This is a more common UX pattern, as seen in tools like claude:
image
image

@Nil2000

Copy link
Copy Markdown
ContributorAuthor

@brendan-kellam I believe this would do
image

@brendan-kellam

Copy link
Copy Markdown
Contributor

@brendan-kellam I believe this would do image

Nice I think this is a better. There are definitely improvements we can make to the sidebar (using the shadcn sidebar component comes to mind as it has a better UX interaction pattern imo), but we can leave that for the future.

Comment threadpackages/web/src/app/[domain]/chat/page.tsx Outdated

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This PR is being reviewed by Cursor Bugbot

Details

You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

Comment threadpackages/web/src/app/[domain]/chat/page.tsx
@Nil2000

Copy link
Copy Markdown
ContributorAuthor

@brendan-kellam any update on this?

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@packages/web/src/app/`[domain]/chat/page.tsx:
- Line 95: The Tailwind class "md:mt-18" in the JSX div with classes "flex
flex-col justify-center items-center mt-8 mb-8 md:mt-18 w-full px-5" is invalid
and will be ignored; update that class to "md:mt-16" in the same div (page.tsx)
so the medium-screen top margin uses the project's valid spacing scale.

Comment threadpackages/web/src/app/[domain]/chat/page.tsx Outdated
@brendan-kellam
brendan-kellam merged commit bbabfe4 into sourcebot-dev:mainJan 24, 2026
6 checks passed
@brendan-kellam

Copy link
Copy Markdown
Contributor

Thanks @Nil2000 !

@github-actionsgithub-actionsBot mentioned this pull request Jan 24, 2026
Sign up for freeto 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.

[FR] Allow users to view chat history from home page

2 participants

@Nil2000@brendan-kellam