Commit graph

2700 commits

Author SHA1 Message Date
API Test Bot
f21e1a5b58 docs: create epics and user stories for SurfSense 2.0
Created 4 comprehensive epics with 15 user stories total:

Epic 1: Extension Core Infrastructure (Phase 1) -  COMPLETED
- 6 stories covering side panel, chat, context detection, DexScreener integration

Epic 2: Smart Monitoring & Alerts (Phase 2) - 📋 PLANNED
- 3 stories covering price alerts, whale tracking, rug pull detection

Epic 3: Trading Intelligence (Phase 3) - 📋 PLANNED
- 3 stories covering token analysis, entry/exit suggestions, portfolio tracking

Epic 4: Content Creation & Productivity (Phase 4) - 📋 PLANNED
- 3 stories covering chart capture, AI thread generation, productivity features

Each story includes:
- User story format (As a... I want... So that...)
- Detailed acceptance criteria
- Technical implementation notes
- UI mockups and code examples
- API endpoints needed
- Files to create/modify
- Testing strategy

Total timeline: 8 weeks (2 weeks per phase)
2026-02-01 21:43:15 +07:00
API Test Bot
a052b01a68 docs: update PRD with comprehensive extension features and UX integration strategy
- Added UX strategy: Extension for Quick Actions, Frontend for Management
- Organized features into 4 phases (Phase 1 completed)
- Added 14 new extension features (FR-EXT-07 to FR-EXT-17):
  * Smart Monitoring: Price alerts, whale tracking, rug pull detection
  * Trading Intelligence: Token analysis, entry/exit suggestions, portfolio tracker
  * Content Creation: Chart screenshots, AI thread generator
  * Productivity: Quick actions, notifications, keyboard shortcuts
- Added Feature Responsibility Matrix showing Extension vs Frontend roles
- Added Settings Sync strategy (FR-EXT-06) with deep links to frontend
- Documented state sync architecture: Extension ↔ Backend API ↔ Frontend
2026-02-01 21:32:06 +07:00
API Test Bot
fd9eddf7fa test: Add Vitest configuration and initial tests for the DexScreener connect form. 2026-02-01 15:05:19 +07:00
API Test Bot
828d7d695a feat: Add DexScreener RAG retrieval test and token validation, configure Serena project settings, and update admin guide with default admin account details. 2026-02-01 14:24:01 +07:00
API Test Bot
4f8faad5da feat(frontend): Add DexScreener connector UI components
- Added DexScreener connect form and config components
- Added connector icon, benefits, and documentation
- Updated connector enums and types
- Added dexscreener.mdx documentation

This completes the DexScreener integration UI for the frontend.
2026-02-01 14:20:48 +07:00
API Test Bot
b5d0413459 fix(rag): Add DEXSCREENER_CONNECTOR to searchable mapping
- Added DEXSCREENER_CONNECTOR to _CONNECTOR_TYPE_TO_SEARCHABLE in chat_deepagent.py
- This fixes LLM's inability to search DexScreener data despite it being indexed
- Root cause: connector was enabled in DB but missing from mapping, causing it to be filtered out
- Verified: LLM now successfully retrieves WETH price (~$2,442) with DexScreener citations

Related files:
- chat_deepagent.py: Added connector mapping
- knowledge_base.py: Added debug logging for DexScreener search
- connector_service.py: Fixed metadata field names (base_symbol, quote_symbol, dex)
- 85_add_dexscreener_connector.py: Migration for connector type
2026-02-01 14:20:34 +07:00
API Test Bot
d654556eb8 fix(backend): Add DexScreener to periodic indexing schedule checker
- Import DexScreenerIndexer in schedule_checker_task.py
- Enable periodic sync support for DexScreener connector
- Ensures automated token data updates work correctly
2026-01-31 17:27:38 +07:00
API Test Bot
44dc7904f3 docs: Add BMAD stories and implementation plan for DexScreener
- Add Story 1.1: DexScreener Connector Backend (complete)
- Add Story 1.2: DexScreener Connector Frontend UI (ready for dev)
- Add implementation plan with architecture decisions
- Include assets and documentation structure
- Stories follow BMAD methodology for AI-driven development
2026-01-31 17:27:21 +07:00
API Test Bot
8dd41adae4 test(backend): Add pytest testing infrastructure
- Add pytest, pytest-asyncio, pytest-mock to dev dependencies
- Configure pytest in pyproject.toml with async support
- Create tests directory structure with conftest.py
- Set up unit test framework for connector testing
- Enable automated testing for backend components
2026-01-31 17:27:18 +07:00
API Test Bot
9e27081862 refactor(backend): Extract Airtable token refresh to shared utility
- Create app/utils/airtable_token_utils.py for token refresh logic
- Update all connectors to use centralized token refresh function
- Affected connectors: airtable, clickup, confluence, discord, jira, notion, slack, teams
- Improves code reusability and maintainability
- No functional changes, pure refactoring
2026-01-31 17:27:14 +07:00
API Test Bot
9f66d5ca25 feat(backend): Implement DexScreener connector (Story 1.1)
Core Implementation:
- Add DexScreenerConnector class with public API integration
- Implement token pair data fetching and indexing
- Add API routes: add, delete, test endpoints
- Register connector in task indexers and Celery tasks
- Add DEXSCREENER_CONNECTOR enum to database models

