Commit graph

5226 commits

Author SHA1 Message Date
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
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
CREDO23
d4caae6de9 Move desktop screen capture into modules/screen-capture and align preload build paths and imports. 2026-04-27 20:39:03 +02:00
CREDO23
9cd4daa6b3 Add a single-session desktop window picker and route screenshot assist, region crop, and fullscreen capture through the cached frame. 2026-04-27 20:35:47 +02:00
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
056870464a Accept optional user_images on regenerate and apply them when resolving the model turn. 2026-04-27 19:25:20 +02:00
Anish Sarkar
3fa8c790f5 feat(filesystem): add move and list_tree functionalities to enhance local folder operations 2026-04-27 22:32:37 +05:30
CREDO23
9f5b6205e1 Align macOS accessibility and screen capture usage strings with Screenshot Assist and chat. 2026-04-27 18:50:01 +02:00
CREDO23
36d891d413 Update READMEs in all languages to describe Screenshot Assist instead of Extreme Assist. 2026-04-27 18:49:54 +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
df952ffa28 Add Screenshot Assist to stored shortcuts, default to Shift+Space, and migrate legacy autocomplete. 2026-04-27 18:49:36 +02:00
CREDO23
1c7362d9c6 Handle full-screen capture IPC and reregister Screenshot Assist when its shortcut changes. 2026-04-27 18:49:33 +02:00
CREDO23
f489fee2e8 Register General Assist and Screenshot Assist as two independent global shortcuts. 2026-04-27 18:49:30 +02:00
CREDO23
24a5a06f21 Make General Assist only focus the main window, without region capture. 2026-04-27 18:49:27 +02:00
CREDO23
7145a15149 Add Screenshot Assist shortcut flow: show window, pick region, send data URL to chat. 2026-04-27 18:49:24 +02:00
CREDO23
d212422bf5 Add full-screen display capture alongside the region picker for desktop chat. 2026-04-27 18:49:20 +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
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
CREDO23
18108267d1 Defer clearing pending chat screenshots until send commits 2026-04-24 20:58:39 +02:00
Anish Sarkar
e84dc87c5b feat(obsidian_plugin): validate binary attachments and enforce MIME type checks 2026-04-25 00:23:17 +05:30