Fix macOS widget links opening without their destination - #49
Merged
Merged
Conversation
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.
Widget clicks on macOS currently activate ScriptWidget without opening the destination. The app delegate now forwards incoming external URLs to their default handlers through
NSWorkspace, including HTTPS, file URLs, and hostless custom schemes. Internalwidget-deeplinkandscriptwidgetschemes are excluded case-insensitively to prevent forwarding loops.Closes #48.
The PR adds regression coverage against the actual app-delegate callback. It also stabilizes the existing concurrent environment-isolation test by verifying one warm-up render before all eight independent runtimes execute the same source. This avoids eight redundant cold Babel compilations on constrained CI simulators while preserving the runtime's five-second deadline and all isolation assertions. Actions now prints XCTest failure summaries and retains result bundles for seven days.
Compatibility/security: no runtime or package contract changes, no URL contents logged, and iOS routing is unchanged.
Validation:
./Scripts/release-readiness.sh, full iPad suite, and three repetitions of the iPad runtime-execution class passed.actionlint .github/workflows/release-readiness.ymlandgit diff --checkpassed..webloccaused Chrome to open the exact tagged destinationhttps://example.com/#scriptwidget-pr49-smoke.Direct WidgetKit desktop/Notification Center clicks, physical-device checks, and signed-iCloud checks remain unverified. The app-level smoke test does not substitute for desktop widget testing, and the PR does not claim to suppress ScriptWidget window activation. The AI generation card also uses the selected single-star icon with no colored background and an adaptive foreground. The final icon change passed the local ScriptWidgetMac scheme build; the linked CI run predates this UI-only commit.
Local logs:
/tmp/scriptwidget-49-final-readiness.log,/tmp/scriptwidget-49-ipad-repro.log, and/tmp/scriptwidget-49-ipad-full.log.