feat: deeplink controls + Raycast extension (#1540)#1905
Closed
nitin-rachabathuni wants to merge 3 commits into
Closed
feat: deeplink controls + Raycast extension (#1540)#1905nitin-rachabathuni wants to merge 3 commits into
nitin-rachabathuni wants to merge 3 commits into
Conversation
Extend cap-desktop deeplinks with path-based recording and device routes, fix action-host parsing for custom URL schemes, and add a Raycast extension with Cap Control and Switch Device commands.
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Author
Validation updateAutomated checks
Manual validation scriptAdded ./scripts/demo-bounty-1540.shNotes
Happy to iterate on any Greptile/maintainer feedback. |
Validate microphone and camera targets before pausing the active recording, and guard Raycast showToast when the Switch Device command is dismissed.
Author
|
Addressed both Greptile P1 comments in 22a5613:
Review threads marked resolved. |
Author
|
Overnight status (no new code changes needed):
PR is mergeable from GitHub’s perspective; awaiting maintainer review in a crowded field (#1540). |
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.
Closes #1540
Summary
cap-desktop://action?...parsing by usinghost_str()instead ofdomain()(custom schemes returnNonefor domain)record/start,record/stop,record/pause,record/resume,record/toggle-pausedevice/microphone?label=...anddevice/camera?model_id|device_id|label|offstart_recording_from_saved_settings()for reuse from deeplinks and hotkeysapps/raycast/with Cap Control and Switch Device commandsapps/desktop/src-tauri/DEEPLINKS.mdTesting
npx tsc --noEmitinapps/raycast/passesdeeplink_actions(run:cargo test deeplink_actions)open "cap-desktop://record/pause"with Cap runningDemo
Demo video to follow after macOS manual verification.
/claim #1540
Greptile Summary
This PR adds path-based deeplinks (
record/*,device/*) for controlling Cap recordings and switching devices from external tools, fixes the originalactionhost parsing bug (usinghost_str()instead ofdomain()), and ships a new Raycast extension that drives those deeplinks viasystem_profilerdevice enumeration.deeplink_actions.rs): replaces the brokenTryFromimpl with a cleanparse_deeplinkfunction, addsPauseRecording,ResumeRecording,TogglePauseRecording,SetMicrophone,SetCameravariants, and apause_for_input_changehelper; unit tests cover all new routes.lib.rs): extractsstart_recording_from_saved_settings()and reuses it from both theRequestStartRecordingevent handler and the newStartSavedRecordingdeeplink variant.apps/raycast/): two commands — Cap Control (static action list) and Switch Device (dynamicsystem_profilerenumeration) — that open or copy deeplinks.Confidence Score: 3/5
Two correctness bugs need fixing before merge: recordings can be left permanently paused when a device-switch deeplink targets an unknown device, and the Raycast Switch Device command can throw a runtime error by calling showToast after it has been dismissed.
The deeplink parsing refactor and Raycast extension are well-structured and include good test coverage, but both issues are in newly exercised code paths. A user sending cap-desktop://device/camera?label=UnknownCam will silently pause their recording with no recovery path. The showToast issue in switch-device.tsx can surface as an uncaught Raycast runtime error in normal use.
apps/desktop/src-tauri/src/deeplink_actions.rs (SetCamera/SetMicrophone execute handlers) and apps/raycast/src/switch-device.tsx (error handling in useEffect)
Important Files Changed
Prompt To Fix All With AI
Reviews (1): Last reviewed commit: "feat: add deeplink controls and Raycast ..." | Re-trigger Greptile