Skip to content

Conversation

@AnishSarkar22
Copy link
Contributor

@AnishSarkar22 AnishSarkar22 commented Jan 27, 2026

Description

  • Duplicate detection by Google Drive file ID and generate settings hash for indexing configuration changes. Now any file already indexed before by any connector will be gracefully skipped.
  • Unnecessary ETL calls are not made for duplicate files.
  • Before indexing, current settings is compared with the settings used in the last index. If they're different then force a full re-scan.

Motivation and Context

FIX #

Screenshots

API Changes

  • This PR includes API changes

Change Type

  • Bug fix
  • New feature
  • Performance improvement
  • Refactoring
  • Documentation
  • Dependency/Build system
  • Breaking change
  • Other (specify):

Testing Performed

  • Tested locally
  • Manual/QA verification

Checklist

  • Follows project coding standards and conventions
  • Documentation updated as needed
  • Dependencies updated as needed
  • No lint/build errors or new warnings
  • All relevant tests are passing

High-level PR Summary

This PR fixes issues with the Composio Google Drive connector and makes major improvements to the inbox notification system. The backend now prevents duplicate content indexing by checking content hashes across connectors and returns both indexed and skipped counts. The notification service has been enhanced to display skipped item counts in user-friendly messages. On the frontend, the inbox has been redesigned with a dockable panel mode that can be pinned alongside content, separate data sources for mentions and status tabs with independent pagination, and improved comment navigation with automatic scrolling and highlighting. Additional UI improvements include better mobile responsiveness for audio/podcast components and table overflow handling in markdown.

⏱️ Estimated Review Time: 30-90 minutes

💡 Review Order Suggestion
Order File Path
1 surfsense_backend/app/connectors/composio_google_drive_connector.py
2 surfsense_backend/app/tasks/composio_indexer.py
3 surfsense_backend/app/routes/search_source_connectors_routes.py
4 surfsense_backend/app/services/notification_service.py
5 surfsense_backend/app/routes/notifications_routes.py
6 surfsense_web/lib/apis/notifications-api.service.ts
7 surfsense_web/hooks/use-inbox.ts
8 surfsense_web/components/layout/providers/LayoutDataProvider.tsx
9 surfsense_web/components/layout/ui/shell/LayoutShell.tsx
10 surfsense_web/components/layout/ui/sidebar/InboxSidebar.tsx
11 surfsense_web/components/layout/hooks/SidebarContext.tsx
12 surfsense_web/components/layout/hooks/index.ts
13 surfsense_web/atoms/chat/current-thread.atom.ts
14 surfsense_web/app/dashboard/[search_space_id]/new-chat/[[...chat_id]]/page.tsx
15 surfsense_web/components/assistant-ui/assistant-message.tsx
16 surfsense_web/components/chat-comments/comment-item/comment-item.tsx
17 surfsense_web/components/assistant-ui/connector-popup/config/connector-status-config.json
18 surfsense_web/components/assistant-ui/markdown-text.tsx
19 surfsense_web/components/assistant-ui/thread.tsx
20 surfsense_web/components/tool-ui/audio.tsx
21 surfsense_web/components/tool-ui/generate-podcast.tsx
22 surfsense_web/messages/en.json
23 surfsense_web/messages/zh.json

Need help? Join our Discord

Analyze latest changes

@vercel
Copy link

vercel bot commented Jan 27, 2026

@AnishSarkar22 is attempting to deploy a commit to the Rohan Verma's projects Team on Vercel.

A member of the Team first needs to authorize it.

Copy link

@recurseml recurseml bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review by RecurseML

🔍 Review performed on 09f570c..3af4fd0

✨ No bugs found, your code is sparkling clean

✅ Files analyzed, no issues (23)

surfsense_backend/app/connectors/composio_google_drive_connector.py
surfsense_backend/app/routes/notifications_routes.py
surfsense_backend/app/routes/search_source_connectors_routes.py
surfsense_backend/app/services/notification_service.py
surfsense_backend/app/tasks/composio_indexer.py
surfsense_web/app/dashboard/[search_space_id]/new-chat/[[...chat_id]]/page.tsx
surfsense_web/atoms/chat/current-thread.atom.ts
surfsense_web/components/assistant-ui/assistant-message.tsx
surfsense_web/components/assistant-ui/connector-popup/config/connector-status-config.json
surfsense_web/components/assistant-ui/markdown-text.tsx
surfsense_web/components/assistant-ui/thread.tsx
surfsense_web/components/chat-comments/comment-item/comment-item.tsx
surfsense_web/components/layout/hooks/SidebarContext.tsx
surfsense_web/components/layout/hooks/index.ts
surfsense_web/components/layout/providers/LayoutDataProvider.tsx
surfsense_web/components/layout/ui/shell/LayoutShell.tsx
surfsense_web/components/layout/ui/sidebar/InboxSidebar.tsx
surfsense_web/components/tool-ui/audio.tsx
surfsense_web/components/tool-ui/generate-podcast.tsx
surfsense_web/hooks/use-inbox.ts
surfsense_web/lib/apis/notifications-api.service.ts
surfsense_web/messages/en.json
surfsense_web/messages/zh.json

@AnishSarkar22 AnishSarkar22 marked this pull request as ready for review January 28, 2026 08:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant