Commit graph

5199 commits

Author SHA1 Message Date
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
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
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
Rohan Verma
7d782c7837
Merge pull request #1306 from mvanhorn/osc/1295-github-connector-heartbeat
fix(connectors): refresh Redis heartbeat during long Phase 1 indexing
2026-04-27 13:31:06 -07:00
Anish Sarkar
c238a671c8 feat(filesystem): enhance local mount path normalization and add error handling for missing parent directories 2026-04-28 01:54:26 +05:30
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
Rohan Verma
6895b01e30
Merge pull request #1303 from mvanhorn/osc/announcements-seo-metadata-dev
feat(announcements): add SEO metadata via server layout.tsx
2026-04-27 12:42:54 -07:00
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
7bcb6306c5 refactor(filesystem): streamline filesystem operations by removing cursor-based pagination and enhancing path normalization methods 2026-04-28 00:45: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
Anish Sarkar
3fa8c790f5 feat(filesystem): add move and list_tree functionalities to enhance local folder operations 2026-04-27 22:32:37 +05:30
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
6aa172a730 feat(filesystem): increase max local roots to 10, optimize path normalization, and implement caching for filesystem settings 2026-04-27 20:07:02 +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
Matt Van Horn
a08066e2f9
style: ruff format Redis heartbeat refresh in connectors route 2026-04-26 08:59:16 -07:00
Matt Van Horn
456dd7417c
fix(connectors): refresh Redis heartbeat during long Phase 1 indexing
Closes #1295

The connector indexing route's `_run_indexing_with_notifications` set the
Redis heartbeat key once at the start of indexing and relied on
`on_heartbeat_callback` (only fired in Phase 2 per-document loops) to
refresh it. The GitHub connector's Phase 1 runs `gitingest` as a blocking
subprocess via `asyncio.to_thread`, so for any repo larger than the
2-minute TTL, the key expires before Phase 2 starts. The
`cleanup_stale_indexing_notifications_task` then marks the document as
failed with the misleading "Sync was interrupted unexpectedly. Please
retry." message — even though the indexing thread is still running and
gitingest's own subprocess timeout is 900 seconds.

Add a background asyncio coroutine that refreshes the Redis key every
60 seconds for the duration of the indexing call. Same pattern already
in use at app/tasks/celery_tasks/document_tasks.py:_run_heartbeat_loop,
just adapted to use the route's get_heartbeat_redis_client() and
_get_heartbeat_key() helpers.

