Commit graph

5337 commits

Author SHA1 Message Date
Anish Sarkar
833b4dd441 refactor(chat): simplify ChatViewport and footer structure for improved readability and maintainability 2026-05-01 03:10:21 +05:30
Anish Sarkar
a66c1576b9 refactor(chat): introduce ChatViewport and NestedScroll components for improved chat UI structure and functionality 2026-05-01 03:09:53 +05:30
Anish Sarkar
af66fbf106 refactor(chat): implement turn cancellation and status management in new chat routes for improved user experience and error handling 2026-05-01 01:47:52 +05:30
Anish Sarkar
4056bd1d69 refactor(chat): update resetCurrentThreadAtom to include shareToken and contentType for enhanced report panel state management 2026-04-30 22:37:11 +05:30
Anish Sarkar
d65a3fdf76 refactor(chat): implement new error handling utilities and streamline interrupt request processing in NewChatPage for improved performance and maintainability 2026-04-30 18:22:34 +05:30
Anish Sarkar
86f6b285ce refactor(chat): introduce new stream handling utilities and restructure event processing for improved performance and maintainability 2026-04-30 18:09:34 +05:30
Anish Sarkar
6465ea181a refactor(chat): streamline NewChatPage component by removing unused functions and integrating new stream handling utilities for improved performance 2026-04-30 18:09:18 +05:30
Anish Sarkar
1d6d7e3eb1 refactor(chat): remove unused agent action handlers from NewChatPage component to streamline code and improve maintainability 2026-04-30 16:33:13 +05:30
Anish Sarkar
872065f90d Merge remote-tracking branch 'upstream/dev' into feat/split-auto-free-premium 2026-04-30 16:23:05 +05:30
Anish Sarkar
2a01711bc9 feat(chat): expand error handling for chat operations by introducing a passthrough code set, improving response management and user feedback 2026-04-30 16:20:14 +05:30
Anish Sarkar
1ce122cc99 feat(database): change alembic number and add idempotency 2026-04-30 16:05:58 +05:30
Anish Sarkar
ba2a08b295 Merge remote-tracking branch 'upstream/dev' into feat/split-auto-free-premium 2026-04-30 15:45:11 +05:30
DESKTOP-RTLN3BA\$punk
e651c41372 feat: enhance tool input streaming and agent action handling for improved chat experience
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
2026-04-30 03:13:58 -07:00
Anish Sarkar
f60e742fac feat(chat): implement pre-accept failure handling and unified retry messaging for chat operations, enhancing user experience and error management 2026-04-30 14:58:56 +05:30
Anish Sarkar
35ea0eae53 feat(chat): enhance error classification and handling for thread busy scenarios, improving user feedback and response management 2026-04-30 14:03:09 +05:30
Anish Sarkar
fd4d0817d1 feat(chat): implement comprehensive error handling for chat operations, including detailed response parsing and improved user message persistence 2026-04-30 12:38:11 +05:30
Anish Sarkar
d64543686f feat(chat): unify error handling and logging for chat operations, enhancing clarity and consistency in error reporting 2026-04-30 11:56:41 +05:30
Anish Sarkar
222b27183f feat(chat): improve error handling and logging for premium quota exhaustion in chat operations 2026-04-29 22:01:28 +05:30
Anish Sarkar
e6db050dfd feat(chat): add userId to premium alert handling and improve alert visibility in UI 2026-04-29 21:58:17 +05:30
Anish Sarkar
901de33684 feat(chat): enhance error formatting to include optional error codes for better frontend handling 2026-04-29 21:05:21 +05:30
Anish Sarkar
fa6a09197e feat(chat): enhance error handling for premium quota exhaustion in chat messages 2026-04-29 20:57:33 +05:30
DESKTOP-RTLN3BA\$punk
a688895115 feat: increase recursion limit for chat streaming to enhance tool iteration capabilities
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
2026-04-29 08:03:39 -07:00
Anish Sarkar
d66fa1559b feat(chat): implement forced repin to free tier for pinned LLM configurations 2026-04-29 20:29:41 +05:30
Anish Sarkar
c598d7038f refactor(chat): update premium token error messages for clarity and consistency 2026-04-29 20:17:45 +05:30
DESKTOP-RTLN3BA\$punk
9a114a2d45 feat: enhance tool display names for better user experience in chat UI 2026-04-29 07:40:11 -07:00
DESKTOP-RTLN3BA\$punk
c110f5b955 feat: improved agent streaming 2026-04-29 07:20:31 -07:00
Anish Sarkar
d5ef0d2598 feat(ui): surface pinned premium quota alerts in chat thread 2026-04-29 19:15:46 +05:30
Anish Sarkar
835bd9f65d fix(chat): enforce pinned model quota flow and reset stale pins 2026-04-29 19:15:36 +05:30
Anish Sarkar
41849fe10f feat(chat): add auto model pin resolution service 2026-04-29 19:15:15 +05:30
Anish Sarkar
57db198919 feat(chat): add thread-level auto model pinning fields 2026-04-29 19:14:56 +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
Rohan Verma
27d990d5e8
Merge pull request #1323 from MODSetter/dev_mod
feat: updated agent harness
2026-04-28 23:59:57 -07:00
DESKTOP-RTLN3BA\$punk
f9b5367754 chore: cleaned comments slop 2026-04-28 23:52:37 -07:00
DESKTOP-RTLN3BA\$punk
f23be16b35 refactor: citation viewer 2026-04-28 23:25:26 -07:00
DESKTOP-RTLN3BA\$punk
ca9bbee06d chore: linting 2026-04-28 21:37:51 -07:00
guangyang1206
345cb88224 refactor(settings): use key prop to reset LLM role manager form state
Fixes #1018

Remove the sync useEffect that copied preferences into local state,
along with the savingRef guard that prevented mid-save overwrites.
Instead, pass key={searchSpaceId} on the LLMRoleManager component so
React remounts the form with correct initial state whenever the search
space changes — no extra re-render, no effect dependency array.

Changes:
- llm-role-manager.tsx: remove useEffect + useRef + savingRef pattern;
  drop useEffect and useRef from imports (now only useCallback, useState)
- search-space-settings-dialog.tsx: add key={searchSpaceId} to
  <LLMRoleManager> so the component remounts on search-space change

Before: useEffect synced preferences → assignments on each preference
  update, with savingRef to avoid overwriting an in-flight save.
After:  React remounts the component with correct initial state from
  the preferences selector; no mid-save race possible.
2026-04-29 12:34:14 +08: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
82fe7fd1f3 Merge commit '16587ec789' into dev_mod 2026-04-28 09:23:31 -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