Repository navigation
Conversation
SnapShotCoordinator kept draining leftover captures on chat updates, focus, and visibility after the feature was turned off, so the same pending file played a sound and stacked a toast while typing. Skip that work while SnapShots are off, stop a drain already in flight, and report an undeliverable capture once. Turning the feature off still kills the macOS both-Shift poller. Fixes pingdotgg#12769
Owner
Author
|
Opened upstream. |
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.
Fixes pingdotgg#12769.
Problem
With SnapShots turned off, typing and ordinary chat updates still played the capture sound and stacked "Snapshot taken, but no project is available". The desktop main process already releases the shortcut and refuses new captures.
SnapShotCoordinatorstays mounted and never readsnapShotEnabled, so each composer or thread update, focus, and visibility change listed leftover pending files, sounded them, and toasted again.Change
While SnapShots are off, the coordinator does not subscribe, list pending captures, play the capture sound, or toast. A drain already in flight stops before the next sound, toast, or attachment, including a file read that resolves after the toggle. Pending files stay on disk and are delivered when the feature is turned back on.
An undeliverable capture is reported once, so the same pending file does not sound and toast on every later pass.
The macOS both-Shift poller is still killed when the feature is turned off. A regression covers that, and
capturefails withdisabled.Scope and approval
Accepted bug: pingdotgg#12769 (
bug,accepted,via-triage). Triage on the issue confirmed the main process tears the shortcut down and the remaining flood is the renderer coordinator. The desktop app embeds this web coordinator. Mobile is unchanged.Verification
Node v24.13.1.
vpwas/workspace/node_modules/.bin/vp.From
apps/web:The new cases passed:
does not list, sound, or toast when chat state changes or the window focusesdrops an in-flight pending list once the feature turns offlists again after the feature is turned back onsounds and toasts an undeliverable capture once across later chat updatesleaves the capture pending when the file read finishes after the feature is offFrom
apps/desktop:From the repo root:
Exit 0.
Exit 0. The only finding is an existing warning that
lastTargetRefis written during render. This change does not touch that write.Finished with no further edits.
Limitations
No macOS desktop session and no real
osascriptpoller. The poller test asserts the mocked child iskilled and thatcapturefails withdisabled.No browser screenshots. The coordinator tests mount the component and assert that listing, sound, and toasts do not run while the feature is off, including after a chat-state change, focus, and a pending list that resolves after the toggle. Turning the feature back on lists again.
Pending files are not deleted when the feature is turned off.
Grok 4.7, Cursor cloud agent.