Commit graph

759 commits

Author SHA1 Message Date
Anish Sarkar
6fd3f8570e refactor: streamline auth context usage across chat and automation routes 2026-06-19 21:04:21 +05:30
Anish Sarkar
7ec6fa4d1f feat: enforce API access for integration routes 2026-06-19 20:28:12 +05:30
Anish Sarkar
70a0828b95 feat: enforce API access for chat routes 2026-06-19 20:28:02 +05:30
Anish Sarkar
493e8d5a64 feat: enforce API access for knowledge resources 2026-06-19 20:27:47 +05:30
Anish Sarkar
7e8d26fa81 refactor: route authorization through auth context 2026-06-19 20:27:28 +05:30
Anish Sarkar
54a3ba122e feat: add search space API access controls 2026-06-19 20:27:06 +05:30
Anish Sarkar
608facd7e7 feat: add personal access token API routes 2026-06-19 20:26:56 +05:30
DESKTOP-RTLN3BA\$punk
c9afeb2817 feat: fix onboarding trigger
- Introduced a new endpoint to check the existence of a global LLM configuration file.
- Updated the frontend to utilize this status, affecting onboarding flow and user experience.
- Added necessary atoms and types for managing global LLM config status in the application state.
- Refactored navigation to ensure proper routing based on the global config status.
2026-06-17 23:30:56 -07:00
DESKTOP-RTLN3BA\$punk
55f91a29d5 chore: linting 2026-06-17 22:31:36 -07:00
DESKTOP-RTLN3BA\$punk
4b8a2f9726 Merge commit '77688ac80c' into dev 2026-06-17 20:47:02 -07:00
Anish Sarkar
4658130bb8 feat(editor): update editor limits and add error boundary
- Reduced maximum document size for the editor from 5MB to 1MB.
- Introduced a new line limit of 5000 for documents in the editor.
- Implemented a PlateErrorBoundary component to handle rendering errors gracefully in the editor panel.
- Updated logic in the editor panel to check both size and line count for document limits.
2026-06-17 12:11:31 +05:30
DESKTOP-RTLN3BA\$punk
0fe650fd8e Merge commit '7ce409c580' into dev 2026-06-16 22:48:14 -07:00
Dmitry Maranik
e1ea82d7cf fix(connectors): scope index endpoint authorization to the connector's own search space
The POST /search-source-connectors/{connector_id}/index endpoint loaded
the connector by id and then called check_permission() against the
client-supplied search_space_id query parameter (the caller's own space)
rather than the connector's own search_space_id, and never verified that
the two matched.

A user could therefore index another user's connector by passing their
own search_space_id: the indexer ran with the victim connector's stored
credentials and wrote the fetched content into the attacker's search
space. The read/update/delete handlers already authorize against
connector.search_space_id; this brings the index handler in line.

Reject a connector that does not belong to the requested search space
(404, to avoid disclosing connectors in other spaces) and authorize the
permission check against connector.search_space_id.
2026-06-16 15:58:30 -07:00
Anish Sarkar
9b7e278114 refactor(config): update GATEWAY_ENABLED variable to FALSE and adjust related configurations for improved messaging gateway handling 2026-06-16 23:49:26 +05:30
CREDO23
1d70af4684 fix(podcasts): guard public stream against missing audio 2026-06-16 20:09:08 +02:00
CREDO23
32a6e54ce6 Merge remote-tracking branch 'upstream/dev' into features/documents-injestion-layered-cached 2026-06-14 11:30:33 +02:00
Anish Sarkar
7926814070 refactor(model-connections): remove unused fields and update verification logic 2026-06-14 02:46:19 +05:30
Anish Sarkar
c7409c8995 chore: ran linting 2026-06-13 21:59:35 +05:30
Anish Sarkar
76843f42f1 refactor(anonymous-models): remove description field from anonymous model responses and update related UI components 2026-06-13 16:30:26 +05:30
Anish Sarkar
bd4a04f2e7 feat(database-migrations): add migration to remove legacy model config tables and remove stale model connection code 2026-06-13 12:45:43 +05:30
Anish Sarkar
15d9983669 feat(model-connections): enhance model selection facts and auto pinning logic 2026-06-13 02:19:27 +05:30
Anish Sarkar
45d27ba879 feat(model-connections): enhance auto mode with auto pinning 2026-06-13 01:39:26 +05:30
Anish Sarkar
9f6210ad08 feat(model-connections): add test preview functionality for model connections 2026-06-13 00:12:04 +05:30
Anish Sarkar
55f004e1da feat(model-connections): improve model discovery error handling and enhance UI components 2026-06-12 22:50:50 +05:30
Anish Sarkar
407f2a9612 feat(model-connections): enhance model connection functionality with preview and selection features 2026-06-12 22:41:21 +05:30
CREDO23
052e9ef4d1 refactor(chunks): order chunk reads by (document_id, position)
Presentation and citation ordering moves off Chunk.id/created_at to the
explicit position column (id kept as tiebreaker). Vector and ts_rank
ranking order_by clauses are untouched.
2026-06-12 18:53:21 +02:00
Anish Sarkar
ced1bb85ed feat(model-connections): implement bulk model update endpoint and related schema changes 2026-06-12 09:43:56 +05:30
Anish Sarkar
8e8cf96faa feat(error-handling): implement LLM error adaptation and classification for chat streaming
- Introduced LLMErrorCategory and adapt_llm_exception to normalize LLM exceptions.
- Updated llm_retryable_message and llm_permanent_message to utilize the new adaptation logic.
- Enhanced classify_stream_exception to classify provider errors and return user-friendly messages.
- Added tests for error classification and adaptation to ensure robustness.
- Updated frontend error handling to display appropriate messages based on new classifications.
2026-06-12 05:03:14 +05:30
Anish Sarkar
908790e40f Merge remote-tracking branch 'upstream/dev' into feat/unified-model-connections 2026-06-12 03:15:28 +05:30
CREDO23
41f4a58663 Merge remote-tracking branch 'upstream/dev' into improvement-podcast-graph
# Conflicts:
#	surfsense_backend/app/tasks/celery_tasks/podcast_tasks.py
2026-06-11 23:14:49 +02:00
Anish Sarkar
5d5d574550 refactor(model-connections): move backend model connections to provider capabilities 2026-06-12 02:17:22 +05:30
DESKTOP-RTLN3BA\$punk
c3695e7837 feat: update auto-reload settings and enhance payment session creation
- Added currency parameter to the Stripe checkout session for auto-reload setup.
- Integrated AutoReloadSettings component into the BuyMorePage for improved user experience.
- Removed deprecated AutoReloadSettings component from user settings directory.
- Updated import paths for AutoReloadSettings in purchases page to reflect new structure.
2026-06-11 13:29:40 -07:00
Anish Sarkar
831ad23c6c fix(chat): harden image generation model routing 2026-06-11 18:22:45 +05:30
Anish Sarkar
c28c4f5785 feat(chat): route models by provider capabilities 2026-06-11 18:22:23 +05:30
Anish Sarkar
c6a25cc1fe refactor(model-connections): streamline global model config persistence 2026-06-11 18:20:53 +05:30
Anish Sarkar
50c816c81c refactor(model-connections): streamline connection reading and model handling in routes 2026-06-11 10:22:39 +05:30
DESKTOP-RTLN3BA\$punk
a7407502d3 feat(refactor): refactor payment system to implement unified credit wallet.
- Updated environment variables and - configurations for credit purchases via Stripe, replacing legacy page pack system.
- Introduced auto-reload feature for credit top-ups and modified database models to track credit transactions.
- Updated notification system to handle insufficient credits and auto-reload failures.
- Adjusted API routes and schemas to reflect changes in credit management.
2026-06-10 16:49:03 -07:00
CREDO23
003d1d2b95 refactor(podcasts): stream public podcast audio via storage backend 2026-06-10 21:44:57 +02:00
CREDO23
8b52cd0ac9 refactor(podcasts): mount lifecycle router, drop legacy routes 2026-06-10 21:44:57 +02:00
Anish Sarkar
780e242132 feat(model-connections): implement manual model addition and enhance model discovery 2026-06-11 00:11:53 +05:30
Anish Sarkar
077016d6e4 refactor(images): use model connections for image generation 2026-06-10 21:48:37 +05:30
Anish Sarkar
adb857925b feat(models): add model connection persistence 2026-06-10 21:47:23 +05:30
DESKTOP-RTLN3BA\$punk
ce952d2ad1 chore: linting 2026-06-09 00:42:26 -07:00
DESKTOP-RTLN3BA\$punk
640ef5f15d feat(proxy): integrate Scrapling for enhanced web scraping capabilities
- Replaced Playwright with Scrapling's fetchers in the web crawling and YouTube processing modules for improved performance and flexibility.
- Updated proxy configuration to support dynamic proxy selection via environment variables.
- Enhanced logging to track performance metrics during web scraping operations.
- Refactored related modules to utilize the new proxy utilities and streamline the scraping process.
2026-06-09 00:15:10 -07:00
DESKTOP-RTLN3BA\$punk
ef7a20a5d0 feat(gateway): implement global messaging gateway toggle
- Added a global switch `GATEWAY_ENABLED` to control the activation of all messaging gateway channels (Telegram, WhatsApp, Slack, Discord).
- Updated relevant routes and workers to check the `GATEWAY_ENABLED` flag, returning 404 for HTTP routes when disabled.
- Enhanced documentation in the `.env.example` file to reflect the new configuration option.
2026-06-08 13:24:29 -07:00
Rohan Verma
26a504f137
Merge pull request #1471 from CREDO23/improvement-code-organization
[Refactor] : Reorganize the agents and notifications modules
2026-06-05 16:06:51 -07:00
CREDO23
8bdfd00a15 Merge upstream/dev 2026-06-05 19:18:12 +02:00
CREDO23
a7a642fedc refactor(agents): move busy_mutex middleware into main_agent (owner)
The busy-mutex impl (BusyMutexMiddleware + cancel/turn-lifecycle primitives)
lived in shared/middleware/ but no subagent uses it -- consumers are the
main_agent builder and the boundary (turn lifecycle). Colocate with its owner
using the folder-per-middleware shape; __init__ re-exports the public surface so
boundary import sites only change package path:

  main_agent/middleware/busy_mutex.py    -> busy_mutex/builder.py
  shared/middleware/busy_mutex.py        -> busy_mutex/middleware.py
2026-06-05 14:08:45 +02:00
CREDO23
f2a61bc0ef refactor(agents): consolidate chat runtime infra under chat/runtime
Move the lower-level runtime/infra modules out of multi_agent_chat/shared/
(they were never used by subagents, so they failed the shared-by-all-siblings
rule) and unify them with the already-relocated checkpointer:

  agents/runtime/                      -> agents/chat/runtime/
  mac/shared/errors.py                 -> chat/runtime/errors.py
  mac/shared/llm_config.py             -> chat/runtime/llm_config.py
  mac/shared/prompt_caching.py         -> chat/runtime/prompt_caching.py
  mac/shared/mention_resolver.py       -> chat/runtime/mention_resolver.py
  mac/shared/path_resolver.py          -> chat/runtime/path_resolver.py

These sit below the agent packages: the boundary + agent factory + shared
middleware depend on them, and they import no agent code (acyclic).
2026-06-05 13:19:24 +02:00
CREDO23
7d866a2279 refactor(agents): sink sandbox.py into filesystem subsystem
shared/sandbox.py was used only by the filesystem middleware/tools (and the
boundary) -- never by main_agent or subagents as shared code. Move it next to
its only agent-side consumer:

  multi_agent_chat/shared/sandbox.py
  -> multi_agent_chat/shared/middleware/filesystem/sandbox.py
2026-06-05 13:15:57 +02:00