Skip to content

ui: rename Background Transport card to Reticulum Network, add start/stop - #216

Merged
torlando-tech merged 10 commits into
mainfrom
feat/reticulum-network-card-v2
Oct 9, 2026
Merged

torlando-tech merged 10 commits into
mainfrom
feat/reticulum-network-card-v2

Conversation

@torlando-tech

Copy link
Copy Markdown
Owner

Reframe the Model B settings card around the in-NE RNS runtime.

  • Header: 'Reticulum Network'
  • Subtext: 'Manually stop or start the background Reticulum service.'
  • Status indicator (Running / Starting / Reconnecting / Stopping / Stopped)
  • Single Start/Stop swap button (red Stop when running, accent Start when stopped)
  • 'Learn more & set up' opens the existing explainer sheet (unchanged)
  • Now an ExpandableSettingsCard like the other settings cards

Stop is non-persistent: it calls tunnel.disable() (clears the on-demand rule so the tunnel actually stays down this session) but leaves the backgroundDeliveryEnabled flag untouched, so the tunnel auto-restarts on the next app launch. Start calls install() (re-arms on-demand) + start() to reconnect in the current session.

Fixes a .background ternary type mismatch (Color vs LinearGradient) caught by the Model B device build.

…stop

Replace the settings card: header 'Reticulum Network', subtext
'Manually stop or start the background Reticulum service.', status
indicator, and a single Start/Stop swap button (red Stop when running,
accent gradient Start when stopped). The card is now an
ExpandableSettingsCard matching the other settings cards, with the
existing explainer sheet (BackgroundTransportView) accessible via
'Learn more & set up'.

Stop is non-persistent: it calls tunnel.disable() (clears on-demand so
the tunnel actually stays down this session) but does not touch the
backgroundDeliveryEnabled flag, so the tunnel auto-restarts on the next
app launch (default-enabled behavior). Start calls install() (re-arms
on-demand) + start() to reconnect in the current session.

Fixes the .background ternary type mismatch caught by the Model B
device build: both branches are now LinearGradient (Theme.accentGradient
is a LinearGradient, Theme.error is a Color).
@torlando-tech

Copy link
Copy Markdown
Owner Author

@greptile review

@greptile-apps

greptile-apps Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 5/5

[Medium impact] The changes since the last review appear safe to merge.

Summary

The PR renames the settings card to Reticulum Network and adds a Start/Stop button.

  • The Reticulum Network card expands to show status and Start/Stop controls.
  • The VPN explainer ties its status message to Reticulum.

Reviews (8) · Last reviewed commit: "Update localization from 'mesh' to 'netw..." · Reviewed by Greptile

Wrap the card's user-facing strings in String(localized:) following the
codebase's literal-based convention, and add the new keys to the
Localizable.xcstrings catalog. Covers the status labels (Running,
Starting…, Reconnecting…, Stopping…, Not configured, Stopped, Enabled),
the card title/subtext, the Start/Stop button, and the 'Learn more & set
up' button.
Drop the featureName parameter from VPNBadgeExplainer - the VPN badge is
tied to the in-NE Reticulum runtime on every surface, so the indicator
explanation now reads 'It stays visible while Reticulum is running'
instead of parameterizing 'background transport'/'background delivery'.
Localize the string and add it to the catalog. Update both call sites
(settings BackgroundTransportView and onboarding BackgroundDeliveryPage)
to the no-arg form and fix the now-stale doc comment.
@torlando-tech

Copy link
Copy Markdown
Owner Author

@greptile review

'carries Columba and Reticulum traffic, which may use the relay' ->
'which uses the relay'. The relay carries both traffic types, not
conditionally.
Wrap every user-facing string in the VPN explainer views (VPNNotCommercialExplainer,
VPNBadgeExplainer, VPNExplainerUI call sites) in String(localized:) to match the
codebase idiom. The VPNExplainerUI.sectionHeader/explainerRow helpers now take
String instead of LocalizedStringKey so all call sites are explicit. 'VPN' badge
glyph stays (untranslatable acronym). Added 8 new keys to Localizable.xcstrings
(the remaining 3 were already present). Also updated the BackgroundTransportView
explainerCard call sites to match.
@torlando-tech

Copy link
Copy Markdown
Owner Author

@greptile review

@torlando-tech
torlando-tech merged commit bdb506c into main Oct 9, 2026
1 check passed
@torlando-tech
torlando-tech deleted the feat/reticulum-network-card-v2 branch October 9, 2026 20:21
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.

1 participant