Commit graph

7330 commits

Author SHA1 Message Date
Anish Sarkar
7bc47aada0 feat(sidebar): add embedded documents menu for enhanced document management
- Introduced EmbeddedDocumentsMenu component to facilitate document type filtering and folder creation.
- Updated AuthenticatedDocumentsSidebarBase and AnonymousDocumentsSidebar to integrate the new menu.
- Enhanced UI with dropdown functionality for improved user experience in document management.
2026-07-06 11:22:33 +05:30
Anish Sarkar
62c0573b1c feat(sidebar): enhance document management UI and improve layout structure
- Updated the FolderTreeView component to clarify upload instructions.
- Introduced a new renderDocumentTree function in DocumentsSidebar for better organization and readability.
- Refactored the Sidebar component to utilize SidebarSection for improved layout consistency.
- Added contentClassName prop to SidebarSection for flexible styling options.
2026-07-06 11:11:53 +05:30
Anish Sarkar
f11cc3868c feat(assistant-ui): add "Manage Connectors" option to ComposerAction and clean up DocumentsFilters component
- Introduced a new dropdown menu item for managing connectors in the ComposerAction component.
- Removed unused upload button and related props from the DocumentsFilters component for improved clarity and simplicity.
- Updated LayoutDataProvider and RightPanel components to streamline state management and enhance layout consistency.
2026-07-06 11:09:25 +05:30
Anish Sarkar
cda232101f feat(workspace): remove AI file sorting feature and related components 2026-07-06 10:50:20 +05:30
Anish Sarkar
72c2dd0e1b refactor(team): streamline TeamPage function parameters and improve layout constraints
- Simplified the TeamPage function parameter destructuring for better readability.
- Updated LayoutDataProvider to increase maximum width for specific pages, enhancing layout consistency.
- Adjusted ZeroProvider state management to use undefined instead of null for clarity in context handling.
2026-07-06 10:40:49 +05:30
Anish Sarkar
865e22aaa4 refactor(chats): simplify chat filtering logic in AllChatsSidebar 2026-07-06 10:37:53 +05:30
Anish Sarkar
29d4fde2c0 feat(chats): add filter dropdown for active and archived chats in AllChatsSidebar
- Implemented a dropdown menu to filter between active and archived chats.
- Removed the previous tabbed interface for filtering and replaced it with a more intuitive dropdown.
- Updated layout and styling for better user experience.
2026-07-06 10:37:21 +05:30
Anish Sarkar
420ce3e153 feat(chats): implement ChatsPage component and update layout for all chats functionality 2026-07-06 10:26:32 +05:30
Anish Sarkar
248e3aae57 fix(layout): update routing paths for user and search space settings 2026-07-06 10:17:13 +05:30
Anish Sarkar
3719037c16 refactor(workspace): standardize component props to use workspaceId
- Updated component props across multiple files to replace searchSpaceId with workspaceId for consistency.
- Adjusted internal logic to maintain functionality while aligning with the new terminology.
2026-07-06 10:16:21 +05:30
Anish Sarkar
ec617c1c6b refactor(workspace): update terminology from search space to workspace
- Changed references from "search space" to "workspace" in various components for consistency.
- Updated the LayoutDataProvider to handle workspace data more effectively.
- Adjusted UI elements in IconRail and MobileSidebar to reflect the new terminology.
- Modified messages in the localization file to align with the updated terminology.
2026-07-06 10:09:30 +05:30
Anish Sarkar
c379ab1155 feat(workspace): refactor search space handling to workspace 2026-07-06 10:04:17 +05:30
Anish Sarkar
e92b7a34ed feat(search-space): introduce activeWorkspaceIdAtom and refactor user-message component for improved readability
- Added activeWorkspaceIdAtom as a reference to activeSearchSpaceIdAtom.
- Refactored the UserTextPart component in user-message.tsx to simplify icon determination and tooltip logic, enhancing code clarity and maintainability.
2026-07-06 09:35:12 +05:30
Rohan Verma
dec4cd9a0d
Merge pull request #1574 from CREDO23/feature-mcp-server
[Feat] MCP: Add SurfSense MCP server for scrapers, KB, and workspaces
2026-07-05 20:48:15 -07:00
DESKTOP-RTLN3BA\$punk
7af3f535fc feat(pricing): enhance pricing page with SEO metadata and structured data
- Updated the pricing page to include improved SEO metadata, including title, description, and keywords.
- Added structured data using JsonLd for better search engine visibility.
- Revised pricing plan descriptions and features for clarity and accuracy.
- Enhanced link behavior for external pricing links to open in a new tab with appropriate security attributes.
- Updated FAQ sections to reflect changes in credit and billing explanations.
2026-07-05 20:45:23 -07:00
DESKTOP-RTLN3BA\$punk
66a34abe63 feat(skills): add new skills for animation vocabulary, design engineering, and review animations
- Introduced new skills in the skills-lock.json for animation vocabulary, emil design engineering, and review animations, enhancing the skill set available for users.
2026-07-05 20:29:51 -07:00
DESKTOP-RTLN3BA\$punk
fb5b0da816 feat(marketing): CI-first homepage, connector API pages, and hero chat demo
- Homepage rebuilt around competitive-intelligence positioning: connector grid,
  how-it-works, use-case art, compare table, FAQ, and a scripted new-chat hero
  demo (typewriter prompt, agent timeline, streamed answer, /login on send)
