From 5738bf0707eb7d4427cf7b6feb6cdfcd70de4fc7 Mon Sep 17 00:00:00 2001 From: Anish Sarkar <104695310+AnishSarkar22@users.noreply.github.com> Date: Tue, 9 Jun 2026 00:11:59 +0530 Subject: [PATCH 1/4] feat(docs): enhance documentation & remove breadcrumbs --- .../app/(home)/blog/[slug]/loading.tsx | 9 -- surfsense_web/app/(home)/blog/[slug]/page.tsx | 10 -- .../app/(home)/blog/blog-magazine.tsx | 2 +- .../app/(home)/changelog/loading.tsx | 6 - surfsense_web/app/(home)/changelog/page.tsx | 116 ++++-------------- .../app/(home)/free/[model_slug]/loading.tsx | 9 -- .../app/(home)/free/[model_slug]/page.tsx | 11 +- surfsense_web/app/(home)/free/loading.tsx | 7 -- surfsense_web/app/(home)/free/page.tsx | 8 -- surfsense_web/app/(home)/pricing/page.tsx | 9 -- .../changelog/content/2025-12-24.mdx | 36 ++---- .../changelog/content/2026-01-08.mdx | 34 ++--- .../changelog/content/2026-01-26.mdx | 50 +++----- .../changelog/content/2026-02-09.mdx | 44 +++---- .../changelog/content/2026-03-31.mdx | 58 ++++----- .../changelog/content/2026-04-08.mdx | 54 ++++---- .../changelog/content/2026-04-16.mdx | 58 ++++----- .../changelog/content/2026-04-21.mdx | 62 ++++++++++ .../changelog/content/2026-05-03.mdx | 65 ++++++++++ .../changelog/content/2026-05-04.mdx | 37 ++++++ .../changelog/content/2026-05-05.mdx | 29 +++++ .../changelog/content/2026-05-06.mdx | 48 ++++++++ .../changelog/content/2026-05-20.mdx | 63 ++++++++++ .../changelog/content/2026-05-21.mdx | 48 ++++++++ .../changelog/content/2026-05-31.mdx | 50 +++----- .../components/ui/changelog-timeline.tsx | 105 ++++++++++++++++ surfsense_web/source.config.ts | 4 +- 27 files changed, 631 insertions(+), 401 deletions(-) create mode 100644 surfsense_web/changelog/content/2026-04-21.mdx create mode 100644 surfsense_web/changelog/content/2026-05-03.mdx create mode 100644 surfsense_web/changelog/content/2026-05-04.mdx create mode 100644 surfsense_web/changelog/content/2026-05-05.mdx create mode 100644 surfsense_web/changelog/content/2026-05-06.mdx create mode 100644 surfsense_web/changelog/content/2026-05-20.mdx create mode 100644 surfsense_web/changelog/content/2026-05-21.mdx create mode 100644 surfsense_web/components/ui/changelog-timeline.tsx diff --git a/surfsense_web/app/(home)/blog/[slug]/loading.tsx b/surfsense_web/app/(home)/blog/[slug]/loading.tsx index 0cce7f80b..fb90819d1 100644 --- a/surfsense_web/app/(home)/blog/[slug]/loading.tsx +++ b/surfsense_web/app/(home)/blog/[slug]/loading.tsx @@ -4,15 +4,6 @@ export default function BlogPostLoading() { return (
- {/* Breadcrumb */} -
- - - - - -
- {/* Tags */}
diff --git a/surfsense_web/app/(home)/blog/[slug]/page.tsx b/surfsense_web/app/(home)/blog/[slug]/page.tsx index 1f4d62968..96398a252 100644 --- a/surfsense_web/app/(home)/blog/[slug]/page.tsx +++ b/surfsense_web/app/(home)/blog/[slug]/page.tsx @@ -3,7 +3,6 @@ import type { Metadata } from "next"; import Image from "next/image"; import { notFound } from "next/navigation"; import { blog } from "@/.source/server"; -import { BreadcrumbNav } from "@/components/seo/breadcrumb-nav"; import { ArticleJsonLd, FAQJsonLd } from "@/components/seo/json-ld"; import { extractFaqFromBlogPost } from "@/lib/blog-faq"; import { formatDate } from "@/lib/utils"; @@ -99,15 +98,6 @@ export default async function BlogPostPage(props: { params: Promise<{ slug: stri /> {faqEntries.length > 0 && }
- - {page.data.image && (
setSearch(e.target.value)} - placeholder="Search by title or topic…" + placeholder="Search" className="w-full rounded-full bg-white py-3 pr-4 pl-12 text-sm text-neutral-800 shadow-sm ring-1 shadow-black/10 ring-black/10 transition outline-none placeholder:text-neutral-400 focus:border-neutral-400 focus:ring-2 focus:ring-neutral-200/80 dark:bg-neutral-900 dark:text-neutral-100 dark:placeholder:text-neutral-500 dark:focus:border-neutral-500 dark:focus:ring-neutral-700/50" /> diff --git a/surfsense_web/app/(home)/changelog/loading.tsx b/surfsense_web/app/(home)/changelog/loading.tsx index 648f5a5e6..8128d1e49 100644 --- a/surfsense_web/app/(home)/changelog/loading.tsx +++ b/surfsense_web/app/(home)/changelog/loading.tsx @@ -8,12 +8,6 @@ export default function ChangelogLoading() {
- {/* Breadcrumb */} -
- - - -
diff --git a/surfsense_web/app/(home)/changelog/page.tsx b/surfsense_web/app/(home)/changelog/page.tsx index f3ded03fa..04f461660 100644 --- a/surfsense_web/app/(home)/changelog/page.tsx +++ b/surfsense_web/app/(home)/changelog/page.tsx @@ -1,7 +1,12 @@ import { loader } from "fumadocs-core/source"; +import type { MDXComponents } from "mdx/types"; import type { Metadata } from "next"; +import type { ComponentType } from "react"; import { changelog } from "@/.source/server"; -import { BreadcrumbNav } from "@/components/seo/breadcrumb-nav"; +import { + ChangelogTimeline, + type ChangelogTimelineEntry, +} from "@/components/ui/changelog-timeline"; import { formatDate } from "@/lib/utils"; import { getMDXComponents } from "@/mdx-components"; @@ -20,10 +25,10 @@ const source = loader({ interface ChangelogData { title: string; + description: string; date: string; version?: string; - tags?: string[]; - body: React.ComponentType<{ components?: Record }>; + body: ComponentType<{ components?: MDXComponents }>; } interface ChangelogPageItem { @@ -38,96 +43,27 @@ export default async function ChangelogPage() { const dateB = new Date(b.data.date).getTime(); return dateB - dateA; }); + const entries: ChangelogTimelineEntry[] = sortedChangelogs.map((changelog) => { + const MDX = changelog.data.body; + const date = new Date(changelog.data.date); + + return { + version: changelog.data.version ? `Version ${changelog.data.version}` : "Release", + date: formatDate(date), + title: changelog.data.title, + description: changelog.data.description, + content: , + }; + }); return (
- {/* Header */} -
-
-
-
- -

- Changelog -

-

- Stay up to date with the latest updates and improvements to SurfSense. -

-
-
-
-
- - {/* Timeline */} -
-
- {sortedChangelogs.map((changelog) => { - const MDX = changelog.data.body; - const date = new Date(changelog.data.date); - const formattedDate = formatDate(date); - - return ( -
-
-
-
- - - {changelog.data.version && ( -
- {changelog.data.version} -
- )} -
-
- - {/* Right side - Content */} -
- {/* Vertical timeline line */} -
- {/* Timeline dot */} -
-
- -
-
-

- {changelog.data.title} -

- - {/* Tags */} - {changelog.data.tags && changelog.data.tags.length > 0 && ( -
- {changelog.data.tags.map((tag: string) => ( - - {tag} - - ))} -
- )} -
-
- -
-
-
-
-
- ); - })} -
-
+
); } diff --git a/surfsense_web/app/(home)/free/[model_slug]/loading.tsx b/surfsense_web/app/(home)/free/[model_slug]/loading.tsx index 97660188d..a62fdefa3 100644 --- a/surfsense_web/app/(home)/free/[model_slug]/loading.tsx +++ b/surfsense_web/app/(home)/free/[model_slug]/loading.tsx @@ -32,15 +32,6 @@ export default function FreeModelLoading() { {/* SEO section skeleton */}
- {/* Breadcrumb */} -
- - - - - -
- diff --git a/surfsense_web/app/(home)/free/[model_slug]/page.tsx b/surfsense_web/app/(home)/free/[model_slug]/page.tsx index 35c5c0512..e72c3d6e3 100644 --- a/surfsense_web/app/(home)/free/[model_slug]/page.tsx +++ b/surfsense_web/app/(home)/free/[model_slug]/page.tsx @@ -3,7 +3,6 @@ import type { Metadata } from "next"; import Link from "next/link"; import { notFound } from "next/navigation"; import { FreeChatPage } from "@/components/free-chat/free-chat-page"; -import { BreadcrumbNav } from "@/components/seo/breadcrumb-nav"; import { FAQJsonLd, JsonLd } from "@/components/seo/json-ld"; import { Button } from "@/components/ui/button"; import { Separator } from "@/components/ui/separator"; @@ -192,15 +191,7 @@ export default async function FreeModelPage({ params }: PageProps) { {/* SEO content: in DOM for crawlers, clipped by parent overflow-hidden */}
- - -
+

Chat with {model.name} Free, No Login

Use {model.name} free online without login or sign-up. No account, no diff --git a/surfsense_web/app/(home)/free/loading.tsx b/surfsense_web/app/(home)/free/loading.tsx index 08a4ed6b6..4548aa35f 100644 --- a/surfsense_web/app/(home)/free/loading.tsx +++ b/surfsense_web/app/(home)/free/loading.tsx @@ -4,13 +4,6 @@ export default function FreeChatLoading() { return (

- {/* Breadcrumb */} -
- - - -
- {/* Hero section */}
diff --git a/surfsense_web/app/(home)/free/page.tsx b/surfsense_web/app/(home)/free/page.tsx index 5cea9b6d2..61ccf2bf2 100644 --- a/surfsense_web/app/(home)/free/page.tsx +++ b/surfsense_web/app/(home)/free/page.tsx @@ -4,7 +4,6 @@ import Link from "next/link"; import { AdUnit } from "@/components/ads/ad-unit"; import { ADSENSE_SLOTS } from "@/components/ads/adsense-config"; import { AdSenseScript } from "@/components/ads/adsense-script"; -import { BreadcrumbNav } from "@/components/seo/breadcrumb-nav"; import { FAQJsonLd, JsonLd } from "@/components/seo/json-ld"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; @@ -185,13 +184,6 @@ export default async function FreeHubPage() {
- - {/* Hero */}

diff --git a/surfsense_web/app/(home)/pricing/page.tsx b/surfsense_web/app/(home)/pricing/page.tsx index 5b0f98905..0b45deff4 100644 --- a/surfsense_web/app/(home)/pricing/page.tsx +++ b/surfsense_web/app/(home)/pricing/page.tsx @@ -1,6 +1,5 @@ import type { Metadata } from "next"; import PricingBasic from "@/components/pricing/pricing-section"; -import { BreadcrumbNav } from "@/components/seo/breadcrumb-nav"; export const metadata: Metadata = { title: "Pricing | SurfSense - Free AI Workspace, Automations & Agents", @@ -14,14 +13,6 @@ export const metadata: Metadata = { const page = () => { return (
-
- -
); diff --git a/surfsense_web/changelog/content/2025-12-24.mdx b/surfsense_web/changelog/content/2025-12-24.mdx index dbd241d59..e0167a6f8 100644 --- a/surfsense_web/changelog/content/2025-12-24.mdx +++ b/surfsense_web/changelog/content/2025-12-24.mdx @@ -1,8 +1,7 @@ --- -title: "SurfSense v0.0.9 - Introducing the Agentic Architecture" +title: "SurfSense v0.0.9: Introducing the Agentic Architecture" description: "SurfSense v0.0.9 introduces a new agentic architecture with intelligent source selection, temporal query understanding, and MCP compatibility." date: "2025-12-24" -tags: ["Agentic", "Agent", "MCP"] version: "0.0.9" --- @@ -19,28 +18,17 @@ This release introduces the **SurfSense Agent**, a shift from pre-determined wor - **Faster Indexing**: Improved speed when syncing connected sources - **MCP Compatibility**: Extensible architecture supporting Model Context Protocol servers - - - For Developers - -
    -
  • More extensible architecture for adding connectors and tools
  • -
  • Supports long-running agents for complex tasks
  • -
  • Cleaner codebase enables faster contributions
  • -
-
-
- - Notes - -
    -
  • May increase API costs due to dynamic LLM calls
  • -
  • Users with small local models may see varied performance
  • -
-
-
-
+### Developers + +- More extensible architecture for adding connectors and tools +- Supports long-running agents for complex tasks +- Cleaner codebase enables faster contributions + +### Notes + +- May increase API costs due to dynamic LLM calls +- Users with small local models may see varied performance SurfSense is an AI-powered federated search solution that connects all your knowledge sources in one place. -🎄 Merry Christmas from the SurfSense team! \ No newline at end of file +🎄 Merry Christmas from the SurfSense team! diff --git a/surfsense_web/changelog/content/2026-01-08.mdx b/surfsense_web/changelog/content/2026-01-08.mdx index 0827e2182..942dda553 100644 --- a/surfsense_web/changelog/content/2026-01-08.mdx +++ b/surfsense_web/changelog/content/2026-01-08.mdx @@ -1,12 +1,11 @@ --- -title: "SurfSense v0.0.11 - Connectors And More Connectors" +title: "SurfSense v0.0.11: Connectors And More Connectors" description: "SurfSense v0.0.11 delivers powerful new integrations for our AI enterprise search platform, including Google Drive and Circleback connectors, multi-account support, and a fully responsive mobile interface." date: "2026-01-08" -tags: ["Mobile", "UX", "Integrations", "Connectors"] version: "0.0.11" --- -SurfSense v0.0.11 - Connectors And More Connectors +SurfSense v0.0.11: Connectors And More Connectors ## What's New in v0.0.11 @@ -21,26 +20,15 @@ This release focuses on **connectivity and ease of use** for your enterprise sea - **Simplified OAuth Authentication**: All supported connectors have been migrated to OAuth, making setup faster and more secure across your enterprise search software stack. - **Multi-Account Support**: Connect multiple accounts for the same service (e.g., Personal and Work Google Drives) to unify all your data sources in one AI-powered search hub. - - - Bug Fixes - -
    -
  • Fixed a login issue affecting specific Google accounts on surfsense.com
  • -
  • Resolved most Docker self-hosting configuration issues for easier deployment
  • -
-
-
- - For Self-Hosters - -
    -
  • Docker configuration has been streamlined for smoother self-hosted deployments
  • -
  • OAuth setup is now consistent across all connectors
  • -
-
-
-
+### No longer broken + +- Fixed a login issue affecting specific Google accounts on surfsense.com +- Resolved most Docker self-hosting configuration issues for easier deployment + +### For self-hosters + +- Docker configuration has been streamlined for smoother self-hosted deployments +- OAuth setup is now consistent across all connectors SurfSense is an open-source AI enterprise search solution that connects all your knowledge sources, from Google Drive to Slack to meeting notes, in one intelligent, federated search platform. Whether you're looking for enterprise search software for your team or a personal knowledge assistant, SurfSense delivers powerful enterprise search solutions with the flexibility of self-hosting. diff --git a/surfsense_web/changelog/content/2026-01-26.mdx b/surfsense_web/changelog/content/2026-01-26.mdx index e2092bc83..c12885aae 100644 --- a/surfsense_web/changelog/content/2026-01-26.mdx +++ b/surfsense_web/changelog/content/2026-01-26.mdx @@ -1,12 +1,11 @@ --- -title: "SurfSense v0.0.12 - New Main UI, Real-time Collaboration and Comments" +title: "SurfSense v0.0.12: New Main UI, Real-time Collaboration and Comments" description: "SurfSense v0.0.12 transforms the platform with a redesigned chat-first interface, real-time collaboration features, comment threads with @mentions, and instant notifications powered by ElectricSQL + PGlite." date: "2026-01-26" -tags: ["UX", "UI", "Real-time chat", "Collaboration", "Comments"] version: "0.0.12" --- -SurfSense v0.0.12 - New Main UI, Real-time Collaboration and Comments +SurfSense v0.0.12: New Main UI, Real-time Collaboration and Comments ## What's New in v0.0.12 @@ -54,34 +53,23 @@ This release brings major improvements to **collaboration and user experience**. - **5-Minute Periodic Syncing**: Near-real-time updates option - **Real-Time UI Updates**: See connector indexing progress without page refreshes - - - Bug Fixes - -
    -
  • Syncs with no new content now show "Already up to date!" instead of falsely reporting failures
  • -
  • Restored missing indexing options page for Google Drive connector
  • -
  • File mention picker now handles large document counts with server-side search and pagination
  • -
  • Reasoning steps no longer overlap with chat input field
  • -
  • File upload modal is now scrollable when adding many files
  • -
  • OAuth connectors now display properly on mobile devices
  • -
-
-
- - Technical Improvements - -
    -
  • Made Alembic migrations idempotent for safer deployments
  • -
  • Migrations now work on fresh databases from scratch
  • -
  • Major refactoring of chat components for better maintainability
  • -
  • Streamlined sidebar and connector page code
  • -
  • Fixed legacy route handling
  • -
  • Fixed hardcoded Docker values for complex deployments
  • -
-
-
-
+### No longer broken + +- Syncs with no new content now show "Already up to date!" instead of falsely reporting failures +- Restored missing indexing options page for Google Drive connector +- File mention picker now handles large document counts with server-side search and pagination +- Reasoning steps no longer overlap with chat input field +- File upload modal is now scrollable when adding many files +- OAuth connectors now display properly on mobile devices + +### Developers + +- Made Alembic migrations idempotent for safer deployments +- Migrations now work on fresh databases from scratch +- Major refactoring of chat components for better maintainability +- Streamlined sidebar and connector page code +- Fixed legacy route handling +- Fixed hardcoded Docker values for complex deployments This release transforms SurfSense into a truly collaborative, real-time platform with a redesigned interface that puts chat front and center. The addition of comments, @mentions, and live collaboration features makes it easier than ever for teams to work together without leaving the app. diff --git a/surfsense_web/changelog/content/2026-02-09.mdx b/surfsense_web/changelog/content/2026-02-09.mdx index 8e222a16b..f62c7f080 100644 --- a/surfsense_web/changelog/content/2026-02-09.mdx +++ b/surfsense_web/changelog/content/2026-02-09.mdx @@ -1,8 +1,7 @@ --- -title: "SurfSense v0.0.13 - Public Sharing, Image Generation & Redesigned Documents" +title: "SurfSense v0.0.13: Public Sharing, Image Generation & Redesigned Documents" description: "SurfSense v0.0.13 introduces public chat sharing with permissions, image generation support, an auto load-balanced model mode, a redesigned Documents page, and numerous bug fixes across connectors and UI." date: "2026-02-09" -tags: ["Public Sharing", "Image Generation", "Documents", "UI", "Bug Fixes"] version: "0.0.13" --- @@ -42,31 +41,20 @@ This update brings **public sharing, image generation**, a redesigned Documents - **New Connector Docs**: Added docs for Luma, Circleback, Elasticsearch, Bookstack, and Obsidian connectors. - - - Bug Fixes - -
    -
  • Fixed cloud scaling issues where document queue congestion occurred under high load
  • -
  • Documents now correctly attribute to the uploading user and de-index on disconnect or deletion
  • -
  • Fixed common backend errors in indexing and large file handling
  • -
  • Fixed Notion indexing failures caused by transcription blocks
  • -
  • Chat refresh button now correctly regenerates AI responses
  • -
  • Restored the previously disabled Role Editor
  • -
  • Fixed Mentions tab appearing empty when document notifications pushed mentions out of the pagination window
  • -
  • Bundled git in the Docker image to fix GitHub connector failures with gitingest
  • -
  • Fixed Google Calendar default date range errors and aligned backend defaults with the frontend
  • -
-
-
- - Technical Improvements - -
    -
  • Rebuilt the GitHub connector on gitingest for more efficient, lower-cost repository fetching
  • -
-
-
-
+### No longer broken + +- Fixed cloud scaling issues where document queue congestion occurred under high load +- Documents now correctly attribute to the uploading user and de-index on disconnect or deletion +- Fixed common backend errors in indexing and large file handling +- Fixed Notion indexing failures caused by transcription blocks +- Chat refresh button now correctly regenerates AI responses +- Restored the previously disabled Role Editor +- Fixed Mentions tab appearing empty when document notifications pushed mentions out of the pagination window +- Bundled git in the Docker image to fix GitHub connector failures with gitingest +- Fixed Google Calendar default date range errors and aligned backend defaults with the frontend + +### Developers + +- Rebuilt the GitHub connector on gitingest for more efficient, lower-cost repository fetching SurfSense is your AI-powered federated search solution, connecting all your knowledge sources in one place. diff --git a/surfsense_web/changelog/content/2026-03-31.mdx b/surfsense_web/changelog/content/2026-03-31.mdx index de2395253..0a5dfe537 100644 --- a/surfsense_web/changelog/content/2026-03-31.mdx +++ b/surfsense_web/changelog/content/2026-03-31.mdx @@ -1,8 +1,7 @@ --- -title: "SurfSense v0.0.14 - Dropbox, OneDrive, Agent Approvals, Reports & Self-Hosted Docker" +title: "SurfSense v0.0.14: Dropbox, OneDrive, Agent Approvals, Reports & Self-Hosted Docker" description: "SurfSense v0.0.14 is a massive release: new Dropbox and Microsoft OneDrive connectors, human-in-the-loop approvals across Gmail, Google Calendar, Jira, Confluence, Linear, and Notion, a full report generation system with multi-format export, a faster real-time sync engine, a new desktop app, one-command self-hosted Docker install, and built-in private web search." date: "2026-03-31" -tags: ["Connectors", "Approvals", "Reports", "Desktop App", "Docker", "Dropbox", "OneDrive"] version: "0.0.14" --- @@ -93,39 +92,28 @@ SurfSense now treats every sensitive AI action as an explicit, reviewable step. - **MiniMax**: Complete MiniMax LLM integration joins the growing list of supported models. - - - Bug Fixes - -
    -
  • Fixed citations for live connectors
  • -
  • Fixed Google Drive handling of failed documents and unsupported file types
  • -
  • Fixed Dropbox path retrieval and error handling during indexing
  • -
  • Fixed a build failure in the roles manager page
  • -
  • Re-enabled legacy AI image handling so older chats still render correctly
  • -
  • Fixed sign-in state syncing between the desktop app and web app
  • -
  • Fixed nested button accessibility issues across the roles manager, link toolbar, and hero section
  • -
  • Fixed several memory leaks (onboarding tour, Spotlight, register page)
  • -
  • Fixed Google Calendar event update behavior
  • -
  • Smoother client-side navigation in several places
  • -
-
-
- - Performance & Reliability - -
    -
  • Large document migrations now run in batches to reduce memory usage
  • -
  • Smoother streaming in chat thanks to batched UI updates
  • -
  • Rate limiting now falls back gracefully when the cache is unavailable
  • -
  • Better error tracking and referral attribution
  • -
  • Smaller page bundles for the web app, with heavy editors loaded only when needed
  • -
  • End-to-end tests for the document upload pipeline
  • -
  • Health check endpoint and safer default rate limits
  • -
-
-
-
+### No longer broken + +- Fixed citations for live connectors +- Fixed Google Drive handling of failed documents and unsupported file types +- Fixed Dropbox path retrieval and error handling during indexing +- Fixed a build failure in the roles manager page +- Re-enabled legacy AI image handling so older chats still render correctly +- Fixed sign-in state syncing between the desktop app and web app +- Fixed nested button accessibility issues across the roles manager, link toolbar, and hero section +- Fixed several memory leaks (onboarding tour, Spotlight, register page) +- Fixed Google Calendar event update behavior +- Smoother client-side navigation in several places + +### Improvements + +- Large document migrations now run in batches to reduce memory usage +- Smoother streaming in chat thanks to batched UI updates +- Rate limiting now falls back gracefully when the cache is unavailable +- Better error tracking and referral attribution +- Smaller page bundles for the web app, with heavy editors loaded only when needed +- End-to-end tests for the document upload pipeline +- Health check endpoint and safer default rate limits v0.0.14 is one of the largest SurfSense releases to date. If you're looking for a **NotebookLM alternative** or comparing **free alternatives to ChatGPT** that you can actually self-host, this release is built for you. diff --git a/surfsense_web/changelog/content/2026-04-08.mdx b/surfsense_web/changelog/content/2026-04-08.mdx index 080a03e3c..8f82a1af7 100644 --- a/surfsense_web/changelog/content/2026-04-08.mdx +++ b/surfsense_web/changelog/content/2026-04-08.mdx @@ -1,8 +1,7 @@ --- -title: "SurfSense v0.0.15 - Watch Local Folders, Vision Autocomplete & New Document Pipeline" +title: "SurfSense v0.0.15: Watch Local Folders, Vision Autocomplete & New Document Pipeline" description: "SurfSense v0.0.15 turns your laptop into a living knowledge base: watch any local folder and keep it auto-synced, a vision-powered quick-assist autocomplete in the desktop app, a brand new document processing pipeline with Docling, LlamaCloud, Unstructured, and Azure Document Intelligence, full document version history, and per-user page limits across every connector." date: "2026-04-08" -tags: ["Desktop App", "Local Folder", "Document Pipeline", "Vision AI", "Version History", "Azure Document Intelligence"] version: "0.0.15" --- @@ -74,37 +73,26 @@ The SurfSense desktop app becomes a serious always-on **AI like ChatGPT** that a - **Leaner Pages**: Shared libraries now load smaller, more focused bundles. - **Smoother Self-Hosted Setup**: New installs of the real-time sync service now set themselves up automatically. - - - Bug Fixes - -
    -
  • Fixed several memory leaks when leaving pages during active work
  • -
  • Upload progress bar now clears correctly when leaving the upload screen
  • -
  • Smoother, less jittery thread list and chat refreshes
  • -
  • Smoother client-side navigation in several places
  • -
  • Improved responsiveness of the documents sidebar
  • -
  • Debounced search on the logs page to stop UI jank
  • -
  • Correct browser autocomplete hints on sign-in and register forms
  • -
  • Vision model is no longer triggered unnecessarily by the desktop folder watcher
  • -
  • Silenced noisy auto-updater errors in the desktop app
  • -
-
-
- - Performance & Reliability - -
    -
  • Faster local folder indexing thanks to smarter content hashing
  • -
  • Smoother sidebar open/close animations
  • -
  • Long lists now scroll more smoothly on the documents and logs pages
  • -
  • Search and filter inputs feel snappier while typing
  • -
  • Unified version numbering across the web app, backend, and desktop app
  • -
  • Event tracking now includes the platform (web/desktop) for better analytics
  • -
-
-
-
+### No longer broken + +- Fixed several memory leaks when leaving pages during active work +- Upload progress bar now clears correctly when leaving the upload screen +- Smoother, less jittery thread list and chat refreshes +- Smoother client-side navigation in several places +- Improved responsiveness of the documents sidebar +- Debounced search on the logs page to stop UI jank +- Correct browser autocomplete hints on sign-in and register forms +- Vision model is no longer triggered unnecessarily by the desktop folder watcher +- Silenced noisy auto-updater errors in the desktop app + +### Improvements + +- Faster local folder indexing thanks to smarter content hashing +- Smoother sidebar open/close animations +- Long lists now scroll more smoothly on the documents and logs pages +- Search and filter inputs feel snappier while typing +- Unified version numbering across the web app, backend, and desktop app +- Event tracking now includes the platform (web/desktop) for better analytics If you've been looking for a tool that works across your cloud connectors **and** your local machine, v0.0.15 is exactly that. It's also one of the most compelling **NotebookLM alternatives** and **free ChatGPT alternatives** for private team use, with full control over your data, your parsers, and your models. diff --git a/surfsense_web/changelog/content/2026-04-16.mdx b/surfsense_web/changelog/content/2026-04-16.mdx index 7b4e712ca..b6627744a 100644 --- a/surfsense_web/changelog/content/2026-04-16.mdx +++ b/surfsense_web/changelog/content/2026-04-16.mdx @@ -1,8 +1,7 @@ --- -title: "SurfSense v0.0.16 - Try SurfSense With No Login, Long-Term Memory, Token Tracking & AI File Sorting" +title: "SurfSense v0.0.16: Try SurfSense With No Login, Long-Term Memory, Token Tracking & AI File Sorting" description: "SurfSense v0.0.16 introduces a no-login online experience so anyone can try this free ChatGPT alternative in seconds, long-term user and team memory, a reworked model selector with full token usage tracking, AI-powered file sorting, one-click Knowledge Base export as ZIP, trusted MCP tools, and OpenRouter integration." date: "2026-04-16" -tags: ["No Login", "Memory", "Token Usage", "AI File Sorting", "KB Export", "OpenRouter", "MCP"] version: "0.0.16" --- @@ -97,39 +96,28 @@ Token visibility is now first-class. - **Composer & Layout**: Loading placeholders in the composer, a better mention picker experience, and refined settings layout. - **Better Editing**: Trailing empty lines in the rich-text editor make long-form writing smoother. - - - Bug Fixes - -
    -
  • Fixed knowledge base search being skipped in certain chat sequences
  • -
  • Fixed a button nesting issue in the mobile upload area
  • -
  • Clearer logs and behavior when a vision model isn't available vs. not configured
  • -
  • Added a safety check for very large images before vision processing
  • -
  • Better fallback when an image can't be processed by the vision model
  • -
  • Fixed duplicate filename collisions during folder upload
  • -
  • Cleaner filenames on folder uploads
  • -
  • More accurate "documents still processing" warning during folder export
  • -
  • Handled display names that are just whitespace without crashing
  • -
  • Added user feedback when snapshot deletion fails
  • -
  • Updated billing text to reflect 500 pages included in demo plans
  • -
-
-
- - Under the Hood - -
    -
  • Old memory storage fully migrated and retired
  • -
  • Smaller bundles on public marketing pages
  • -
  • Consistent approval handling across all connectors
  • -
  • Cleaner file type detection using explicit, well-defined rules
  • -
  • Rich-text editor now powers memory input, with inline alerts and a better layout
  • -
  • Localized folder-upload messages and download button text
  • -
-
-
-
+### No longer broken + +- Fixed knowledge base search being skipped in certain chat sequences +- Fixed a button nesting issue in the mobile upload area +- Clearer logs and behavior when a vision model isn't available vs. not configured +- Added a safety check for very large images before vision processing +- Better fallback when an image can't be processed by the vision model +- Fixed duplicate filename collisions during folder upload +- Cleaner filenames on folder uploads +- More accurate "documents still processing" warning during folder export +- Handled display names that are just whitespace without crashing +- Added user feedback when snapshot deletion fails +- Updated billing text to reflect 500 pages included in demo plans + +### Developers + +- Old memory storage fully migrated and retired +- Smaller bundles on public marketing pages +- Consistent approval handling across all connectors +- Cleaner file type detection using explicit, well-defined rules +- Rich-text editor now powers memory input, with inline alerts and a better layout +- Localized folder-upload messages and download button text v0.0.16 makes SurfSense the easiest open source AI assistant to actually try: zero friction, no login, online. Whether you're searching for a **ChatGPT alternative free online**, a **free Claude AI alternative**, or a **NotebookLM alternative** you can self-host, SurfSense v0.0.16 is built for you. diff --git a/surfsense_web/changelog/content/2026-04-21.mdx b/surfsense_web/changelog/content/2026-04-21.mdx new file mode 100644 index 000000000..f937421df --- /dev/null +++ b/surfsense_web/changelog/content/2026-04-21.mdx @@ -0,0 +1,62 @@ +--- +title: "SurfSense v0.0.19: Resume Builder, Desktop Startup & Anonymous Chat Improvements" +description: "SurfSense v0.0.19 introduces an AI resume builder with PDF previews, better anonymous chat compatibility, desktop startup controls, desktop analytics, accessibility fixes, and dashboard performance improvements." +date: "2026-04-21" +version: "0.0.19" +--- + +## What's New in v0.0.19 + +v0.0.19 brings a new **AI resume builder** into SurfSense, giving users a practical way to turn structured information into polished, previewable PDF outputs. This release also improves the anonymous chat experience across cross-site deployments, adds desktop startup options, strengthens accessibility, and tightens several dashboard interactions for a faster, cleaner product experience. + +### Resume Builder + +Turn your knowledge and profile details into export-ready resume documents. + +- **AI Resume Generation**: A new resume generation tool can produce structured resume content from user information and report prompts. +- **Typst-Based PDF Output**: Resume reports now support Typst-powered PDF generation, giving users a cleaner path from generated content to shareable documents. +- **PDF Preview Experience**: A built-in PDF viewer lets users preview generated resumes directly in SurfSense before exporting. +- **Resume Tool UI**: A dedicated resume generation interface tracks loading, success, and error states so users understand exactly what is happening during generation. +- **Public Report Preview Endpoint**: Generated resume previews can be accessed through a public report endpoint when needed for sharing and preview workflows. + +### Anonymous Chat & Web Experience + +- **Cross-Site Anonymous Chat Cookies**: Anonymous chat cookies now adapt their SameSite and Secure settings based on deployment context, making hosted and cross-domain setups more reliable. +- **Better Anonymous Chat History**: Message history handling in anonymous chat is more dependable, especially when users move between public chat states. +- **Safer Form Inputs**: Login, registration, profile, search space, and role forms now enforce sensible max-length limits directly in the UI. +- **Cleaner Page Landmarks**: Home and free-chat pages no longer nest main landmarks, improving HTML semantics and screen-reader navigation. +- **SEO Metadata Refresh**: Titles and descriptions across key pages now better communicate SurfSense's open-source, privacy-focused positioning. + +### Desktop App + +- **Launch at Startup**: The desktop app now supports auto-launch settings, including options for starting minimized to the tray. +- **Desktop Analytics Events**: Desktop activation, quitting, folder watching, deep links, connector setup, and update-related actions now emit richer analytics events. +- **Windows Signing Workflow**: The desktop release pipeline gained Windows signing support for production builds. + +### UI & Performance + +- **Faster Dashboard Startup**: Document tab content now lazy-loads to reduce the initial dashboard bundle. +- **More Stable Theme Toggle**: The theme toggle uses a functional state update, keeping callbacks stable and safer under concurrent rendering. +- **Cleaner Dialog Reset Behavior**: Dialog reset logic moved into open-change handlers, reducing effect-driven UI churn. +- **Model Selector Polish**: Model selector reset behavior now runs from event handlers for a cleaner settings experience. + +### No longer broken + +- Fixed scroll-to-citation timers continuing after the source detail panel closes or unmounts +- Removed unused source-detail-panel state that caused unnecessary re-renders +- Fixed anonymous chat message history behavior +- Improved resume generation error handling, loading states, and template validation +- Removed an unnecessary Windows signing publisherName argument +- Improved HTTP exception handling so unexpected 500 responses are sanitized while useful server errors remain visible + +### Developers + +- Reports gained content type support for resume-specific output handling +- PDF handling moved from react-pdf to pdfjs-dist for better control over loading and rendering +- Desktop analytics bridge and IPC channels now support identification and event capture +- Rate limiting now extracts real client IPs more accurately behind Cloudflare-style proxies +- New contributors landed fixes across accessibility, dialog state, and dashboard performance + +v0.0.19 expands SurfSense beyond search and chat into deliverable creation. With the new **AI resume builder**, PDF previews, stronger anonymous chat behavior, and desktop startup controls, SurfSense becomes more useful both in the browser and as a daily desktop companion. + +SurfSense connects all your knowledge sources in one place. diff --git a/surfsense_web/changelog/content/2026-05-03.mdx b/surfsense_web/changelog/content/2026-05-03.mdx new file mode 100644 index 000000000..ff8421a46 --- /dev/null +++ b/surfsense_web/changelog/content/2026-05-03.mdx @@ -0,0 +1,65 @@ +--- +title: "SurfSense v0.0.20: Live Connector Tools, Obsidian Sync, Desktop File Editing & Smarter Chat" +description: "SurfSense v0.0.20 adds live connector tools via MCP OAuth and native APIs, Obsidian vault sync, desktop screenshot assist, local file editing with Monaco, thread-level model pinning, usage visibility, and major connector UX improvements." +date: "2026-05-03" +version: "0.0.20" +--- + +## What's New in v0.0.20 + +v0.0.20 is a platform-wide upgrade for connectors, desktop workflows, and chat. SurfSense now supports **live connector tools** through MCP OAuth and native APIs, adds an **Obsidian vault sync plugin**, introduces local file editing in the desktop app, and makes chat smarter with thread-level model pinning, structured errors, and live usage visibility. + +### Live Connector Tools + +Connectors are no longer just places to index data. They can now expose live actions to SurfSense agents. + +- **Live Tools via MCP OAuth**: SurfSense can discover and use connector tools through MCP OAuth, bringing external services directly into agent workflows. +- **Native Connector APIs**: Connectors can expose native API-backed actions where MCP is not the right fit. +- **OAuth Trust Improvements**: MCP OAuth flows now handle trust, 401 recovery, and connector UX more cleanly. +- **Parallel Tool Discovery**: Connector tool discovery can run in parallel, reducing setup latency for tool-rich integrations. +- **Long Indexing Stability**: Connector indexing refreshes Redis heartbeats during long Phase 1 runs so large imports do not look stale. + +### Desktop Knowledge Work + +- **Obsidian Vault Sync**: A new Obsidian sync plugin helps bring local vault knowledge into SurfSense. +- **Swappable Desktop Filesystem**: The desktop app gained a swappable filesystem architecture for safer local-file workflows. +- **Local File Editing**: Monaco-powered editing lets desktop users open and edit local files directly from SurfSense. +- **Screenshot Assist**: Desktop screenshot capture gives agents more context from the user's screen when needed. +- **Linux RPM Builds**: The desktop build pipeline now includes an RPM target for Linux users. + +### Smarter Chat & Models + +- **Thread-Level Model Pinning**: Chat threads can automatically pin models for more consistent long-running conversations. +- **Structured Chat Errors**: Chat failures now surface cleaner, more actionable error states. +- **Unified Streaming Flow**: Streaming state was reworked for a smoother viewport and mention experience. +- **Auto-Pin Quality Scoring**: Model auto-pinning now uses quality scoring to make better routing decisions. +- **Live Usage Sidebar**: OpenRouter tier refactors and usage visibility make model cost and capacity easier to understand. + +### Docs, Marketing & Performance + +- **Internal Backend URL Config**: Self-hosters can configure internal backend URLs and host gateway behavior more clearly. +- **Ollama Docs**: Documentation now covers Ollama-oriented local model setups. +- **Baidu Search Guide**: Added setup guidance for the Baidu Search connector. +- **Marketing Route Skeletons**: Async marketing routes now show loading skeletons instead of blank waits. +- **Leaner Docs Bundles**: Docs pages now avoid a full lucide barrel import for better bundle performance. + +### No longer broken + +- Fixed Docker zero-cache issues +- Fixed multiple agent runtime bugs and temporarily blocked an unstable GitHub Copilot custom provider path +- Fixed resume page limit functionality +- Deduplicated anonymous chat uploads through the anonymous chat API service +- Improved mentioned document handling in chat +- Moved duplicate tag checks in the HITL edit panel into functional state updates + +### Developers + +- Agent harness internals were updated for the next generation of tool-heavy chat turns +- LLM role manager reset behavior now uses keyed state instead of manual effect resets +- Blog search now derives results during render instead of syncing duplicate state through effects +- A diagnostic notary-status workflow was added for desktop release troubleshooting +- Announcements gained SEO metadata through a server layout + +v0.0.20 makes SurfSense feel more connected, more local, and more agentic. Whether you are syncing an **Obsidian** vault, editing desktop files, giving agents live connector tools, or tracking model usage in chat, this release pushes SurfSense closer to a full knowledge-work operating layer. + +SurfSense connects all your knowledge sources in one place. diff --git a/surfsense_web/changelog/content/2026-05-04.mdx b/surfsense_web/changelog/content/2026-05-04.mdx new file mode 100644 index 000000000..df68e2500 --- /dev/null +++ b/surfsense_web/changelog/content/2026-05-04.mdx @@ -0,0 +1,37 @@ +--- +title: "SurfSense v0.0.21: Faster Agents, Server-Side Chat Persistence & Security Fixes" +description: "SurfSense v0.0.21 improves agent reliability with caching, moves chat persistence server-side, fixes Docker issues, and patches manual authentication endpoint leaks." +date: "2026-05-04" +version: "0.0.21" +--- + +## What's New in v0.0.21 + +v0.0.21 is a focused reliability release for SurfSense agents and chat infrastructure. It adds agent-side caches, fixes invalid prompt cache configuration paths, moves chat persistence to the server, and closes security leaks in manual authentication endpoints. + +### Agent Reliability + +- **Agent Caches**: SurfSense agents now use dedicated caches to reduce repeated work and make longer conversations more stable. +- **Prompt Cache Fixes**: Invalid prompt cache configurations are now handled correctly instead of creating brittle runtime behavior. +- **More Reliable Runtime State**: The caching improvements give agent turns a cleaner foundation for repeated tool use and prompt execution. + +### Server-Side Chat Persistence + +- **Chat Persistence Moved Server-Side**: Chat state persistence now lives on the server, reducing fragile client-side assumptions and improving consistency across sessions. +- **Cleaner Chat Continuity**: Server-owned persistence gives SurfSense a stronger base for future multi-agent and long-running chat work. + +### No longer broken + +- Fixed Docker deployment issues found after the previous platform upgrade +- Fixed manual authentication endpoint leaks +- Fixed invalid prompt cache configuration handling + +### Developers + +- Chat persistence responsibility moved from the frontend into backend-managed flows +- Agent cache plumbing was introduced as groundwork for faster, more resilient agent turns +- Security handling around manual auth routes was tightened + +v0.0.21 keeps the momentum from the connector and desktop releases while strengthening the foundation: safer authentication, more reliable Docker behavior, and better server-owned chat state. + +SurfSense connects all your knowledge sources in one place. diff --git a/surfsense_web/changelog/content/2026-05-05.mdx b/surfsense_web/changelog/content/2026-05-05.mdx new file mode 100644 index 000000000..a3632cb35 --- /dev/null +++ b/surfsense_web/changelog/content/2026-05-05.mdx @@ -0,0 +1,29 @@ +--- +title: "SurfSense v0.0.22: Faster API Preflights With 24-Hour CORS Caching" +description: "SurfSense v0.0.22 adds 24-hour CORS preflight response caching, reducing repeated browser preflight work for hosted and self-hosted deployments." +date: "2026-05-05" +version: "0.0.22" +--- + +## What's New in v0.0.22 + +v0.0.22 is a compact backend performance release. The headline change is **24-hour CORS preflight response caching**, which helps browsers avoid repeated preflight work when calling SurfSense APIs from approved origins. + +### API Performance + +- **24-Hour CORS Preflight Cache**: SurfSense now caches CORS preflight responses for 24 hours, reducing repeated OPTIONS traffic in browser-based deployments. +- **Smoother Hosted Usage**: Cloud and cross-origin setups benefit from less repetitive browser negotiation before API calls. +- **Better Self-Hosted Behavior**: Self-hosted deployments with separate frontend and backend origins get a cleaner default API experience. + +### No longer broken + +- No user-facing bug fixes in this release; this was a focused API performance and release maintenance update + +### Developers + +- CORS preflight responses now advertise a 24-hour cache window +- Release metadata and versioning were advanced for v0.0.22 + +v0.0.22 is small by design, but it improves the everyday feel of SurfSense API calls in browser and self-hosted environments by cutting down redundant CORS preflight traffic. + +SurfSense connects all your knowledge sources in one place. diff --git a/surfsense_web/changelog/content/2026-05-06.mdx b/surfsense_web/changelog/content/2026-05-06.mdx new file mode 100644 index 000000000..801590f58 --- /dev/null +++ b/surfsense_web/changelog/content/2026-05-06.mdx @@ -0,0 +1,48 @@ +--- +title: "SurfSense v0.0.23: Multi-Agent Orchestration, Human Approval & Table-Aware Chunking" +description: "SurfSense v0.0.23 introduces opt-in multi-agent chat with bundled human approval, modular middleware, agent and prompt caching, subagent resilience, table-aware chunking, and Stripe checkout fixes." +date: "2026-05-06" +version: "0.0.23" +--- + +## What's New in v0.0.23 + +v0.0.23 introduces the next major step for SurfSense chat: **opt-in multi-agent orchestration** with bundled human approval. Agents can now coordinate work through a more modular runtime, while improvements to memory extraction, prompt caching, subagent resilience, and document chunking make the system more dependable for complex knowledge tasks. + +### Multi-Agent Chat + +- **Opt-In Multi-Agent Mode**: Users can enable a multi-agent chat path when a task benefits from delegation. +- **Bundled Human Approval**: Human-in-the-loop approval is integrated into the multi-agent experience, so sensitive steps can be reviewed before execution. +- **Agent Orchestration**: SurfSense can coordinate multiple agent roles during a chat turn, opening the door to more specialized reasoning and tool use. +- **Subagent Resilience**: Runtime improvements make delegated work more robust when individual subagent paths fail or need recovery. + +### Agent Runtime Improvements + +- **Modular Middleware Stack**: Agent execution now flows through a more modular middleware architecture. +- **Agent and Prompt Caching**: Repeated agent setup and prompt work can be cached, reducing waste across complex runs. +- **Unit Test Coverage**: New tests lock in behavior around the agent middleware and caching improvements. +- **Memory Extraction Cleanup**: Memory extraction is more streamlined, keeping durable memory useful without collecting unnecessary noise. + +### Better Document Understanding + +- **Table-Aware Chunking**: The hybrid text chunker now understands tables better and avoids splitting documents in the middle of rows. +- **Cleaner Retrieval Context**: Better chunk boundaries improve the quality of document snippets agents receive during search and reasoning. + +### No longer broken + +- Fixed Stripe webhook handling +- Fixed Stripe routes used by billing flows +- Fixed metadata extraction from Stripe checkout sessions +- Improved memory extraction behavior for cleaner long-term memory updates + +### Developers + +- Multi-agent orchestration primitives were added to the chat runtime +- Agent middleware was reorganized into a more composable stack +- Prompt and agent caches were introduced to reduce repeated setup work +- The hybrid chunker gained table-aware logic to preserve row integrity +- New unit tests cover middleware, caching, and subagent resilience paths + +v0.0.23 lays the groundwork for SurfSense's multi-agent future. With orchestration, approval, caching, and better document chunking, SurfSense is better prepared for complex research, retrieval, and action-heavy workflows. + +SurfSense connects all your knowledge sources in one place. diff --git a/surfsense_web/changelog/content/2026-05-20.mdx b/surfsense_web/changelog/content/2026-05-20.mdx new file mode 100644 index 000000000..89a85d0e6 --- /dev/null +++ b/surfsense_web/changelog/content/2026-05-20.mdx @@ -0,0 +1,63 @@ +--- +title: "SurfSense v0.0.24: UI Revamp, Multi-Agent Timeline, Live Subagents & E2E Testing" +description: "SurfSense v0.0.24 ships a major UI revamp, hierarchical multi-agent timelines, live subagent streaming, inline and parallel human approvals, stronger multi-agent delegation, citation improvements, and a full E2E test harness." +date: "2026-05-20" +version: "0.0.24" +--- + +## What's New in v0.0.24 + +v0.0.24 is a major product and runtime release for SurfSense. The interface gets a broad **UI revamp**, multi-agent chat gains a hierarchical timeline with **live subagent streaming**, and human approvals become more natural with inline and parallel approval flows. Behind the scenes, this release also introduces a full E2E test harness and hardens Docker build migrations. + +### UI Revamp + +- **Refreshed Product Interface**: SurfSense gets a cleaner, more polished UI across key chat and dashboard surfaces. +- **Improved Mentioned Document Chips**: Mentioned document chips behave more reliably and feel better in active chat workflows. +- **Consistent Mobile Behavior**: Slide-out panels now share the same mobile breakpoint logic used elsewhere in the app. +- **Better Error Toast Ownership**: Mutations that own their own error UX no longer also trigger noisy global error toasts. +- **Clickable Media Accessibility**: Media cards now include accessible labels for better keyboard and screen-reader use. + +### Multi-Agent Chat, Reworked + +- **Hierarchical Timeline**: Multi-agent chat now presents work in a clearer timeline, making it easier to understand what the main agent and subagents are doing. +- **Live Subagent Streaming**: Subagent work can stream into the interface live instead of appearing only after completion. +- **Inline HITL Approvals**: Human-in-the-loop approval cards now fit directly into the chat flow. +- **Parallel Task Delegation**: Multi-agent tasks can be delegated in parallel, letting independent work proceed at the same time. +- **Parallel Human Approvals**: Approval requests can be handled in parallel when multiple subagent actions need review. +- **Knowledge Base Specialist**: Delegation now uses an orchestrator-only main agent with a dedicated knowledge base specialist for retrieval-heavy work. + +### Testing & Release Confidence + +- **E2E Test Suite**: SurfSense now includes an end-to-end test suite for critical product flows. +- **E2E CI**: The E2E suite is wired into CI so regressions can be caught earlier. +- **Docker Migration Hardening**: Docker build migrations were hardened to make self-hosted upgrades safer. +- **Unit and Integration Test Fixes**: Test reliability improved across backend and frontend paths. + +### Citations & Logs + +- **Citation Panel Reset Fixes**: Citation panels now reset expanded state correctly when the active chunk changes. +- **Log Cache Invalidation**: Log mutations now invalidate all relevant log cache keys. +- **Canonical Log Types**: Log hooks now use shared canonical log types from the contracts layer. +- **Stable Cache Key Ordering**: Cache key ordering was made stable to reduce subtle invalidation bugs. + +### No longer broken + +- Fixed redundant auth token storage writes +- Centralized redirect path storage in authentication flows +- Fixed stale zero-cache replica behavior +- Fixed citation panel expanded state when switching chunks +- Fixed log cache invalidation after log mutations +- Suppressed global error toasts when a mutation provides its own error handling + +### Developers + +- Multi-agent chat architecture and streaming runtime were rewritten for timeline-first execution +- Parallel delegation and parallel HITL approval paths were added to the agent runtime +- Shared helpers were extracted for chat sidebar timestamp formatting and domain parsing +- Editor documentation now matches the Mod+Shift+S save shortcut +- The blog was hidden from the navbar until publication readiness +- Full E2E harness coverage was added around key chat and product workflows + +v0.0.24 makes multi-agent SurfSense easier to trust and easier to follow. With a clearer UI, live subagent streaming, parallel approvals, and a real E2E safety net, this release turns the multi-agent runtime into a more visible and dependable part of everyday knowledge work. + +SurfSense connects all your knowledge sources in one place. diff --git a/surfsense_web/changelog/content/2026-05-21.mdx b/surfsense_web/changelog/content/2026-05-21.mdx new file mode 100644 index 000000000..426935410 --- /dev/null +++ b/surfsense_web/changelog/content/2026-05-21.mdx @@ -0,0 +1,48 @@ +--- +title: "SurfSense v0.0.25: Faster Agents, Lower LLM Cost, Better Citations & Memory Editing" +description: "SurfSense v0.0.25 improves agent speed and lowers LLM cost, fixes citations, adds document-panel memory editing, centralizes backend URL handling, and updates CI workflow versions and test triggers." +date: "2026-05-21" +version: "0.0.25" +--- + +## What's New in v0.0.25 + +v0.0.25 focuses on making SurfSense agents faster, cheaper to run, and easier to trust. Agent turns now do less unnecessary LLM work, citations are improved, memory extraction gets more useful, and users can edit memory directly from the document panel. The release also cleans up backend URL handling across the web app and tightens CI triggers. + +### Faster, Lower-Cost Agents + +- **Faster Agent Turns**: Agent execution was optimized so common turns finish with less waiting. +- **Lower LLM Cost**: The agent runtime now avoids more unnecessary model calls, reducing token spend for complex workflows. +- **Improved Agent Speed**: Follow-up runtime improvements make chat feel more responsive, especially in agent-heavy paths. +- **Better Citations**: Citation behavior was fixed and improved so answers remain easier to verify against source documents. + +### Memory Editing + +- **Improved Memory Extraction**: SurfSense extracts durable memory more cleanly, keeping useful context while avoiding unnecessary noise. +- **Document-Panel Memory Editing**: Users can now edit memory from the document panel, bringing memory management closer to the context that created it. +- **More Practical Long-Term Context**: Cleaner memory updates make future chats more personalized without making memory harder to control. + +### Backend URL Cleanup + +- **Centralized BACKEND_URL Usage**: Inline environment reads were replaced with a shared BACKEND_URL path across key frontend areas. +- **Connector Form Consistency**: Connector forms and hooks now use the same backend URL contract. +- **Editor, Chat, Dashboard & Settings Cleanup**: Core app surfaces now rely on the shared backend URL helper instead of scattered environment access. +- **Tool UI Generator Cleanup**: Tool UI generators also moved to the centralized backend URL flow. + +### No longer broken + +- Fixed citation behavior in agent responses +- Updated CI workflow versions +- Scoped test triggers so CI runs are better targeted +- Removed scattered inline process.env reads from frontend runtime paths + +### Developers + +- Agent execution was tuned to reduce LLM calls and improve response latency +- BACKEND_URL was adopted consistently across lib code, connector forms, hooks, editor, chat, dashboard, settings, and tool UI generators +- CI workflows were refreshed with updated versions and narrower trigger scopes +- Memory extraction logic was refined to support cleaner editing and retrieval flows + +v0.0.25 makes SurfSense agents more efficient and easier to inspect. Faster turns, lower LLM cost, better citations, and more direct memory editing all move SurfSense toward a smoother day-to-day AI knowledge workspace. + +SurfSense connects all your knowledge sources in one place. diff --git a/surfsense_web/changelog/content/2026-05-31.mdx b/surfsense_web/changelog/content/2026-05-31.mdx index 2e79effc6..619760e05 100644 --- a/surfsense_web/changelog/content/2026-05-31.mdx +++ b/surfsense_web/changelog/content/2026-05-31.mdx @@ -1,8 +1,7 @@ --- -title: "SurfSense v0.0.26 - AI Automations: Build, Schedule & Event-Trigger AI Agents From Chat" +title: "SurfSense v0.0.26: AI Automations: Build, Schedule & Event-Trigger AI Agents From Chat" description: "SurfSense v0.0.26 introduces open source AI automations across your connectors: describe a workflow in plain English and SurfSense builds it, run AI agents on a schedule, or trigger them when a document lands in a folder, working across Notion, Slack, Google Drive, Gmail, GitHub, Linear, Jira and Confluence. Plus connector @-mentions in chat and a faster anonymous chat experience." date: "2026-05-31" -tags: ["Automations", "AI Agents", "Workflow Automation", "Scheduled Workflows", "Event Triggers", "Connectors", "Notion", "Slack", "Open Source"] version: "0.0.26" --- @@ -41,35 +40,24 @@ Turn one-off prompts into repeatable, hands-off **AI agent workflows**. - **Redesigned Use-Case Showcase**: The homepage now groups demos into clear categories (Desktop App, Deliverable Studio, Search & Chat, Connectors & Integrations, and Automations) so visitors immediately see what SurfSense can do. - **Desktop App, Front and Center**: The desktop experience is highlighted as a set of native extras on top of everything SurfSense already does, not a separate product. - - - Bug Fixes - -
    -
  • Bulk-moving documents now uses ORM objects so folder events fire correctly and trigger automations
  • -
  • Automation enum columns now persist Postgres enum values instead of names
  • -
  • Automation agent tasks use an in-memory checkpointer to avoid Celery pool timeouts
  • -
  • The API client now handles 204 No Content responses without errors
  • -
  • The model role manager now stays in sync when preferences are updated
  • -
  • The JSON editor now coerces numeric strings to numbers on edit
  • -
-
-
- - Under the Hood - -
    -
  • New in-process domain event bus with an event catalog and a document.entered_folder event
  • -
  • SQLAlchemy session hooks publish folder events automatically, registered at app startup
  • -
  • Cron schedule triggers backed by croniter and a Celery beat tick task
  • -
  • Sandboxed template engine with an allowlisted filter and test set for safe workflow templating
  • -
  • Automations reorganized into a vertical-slice architecture (actions and triggers grouped by domain)
  • -
  • Extensive new test coverage locking automation schemas, dispatch, runtime, triggers, and templating
  • -
  • Model eligibility checks when creating automations, so only valid models are selectable
  • -
-
-
-
+### No longer broken + +- Bulk-moving documents now uses ORM objects so folder events fire correctly and trigger automations +- Automation enum columns now persist Postgres enum values instead of names +- Automation agent tasks use an in-memory checkpointer to avoid Celery pool timeouts +- The API client now handles 204 No Content responses without errors +- The model role manager now stays in sync when preferences are updated +- The JSON editor now coerces numeric strings to numbers on edit + +### Developers + +- New in-process domain event bus with an event catalog and a `document.entered_folder` event +- SQLAlchemy session hooks publish folder events automatically, registered at app startup +- Cron schedule triggers backed by croniter and a Celery beat tick task +- Sandboxed template engine with an allowlisted filter and test set for safe workflow templating +- Automations reorganized into a vertical-slice architecture (actions and triggers grouped by domain) +- Extensive new test coverage locking automation schemas, dispatch, runtime, triggers, and templating +- Model eligibility checks when creating automations, so only valid models are selectable v0.0.26 turns SurfSense from a place you ask questions into a place that does the work for you. Whether you want **scheduled AI workflows**, **event-driven document automation**, or a **self-hosted, open source AI agent** you fully control, this release lets you build it from a single sentence. diff --git a/surfsense_web/components/ui/changelog-timeline.tsx b/surfsense_web/components/ui/changelog-timeline.tsx new file mode 100644 index 000000000..f68d8e2db --- /dev/null +++ b/surfsense_web/components/ui/changelog-timeline.tsx @@ -0,0 +1,105 @@ +import { ArrowUpRight } from "lucide-react"; +import Image from "next/image"; +import type { ReactNode } from "react"; + +import { Badge } from "@/components/ui/badge"; +import { Button } from "@/components/ui/button"; +import { cn } from "@/lib/utils"; + +export type ChangelogTimelineEntry = { + version: string; + date: string; + title: string; + description: string; + items?: string[]; + image?: string; + content?: ReactNode; + button?: { + url: string; + text: string; + }; +}; + +export interface ChangelogTimelineProps { + title?: string; + description?: string; + entries?: ChangelogTimelineEntry[]; + className?: string; +} + +const EMPTY_CHANGELOG_ENTRIES: ChangelogTimelineEntry[] = []; + +export const ChangelogTimeline = ({ + title = "Changelog", + description = "Get the latest updates and improvements to our platform.", + entries = EMPTY_CHANGELOG_ENTRIES, + className, +}: ChangelogTimelineProps) => { + return ( +
+
+
+

{title}

+

{description}

+
+ {entries.length > 0 ? ( +
+ {entries.map((entry) => ( +
+
+ + {entry.version} + + +
+
+

+ {entry.title} +

+

{entry.description}

+ {entry.items && entry.items.length > 0 ? ( +
    + {entry.items.map((item) => ( +
  • {item}
  • + ))} +
+ ) : null} + {entry.content ? ( +
+ {entry.content} +
+ ) : null} + {entry.image ? ( +
+ {`${entry.version} +
+ ) : null} + {entry.button ? ( + + ) : null} +
+
+ ))} +
+ ) : ( +

+ No changelog entries yet. +

+ )} +
+
+ ); +}; diff --git a/surfsense_web/source.config.ts b/surfsense_web/source.config.ts index 7ba4b89b5..547369979 100644 --- a/surfsense_web/source.config.ts +++ b/surfsense_web/source.config.ts @@ -1,4 +1,5 @@ import { defineConfig, defineDocs, frontmatterSchema } from "fumadocs-mdx/config"; +import lastModified from "fumadocs-mdx/plugins/last-modified"; import { z } from "zod"; export const docs = defineDocs({ @@ -10,7 +11,6 @@ export const changelog = defineDocs({ docs: { schema: frontmatterSchema.extend({ date: z.string(), - tags: z.array(z.string()).optional(), version: z.string().optional(), }), }, @@ -36,7 +36,7 @@ export const blog = defineDocs({ }); export default defineConfig({ - lastModifiedTime: "git", + plugins: [lastModified()], mdxOptions: { providerImportSource: "@/mdx-components", }, From 1c6227eef3fe7b51961aa18efbd7f259573392b0 Mon Sep 17 00:00:00 2001 From: Anish Sarkar <104695310+AnishSarkar22@users.noreply.github.com> Date: Tue, 9 Jun 2026 01:27:53 +0530 Subject: [PATCH 2/4] chore(changelog): update titles in changelog entries to remove version prefixes --- surfsense_web/changelog/content/2025-12-24.mdx | 2 +- surfsense_web/changelog/content/2026-01-08.mdx | 2 +- surfsense_web/changelog/content/2026-01-26.mdx | 2 +- surfsense_web/changelog/content/2026-02-09.mdx | 2 +- surfsense_web/changelog/content/2026-03-31.mdx | 2 +- surfsense_web/changelog/content/2026-04-08.mdx | 2 +- surfsense_web/changelog/content/2026-04-16.mdx | 2 +- surfsense_web/changelog/content/2026-04-21.mdx | 2 +- surfsense_web/changelog/content/2026-05-03.mdx | 2 +- surfsense_web/changelog/content/2026-05-04.mdx | 2 +- surfsense_web/changelog/content/2026-05-05.mdx | 2 +- surfsense_web/changelog/content/2026-05-06.mdx | 2 +- surfsense_web/changelog/content/2026-05-20.mdx | 2 +- surfsense_web/changelog/content/2026-05-21.mdx | 2 +- surfsense_web/changelog/content/2026-05-31.mdx | 2 +- surfsense_web/components/ui/changelog-timeline.tsx | 4 ++-- 16 files changed, 17 insertions(+), 17 deletions(-) diff --git a/surfsense_web/changelog/content/2025-12-24.mdx b/surfsense_web/changelog/content/2025-12-24.mdx index e0167a6f8..7a27b8172 100644 --- a/surfsense_web/changelog/content/2025-12-24.mdx +++ b/surfsense_web/changelog/content/2025-12-24.mdx @@ -1,5 +1,5 @@ --- -title: "SurfSense v0.0.9: Introducing the Agentic Architecture" +title: "Introducing the Agentic Architecture" description: "SurfSense v0.0.9 introduces a new agentic architecture with intelligent source selection, temporal query understanding, and MCP compatibility." date: "2025-12-24" version: "0.0.9" diff --git a/surfsense_web/changelog/content/2026-01-08.mdx b/surfsense_web/changelog/content/2026-01-08.mdx index 942dda553..d0869879c 100644 --- a/surfsense_web/changelog/content/2026-01-08.mdx +++ b/surfsense_web/changelog/content/2026-01-08.mdx @@ -1,5 +1,5 @@ --- -title: "SurfSense v0.0.11: Connectors And More Connectors" +title: "Connectors And More Connectors" description: "SurfSense v0.0.11 delivers powerful new integrations for our AI enterprise search platform, including Google Drive and Circleback connectors, multi-account support, and a fully responsive mobile interface." date: "2026-01-08" version: "0.0.11" diff --git a/surfsense_web/changelog/content/2026-01-26.mdx b/surfsense_web/changelog/content/2026-01-26.mdx index c12885aae..a8c9f4494 100644 --- a/surfsense_web/changelog/content/2026-01-26.mdx +++ b/surfsense_web/changelog/content/2026-01-26.mdx @@ -1,5 +1,5 @@ --- -title: "SurfSense v0.0.12: New Main UI, Real-time Collaboration and Comments" +title: "New Main UI, Real-time Collaboration and Comments" description: "SurfSense v0.0.12 transforms the platform with a redesigned chat-first interface, real-time collaboration features, comment threads with @mentions, and instant notifications powered by ElectricSQL + PGlite." date: "2026-01-26" version: "0.0.12" diff --git a/surfsense_web/changelog/content/2026-02-09.mdx b/surfsense_web/changelog/content/2026-02-09.mdx index f62c7f080..dad9d7813 100644 --- a/surfsense_web/changelog/content/2026-02-09.mdx +++ b/surfsense_web/changelog/content/2026-02-09.mdx @@ -1,5 +1,5 @@ --- -title: "SurfSense v0.0.13: Public Sharing, Image Generation & Redesigned Documents" +title: "Public Sharing, Image Generation & Redesigned Documents" description: "SurfSense v0.0.13 introduces public chat sharing with permissions, image generation support, an auto load-balanced model mode, a redesigned Documents page, and numerous bug fixes across connectors and UI." date: "2026-02-09" version: "0.0.13" diff --git a/surfsense_web/changelog/content/2026-03-31.mdx b/surfsense_web/changelog/content/2026-03-31.mdx index 0a5dfe537..6b71d1940 100644 --- a/surfsense_web/changelog/content/2026-03-31.mdx +++ b/surfsense_web/changelog/content/2026-03-31.mdx @@ -1,5 +1,5 @@ --- -title: "SurfSense v0.0.14: Dropbox, OneDrive, Agent Approvals, Reports & Self-Hosted Docker" +title: "Dropbox, OneDrive, Agent Approvals, Reports & Self-Hosted Docker" description: "SurfSense v0.0.14 is a massive release: new Dropbox and Microsoft OneDrive connectors, human-in-the-loop approvals across Gmail, Google Calendar, Jira, Confluence, Linear, and Notion, a full report generation system with multi-format export, a faster real-time sync engine, a new desktop app, one-command self-hosted Docker install, and built-in private web search." date: "2026-03-31" version: "0.0.14" diff --git a/surfsense_web/changelog/content/2026-04-08.mdx b/surfsense_web/changelog/content/2026-04-08.mdx index 8f82a1af7..952de1c43 100644 --- a/surfsense_web/changelog/content/2026-04-08.mdx +++ b/surfsense_web/changelog/content/2026-04-08.mdx @@ -1,5 +1,5 @@ --- -title: "SurfSense v0.0.15: Watch Local Folders, Vision Autocomplete & New Document Pipeline" +title: "Watch Local Folders, Vision Autocomplete & New Document Pipeline" description: "SurfSense v0.0.15 turns your laptop into a living knowledge base: watch any local folder and keep it auto-synced, a vision-powered quick-assist autocomplete in the desktop app, a brand new document processing pipeline with Docling, LlamaCloud, Unstructured, and Azure Document Intelligence, full document version history, and per-user page limits across every connector." date: "2026-04-08" version: "0.0.15" diff --git a/surfsense_web/changelog/content/2026-04-16.mdx b/surfsense_web/changelog/content/2026-04-16.mdx index b6627744a..0c2179beb 100644 --- a/surfsense_web/changelog/content/2026-04-16.mdx +++ b/surfsense_web/changelog/content/2026-04-16.mdx @@ -1,5 +1,5 @@ --- -title: "SurfSense v0.0.16: Try SurfSense With No Login, Long-Term Memory, Token Tracking & AI File Sorting" +title: "Try SurfSense With No Login, Long-Term Memory, Token Tracking & AI File Sorting" description: "SurfSense v0.0.16 introduces a no-login online experience so anyone can try this free ChatGPT alternative in seconds, long-term user and team memory, a reworked model selector with full token usage tracking, AI-powered file sorting, one-click Knowledge Base export as ZIP, trusted MCP tools, and OpenRouter integration." date: "2026-04-16" version: "0.0.16" diff --git a/surfsense_web/changelog/content/2026-04-21.mdx b/surfsense_web/changelog/content/2026-04-21.mdx index f937421df..eb954128b 100644 --- a/surfsense_web/changelog/content/2026-04-21.mdx +++ b/surfsense_web/changelog/content/2026-04-21.mdx @@ -1,5 +1,5 @@ --- -title: "SurfSense v0.0.19: Resume Builder, Desktop Startup & Anonymous Chat Improvements" +title: "Resume Builder, Desktop Startup & Anonymous Chat Improvements" description: "SurfSense v0.0.19 introduces an AI resume builder with PDF previews, better anonymous chat compatibility, desktop startup controls, desktop analytics, accessibility fixes, and dashboard performance improvements." date: "2026-04-21" version: "0.0.19" diff --git a/surfsense_web/changelog/content/2026-05-03.mdx b/surfsense_web/changelog/content/2026-05-03.mdx index ff8421a46..bf613dce5 100644 --- a/surfsense_web/changelog/content/2026-05-03.mdx +++ b/surfsense_web/changelog/content/2026-05-03.mdx @@ -1,5 +1,5 @@ --- -title: "SurfSense v0.0.20: Live Connector Tools, Obsidian Sync, Desktop File Editing & Smarter Chat" +title: "Live Connector Tools, Obsidian Sync, Desktop File Editing & Smarter Chat" description: "SurfSense v0.0.20 adds live connector tools via MCP OAuth and native APIs, Obsidian vault sync, desktop screenshot assist, local file editing with Monaco, thread-level model pinning, usage visibility, and major connector UX improvements." date: "2026-05-03" version: "0.0.20" diff --git a/surfsense_web/changelog/content/2026-05-04.mdx b/surfsense_web/changelog/content/2026-05-04.mdx index df68e2500..a98734e3b 100644 --- a/surfsense_web/changelog/content/2026-05-04.mdx +++ b/surfsense_web/changelog/content/2026-05-04.mdx @@ -1,5 +1,5 @@ --- -title: "SurfSense v0.0.21: Faster Agents, Server-Side Chat Persistence & Security Fixes" +title: "Faster Agents, Server-Side Chat Persistence & Security Fixes" description: "SurfSense v0.0.21 improves agent reliability with caching, moves chat persistence server-side, fixes Docker issues, and patches manual authentication endpoint leaks." date: "2026-05-04" version: "0.0.21" diff --git a/surfsense_web/changelog/content/2026-05-05.mdx b/surfsense_web/changelog/content/2026-05-05.mdx index a3632cb35..70f3a6219 100644 --- a/surfsense_web/changelog/content/2026-05-05.mdx +++ b/surfsense_web/changelog/content/2026-05-05.mdx @@ -1,5 +1,5 @@ --- -title: "SurfSense v0.0.22: Faster API Preflights With 24-Hour CORS Caching" +title: "Faster API Preflights With 24-Hour CORS Caching" description: "SurfSense v0.0.22 adds 24-hour CORS preflight response caching, reducing repeated browser preflight work for hosted and self-hosted deployments." date: "2026-05-05" version: "0.0.22" diff --git a/surfsense_web/changelog/content/2026-05-06.mdx b/surfsense_web/changelog/content/2026-05-06.mdx index 801590f58..003ea274d 100644 --- a/surfsense_web/changelog/content/2026-05-06.mdx +++ b/surfsense_web/changelog/content/2026-05-06.mdx @@ -1,5 +1,5 @@ --- -title: "SurfSense v0.0.23: Multi-Agent Orchestration, Human Approval & Table-Aware Chunking" +title: "Multi-Agent Orchestration, Human Approval & Table-Aware Chunking" description: "SurfSense v0.0.23 introduces opt-in multi-agent chat with bundled human approval, modular middleware, agent and prompt caching, subagent resilience, table-aware chunking, and Stripe checkout fixes." date: "2026-05-06" version: "0.0.23" diff --git a/surfsense_web/changelog/content/2026-05-20.mdx b/surfsense_web/changelog/content/2026-05-20.mdx index 89a85d0e6..ad3a266f0 100644 --- a/surfsense_web/changelog/content/2026-05-20.mdx +++ b/surfsense_web/changelog/content/2026-05-20.mdx @@ -1,5 +1,5 @@ --- -title: "SurfSense v0.0.24: UI Revamp, Multi-Agent Timeline, Live Subagents & E2E Testing" +title: "UI Revamp, Multi-Agent Timeline, Live Subagents & E2E Testing" description: "SurfSense v0.0.24 ships a major UI revamp, hierarchical multi-agent timelines, live subagent streaming, inline and parallel human approvals, stronger multi-agent delegation, citation improvements, and a full E2E test harness." date: "2026-05-20" version: "0.0.24" diff --git a/surfsense_web/changelog/content/2026-05-21.mdx b/surfsense_web/changelog/content/2026-05-21.mdx index 426935410..c5090e5e6 100644 --- a/surfsense_web/changelog/content/2026-05-21.mdx +++ b/surfsense_web/changelog/content/2026-05-21.mdx @@ -1,5 +1,5 @@ --- -title: "SurfSense v0.0.25: Faster Agents, Lower LLM Cost, Better Citations & Memory Editing" +title: "Faster Agents, Lower LLM Cost, Better Citations & Memory Editing" description: "SurfSense v0.0.25 improves agent speed and lowers LLM cost, fixes citations, adds document-panel memory editing, centralizes backend URL handling, and updates CI workflow versions and test triggers." date: "2026-05-21" version: "0.0.25" diff --git a/surfsense_web/changelog/content/2026-05-31.mdx b/surfsense_web/changelog/content/2026-05-31.mdx index 619760e05..4439e2793 100644 --- a/surfsense_web/changelog/content/2026-05-31.mdx +++ b/surfsense_web/changelog/content/2026-05-31.mdx @@ -1,5 +1,5 @@ --- -title: "SurfSense v0.0.26: AI Automations: Build, Schedule & Event-Trigger AI Agents From Chat" +title: "AI Automations: Build, Schedule & Event-Trigger AI Agents From Chat" description: "SurfSense v0.0.26 introduces open source AI automations across your connectors: describe a workflow in plain English and SurfSense builds it, run AI agents on a schedule, or trigger them when a document lands in a folder, working across Notion, Slack, Google Drive, Gmail, GitHub, Linear, Jira and Confluence. Plus connector @-mentions in chat and a faster anonymous chat experience." date: "2026-05-31" version: "0.0.26" diff --git a/surfsense_web/components/ui/changelog-timeline.tsx b/surfsense_web/components/ui/changelog-timeline.tsx index f68d8e2db..865736420 100644 --- a/surfsense_web/components/ui/changelog-timeline.tsx +++ b/surfsense_web/components/ui/changelog-timeline.tsx @@ -49,11 +49,11 @@ export const ChangelogTimeline = ({ key={`${entry.version}-${entry.date}`} className="relative flex flex-col gap-4 md:flex-row md:gap-16" > -
+
+ {entry.version} -

From c9351c421ed4b5f697405dede06055654ad85205 Mon Sep 17 00:00:00 2001 From: Anish Sarkar <104695310+AnishSarkar22@users.noreply.github.com> Date: Tue, 9 Jun 2026 10:13:27 +0530 Subject: [PATCH 3/4] refactor(changelog): remove title and description fields from changelog entries and update schema --- surfsense_web/app/(home)/changelog/page.tsx | 4 ---- surfsense_web/changelog/content/2025-12-24.mdx | 2 -- surfsense_web/changelog/content/2026-01-08.mdx | 2 -- surfsense_web/changelog/content/2026-01-26.mdx | 2 -- surfsense_web/changelog/content/2026-02-09.mdx | 2 -- surfsense_web/changelog/content/2026-03-31.mdx | 2 -- surfsense_web/changelog/content/2026-04-08.mdx | 2 -- surfsense_web/changelog/content/2026-04-16.mdx | 2 -- surfsense_web/changelog/content/2026-04-21.mdx | 2 -- surfsense_web/changelog/content/2026-05-03.mdx | 2 -- surfsense_web/changelog/content/2026-05-04.mdx | 2 -- surfsense_web/changelog/content/2026-05-05.mdx | 2 -- surfsense_web/changelog/content/2026-05-06.mdx | 2 -- surfsense_web/changelog/content/2026-05-20.mdx | 2 -- surfsense_web/changelog/content/2026-05-21.mdx | 2 -- surfsense_web/changelog/content/2026-05-31.mdx | 2 -- surfsense_web/components/ui/changelog-timeline.tsx | 8 +++++--- surfsense_web/source.config.ts | 2 +- 18 files changed, 6 insertions(+), 38 deletions(-) diff --git a/surfsense_web/app/(home)/changelog/page.tsx b/surfsense_web/app/(home)/changelog/page.tsx index 04f461660..42bac512a 100644 --- a/surfsense_web/app/(home)/changelog/page.tsx +++ b/surfsense_web/app/(home)/changelog/page.tsx @@ -24,8 +24,6 @@ const source = loader({ }); interface ChangelogData { - title: string; - description: string; date: string; version?: string; body: ComponentType<{ components?: MDXComponents }>; @@ -50,8 +48,6 @@ export default async function ChangelogPage() { return { version: changelog.data.version ? `Version ${changelog.data.version}` : "Release", date: formatDate(date), - title: changelog.data.title, - description: changelog.data.description, content: , }; }); diff --git a/surfsense_web/changelog/content/2025-12-24.mdx b/surfsense_web/changelog/content/2025-12-24.mdx index 7a27b8172..096b5116b 100644 --- a/surfsense_web/changelog/content/2025-12-24.mdx +++ b/surfsense_web/changelog/content/2025-12-24.mdx @@ -1,6 +1,4 @@ --- -title: "Introducing the Agentic Architecture" -description: "SurfSense v0.0.9 introduces a new agentic architecture with intelligent source selection, temporal query understanding, and MCP compatibility." date: "2025-12-24" version: "0.0.9" --- diff --git a/surfsense_web/changelog/content/2026-01-08.mdx b/surfsense_web/changelog/content/2026-01-08.mdx index d0869879c..25ca7ad85 100644 --- a/surfsense_web/changelog/content/2026-01-08.mdx +++ b/surfsense_web/changelog/content/2026-01-08.mdx @@ -1,6 +1,4 @@ --- -title: "Connectors And More Connectors" -description: "SurfSense v0.0.11 delivers powerful new integrations for our AI enterprise search platform, including Google Drive and Circleback connectors, multi-account support, and a fully responsive mobile interface." date: "2026-01-08" version: "0.0.11" --- diff --git a/surfsense_web/changelog/content/2026-01-26.mdx b/surfsense_web/changelog/content/2026-01-26.mdx index a8c9f4494..1e5debaf8 100644 --- a/surfsense_web/changelog/content/2026-01-26.mdx +++ b/surfsense_web/changelog/content/2026-01-26.mdx @@ -1,6 +1,4 @@ --- -title: "New Main UI, Real-time Collaboration and Comments" -description: "SurfSense v0.0.12 transforms the platform with a redesigned chat-first interface, real-time collaboration features, comment threads with @mentions, and instant notifications powered by ElectricSQL + PGlite." date: "2026-01-26" version: "0.0.12" --- diff --git a/surfsense_web/changelog/content/2026-02-09.mdx b/surfsense_web/changelog/content/2026-02-09.mdx index dad9d7813..3bbc6f45e 100644 --- a/surfsense_web/changelog/content/2026-02-09.mdx +++ b/surfsense_web/changelog/content/2026-02-09.mdx @@ -1,6 +1,4 @@ --- -title: "Public Sharing, Image Generation & Redesigned Documents" -description: "SurfSense v0.0.13 introduces public chat sharing with permissions, image generation support, an auto load-balanced model mode, a redesigned Documents page, and numerous bug fixes across connectors and UI." date: "2026-02-09" version: "0.0.13" --- diff --git a/surfsense_web/changelog/content/2026-03-31.mdx b/surfsense_web/changelog/content/2026-03-31.mdx index 6b71d1940..271851fb8 100644 --- a/surfsense_web/changelog/content/2026-03-31.mdx +++ b/surfsense_web/changelog/content/2026-03-31.mdx @@ -1,6 +1,4 @@ --- -title: "Dropbox, OneDrive, Agent Approvals, Reports & Self-Hosted Docker" -description: "SurfSense v0.0.14 is a massive release: new Dropbox and Microsoft OneDrive connectors, human-in-the-loop approvals across Gmail, Google Calendar, Jira, Confluence, Linear, and Notion, a full report generation system with multi-format export, a faster real-time sync engine, a new desktop app, one-command self-hosted Docker install, and built-in private web search." date: "2026-03-31" version: "0.0.14" --- diff --git a/surfsense_web/changelog/content/2026-04-08.mdx b/surfsense_web/changelog/content/2026-04-08.mdx index 952de1c43..7be430933 100644 --- a/surfsense_web/changelog/content/2026-04-08.mdx +++ b/surfsense_web/changelog/content/2026-04-08.mdx @@ -1,6 +1,4 @@ --- -title: "Watch Local Folders, Vision Autocomplete & New Document Pipeline" -description: "SurfSense v0.0.15 turns your laptop into a living knowledge base: watch any local folder and keep it auto-synced, a vision-powered quick-assist autocomplete in the desktop app, a brand new document processing pipeline with Docling, LlamaCloud, Unstructured, and Azure Document Intelligence, full document version history, and per-user page limits across every connector." date: "2026-04-08" version: "0.0.15" --- diff --git a/surfsense_web/changelog/content/2026-04-16.mdx b/surfsense_web/changelog/content/2026-04-16.mdx index 0c2179beb..f9c8d74bf 100644 --- a/surfsense_web/changelog/content/2026-04-16.mdx +++ b/surfsense_web/changelog/content/2026-04-16.mdx @@ -1,6 +1,4 @@ --- -title: "Try SurfSense With No Login, Long-Term Memory, Token Tracking & AI File Sorting" -description: "SurfSense v0.0.16 introduces a no-login online experience so anyone can try this free ChatGPT alternative in seconds, long-term user and team memory, a reworked model selector with full token usage tracking, AI-powered file sorting, one-click Knowledge Base export as ZIP, trusted MCP tools, and OpenRouter integration." date: "2026-04-16" version: "0.0.16" --- diff --git a/surfsense_web/changelog/content/2026-04-21.mdx b/surfsense_web/changelog/content/2026-04-21.mdx index eb954128b..2c96e4543 100644 --- a/surfsense_web/changelog/content/2026-04-21.mdx +++ b/surfsense_web/changelog/content/2026-04-21.mdx @@ -1,6 +1,4 @@ --- -title: "Resume Builder, Desktop Startup & Anonymous Chat Improvements" -description: "SurfSense v0.0.19 introduces an AI resume builder with PDF previews, better anonymous chat compatibility, desktop startup controls, desktop analytics, accessibility fixes, and dashboard performance improvements." date: "2026-04-21" version: "0.0.19" --- diff --git a/surfsense_web/changelog/content/2026-05-03.mdx b/surfsense_web/changelog/content/2026-05-03.mdx index bf613dce5..4a45071e5 100644 --- a/surfsense_web/changelog/content/2026-05-03.mdx +++ b/surfsense_web/changelog/content/2026-05-03.mdx @@ -1,6 +1,4 @@ --- -title: "Live Connector Tools, Obsidian Sync, Desktop File Editing & Smarter Chat" -description: "SurfSense v0.0.20 adds live connector tools via MCP OAuth and native APIs, Obsidian vault sync, desktop screenshot assist, local file editing with Monaco, thread-level model pinning, usage visibility, and major connector UX improvements." date: "2026-05-03" version: "0.0.20" --- diff --git a/surfsense_web/changelog/content/2026-05-04.mdx b/surfsense_web/changelog/content/2026-05-04.mdx index a98734e3b..7a8e10548 100644 --- a/surfsense_web/changelog/content/2026-05-04.mdx +++ b/surfsense_web/changelog/content/2026-05-04.mdx @@ -1,6 +1,4 @@ --- -title: "Faster Agents, Server-Side Chat Persistence & Security Fixes" -description: "SurfSense v0.0.21 improves agent reliability with caching, moves chat persistence server-side, fixes Docker issues, and patches manual authentication endpoint leaks." date: "2026-05-04" version: "0.0.21" --- diff --git a/surfsense_web/changelog/content/2026-05-05.mdx b/surfsense_web/changelog/content/2026-05-05.mdx index 70f3a6219..dc6976adc 100644 --- a/surfsense_web/changelog/content/2026-05-05.mdx +++ b/surfsense_web/changelog/content/2026-05-05.mdx @@ -1,6 +1,4 @@ --- -title: "Faster API Preflights With 24-Hour CORS Caching" -description: "SurfSense v0.0.22 adds 24-hour CORS preflight response caching, reducing repeated browser preflight work for hosted and self-hosted deployments." date: "2026-05-05" version: "0.0.22" --- diff --git a/surfsense_web/changelog/content/2026-05-06.mdx b/surfsense_web/changelog/content/2026-05-06.mdx index 003ea274d..b85c13f6f 100644 --- a/surfsense_web/changelog/content/2026-05-06.mdx +++ b/surfsense_web/changelog/content/2026-05-06.mdx @@ -1,6 +1,4 @@ --- -title: "Multi-Agent Orchestration, Human Approval & Table-Aware Chunking" -description: "SurfSense v0.0.23 introduces opt-in multi-agent chat with bundled human approval, modular middleware, agent and prompt caching, subagent resilience, table-aware chunking, and Stripe checkout fixes." date: "2026-05-06" version: "0.0.23" --- diff --git a/surfsense_web/changelog/content/2026-05-20.mdx b/surfsense_web/changelog/content/2026-05-20.mdx index ad3a266f0..1f42fb2f7 100644 --- a/surfsense_web/changelog/content/2026-05-20.mdx +++ b/surfsense_web/changelog/content/2026-05-20.mdx @@ -1,6 +1,4 @@ --- -title: "UI Revamp, Multi-Agent Timeline, Live Subagents & E2E Testing" -description: "SurfSense v0.0.24 ships a major UI revamp, hierarchical multi-agent timelines, live subagent streaming, inline and parallel human approvals, stronger multi-agent delegation, citation improvements, and a full E2E test harness." date: "2026-05-20" version: "0.0.24" --- diff --git a/surfsense_web/changelog/content/2026-05-21.mdx b/surfsense_web/changelog/content/2026-05-21.mdx index c5090e5e6..1a8388b39 100644 --- a/surfsense_web/changelog/content/2026-05-21.mdx +++ b/surfsense_web/changelog/content/2026-05-21.mdx @@ -1,6 +1,4 @@ --- -title: "Faster Agents, Lower LLM Cost, Better Citations & Memory Editing" -description: "SurfSense v0.0.25 improves agent speed and lowers LLM cost, fixes citations, adds document-panel memory editing, centralizes backend URL handling, and updates CI workflow versions and test triggers." date: "2026-05-21" version: "0.0.25" --- diff --git a/surfsense_web/changelog/content/2026-05-31.mdx b/surfsense_web/changelog/content/2026-05-31.mdx index 4439e2793..e48f2fbb9 100644 --- a/surfsense_web/changelog/content/2026-05-31.mdx +++ b/surfsense_web/changelog/content/2026-05-31.mdx @@ -1,6 +1,4 @@ --- -title: "AI Automations: Build, Schedule & Event-Trigger AI Agents From Chat" -description: "SurfSense v0.0.26 introduces open source AI automations across your connectors: describe a workflow in plain English and SurfSense builds it, run AI agents on a schedule, or trigger them when a document lands in a folder, working across Notion, Slack, Google Drive, Gmail, GitHub, Linear, Jira and Confluence. Plus connector @-mentions in chat and a faster anonymous chat experience." date: "2026-05-31" version: "0.0.26" --- diff --git a/surfsense_web/components/ui/changelog-timeline.tsx b/surfsense_web/components/ui/changelog-timeline.tsx index 865736420..174f9870f 100644 --- a/surfsense_web/components/ui/changelog-timeline.tsx +++ b/surfsense_web/components/ui/changelog-timeline.tsx @@ -4,6 +4,7 @@ import type { ReactNode } from "react"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; +import { Separator } from "@/components/ui/separator"; import { cn } from "@/lib/utils"; export type ChangelogTimelineEntry = { @@ -37,17 +38,18 @@ export const ChangelogTimeline = ({ }: ChangelogTimelineProps) => { return (
-
+

{title}

{description}

+
{entries.length > 0 ? (
{entries.map((entry) => (
@@ -55,7 +57,7 @@ export const ChangelogTimeline = ({ {entry.version}
-
+

{entry.title}

diff --git a/surfsense_web/source.config.ts b/surfsense_web/source.config.ts index 547369979..8dbb15880 100644 --- a/surfsense_web/source.config.ts +++ b/surfsense_web/source.config.ts @@ -9,7 +9,7 @@ export const docs = defineDocs({ export const changelog = defineDocs({ dir: "changelog/content", docs: { - schema: frontmatterSchema.extend({ + schema: frontmatterSchema.omit({ title: true, description: true }).extend({ date: z.string(), version: z.string().optional(), }), From 32812b5f66b642caa19f1ef8193639690a1c9499 Mon Sep 17 00:00:00 2001 From: Anish Sarkar <104695310+AnishSarkar22@users.noreply.github.com> Date: Tue, 9 Jun 2026 12:09:49 +0530 Subject: [PATCH 4/4] feat(ui): enhance chat example prompts and improve layout - Added a new backend URL import to the route file for better configuration. - Updated the Composer component to use a relative positioning class for improved layout. - Refactored the ChatExamplePrompts component to enhance the display of active categories and prompts, including a close button for better user interaction. --- surfsense_web/app/api/zero/query/route.ts | 1 + .../components/assistant-ui/thread.tsx | 6 ++- .../new-chat/chat-example-prompts.tsx | 50 ++++++++++++------- 3 files changed, 36 insertions(+), 21 deletions(-) diff --git a/surfsense_web/app/api/zero/query/route.ts b/surfsense_web/app/api/zero/query/route.ts index 6cbe3a5e9..bff86c25e 100644 --- a/surfsense_web/app/api/zero/query/route.ts +++ b/surfsense_web/app/api/zero/query/route.ts @@ -1,6 +1,7 @@ import { mustGetQuery } from "@rocicorp/zero"; import { handleQueryRequest } from "@rocicorp/zero/server"; import { NextResponse } from "next/server"; +import { BACKEND_URL } from "@/lib/env-config"; import type { Context } from "@/types/zero"; import { queries } from "@/zero/queries"; import { schema } from "@/zero/schema"; diff --git a/surfsense_web/components/assistant-ui/thread.tsx b/surfsense_web/components/assistant-ui/thread.tsx index 89e830ace..5796109f0 100644 --- a/surfsense_web/components/assistant-ui/thread.tsx +++ b/surfsense_web/components/assistant-ui/thread.tsx @@ -898,7 +898,7 @@ const Composer: FC = () => { ) : null} -
+
{ onVisibleChange={setConnectToolsTrayVisible} /> {isThreadEmpty && isComposerInputEmpty ? ( - +
+ +
) : null}
diff --git a/surfsense_web/components/new-chat/chat-example-prompts.tsx b/surfsense_web/components/new-chat/chat-example-prompts.tsx index ee2e86daf..98d95b98b 100644 --- a/surfsense_web/components/new-chat/chat-example-prompts.tsx +++ b/surfsense_web/components/new-chat/chat-example-prompts.tsx @@ -76,24 +76,36 @@ export function ChatExamplePrompts({ onSelect }: ChatExamplePromptsProps) { })}
- {CHAT_EXAMPLE_CATEGORIES.map((category) => ( - - -
    - {category.prompts.map((prompt) => ( -
  • - -
  • - ))} -
-
-
- ))} - + )} + + {activeCategory ? ( +
+
+
+ {activeCategory.label} +
+ +
+ +
    + {activeCategory.prompts.map((prompt) => ( +
  • + +
  • + ))} +
+
+
+ ) : null}
); -} \ No newline at end of file +}