Commit graph

4370 commits

Author SHA1 Message Date
Rohan Verma
1cfedf3d66
Merge pull request #987 from JoeMakuta/fix/improve-settings-form-semantics
fix: improve semantics and structure of settings forms
2026-03-26 12:41:50 -07:00
Rohan Verma
959999f380
Merge pull request #986 from JoeMakuta/chore/chat-page-client-to-server
fix: convert public chat page to server component
2026-03-26 12:41:10 -07:00
Rohan Verma
ccd4ad4552
Merge pull request #985 from JoeMakuta/fix/loading-dashboard-routes
fix : loading dashboard routes
2026-03-26 12:40:52 -07:00
CREDO23
2f08d401fa destroy panel on dismiss, remove activate to preserve selection 2026-03-26 20:58:04 +02:00
Anish Sarkar
7c7f8b216c feat: implement batch indexing for selected Google Drive files
- Introduced `index_google_drive_selected_files` function to enable indexing of multiple user-selected files in parallel, improving efficiency.
- Refactored existing indexing logic to handle batch processing, including error handling for individual file failures.
- Added unit tests for the new batch indexing functionality, ensuring robustness and proper error collection during the indexing process.
2026-03-27 00:17:07 +05:30
Anish Sarkar
2f30e48e90 feat: implement async service locking in Google Drive client
- Introduced an asyncio lock to the GoogleDriveClient to ensure thread-safe access to the service instance.
- Refactored the get_service method to utilize the lock, preventing concurrent attempts to create the service and improving stability in multi-threaded environments.
2026-03-27 00:06:21 +05:30
CREDO23
bc16c0362d check accessibility permission before paste-back 2026-03-26 20:34:37 +02:00
CREDO23
2adffccd92 add paste-back button to assistant action bar 2026-03-26 20:30:19 +02:00
Anish Sarkar
c016962064 feat: implement parallel file downloading and indexing in Google Drive indexer
- Added `_download_files_parallel` function to enable concurrent downloading of files from Google Drive, improving efficiency in document processing.
- Introduced `_download_and_index` function to handle the parallel downloading and indexing phases, streamlining the overall workflow.
- Updated `_index_full_scan` and `_index_with_delta_sync` methods to utilize the new parallel downloading functionality, enhancing performance.
- Added unit tests to validate the new parallel downloading and indexing logic, ensuring robustness and error handling during document processing.
2026-03-26 23:53:26 +05:30
CREDO23
5bb4f5c084 implement replace handler with clipboard swap and paste-back 2026-03-26 20:12:33 +02:00
CREDO23
6e74f462a2 add replaceText type to ElectronAPI 2026-03-26 20:11:15 +02:00
CREDO23
f931b4cf9d expose replaceText in preload 2026-03-26 20:10:10 +02:00
CREDO23
6597649fd1 add REPLACE_TEXT IPC channel 2026-03-26 20:09:04 +02:00
CREDO23
0abbfbfe27 save clipboard contents on shortcut trigger 2026-03-26 20:08:23 +02:00
CREDO23
0f846cd9c4 track frontmost app on shortcut trigger 2026-03-26 20:06:01 +02:00
Anish Sarkar
bd6e335cb3 feat: enhance performance logging in indexing pipeline
- Added performance logging to the `index_batch_parallel` method, capturing metrics for document indexing duration and concurrency.
- Introduced timing measurements for both the overall indexing process and the parallel document gathering phase, improving observability of the indexing workflow.
- Updated logging statements to provide detailed insights into the number of documents processed, indexed, and failed during the indexing operation.
2026-03-26 23:10:49 +05:30
JoeMakuta
0e19d1ff20 feat: Add global error handling 2026-03-26 18:14:20 +02:00
JoeMakuta
1b79729136 feat: Add global error page with PostHog error reporting and reset functionality. 2026-03-26 18:09:26 +02:00
JoeMakuta
5d9751bcd5 fix: enhance GlobalError component with improved UI and error handling 2026-03-26 16:19:43 +02:00
Anish Sarkar
4fd776e7ef feat: implement parallel indexing for Google Calendar and Gmail connectors
- Refactored Google Calendar and Gmail indexers to utilize the new `index_batch_parallel` method for concurrent document indexing, enhancing performance.
- Updated the indexing logic to replace serial processing with parallel execution, allowing for improved efficiency in handling multiple documents.
- Adjusted logging and error handling to accommodate the new parallel processing approach, ensuring robust operation during indexing.
- Enhanced unit tests to validate the functionality of the parallel indexing method and its integration with existing workflows.
2026-03-26 19:34:04 +05:30
Anish Sarkar
e5cb6bfacf feat: implement parallel document indexing in IndexingPipelineService
- Added `index_batch_parallel` method to enable concurrent indexing of documents with bounded concurrency, improving performance and efficiency.
- Refactored existing indexing logic to utilize `asyncio.to_thread` for non-blocking execution of embedding and chunking functions.
- Introduced unit tests to validate the functionality of the new parallel indexing method, ensuring robustness and error handling during document processing.
2026-03-26 19:33:49 +05:30
JoeMakuta
4febeef8ea fix: convert search space navigation to server-side redirection 2026-03-26 15:38:44 +02:00
JoeMakuta
f00f7826ed fix: improve semantics and structure of settings forms in GeneralSettingsManager and PromptConfigManager 2026-03-26 15:11:39 +02:00
JoeMakuta
e4d5c119ef fix: convert public chat page to server component 2026-03-26 13:33:29 +02:00
JoeMakuta
d535851ad5 Add loader to more-pages route 2026-03-26 12:44:46 +02:00
JoeMakuta
80ede9849a Add loading od logs route 2026-03-26 12:19:18 +02:00
JoeMakuta
2cf6866c10 Add loader on new chat route 2026-03-26 11:59:04 +02:00
Rohan Verma
420eed01ea
Merge pull request #984 from LikiosSedo/fix/remove-unnecessary-use-client
fix: remove unnecessary "use client" from pure presentational components
2026-03-26 02:47:45 -07:00
Rohan Verma
6336b0f5fe
Merge pull request #983 from LikiosSedo/fix/user-dropdown-link
fix: replace router.push with Link for static navigation in UserDropdown
2026-03-26 02:47:19 -07:00
likiosliu
3d762ccf62 fix: remove unnecessary "use client" from pure presentational components
These components only render JSX with props and don't use hooks,
event handlers, or browser APIs.
2026-03-26 11:50:39 +08:00
likiosliu
f7640671f3 fix: replace router.push with Link for static navigation in UserDropdown
Enables route prefetching and follows Next.js best practices.
Removes unused useRouter import.
2026-03-26 11:49:45 +08:00
DESKTOP-RTLN3BA\$punk
0583ad5705 Merge commit 'dfe3e7b43f' into dev 2026-03-25 13:29:10 -07:00
Rohan Verma
abe3b7bce7
Merge pull request #973 from LikiosSedo/fix/onboarding-tour-timeout-cleanup
fix: clean up recursive setTimeout calls in onboarding tour
2026-03-25 12:57:52 -07:00
Rohan Verma
8191eaf6cc
Merge pull request #972 from LikiosSedo/fix/document-type-chip-dependency
fix: add missing type dependency in DocumentTypeChip truncation useEffect
2026-03-25 12:57:14 -07:00
Rohan Verma
a913e616e6
Merge pull request #974 from LikiosSedo/fix/remove-authtype-useeffect
fix: remove unnecessary useEffect + useState for AUTH_TYPE constant
2026-03-25 12:55:46 -07:00
Rohan Verma
0a5873cd6a
Merge pull request #976 from LikiosSedo/fix/stale-event-register-retry
fix: avoid stale event reference in register page retry action
2026-03-25 12:52:10 -07:00
Rohan Verma
76822889f1
Merge pull request #971 from LikiosSedo/fix/window-open-noopener
fix: add noopener to window.open call in AnnouncementToastProvider
2026-03-25 12:38:49 -07:00
Rohan Verma
dfe3e7b43f
Merge pull request #977 from tysoncung/fix/918-github-stars-loading-state
fix(ui): show skeleton instead of fake star count while loading
2026-03-25 12:34:41 -07:00
Rohan Verma
228291a19a
Merge pull request #981 from CREDO23/electon-desktop
Feat(desktop): Quick-ask floating panel with global shortcut
2026-03-25 12:33:51 -07:00
CREDO23
6619f9598c Merge remote-tracking branch 'upstream/dev' into electon-desktop
# Conflicts:
#	surfsense_web/components/assistant-ui/thread.tsx
2026-03-25 19:03:19 +02:00
CREDO23
2af4784e63 cross-platform panel: toolbar fallback for Windows/Linux 2026-03-25 18:26:28 +02:00
CREDO23
743172785d escape to hide, clamp panel to screen bounds, disable maximize 2026-03-25 18:00:00 +02:00
Anish Sarkar
bbd5ee8a19 feat: enhance Google Calendar event update functionality
- Introduced helper functions `_is_date_only` and `_build_time_body` to streamline the construction of event start and end times for all-day and timed events.
- Refactored the `create_update_calendar_event_tool` to utilize the new helper functions, improving code readability and maintainability.
- Updated the Google Calendar sync service to ensure proper handling of calendar IDs with a default fallback to "primary".
- Modified the ApprovalCard component to simplify the construction of event update arguments, enhancing clarity and reducing redundancy.
2026-03-25 20:35:23 +05:30
CREDO23
2ae83e8b28 keep panel floating, handle window opens, disable fullscreen 2026-03-25 17:05:03 +02:00
Tyson Cung
b17ce0e64f fix(ui): show skeleton instead of fake star count while loading (#918)
Replace the misleading 10000 placeholder with a Skeleton component
during the loading state of the GitHub stars badge. This prevents
users from thinking 10000 is the actual star count before real data
loads.

Closes #918
2026-03-25 14:43:11 +00:00
CREDO23
7cbb67f0dd scroll to cursor after inserting clipboard text 2026-03-25 16:36:52 +02:00
CREDO23
f3d6ae95e1 fix: pull-based clipboard text and cursor at end with br 2026-03-25 16:22:32 +02:00
likiosliu
e5cabf95e4 fix: clean up recursive setTimeout calls in onboarding tour
- Add cancelled flag to prevent state updates after unmount in
  checkAndStartTour retry loop
- Store retry timer ID in a ref and clear it on cleanup in
  updateTarget effect

Closes #950
2026-03-25 22:09:56 +08:00
likiosliu
97e7e73baf fix: remove unnecessary useEffect + useState for AUTH_TYPE constant
AUTH_TYPE is a static module-level import that never changes.
No need for useState + useEffect; use the constant directly.

Closes #941
2026-03-25 22:09:56 +08:00
likiosliu
e9c51a9fba fix: avoid stale event reference in register page retry action
Extract submission logic into submitForm() so the retry toast
action does not capture the original SyntheticEvent, which may
be recycled by React by the time the user clicks retry.

Closes #945
2026-03-25 22:09:56 +08:00