- Implemented user-level sync for notifications to reduce duplicate subscriptions and improve memory efficiency.
- Separated user-level sync from search-space-level queries for smoother transitions between search spaces.
- Updated error handling and logging for sync operations.
- Improved cleanup logic for subscriptions to prevent memory leaks.
- Added cleanup logic for other users' databases on login to ensure data isolation.
- Introduced best-effort cleanup on logout to remove stale databases.
- Updated Electric client initialization to support user-specific databases.
- Refactored hooks to utilize the Electric context for better state management and prevent race conditions.
- Enhanced error handling and logging for Electric SQL operations.
- Created a new notifications table with necessary fields and indexes.
- Set up Electric SQL replication for notifications, search_source_connectors, and documents tables.
- Implemented idempotent checks for user and publication creation in the migration script.
- Introduced a new notifications table with relevant fields and indexes.
- Configured Electric SQL replication for the notifications, search_source_connectors, and documents tables.
- Centralized Electric SQL user credentials in the migration script for better management.
- Ensured idempotency in the migration process for creating users and publications.
- Added centralized configuration for Electric SQL user credentials in env.py.
- Updated migration script to utilize these credentials for creating and granting permissions to the Electric SQL user.
- Enhanced error handling in the indexing process to differentiate between actual failures and cases where no new documents are processed.
- Updated notification messages to reflect the status accurately, including a message for when no new items are synced.
- Standardized return values across various indexer tasks to return `None` on success, simplifying logging and error management.