Commit graph

3113 commits

Author SHA1 Message Date
DESKTOP-RTLN3BA\$punk
1c9ab207ef chore: bumped version to 0.0.31 2026-07-06 21:43:15 -07:00
DESKTOP-RTLN3BA\$punk
1fd58752a3 feat: update environment variables and enhance scraping capabilities
- Adjusted Google Maps and YouTube micro pricing in the .env.example file for better cost management.
- Introduced new environment variables for captcha solving and stealth browser hardening to improve scraping resilience.
- Removed outdated smoke test for scraper API endpoints to streamline testing.
- Enhanced anonymous chat agent's system prompt to clarify capabilities and suggest account creation for advanced features.
- Updated Reddit fetch logic to prioritize new session handling and improve resilience against IP-related issues.
- Added compacting functionality for scraper results to optimize data handling and presentation.
- Improved workspace and document management tools with clearer descriptions and enhanced functionality.
- Introduced new UI components for agent setup guidance in the web application.
2026-07-06 20:27:36 -07:00
DESKTOP-RTLN3BA\$punk
271a21aee6 feat: docs and ui tweaks 2026-07-06 19:26:35 -07:00
DESKTOP-RTLN3BA\$punk
50f2d095aa feat: api playground, other tweaks 2026-07-06 16:45:04 -07:00
Anish Sarkar
a8c1fb660d feat(rename): complete searchSpace to workspace transition across frontend and backend
- Introduced a comprehensive specification for renaming `searchSpace` to `workspace` in `surfsense_web` and `surfsense_desktop`, ensuring all TypeScript identifiers, React props, and local data structures are updated.
- Implemented migration shims for persisted local state to prevent data loss during the transition.
- Updated observability metrics and IPC channels to reflect the new naming convention.
- Removed legacy `active-search-space` module and replaced it with `active-workspace` to maintain consistency.
- Ensured no behavioral changes or data loss for users during the renaming process.
2026-07-06 15:12:40 +05:30
Anish Sarkar
fd8d1273cd Merge remote-tracking branch 'upstream/ci_mvp' into feat/ci-ui-changes 2026-07-06 13:25:51 +05:30
DESKTOP-RTLN3BA\$punk
035e777287 chore: remove proprietary README file
- Deleted the `README.md` from the `app/proprietary` directory, which outlined licensing and usage rules for proprietary components. This removal reflects a shift in project documentation strategy and simplifies the codebase.
2026-07-05 23:44:31 -07:00
DESKTOP-RTLN3BA\$punk
a64c8205fe feat: implement ensure_publication for zero_publication management
- Added the ensure_publication function to create and verify the zero_publication if it is missing, ensuring idempotency during database initialization.
- Integrated ensure_publication into the create_db_and_tables function to prevent zero-cache crash loops on startup.
- Introduced a self-check script to validate the ensure_publication functionality on a create_all-bootstrapped database.
- Updated various components to reflect the transition from search space to workspace, including adjustments in imports and routing paths.
2026-07-05 23:17:13 -07:00
Anish Sarkar
cda232101f feat(workspace): remove AI file sorting feature and related components 2026-07-06 10:50:20 +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
CREDO23
cb22cc4bfc fix(backend): read page_content on extension document ingestion 2026-07-06 03:17:25 +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
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
CREDO23
b4ad8c5f4c feat(google_search): register scrape capability 2026-07-04 20:49:58 +02:00
CREDO23
fcf1c6e052 feat(google_search): add scrape executor 2026-07-04 20:49:58 +02:00
CREDO23
b568dbefda feat(google_search): add scrape verb schemas 2026-07-04 20:49:58 +02:00
Anish Sarkar
82141d8047 chore: fix docs 2026-07-04 17:45:43 +05:30
Anish Sarkar
0a83bf6192 test(native-connector): cover reddit schemas and url resolver 2026-07-04 17:28:21 +05:30
Anish Sarkar
0ef02c43cc test(native-connector): cover reddit parser mappings 2026-07-04 17:28:17 +05:30
Anish Sarkar
1b1e612e20 test(native-connector): cover reddit fetch resilience 2026-07-04 17:28:13 +05:30
Anish Sarkar
4d950ddcb5 test(native-connector): add reddit post fixture 2026-07-04 17:28:08 +05:30
Anish Sarkar
672f79d620 test(native-connector): add reddit listing fixture 2026-07-04 17:28:02 +05:30
Anish Sarkar
83f52b17b1 test(native-connector): add reddit comment fixture 2026-07-04 17:27:56 +05:30
Anish Sarkar
f14bf1f06d test(native-connector): add reddit scraper test package 2026-07-04 17:27:53 +05:30
Anish Sarkar
975fdad0ef test(native-connector): add live reddit scraper e2e check 2026-07-04 17:27:47 +05:30
Anish Sarkar
3956045221 feat(native-connector): classify reddit scrape urls 2026-07-04 17:27:44 +05:30
Anish Sarkar
eaa8239e36 feat(native-connector): add reddit scraper orchestrator 2026-07-04 17:27:38 +05:30
Anish Sarkar
dd43ab8505 feat(native-connector): add reddit scraper schemas 2026-07-04 17:27:33 +05:30
Anish Sarkar
0745f433ab feat(native-connector): add reddit json parsers 2026-07-04 17:27:22 +05:30
Anish Sarkar
7151465e12 feat(native-connector): add anonymous reddit fetch layer 2026-07-04 17:27:13 +05:30
Anish Sarkar
1115d647cb feat(native-connector): expose reddit scraper public API 2026-07-04 17:26:58 +05:30
Anish Sarkar
54eab56b25 docs(native-connector): document anonymous reddit scraper design 2026-07-04 17:26:12 +05:30
DESKTOP-RTLN3BA\$punk
0d83916cc5 feat(native-connector): added google search results scraper 2026-07-03 20:51:45 -07:00
CREDO23
dd61728111 refactor(subagents): drop automation/monitoring framing from prompts (keep in-chat comparison) 2026-07-03 18:36:48 +02:00
CREDO23
7691e95e36 refactor(capabilities): drop Apify references from web/youtube docstrings 2026-07-03 17:57:13 +02:00