Repository navigation
feat(desktop): D6, the whole desktop - #188
Merged
Merged
Conversation
desktop.grantWhole gives a bot the whole desktop at a level, only with the risks accepted, and keeps when (spec 24.10). With it, every window shows with its title and is read without asking, and desktop_screenshot without a window is a picture of the whole screen: every monitor, copied with BitBlt, with every shown window of a process never granted covered in black, tool and untitled windows included. The daemon's outline and notice are excluded from capture. Away from the computer it needs the grant's "While you are away", and the app's notice on return says "Desktop".
httpsphl
enabled auto-merge
October 5, 2026 01:32
"Give the whole desktop" in the bot's "Your desktop" section opens the risks screen with the level to give (see, or see and use); the confirm button lights only once the owner checks that they understand the risks. The grant then shows as "The whole desktop" with its options. The fake daemon answers desktop.grantWhole, which the app check needs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
D6 of Desktop Use (spec 24.2, 24.4, 24.6, 24.10, 24.12): the daemon and the app's button.
What changes
desktop.grantWhole {botId, level, acceptedRisks}gives the whole desktop (scope: desktop).accepted_risks_at.With it,
desktop_windowsshows every title, and any window is read or pictured without asking. Acting needs the level to be "see and use"; with "see" only, using an app is still asked app by app in the chat.desktop_screenshotwithoutwindowtakes the whole screen. This needs the whole desktop grant, and "while you are away" when the owner is away; the return notice then says "Desktop".every_shown()lists every shown top-level window, including tool and untitled windows, but not the daemon's own.BitBltof the virtual screen (all monitors,SRCCOPY | CAPTUREBLT). It is shrunk by the system scale to at most 1600 × 1200, and a locked screen is refused.WDA_EXCLUDEFROMCAPTURE).tools/desktop.rsstays under 300 lines: the whole-screen tool is indesktop_screen.rs, andusedmoved todesktop_grant.rs.App:
desktop.grantWhole. The first CI run failed without that handler.Tests
tests/desktop_whole.rs(CI only). The owner is using the PC, so no window tests ran locally. It checks:Manual