Commit graph

269 commits

Author SHA1 Message Date
CREDO23
49da7a57df Merge remote-tracking branch 'upstream/dev' into improvement-agent-speed
Resolves: surfsense_backend/app/agents/new_chat/middleware/memory_injection.py
- Took both imports: upstream moved MEMORY_HARD_LIMIT/SOFT_LIMIT to
  app.services.memory; kept our perf-logger import for timing.

Pulls in upstream changes:
- Memory document feature (services/memory refactor, removal of
  app.agents.new_chat.memory_extraction and background extraction in
  stream_new_chat — agent now drives memory via update_memory tool).
- BACKEND_URL env refactor across web tool-ui/editor/chat/dashboard/lib.
- GitHub Actions backend test workflow + pre-commit biome bump.
- Token-display polish in MessageInfoDropdown; save_memory no-update
  sentinel.

Verified: 1723 unit tests pass, ruff clean. No semantic regression in
stream_new_chat (their memory-extraction deletion and our preflight
removal touch different functions).
2026-05-20 21:23:48 +02:00
CREDO23
d5ee8cc4cd Merge remote-tracking branch 'upstream/dev' into improvement-agent-speed 2026-05-20 19:22:49 +02:00
CREDO23
704d1bf18f refactor(mcp): per-connector cache refresh on lifecycle events
Collapse the invalidate + warmup pair into a single
refresh_mcp_tools_cache_for_connector(connector_id, search_space_id)
helper and scope live discovery to the one connector that changed
instead of the whole search space.

- new mcp_tool.discover_single_mcp_connector: load one connector,
  refresh OAuth if needed, force live MCP discovery so its cached_tools
  row is rewritten; returned wrappers are discarded since the in-process
  LRU is rebuilt lazily on the next user query
- mcp_tools_cache.refresh_mcp_tools_cache_for_connector: synchronously
  evicts the per-space LRU (LRU keys cannot scope finer) and schedules
  the per-connector prefetch via loop.create_task
- routes (OAuth callback, MCP POST, MCP PUT) collapse their two
  back-to-back calls into a single refresh call; DELETE handlers keep
  using bare invalidate_mcp_tools_cache (nothing to prefetch)

No new automated tests: the new functions are I/O glue (DB + network)
where mocked unit tests would test implementation rather than behavior.
The existing 9 unit tests for the cached_tools data shape are unchanged.
2026-05-20 17:43:27 +02:00
CREDO23
c0aa4261ac perf(mcp): persist list_tools discovery in connector.config.cached_tools
Skip the ~1-3s MCP initialize + list_tools handshake on every cache miss
by reading tool definitions from the connector row we already load. Lazy
populate on first miss, self-heal on corrupt cache, zero schema migration.
2026-05-20 16:11:07 +02:00
Anish Sarkar
ceedd02353 refactor: extract shared memory service 2026-05-20 02:01:36 +05:30
CREDO23
9bfba34e8e perf(mcp): add per-call, discovery, and oauth-refresh timing logs 2026-05-19 21:29:56 +02:00
Anish Sarkar
f65bc81509 Merge remote-tracking branch 'upstream/dev' into feat/ui-revamp 2026-05-16 19:26:36 +05:30
CREDO23
a97d1548a6 multi_agent_chat/permissions: surface MCP tool metadata into ask interrupts
The FE permission card needs mcp_connector_id, mcp_server, and
tool_description in the interrupt context to render "Always Allow"
against the right connected account. Thread the tool through the
ask pipeline:

- pack_subagent → build_permission_mw(tools=...) → PermissionMiddleware
  (tools_by_name) → request_permission_decision(tool=...) →
  build_permission_ask_payload(tool=...) projects card fields out of
  BaseTool.

- mcp_tool.py: stdio path now stashes mcp_connector_id in metadata for
  parity with the HTTP path.
