Repository navigation
Open dev-null.sh links in the app instead of the browser - #95
Merged
Merged
Conversation
Tapping a link to a profile, its followers or following, a commit (or one of its photos), a Remotes thread or an org now opens that screen in the tab you're in. Until now only a commit link in a commit's body did that, and everything else went to the in-app browser. SiteLink maps a dev-null.sh URL to the app's path under a tab. It's used for links in a commit's body, a commit's link preview, a Remotes message's link preview and a profile's website. Anything the app has no screen for, like a profile's feed or the settings, still opens in the browser. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Tapping a dev-null.sh link inside the app now opens the app's own screen when there is one, instead of the in-app browser. Before this, only a commit link in a commit's body did that.
What opens in the app now, in the tab you tapped it in:
/@useropens their profile/@user/followersand/@user/following/@user/commits/{id}, and a commit's/photos/{n}page, open the commit/remotes/@userand/remotes/orgs/{id}open the Remotes threadThe new
App\Devnull\SiteLinkclass does the URL-to-screen mapping. It's used for links in a commit's body, a commit's link preview card, a Remotes message's link preview card and a profile's website. Anything without a screen, like a profile's feed or og.png, the settings or the Remotes inbox, still opens in the browser.Things to look at:
dev-null.sh,www.dev-null.shand whateverDEVNULL_URLpoints at. Lookalikes likedev-null.sh.evil.com, and URLs with a user or password before the host, give no screen and go to the browser as before.SiteLinkusesConnections::Types, so it's the first class inApp\Devnullthat imports fromApp\NativeComponents.WebLink::Screens. It could useSiteLinkonce one of the two lands.Screenshots
The test data comes from a local API, so in the before shots the in-app browser opens production dev-null.sh, where the local user doesn't exist. That's why it says "There's nothing here".
log
Recordings: iOS dark, after, iOS dark, before, iOS light, after, iOS light, before
No Android shots. The app builds and runs on the emulator, but signing in goes through Chrome, and Chrome on a fresh emulator stops at its first-run screen. The change is all PHP with no platform-specific code, and both platforms push screens through the same
openInTab().🤖 Generated with Claude Code