Skip to content

Fix macOS widget links opening without their destination - #49

Merged
everettjf merged 4 commits into
mainfrom
codex/fix-macos-widget-links
Oct 4, 2026
Merged

everettjf merged 4 commits into
mainfrom
codex/fix-macos-widget-links

Conversation

@everettjf

@everettjf everettjf commented Oct 4, 2026 •

Copy link
Copy Markdown
Owner

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. Internal widget-deeplink and scriptwidget schemes 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:

  • Successful GitHub Actions run for 0932afe: both jobs passed, including release-readiness and iPad/iCloud automation.
  • CI runtime results: macOS 162 passed / 7 skipped; iPhone 164 passed / 6 skipped; iPad 164 passed / 6 skipped. Zero failures; skipped tests are not counted as passes.
  • Local ./Scripts/release-readiness.sh, full iPad suite, and three repetitions of the iPad runtime-execution class passed.
  • actionlint .github/workflows/release-readiness.yml and git diff --check passed.
  • Actual app-level smoke test: Finder → Open With → the local Debug ScriptWidget.app on a disposable .webloc caused Chrome to open the exact tagged destination https://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.

@everettjf
everettjf merged commit a0a1742 into main Oct 4, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

macOS: widget links (linkurl / <link>) open ScriptWidget instead of the URL

1 participant