Features:
- Support up to 50 tokens per connector
- Track prices, volume, liquidity across multiple DEXs
- EVM and Solana address validation
- Periodic sync support
- No API key required (public DexScreener API)

API Endpoints:
- POST /api/v1/connectors/dexscreener/add
- DELETE /api/v1/connectors/dexscreener
- GET /api/v1/connectors/dexscreener/test

All endpoints require JWT authentication 
Integration tests passing 
Ready for production deployment 
2026-01-31 17:25:48 +07:00
API Test Bot
8fec08edcd feat(backend): Add DexScreener connector database migration
- Add Alembic migration 85 to add DEXSCREENER_CONNECTOR enum value
- Migration uses IF NOT EXISTS for safe production deployment
- Add integration test script for DexScreener API endpoints
- Verify all endpoints require JWT authentication
- Confirm migration successfully applied (DB version 85)

Story 1.1 Backend: Complete 
- All API endpoints functional (add, delete, test)
- Database schema synchronized
- Integration tests passing
- Ready for Story 1.2 (Frontend UI)
2026-01-31 17:25:31 +07:00
API Test Bot
524d9ab390 feat: Add comprehensive BMAD agent, workflow, and documentation framework. 2026-01-31 14:48:53 +07:00
API Test Bot
328f7dfecf Create docker-compose.dev.yml 2026-01-31 06:45:15 +07:00
Rohan Verma
dd0ea1b0ed
Merge pull request #754 from MODSetter/dev
hotpatch(cloud): add llm load balancing
2026-01-29 15:43:22 -08:00
DESKTOP-RTLN3BA\$punk
6fb656fd8f hotpatch(cloud): add llm load balancing 2026-01-29 15:28:31 -08:00
Rohan Verma
5d5f9d3bfb
Merge pull request #752 from MODSetter/dev
chore: various QOL Updates
2026-01-28 22:25:18 -08:00
DESKTOP-RTLN3BA\$punk
d39bf3510f chore: linting 2026-01-28 22:20:23 -08:00
DESKTOP-RTLN3BA\$punk
8e6826dd66 Merge branch 'dev' of https://github.com/MODSetter/SurfSense into dev 2026-01-28 22:15:53 -08:00
DESKTOP-RTLN3BA\$punk
70fcb2d055 chore: linting 2026-01-28 22:15:43 -08:00
Rohan Verma
5cbaca7701
Merge pull request #750 from AnishSarkar22/fix/notion-connector
fix: notion connector issues
2026-01-28 22:08:29 -08:00
DESKTOP-RTLN3BA\$punk
16b839138d feat(backend): add new incentive task type for Reddit follow
Introduce a new incentive task type, REDDIT_FOLLOW, to encourage users to join the SurfSense community on Reddit. This includes a title, description, pages reward, and action URL for the task.
2026-01-28 21:58:49 -08:00
Anish Sarkar
076270ab86 fix(backend): enhance indexing success logging to include informational warnings about API limitations 2026-01-29 10:54:15 +05:30
Anish Sarkar
1658724fb2 Merge remote-tracking branch 'upstream/dev' into fix/notion-connector 2026-01-29 10:45:31 +05:30
Rohan Verma
0b65c3a98c
Merge pull request #751 from CREDO23/fix-various-issues
[FIX] Connector indexing, chat cloning, and Gmail date handling fixes
2026-01-28 16:40:49 -08:00
Rohan Verma
f774aa4af0
Merge pull request #749 from AnishSarkar22/fix/drive-connector
fix: composio drive connector
2026-01-28 16:39:40 -08:00
CREDO23
949ec949f6 style(backend): run ruff format on 10 files 2026-01-28 22:20:02 +02:00
CREDO23
20b8a17254 fix(backend): handle non-string elements in webcrawler URL list
Add isinstance check to prevent AttributeError when INITIAL_URLS list
contains non-string elements (None, int, dict) from malformed config data.
2026-01-28 22:16:58 +02:00
Anish Sarkar
59d5bf9aa5 fix(backend): Add error handling for invalid pagination cursor in NotionHistoryConnector to ensure graceful continuation of data fetching 2026-01-28 23:18:10 +05:30
CREDO23
ecb5572e69 fix(backend): remove inaccessible podcast references when cloning chats
When a podcast can't be cloned (not READY), remove the podcast_id from
the cloned message to prevent 403 errors when users try to access it.
2026-01-28 19:25:15 +02:00
Anish Sarkar
c6d25ed7d8 feat(backend): Add legacy token handling in NotionHistoryConnector and log warnings for legacy usage in indexing 2026-01-28 22:53:34 +05:30
CREDO23
22943972c2 fix(frontend): prevent infinite retry loop when chat clone fails
Add cloneError state to track clone failures and prevent the useEffect
from continuously retrying when completeClone() fails.
2026-01-28 19:15:25 +02:00
CREDO23
b20fbaca4b fix: skip webcrawler indexing gracefully when no URLs configured 2026-01-28 17:54:46 +02:00
Anish Sarkar
b3f553802c fix(backend): Update Notion page indexing log message to clarify sharing requirements and adjust return value for no pages found 2026-01-28 18:58:57 +05:30
CREDO23
4f7ed8439f fix(backend): Use calculate_date_range for Gmail indexer
Gmail indexer was using a hardcoded 30-day default instead of respecting
last_indexed_at like other connectors. Now uses calculate_date_range()
for consistent behavior (last_indexed_at → now, or 365 days for first run).
2026-01-28 15:20:07 +02:00
Anish Sarkar
33316fa6db feat(backend): Add retry logic for Notion API calls with user notifications on rate limits and errors 2026-01-28 18:36:42 +05:30
CREDO23
a9d393327d fix(backend): Add duplicate content_hash check to connector indexers
Prevent UniqueViolationError on ix_documents_content_hash constraint by
adding check_duplicate_document_by_hash() before inserting new documents
in 15 connector indexers that were missing this check.

