Skip to content

[Feat] Desktop Screenshot Assist and screen capture#1315

Merged
MODSetter merged 33 commits intoMODSetter:devfrom
CREDO23:feature/multimodal-desktop-screen-capture
Apr 27, 2026
Merged

[Feat] Desktop Screenshot Assist and screen capture#1315
MODSetter merged 33 commits intoMODSetter:devfrom
CREDO23:feature/multimodal-desktop-screen-capture

Conversation

@CREDO23
Copy link
Copy Markdown
Contributor

@CREDO23 CREDO23 commented Apr 27, 2026

Description

Desktop: Screenshot Assist, screen/window capture, IPC and web chat integration; user-turn image dedupe; permissions/shortcut and messaging updates.

Motivation and Context

Screenshots

API Changes

  • This PR includes API changes

Change Type

  • Bug fix
  • New feature
  • Performance improvement
  • Refactoring
  • Documentation
  • Dependency/Build system
  • Breaking change
  • Other (specify):

Testing Performed

  • Tested locally
  • Manual/QA verification

Checklist

  • Follows project coding standards and conventions
  • Documentation updated as needed
  • Dependencies updated as needed
  • No lint/build errors or new warnings
  • All relevant tests are passing

High-level PR Summary

This PR replaces Extreme Assist (inline autocomplete) with Screenshot Assist (screen region capture for chat) in the desktop app, adds multimodal image support to chat (user can attach up to 4 images per message), implements a new IPC-based screen/window capture system with region selection overlay, migrates shortcuts and permissions descriptions, removes the vision autocomplete agent and /autocomplete API routes, adds user_images field to chat requests with backend deduplication, includes database migration fixes for idempotent schema changes, and adds a deps-only Docker Compose configuration for running backend services without building full images.

⏱️ Estimated Review Time: 1-3 hours

💡 Review Order Suggestion
Order File Path
1 README.md
2 README.es.md
3 README.hi.md
4 README.pt-BR.md
5 README.zh-CN.md
6 surfsense_desktop/src/ipc/channels.ts
7 surfsense_desktop/src/modules/screen-capture/index.ts
8 surfsense_desktop/src/modules/screen-capture/window-picker.ts
9 surfsense_desktop/src/modules/screen-capture/screen-region-picker.ts
10 surfsense_desktop/src/modules/screen-capture/screenshot-assist.ts
11 surfsense_desktop/src/modules/screen-capture/window-picker-preload.ts
12 surfsense_desktop/src/modules/screen-capture/screen-region-preload.ts
13 surfsense_desktop/src/modules/general-assist.ts
14 surfsense_desktop/src/modules/shortcuts.ts
15 surfsense_desktop/src/modules/tray.ts
16 surfsense_desktop/src/modules/window.ts
17 surfsense_desktop/src/ipc/handlers.ts
18 surfsense_desktop/src/preload.ts
19 surfsense_desktop/src/main.ts
20 surfsense_desktop/scripts/build-electron.mjs
21 surfsense_desktop/scripts/electron-dev.mjs
22 surfsense_desktop/scripts/postinstall-rebuild.mjs
23 surfsense_desktop/electron-builder.yml
24 surfsense_desktop/package.json
25 surfsense_desktop/README.md
26 surfsense_web/types/window.d.ts
27 surfsense_web/atoms/chat/pending-user-images.atom.ts
28 surfsense_web/lib/chat/user-turn-api-parts.ts
29 surfsense_web/lib/chat/display-media-capture.ts
30 surfsense_web/app/dashboard/[search_space_id]/new-chat/[[...chat_id]]/page.tsx
31 surfsense_web/components/assistant-ui/thread.tsx
32 surfsense_web/app/dashboard/[search_space_id]/client-layout.tsx
33 surfsense_web/components/assistant-ui/connector-popup.tsx
34 surfsense_web/components/desktop/shortcut-recorder.tsx
35 surfsense_web/app/dashboard/[search_space_id]/user-settings/components/DesktopContent.tsx
36 surfsense_web/app/dashboard/[search_space_id]/user-settings/components/DesktopShortcutsContent.tsx
37 surfsense_web/app/desktop/login/page.tsx
38 surfsense_web/app/desktop/permissions/page.tsx
39 surfsense_web/components/homepage/hero-section.tsx
40 surfsense_backend/app/schemas/new_chat.py
41 surfsense_backend/app/routes/new_chat_routes.py
42 surfsense_backend/app/tasks/chat/stream_new_chat.py
43 surfsense_backend/app/utils/user_message_multimodal.py
44 surfsense_backend/app/agents/autocomplete/__init__.py
45 surfsense_backend/app/agents/autocomplete/autocomplete_agent.py
46 surfsense_backend/app/routes/autocomplete_routes.py
47 surfsense_backend/app/services/vision_autocomplete_service.py
48 surfsense_backend/app/routes/__init__.py
49 surfsense_web/app/desktop/suggestion/page.tsx
50 surfsense_web/app/desktop/suggestion/layout.tsx
51 surfsense_web/app/desktop/suggestion/suggestion.css
52 surfsense_backend/alembic/versions/117_optimize_zero_publication_column_lists.py
53 surfsense_backend/alembic/versions/121_add_memory_md_columns.py
54 docker/docker-compose.deps-only.yml

Need help? Join our Discord

MODSetter and others added 30 commits April 22, 2026 04:06
temp(hotpatch): block github_coplot custom provider
…hile leaving reload on server-resolved turns.
CREDO23 added 2 commits April 27, 2026 20:35
…t, region crop, and fullscreen capture through the cached frame.
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 27, 2026

@CREDO23 is attempting to deploy a commit to the Rohan Verma's projects Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 27, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: d39e4545-2cb9-42d1-b5e0-16abf332bb20

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@MODSetter MODSetter merged commit 78f71c7 into MODSetter:dev Apr 27, 2026
5 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants