Repository navigation
fix: handle deep links that launch the app - #1024
Merged
AnthonyRonning merged 3 commits intoOct 10, 2026
Merged
Conversation
5 tasks
Contributor
|
Thanks for the detailed write-up. Sign-in links go through this same handler, so before we review this further, please test OAuth sign-in end to end with this change:
Please add recordings or screenshots of each case to this PR. |
Rust forwards each deep link to the webview as an event, but a link that launches the app arrives before the webview is listening, so it was dropped and the app opened on its default screen. The deep-link plugin keeps the launch URL, so read it with getCurrent() once the listener is attached. getCurrent() keeps returning that URL for the whole session and handling a link reloads the page, so handled links are remembered in sessionStorage (with any OAuth handoff grant blanked) to avoid handling the same link twice. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
AnthonyRonning
force-pushed
the
fix/deep-link-cold-start
branch
from
October 10, 2026 19:47
80fc456 to
22bebb7
Compare
AnthonyRonning
approved these changes
Oct 10, 2026
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.
Links that launch a closed Maple app can arrive before its webview listener and be lost. This reads the deep-link plugin's buffered URL after subscribing, then remembers handled payment links across reloads so the app settles on the requested page. First step of #1023.
Rebased onto current
master(432ed1ef). The shared startup handler preserves the newer native OAuth pending-attempt and verified-account confirmation checks, and keeps Dev/production callback schemes separate. Auth URLs and credential-bearing malformed links never enter the replay cache. When replay storage is unavailable, settled payment routes avoid another reload; fresh live links remain actionable.Validation at
22bebb71nix develop --no-update-lock-file .#ci -c ./scripts/ci/research-dev-desktop.sh.cloud.opensecret.maple.dev, APIhttps://enclave.secretgpt.ai, auth originhttps://auth-dev.maple.ai. Executable SHA-256:4ec9e60b632d14d163856ec359c63e60b51736a77bd9838ae82a3d2c6f53ddc2.Payment-return tests used synthetic links and made no purchases. The Free account's credits return reached its gated API settings page. iOS, Android, Windows and Linux runtime, Google/Apple sign-in, Team-plan runtime and real payment checkout were not tested. A process restart intentionally loses an in-memory native OAuth attempt and requires restarting sign-in.