- Marketing pages for the Reddit/YouTube/Maps/SERP/Web Crawl scrape APIs at
  /<slug>, a /connectors hub, and a bespoke /mcp-connector page
- Remove stale app/dashboard/[search_space_id] tree that broke the build
  (canonical route is [workspace_id])

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-05 20:28:27 -07:00
CREDO23
faa6d6baea refactor(mcp): rename SURFSENSE_PAT to SURFSENSE_API_KEY 2026-07-06 03:40:36 +02:00
CREDO23
b2bf925f63 test(mcp): cover dropping of unset query params 2026-07-06 03:17:25 +02:00
CREDO23
abbb43632f fix(mcp): omit unset query params from REST requests 2026-07-06 03:17:25 +02:00
CREDO23
cb22cc4bfc fix(backend): read page_content on extension document ingestion 2026-07-06 03:17:25 +02:00
CREDO23
479ca3bbee feat(mcp): add server entrypoint and test suite 2026-07-06 02:29:19 +02:00
CREDO23
34efe3aa44 feat(mcp): add knowledge base tools 2026-07-06 02:29:19 +02:00
CREDO23
39dd413711 feat(mcp): add scraper tools for all platforms 2026-07-06 02:29:19 +02:00
CREDO23
bbb21fb010 feat(mcp): add workspace selector tools 2026-07-06 02:29:19 +02:00
CREDO23
26dbc64b4a feat(mcp): add response rendering helpers 2026-07-06 02:29:19 +02:00
CREDO23
439796ea15 feat(mcp): add workspace resolution context 2026-07-06 02:29:19 +02:00
CREDO23
a524fc77cc feat(mcp): add authenticated REST client 2026-07-06 02:29:19 +02:00
CREDO23
eda0249aec feat(mcp): add environment-based configuration 2026-07-06 02:29:19 +02:00
CREDO23
23bff86d10 chore(mcp): scaffold surfsense-mcp package 2026-07-06 02:29:19 +02:00
CREDO23
800c0e55fd feat(backend): expose semantic document search endpoint 2026-07-06 02:29:19 +02:00
DESKTOP-RTLN3BA\$punk
80927a2872 feat(billing): meter platform scrapers per item; consolidate web scraping onto web.crawl
Add per-item, per-platform billing for the platform-native connectors (Reddit, Google Search, Google Maps places/reviews, YouTube videos/comments) through the capability gate/charge seam. Rates are config-driven with a shared wallet-credit module (wallet_credit) and a dedicated PlatformScrapeCreditService; agent and REST capability runs now record cost_micros. Google Maps scrape dual-meters places and attached reviews.

Remove the main-agent scrape_webpage tool now that the web.crawl capability covers single-page (maxCrawlDepth=0) and site crawling. The main agent now reaches crawling via task(web_crawler, ...). Update prompts, tool catalog, receipts, skills, proprietary docs, and tests; drop the obsolete chat-turn crawl fold path.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-05 17:08:01 -07:00
Rohan Verma
b8285a0b72
Merge pull request #1573 from AnishSarkar22/feat/ci-ui-changes
feat: add frontend skill
2026-07-05 15:28:14 -07:00
Anish Sarkar
4ca66d8f93 refactor(frontend-design): enhance guidance for UI design with expanded principles 2026-07-06 03:52:30 +05:30
Anish Sarkar
bdeeeb7e88 feat(frontend-design): add comprehensive guidance for distinctive visual design 2026-07-06 03:30:17 +05:30
DESKTOP-RTLN3BA\$punk
fd45e76f70 feat(agents): sharpen lead-list quality and Maps/Search routing boundary
Learned from lead-generation e2e runs (medical EMR, AI study app):

- routing.md: requested-N lists must be distinct entities that fit the
  asked segment - branches/locations of one parent count once, parent
  website domain is an ownership signal, fill shortfalls by widening
  discovery instead of padding; place-shaped discovery routes to the
  Maps specialist, open-web/enrichment to Search.
- google_maps prompt: exclusion criteria are strict (a satellite of an
  excluded chain is still that chain); shared parent domains mean one
  organization judged against the parent.
- google_search prompt: pure place-discovery tasks return blocked with
  a next_step pointing to the Maps specialist.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-05 04:37:24 -07:00
