Commit graph

5259 commits

Author SHA1 Message Date
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
CREDO23
ba25c68c0d Restore default desktop shortcuts and Linux pack scripts 2026-04-24 20:43:04 +02:00
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
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
CREDO23
3f97b77ab6 Support multimodal chat with pending screen images on web 2026-04-24 19:17:43 +02:00
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
CREDO23
a7d3e4ff18 Extend desktop package scripts and local dependency compose 2026-04-24 19:15:02 +02:00
CREDO23
b0810b4d47 Wire General Assist and screen capture through Electron IPC 2026-04-24 19:14:37 +02:00
CREDO23
7097f542fb Add native screen region capture modules and preload build 2026-04-24 19:13:14 +02:00
CREDO23
6c178a0271 Remove desktop autocomplete native window modules 2026-04-24 18:49:51 +02:00
CREDO23
dfa6c0423d Tidy alembic migration version scripts 2026-04-24 18:49:22 +02:00
CREDO23
d1080b1298 Extend new chat streaming for multimodal user turns 2026-04-24 18:48:02 +02:00
CREDO23
c9477d13fc Remove backend vision autocomplete stack 2026-04-24 18:45:38 +02:00
Anish Sarkar
9b1b9a90c0 Merge remote-tracking branch 'upstream/dev' into feat/obsidian-plugin 2026-04-24 21:34:55 +05:30
CREDO23
fa5d6369fb Merge branch 'dev' of https://github.com/MODSetter/SurfSense into dev 2026-04-24 10:56:10 +02:00
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