Commit graph

2862 commits

Author SHA1 Message Date
Anish Sarkar
c598d7038f refactor(chat): update premium token error messages for clarity and consistency 2026-04-29 20:17:45 +05:30
Anish Sarkar
d5ef0d2598 feat(ui): surface pinned premium quota alerts in chat thread 2026-04-29 19:15:46 +05:30
Rohan Verma
afb4b09cde
Merge pull request #1322 from guangyang1206/perf/blog-search-derive-results-usememo
Some checks are pending
Build and Push Docker Images / tag_release (push) Waiting to run
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-24.04-arm, linux/arm64, arm64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-latest, linux/amd64, amd64) (push) Blocked by required conditions
Build and Push Docker Images / create_manifest (backend, surfsense-backend) (push) Blocked by required conditions
Build and Push Docker Images / create_manifest (web, surfsense-web) (push) Blocked by required conditions
perf(blog): derive search results with useMemo instead of useState+us…
2026-04-29 00:08:49 -07:00
Rohan Verma
cc6da08346
Merge pull request #1321 from guangyang1206/perf/lucide-explicit-icons-whitelist
perf(docs): replace full lucide barrel import with explicit icon whit…
2026-04-29 00:08:27 -07:00
Rohan Verma
619e4b5639
Merge pull request #1320 from guangyang1206/feat/loading-skeletons-async-routes-1243
feat(perf): add loading.tsx skeletons for async marketing routes
2026-04-29 00:07:59 -07:00
Rohan Verma
95200e444f
Merge pull request #1319 from AnishSarkar22/fix/ui-mention-documents
fix: enhance mention documents
2026-04-29 00:07:05 -07:00
DESKTOP-RTLN3BA\$punk
f23be16b35 refactor: citation viewer 2026-04-28 23:25:26 -07:00
yeranyang
942077c773 perf(docs): replace full lucide barrel import with explicit icon whitelist
Fixes #1241

The docs bundle was importing `{ icons }` from lucide-react, which pulls
the entire Lucide icon library (~1 400 SVGs, ~500 kB of JS) into the Next.js
docs bundle even though only nine icons are used in docs frontmatter and
meta.json files.

Replace with a hand-maintained DOCS_ICONS whitelist that imports only the
icons that are actually referenced (BookOpen, ClipboardCheck, Compass,
Container, Download, FlaskConical, Heart, Unplug, Wrench).

To add a new docs icon: import it from lucide-react and add it to the
DOCS_ICONS record. The icon() callback remains the same for callers.
2026-04-29 12:34:13 +08:00
guangyang1206
dcafa364ff feat(perf): add loading.tsx skeletons for async marketing routes
Fixes #1243

Add sibling loading.tsx files for all 6 async route segments that were
missing instant loading UI, causing blank screens during navigation on
slow networks or cold caches.

Routes covered:
- /docs/[[...slug]]   — awaits getDocPage + MDX body
- /blog               — awaits source.getPages()
- /blog/[slug]        — awaits params + MDX body
- /changelog          — awaits source.getPages()
- /free               — awaits getModels() fetch
- /free/[model_slug]  — awaits Promise.all([getModel, getAllModels])

Each loading.tsx is a Server Component returning an animate-pulse
skeleton that matches its route's layout (header, content area,
grid/table/timeline as appropriate). Uses the Skeleton component and
Tailwind classes already present in the project.

Follows the pattern established in:
- app/dashboard/[search_space_id]/logs/loading.tsx
- app/dashboard/[search_space_id]/new-chat/loading.tsx
2026-04-29 12:34:13 +08:00
yeranyang
4845b96209 perf(blog): derive search results with useMemo instead of useState+useEffect
Fixes #1246

Replace the useState/useEffect pattern that synced fuzzy search results
into local state on every search or searcher change with a single useMemo
that derives results directly during render.

Before:
  const [results, setResults] = useState(allBlogs);
  useEffect(() => {
    setResults(searcher.search(search));
  }, [search, searcher]);