2026-05-15 11:28:06 +02:00
Anish Sarkar
01d7379914 refactor: add public URL handling for SurfSense documents across various components and schemas 2026-05-15 02:05:11 +05:30
Rohan Verma
ce6d9233bc
Merge pull request #1335 from AnishSarkar22/fix/memory-extraction
refactor(memory): streamline memory extraction
2026-05-04 17:26:27 -07:00
CREDO23
5119915f4f Merge upstream/dev into feature/multi-agent 2026-05-05 01:44:46 +02:00
CREDO23
277bd50f37 Harden HITL for multi-step tasks: bypass internal MCP gate, full-args dedup, and decision-envelope normalization. 2026-05-04 19:25:27 +02:00
Anish Sarkar
e38e20b484 fix: handle empty response in forced rewrite function
- Updated the `_forced_rewrite` function to strip whitespace from the extracted text and added a warning log if the response is empty, preventing potential issues with empty rewrites.
2026-05-04 12:18:09 +05:30
Anish Sarkar
b981b51ab1 Merge remote-tracking branch 'upstream/dev' into fix/memory-extraction 2026-05-04 12:03:44 +05:30
DESKTOP-RTLN3BA\$punk
a34f1fb25c feat: implement agent caches and fix invalid prompt cache configs
Some checks are pending
Build and Push Docker Images / tag_release (push) Waiting to run
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-24.04-arm, linux/arm64, arm64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-latest, linux/amd64, amd64) (push) Blocked by required conditions
Build and Push Docker Images / create_manifest (backend, surfsense-backend) (push) Blocked by required conditions
Build and Push Docker Images / create_manifest (web, surfsense-web) (push) Blocked by required conditions
- Added a new function `_warm_agent_jit_caches` to pre-warm agent caches at startup, reducing cold invocation costs.
- Updated the `SurfSenseContextSchema` to include per-invocation fields for better state management during agent execution.
- Introduced caching mechanisms in various tools to ensure fresh database sessions are used, improving performance and reliability.
- Enhanced middleware to support new context features and improve error handling during connector and document type discovery.
2026-05-03 06:03:40 -07:00
DESKTOP-RTLN3BA\$punk
cea8618aed fix: fixed composio issues 2026-05-02 21:16:03 -07:00
DESKTOP-RTLN3BA\$punk
47b2994ec7 feat: fixed vision/image provider specific errors and fixed podcast/video streaming
Some checks are pending
Build and Push Docker Images / tag_release (push) Waiting to run
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-24.04-arm, linux/arm64, arm64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-latest, linux/amd64, amd64) (push) Blocked by required conditions
Build and Push Docker Images / create_manifest (backend, surfsense-backend) (push) Blocked by required conditions
Build and Push Docker Images / create_manifest (web, surfsense-web) (push) Blocked by required conditions
2026-05-02 19:18:53 -07:00
Anish Sarkar
9975e085aa refactor(memory): streamline memory extraction by utilizing extract_text_content utility 2026-05-02 16:10:30 +05:30
DESKTOP-RTLN3BA\$punk
c110f5b955 feat: improved agent streaming 2026-04-29 07:20:31 -07:00
DESKTOP-RTLN3BA\$punk
f9b5367754 chore: cleaned comments slop 2026-04-28 23:52:37 -07:00
DESKTOP-RTLN3BA\$punk
ca9bbee06d chore: linting 2026-04-28 21:37:51 -07:00
DESKTOP-RTLN3BA\$punk
31a372bb84 feat: updated agent harness 2026-04-28 09:22:19 -07:00
DESKTOP-RTLN3BA\$punk
05ca4c0b9f feat: updated file management for main agent 2026-04-28 04:32:52 -07:00
DESKTOP-RTLN3BA\$punk
8d50f90060 chore: linting
Some checks failed
Obsidian Plugin Lint / lint (push) Has been cancelled
2026-04-27 14:04:50 -07:00
CREDO23
45b72de481 fix: robust generic MCP tool routing, retry, and empty-schema handling 2026-04-23 11:30:58 +02:00
CREDO23
cf7c14cf44 fix: mark connector auth_expired on token decryption failure 2026-04-23 09:27:03 +02:00
CREDO23
0b3551bd06 perf: parallelize MCP connector discovery with per-connector timeout 2026-04-23 08:40:06 +02:00
CREDO23
e3172dc282 fix: reactive 401 recovery for live MCP connectors and unified reauth endpoints 2026-04-23 08:27:11 +02:00
Rohan Verma
7245ab4046
Merge pull request #1294 from CREDO23/feature/mcp-migration
Some checks are pending
Build and Push Docker Images / tag_release (push) Waiting to run
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-24.04-arm, linux/arm64, arm64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-latest, linux/amd64, amd64) (push) Blocked by required conditions
Build and Push Docker Images / create_manifest (backend, surfsense-backend) (push) Blocked by required conditions
Build and Push Docker Images / create_manifest (web, surfsense-web) (push) Blocked by required conditions
[FEAT] Live connector tools via MCP OAuth and native APIs
2026-04-22 21:00:28 -07:00
CREDO23
b6c506abef fix: treat all Gmail/Calendar as live connectors, hide indexing UI 2026-04-22 22:51:28 +02:00
CREDO23
0eae96bffb fix: harden MCP OAuth and connector edge cases 2026-04-22 20:54:42 +02:00
CREDO23
01153b0d7e fix: cache TokenEncryption, clear stale router caches on re-init 2026-04-22 20:24:45 +02:00
CREDO23
a1d03da896 fix: encrypt tokens at rest, invalidate cache on refresh, clean up logging 2026-04-22 20:08:19 +02:00
CREDO23
9452d1090a replace broken native Jira/Linear tools with MCP equivalents 2026-04-22 18:57:49 +02:00
CREDO23
f2d9e67ac2 add multi-account MCP tool disambiguation with prefix namespacing 2026-04-22 18:57:43 +02:00
CREDO23
9eb54bc4af add account metadata discovery and connected_accounts tool 2026-04-22 18:57:26 +02:00
Anish Sarkar
8ca4465a50 fix: adjust spacing in resume template for highlights 2026-04-22 19:24:30 +05:30
Anish Sarkar
8b67d5416e docs: update resume template guidelines for skills sections 2026-04-22 18:46:55 +05:30
Anish Sarkar
144e513068 feat: implement resume page limit functionality 2026-04-22 18:46:17 +05:30
CREDO23
ea3508cb25 use native connector types for MCP OAuth, restore original UI 2026-04-22 08:57:28 +02:00
CREDO23
940889c291 fix open redirect, error leaking, unused imports, state validation 2026-04-22 08:42:38 +02:00
CREDO23
9b78fbfe15 add automatic token refresh for MCP OAuth connectors 2026-04-21 21:20:12 +02:00
CREDO23
575b2c64d7 register all new live connector tools in registry 2026-04-21 20:50:42 +02:00
CREDO23
ba8e3133b9 add Luma list events, read event, create event tools 2026-04-21 20:50:31 +02:00
CREDO23
49f8d1abd4 add Teams list channels, read messages, send message tools 2026-04-21 20:49:50 +02:00
CREDO23
1de2517eae add Discord list channels, read messages, send message tools 2026-04-21 20:49:02 +02:00
CREDO23
07a5fac15d add Calendar search events tool 2026-04-21 20:48:47 +02:00
CREDO23
d2cb778c08 add Gmail search and read email tools 2026-04-21 20:48:40 +02:00
CREDO23
48158740ae remove Notion MCP tool definitions from registry 2026-04-21 20:33:22 +02:00
CREDO23
ea3bda9ec3 delete Notion MCP services, tools, and route 2026-04-21 20:33:10 +02:00