Conversation
History downloads and clipboard actions assumed every history entry was a PNG, so GIF and video items were mislabeled on save and copied in an unusable form. The screenshot overlay also required Esc to cancel, which interrupted mouse-only capture flow. This change derives history actions from media type and adds right-click cancel/clear behavior directly in the capture overlay. Constraint: History recordings are stored as temporary source assets, so user-facing save actions must emit shareable media types Constraint: Keep screenshot cancellation localized to overlay input handling without changing coordinator ownership Rejected: Save/copy recordings as raw .mov only | does not match the user-visible recording export format Rejected: Add the optional settings toggle now | broader settings/UI scope than the requested fix bundle Confidence: high Scope-risk: moderate Reversibility: clean Directive: History copy/save behavior must branch by capture mode or file type; do not assume every history asset is a PNG Tested: swift test --package-path Packages/SharedKit; xcodebuild -project Capso.xcodeproj -scheme Capso -configuration Debug build Not-tested: Manual clipboard paste/save validation for GIF and video entries; manual right-click overlay interaction on multi-display setups Related: #41
The preview Copy action wrote the raw temporary .mov file to the pasteboard, so GIF recordings pasted as mov files even though Save exported the requested format. This change routes Copy through the same export pipeline, writes a clipboard-ready GIF/MP4 file, and surfaces progress/failure feedback in the preview UI. Constraint: Preview copy must preserve the selected recording format without breaking the existing export/save flow Constraint: Clipboard file URLs must reference real files long enough for paste targets to consume them Rejected: Write the temporary .mov directly for all copy actions | violates the user's selected GIF/MP4 output format Rejected: Convert only GIF copy and leave video copy as .mov | inconsistent preview behavior between copy and save actions Confidence: high Scope-risk: narrow Reversibility: clean Directive: Keep preview Copy and Save aligned on output format; do not bypass export for formats that require conversion Tested: xcodebuild -project Capso.xcodeproj -scheme Capso -configuration Debug build Not-tested: Manual paste validation into Finder/Slack/Notes for copied GIF/MP4 files Related: PR #43
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.
Summary
This PR fixes history actions for non-PNG captures and improves screenshot cancellation for mouse-first workflows.
What changed
.gif.mp4Why it changed
History actions were hardcoded for PNG screenshots, so GIF and video entries in Screenshot History were downloaded as PNGs and clipboard behavior for media entries was incorrect.
Separately, screenshot cancellation required pressing
Esc, which interrupted mouse-only capture flow. Issue #41 requested a right-click shortcut for canceling screenshot mode.Impact
User impact
Developer impact
FileFormathelpers instead of a PNG-only assumptionCaptureOverlayViewRoot cause
The History save/copy path assumed every stored asset was a PNG image. That was true for screenshots but not for recordings/GIFs.
Validation
swift test --package-path Packages/SharedKitxcodebuild -project Capso.xcodeproj -scheme Capso -configuration Debug buildNotes