Affected: clickup, luma, linear, jira, google_gmail, confluence,
bookstack, github, webcrawler, teams, slack, notion, discord,
airtable, obsidian indexers.
2026-01-28 14:51:54 +02:00
Anish Sarkar
41ebe162b0 feat(backend): Implement handling of unsupported Notion block types and track skipped content, add documentation for it 2026-01-28 17:43:45 +05:30
Anish Sarkar
b10be762b6 Merge remote-tracking branch 'upstream/dev' into fix/drive-connector 2026-01-28 14:18:11 +05:30
DESKTOP-RTLN3BA\$punk
5eca07f24f chore: updated lock file 2026-01-27 23:14:04 -08:00
Rohan Verma
8b0b4a2c4d
Merge pull request #747 from AnishSarkar22/feat/inbox
feat: Move inbox to a new area
2026-01-27 21:23:56 -08:00
Anish Sarkar
614761bb17 Merge remote-tracking branch 'upstream/dev' into feat/inbox 2026-01-28 09:26:04 +05:30
Anish Sarkar
c125c9e87f chore: ran backend linting 2026-01-28 09:10:37 +05:30
Anish Sarkar
aab547264e feat(connector): implement duplicate detection by Google Drive file ID and generate settings hash for indexing configuration changes 2026-01-28 09:09:58 +05:30
DESKTOP-RTLN3BA\$punk
b598cbeac3 feat(backend): Enhance LlamaCloud upload resilience with dynamic timeout calculations and increased retry settings 2026-01-27 17:50:45 -08:00
Rohan Verma
114ac59c0e
Merge pull request #748 from elammertsma/dev
feat: Implemented hero A/B test, added Contact Sales button
2026-01-27 16:03:02 -08:00
Rohan Verma
752a51d3fd
Merge pull request #745 from CREDO23/sur-106-feat-public-chats
[Feature] Public Chat Sharing and Cloning
2026-01-27 16:01:08 -08:00
Anish Sarkar
3af4fd0533 feat(indexing): add content hash check to prevent duplicate indexing and update return values for indexing functions 2026-01-28 03:55:25 +05:30
CREDO23
3c835bdf7e fix(frontend): remove clone notifications, allow public podcast access 2026-01-28 00:17:54 +02:00
CREDO23
9a4da10b12 feat(frontend): two-phase cloning with loading state 2026-01-28 00:17:44 +02:00