After:
  const gridItems = useMemo(() => {
    const results = search.trim() ? searcher.search(search) : allBlogs;
    ...
  }, [search, searcher, allBlogs, featuredSlug]);

This removes an extra re-render per keystroke and eliminates the stale
intermediate state that occurred between the search input change and the
effect firing.
2026-04-29 12:34:12 +08:00
DESKTOP-RTLN3BA\$punk
b9a66cb417 feat: various UI fixes, prompt optimizations, and allowing duplicate docs
- Updated `content_hash` in the `Document` model to remove global uniqueness, allowing identical content across different paths.
- Enhanced `_create_document` function to handle path uniqueness and prevent session-poisoning from `IntegrityError`.
- Added detailed comments for clarity on the changes and their implications.
- Introduced new citation handling in the editor for improved user experience with citation jumps.
- Updated package dependencies in the frontend for better functionality.
2026-04-28 21:30:53 -07:00
Anish Sarkar
e61b410805 Merge remote-tracking branch 'upstream/dev' into fix/ui-mention-documents 2026-04-29 04:29:10 +05:30
Anish Sarkar
8be7f2e05c refactor(mentions): update document mention handling to use document keys for consistency across components 2026-04-29 04:19:07 +05:30
Anish Sarkar
76c91adebc refactor(mentions): replace sidebarSelectedDocumentsAtom with mentionedDocumentsAtom and introduce getMentionDocKey utility for consistent document key generation 2026-04-29 04:12:42 +05:30
DESKTOP-RTLN3BA\$punk
e6433f78c4 Merge commit '61f4d05cd1' into dev_mod 2026-04-28 09:25:41 -07:00
DESKTOP-RTLN3BA\$punk
31a372bb84 feat: updated agent harness 2026-04-28 09:22:19 -07:00
Anish Sarkar
282510f93c feat(mentions): add syncEditorState function to manage editor state and mentioned documents 2026-04-28 18:47:57 +05:30
Anish Sarkar
294c719965 feat(mentions): implement user message rendering with mention chips for referenced documents 2026-04-28 18:36:49 +05:30
Anish Sarkar
1427809119 refactor(mentions): consolidate sidebar document handling into mentionedDocumentsAtom and remove sidebarSelectedDocumentsAtom references 2026-04-28 18:20:53 +05:30
Anish Sarkar
960f761c6c feat(mentions): add sidebar mention event atom and enhance document mention handling in the editor 2026-04-28 17:50:21 +05:30
jimmyzhuu
e1acb7e7c3 docs: add Baidu Search connector guide 2026-04-28 10:11:07 +08:00
DESKTOP-RTLN3BA\$punk
8d50f90060 chore: linting
Some checks failed
Obsidian Plugin Lint / lint (push) Has been cancelled
2026-04-27 14:04:50 -07:00
CREDO23
2d962f6dd2 Merge upstream/dev 2026-04-27 22:44:40 +02:00
Rohan Verma
f607636ba6
Merge pull request #1286 from AnishSarkar22/feat/obsidian-plugin
feat: introduce Obsidian vault sync plugin
2026-04-27 13:34:33 -07:00
Rohan Verma
19f4668e8b
Merge pull request #1314 from AnishSarkar22/fix/swappable-filesystem
fix: improve swappable filesystem architecture
2026-04-27 13:32:56 -07:00
Anish Sarkar
8c06709295 refactor(source-code-editor): update editor settings by adjusting line number display, disabling folding, and modifying whitespace rendering options 2026-04-28 01:26:33 +05:30
Anish Sarkar
b85b7cbae0 feat(filesystem): introduce support for local openable text file extensions and enhance folder expansion persistence in the UI 2026-04-28 01:12:15 +05:30
Anish Sarkar
7134b0feae refactor(file_intent): remove _infer_text_file_extension function and standardize fallback filename to 'notes.md' 2026-04-28 00:57:07 +05:30
Anish Sarkar
f330d1431c feat(filesystem): implement filesystem tree watch functionality using chokidar for real-time updates on local folder changes 2026-04-27 23:08:32 +05:30
CREDO23
8b542ca3dd Deduplicate user-turn images by full base64 data and update desktop permissions copy for Screenshot Assist. 2026-04-27 19:25:39 +02:00
CREDO23
a07c44f496 Send edited user images and full message content in chat regenerate while leaving reload on server-resolved turns. 2026-04-27 19:25:26 +02:00
CREDO23
d184fd796a Rename homepage tutorial media to screenshot assist and point the hero tab at the new asset. 2026-04-27 18:49:50 +02:00
CREDO23
d310663993 Wire Electron chat thread to screen capture events and full-screen capture from the composer. 2026-04-27 18:49:43 +02:00
CREDO23
97488218db Expose Screenshot Assist in desktop login and settings with shared shortcut defaults. 2026-04-27 18:49:40 +02:00
CREDO23
62b9e328b4 Add desktop IPC, preload, and window types for chat screen capture and full-screen capture. 2026-04-27 18:49:15 +02:00
Anish Sarkar
1190ee9449 feat(sidebar): separate DesktopLocalTabContent component for reducing bundle size in web 2026-04-27 21:17:47 +05:30
Anish Sarkar
27e16231c1 feat(filesystem): enhance agent filesystem API with searchSpaceId support for improved context handling 2026-04-27 21:00:40 +05:30
Anish Sarkar
86e2dc8a5d refactor(filesystem): remove unused drag-and-drop functionality in DocumentsSidebar 2026-04-27 20:20:14 +05:30
Anish Sarkar
95511f0915 feat(sidebar): implement canonicalize roots, authoritative mount handling & preserved incremental UX for local folder mode 2026-04-27 19:58:12 +05:30
Anish Sarkar
dbdeaa1bcf feat(sidebar): add loading skeletons to DocumentsSidebar and LocalFilesystemBrowser during data fetching 2026-04-27 04:03:53 +05:30
Anish Sarkar
f7fa96ccd0 feat(sidebar): enhance DocumentsSidebar with tooltip support for folder addition, improving user feedback on folder limits 2026-04-27 02:53:26 +05:30
Anish Sarkar
e95e417cc8 feat: implement smooth scrolling for provider sidebar in ModelSelector 2026-04-27 01:19:05 +05:30
Anish Sarkar
5e756c8dfa refactor: replace MessageSquare with MessageCircleReply across various components
- Updated icon imports and usages in AssistantMessage, CommentItem, CommentSheet, CommentThread, and InboxSidebar components.
- Enhanced visual consistency by standardizing the reply icon throughout the chat-related UI elements.
2026-04-25 15:12:22 +05:30
Matt Van Horn
3487664bbd
feat(announcements): add SEO metadata via server layout.tsx
The announcements page is a public, crawlable route but its page.tsx is
'use client', so it can't export metadata itself and falls back to the
root app/layout.tsx. Add a server-component layout.tsx under
app/(home)/announcements/ that exports route-specific metadata (title,
description, canonical, OpenGraph, Twitter) in the same shape as the
neighboring /blog, /changelog, /contact, /privacy, /terms routes.
page.tsx is unchanged.

Canonical URL matches app/layout.tsx's metadataBase
(https://surfsense.com).

Fixes #1244
2026-04-24 15:58:20 -07:00
Anish Sarkar
f877269768 fix: update installation instructions for Obsidian connector 2026-04-25 04:17:22 +05:30
CREDO23
18108267d1 Defer clearing pending chat screenshots until send commits 2026-04-24 20:58:39 +02:00
CREDO23
ba25c68c0d Restore default desktop shortcuts and Linux pack scripts 2026-04-24 20:43:04 +02:00
Anish Sarkar
39f56a86d6 refactor(DocumentsFilters): update input styling and button positioning for improved UI consistency 2026-04-24 22:56:04 +05:30
CREDO23
ed0bcafe49 Align connectors, editors, and layout with desktop context 2026-04-24 19:19:04 +02:00
CREDO23
8034f372e7 Remove desktop suggestion UI and refresh settings surfaces 2026-04-24 19:18:09 +02:00