DESKTOP-RTLN3BA\$punk
c600a2920b feat(crawler): harden web crawler and agent tooling for real-world research tasks
Crawler engine: escalate thin JS-shell pages past static fetch, repair
currency-lossy extractions, emit categorized link records with anchor
provenance, and decode percent-encoded mailto:/tel: contacts; site crawls
reuse the connector ladder via Scrapling's spider engine with URL pattern
filters. Agent layer: read_run gains char_offset paging, search_run gains
match excerpts, new export_run turns stored runs into CSV workspace docs;
reddit search fair-shares the item budget across queries and dedupes
cross-query hits. Subagent prompts and routing teach crawl-after-search,
full-run coverage before summarizing, and executing own-tool next steps
instead of returning partial.
2026-07-05 03:51:16 -07:00
DESKTOP-RTLN3BA\$punk
b6e378b070 feat(runs): introduce Run and ToolOutputSpill models for logging scraper invocations
- Added `Run` model to track scraper invocations, including metadata such as status, input, and output.
- Implemented `ToolOutputSpill` model to store context-editing spills separately from user-facing logs.
- Updated middleware to handle spill placeholders and integrate with the new models.
- Enhanced REST API to record runs and expose run history through new endpoints.
- Adjusted tests to validate the new run logging functionality and ensure proper integration with existing capabilities.
2026-07-04 22:55:55 -07:00
DESKTOP-RTLN3BA\$punk
ab747e7a49 feat(agents): consolidate connectors under mcp_discovery; route web search through google_search
MCP consolidation:
- Route all MCP-capable connectors (Slack, Jira, Linear, ClickUp, Airtable,
  Notion, Confluence, interim Gmail/Calendar, custom MCP) through a single
  `mcp_discovery` subagent. Drive/OneDrive/Dropbox stay native to enrich the KB.
- Deprecate Discord/Teams/Luma: no viable official MCP server.

Google-only web search:
- Remove the main-agent `web_search` tool and the SearXNG platform service;
  all public web search now flows through the `google_search` subagent via task().
- Deprecate the Tavily/SearXNG/Linkup/Baidu search connectors (HTTP 410 on
  create, "Deprecated" badge); guide heavy users to the custom MCP connector.
- Remove web search from anonymous chat (pure Q&A).
- Tear SearXNG out of docker compose + install scripts; drop tavily-python
  and linkup-sdk deps and their config/env vars.

Fix:
- metrics._package_version() now swallows any metadata lookup failure. A
  malformed editable-install distribution with no `Version` field raised
  KeyError deep in importlib.metadata, and since it runs on every
  record_subagent_invoke_duration call it was crashing every task()
  delegation. Verified end-to-end against live GPT-5.4.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 21:06:04 -07:00
DESKTOP-RTLN3BA\$punk
ff2e5f390f feat(reddit): implement Reddit scraping subagent and associated capabilities
- Added a new `reddit` subagent to scrape structured data from Reddit posts, comments, and users.
- Introduced `reddit.scrape` capability for fetching data using URLs and search queries.
- Implemented tools for scraping and parsing Reddit data, including handling pagination and rate limits.
- Created input/output models for the Reddit scraper to define request and response structures.
- Added documentation for the new Reddit scraping functionality and its usage.
- Integrated the Reddit subagent into the existing multi-agent chat framework.
2026-07-04 17:31:11 -07:00
DESKTOP-RTLN3BA\$punk
701f888b9e feat(proxy): refactor proxy configuration and add DataImpulse provider
- Updated proxy configuration in `.env.example` files to use `PROXY_URL` and `PROXY_URLS` instead of `CUSTOM_PROXY_URL` and `CUSTOM_PROXY_URLS`.
- Introduced `DataImpulseProvider` for proxy management, replacing the deprecated `AnonymousProxiesProvider`.
- Enhanced documentation to reflect changes in proxy setup and usage.
- Adjusted related code in the proxy registry and configuration files to support the new provider structure.
2026-07-04 17:18:40 -07:00
Rohan Verma
203215adc0
Merge pull request #1572 from CREDO23/add-google-search-verb
[Feat] CI : Add google_search.scrape verb + subagent
2026-07-04 15:41:39 -07:00
Rohan Verma
07ace7ff7d
Merge pull request #1571 from AnishSarkar22/feat/reddit-scraping
feat(scrapers): add anonymous Reddit scraper
2026-07-04 15:37:53 -07:00
CREDO23
371e33e02c feat(google_search): map subagent connector requirement 2026-07-04 20:49:59 +02:00
CREDO23
16db4e9e4a feat(google_search): register subagent builder 2026-07-04 20:49:59 +02:00
CREDO23
0d22b20023 feat(google_search): add subagent system prompt 2026-07-04 20:49:59 +02:00
CREDO23
725e21d262 feat(google_search): add subagent description 2026-07-04 20:49:59 +02:00
CREDO23
21bd1aec0e feat(google_search): add subagent builder 2026-07-04 20:49:59 +02:00
CREDO23
87869d0979 feat(google_search): add subagent tools 2026-07-04 20:49:58 +02:00
CREDO23
a6332e23e9 feat(google_search): wire capability into REST door 2026-07-04 20:49:58 +02:00