Cancellation runs in the `finally` block BEFORE the heartbeat-key
delete so the loop cannot race and re-create the key after we have
deleted it. The new `HEARTBEAT_REFRESH_INTERVAL = 60` constant mirrors
the celery task module's value.
2026-04-26 02:46:43 -07:00
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
Anish Sarkar
db866ce8be feat: trigger status refresh after queue flush in SyncEngine 2026-04-25 04:11:28 +05:30
Anish Sarkar
02795e08e3 feat: add server time to obsidian connect responses and enhance error handling
- Included server_time_utc in the connect response schema for better synchronization.
- Updated obsidian_connect function to set server_time_utc during connection handling.
- Enhanced integration tests to verify the presence of server_time_utc in responses.
- Improved connectivity status recovery in the sync engine for better error management.
2026-04-25 03:57:07 +05:30
Anish Sarkar
937965b335 feat: improve status handling and user feedback in SurfSense plugin
- Added refreshStatus method to update connection status immediately after settings changes.
- Enhanced error reporting with reportAuthError method for better authentication feedback.
- Updated status visuals in the status modal to reflect the new centralized structure.
- Improved connection handling in the settings tab to ensure accurate status representation.
2026-04-25 03:24:17 +05:30
Anish Sarkar
4f1c870987 feat: update status handling and connection indicator in SurfSense plugin
- Changed initial status to "needs-setup" to prompt user configuration.
- Added a refreshStatus method to SyncEngine for immediate status updates after settings changes.
- Enhanced connection indicator logic in the settings tab to reflect the new status.
- Introduced "needs-setup" status visual for improved user feedback on configuration requirements.
2026-04-25 02:16:38 +05:30
Anish Sarkar
68156d2e74 refactor: centralize status visuals and improve connection indicator logic
- Introduced a new `status-visuals.ts` file to centralize status icons and labels for consistency across the plugin.
- Updated connection indicator logic in the settings tab to utilize the new centralized visuals.
- Removed deprecated connection visual methods to streamline the codebase.
- Enhanced error handling in the status bar to reflect the new status visuals structure.
2026-04-25 01:47:37 +05:30
Anish Sarkar
1c18735d38 feat: enhance authentication handling and UI feedback in SurfSense plugin
- Introduced an authentication block mechanism to prevent repeated invalid token submissions.
- Updated notification logic to provide clearer feedback on API token status.
- Refactored status visuals for better clarity and consistency in the user interface.
- Improved connection handling in the sync engine to ensure robust error management.
2026-04-25 01:07:02 +05:30
Anish Sarkar
e84dc87c5b feat(obsidian_plugin): validate binary attachments and enforce MIME type checks 2026-04-25 00:23:17 +05:30
Anish Sarkar
3b9be79d65 chore: update SurfSense plugin identifiers and versioning
- Changed plugin ID from "surfsense" to "surfsense-obsidian" for clarity.
- Updated version from "0.1.1" to "0.1.0" in manifest and versions files.
- Modified author URL to point to the official SurfSense website.
- Adjusted GitHub release workflow to ensure compatibility with Obsidian and BRAT.
2026-04-24 23:43:01 +05:30
Anish Sarkar
39f56a86d6 refactor(DocumentsFilters): update input styling and button positioning for improved UI consistency 2026-04-24 22:56:04 +05:30
Anish Sarkar
08740cad32 feat: enhance UI components and functionality across documents and report panels
- Updated styling for toggle buttons in DocumentsFilters for improved visual feedback.
- Added toolbar actions prop to PdfViewer for customizable actions in the zoom toolbar.
- Introduced download functionality in ReportPanel with a new Download icon.
- Refactored ReportCard to remove word count and display version labels for better clarity.
- Enhanced GenerateResume component to fetch and display version information for resumes.
2026-04-24 22:45:33 +05:30
Anish Sarkar
9b1b9a90c0 Merge remote-tracking branch 'upstream/dev' into feat/obsidian-plugin 2026-04-24 21:34:55 +05:30
Rohan Verma
a0f2851784
Merge pull request #1299 from AnishSarkar22/feat/swappable-filesystem
Some checks failed
Build and Push Docker Images / tag_release (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-24.04-arm, linux/arm64, arm64) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-latest, linux/amd64, amd64) (push) Has been cancelled
Build and Push Docker Images / create_manifest (backend, surfsense-backend) (push) Has been cancelled
Build and Push Docker Images / create_manifest (web, surfsense-web) (push) Has been cancelled
feat: introduce swappable filesystem on desktop & monaco editor to edit local files
2026-04-23 19:38:33 -07:00
Rohan Verma
f3c4daa592
Merge pull request #1298 from tmchow/osc/1245-dedupe-anon-upload
refactor(anon-chat): dedupe upload via anonymousChatApiService
2026-04-23 19:37:23 -07:00
Anish Sarkar
7063d6d1e4 feat(filesystem): improve path normalization in SurfSenseFilesystemMiddleware to handle Windows-style paths and mixed separators 2026-04-24 06:09:22 +05:30
Anish Sarkar
30b55a9baa feat(filesystem): refactor local filesystem handling to use mounts instead of root paths, enhancing mount management and path normalization 2026-04-24 05:59:21 +05:30
Anish Sarkar
a7a758f26e feat(filesystem): add getAgentFilesystemMounts API and integrate with LocalFilesystemBrowser for improved mount management 2026-04-24 05:03:23 +05:30
Anish Sarkar
ce71897286 refactor(hotkeys): simplify hotkey display logic and replace icon representation with text in DesktopShortcutsContent and login page 2026-04-24 04:54:48 +05:30
Anish Sarkar
d1c14160e3 feat(sidebar): enhance DocumentsSidebar with dropdown menu for local folder management and improve UI interactions 2026-04-24 04:42:24 +05:30
Anish Sarkar
b5400caea6 feat(sidebar): implement local filesystem browser and enhance document sidebar with local folder management features 2026-04-24 03:55:24 +05:30
Anish Sarkar
2618205749 refactor(thread): remove unused filesystem settings and related logic from Composer component 2026-04-24 03:52:39 +05:30