Conversation
jasikpark
reviewed
Feb 19, 2026
jasikpark
reviewed
Feb 19, 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.
Android
Enabling always on is done in the system settings and we can not reliably ask if its enabled from the UI.
When the VPN service gets a start intent from the UI it will contain the config path to launch, every time we launch a site we save the path of the config path to a special
last-active-sitefile. If the VPN process receives a start intent without a path, which is typical when always on is active or if the service is being restarted by the system after a failure, then we will use thelast-active-sitefile to launch the last active site config.NOTE If for some reason the last active site is no longer available (its been deleted) then an unhelpful error is shown by the system. Not sure there is much to do other than try and clean up the
last-active-sitefile if we delete the file it references.Small UI change to provide a deep link to the system settings -> network -> vpn

iOS
Enabling can be done via the UI or system settings (after the UI has saved the site as capable of being on-demand). We can reliably detect if on-demand is enabled.
Each vpn site is its own vpn config in the system settings. It seems the last to set on-demand rules wins or else you must select the active site in the system settings.
NOTE Changing any sites always-on status disconnects any existing nebula vpn service. When you manually disconnect a site it also sets always-on to false, otherwise the site would just immediately reconnect.
Small UI change to the site details screen to toggle always-on

Closes #49