feat(onboarding): explain "not a commercial VPN" on Background Delivery page#96
Conversation
Greptile SummaryThis PR surfaces the "Not a commercial VPN" and "VPN badge" explainer content on the onboarding Background Delivery page, so users understand the VPN mechanism before tapping Enable rather than only after discovering the Settings → Background Transport screen.
Confidence Score: 5/5Safe to merge — this is a pure UI refactor that extracts duplicated copy into a shared component with no logic changes. All three changed Swift files compile under the correct preprocessor guards, the shared component's || condition covers both build configurations, and the visual output for existing settings users is bit-for-bit identical to before. The new onboarding cards are additive only. No files require special attention. Important Files Changed
Reviews (2): Last reviewed commit: "feat(onboarding): explain "not a commerc..." | Re-trigger Greptile |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
…ry page
The final onboarding page brings up the on-device VPN / Network Extension
but only briefly noted that traffic isn't sent to a server. The fuller
explanation that this isn't a traditional / commercial VPN lived only in
Settings → Background Transport, which users never see during onboarding.
Surface that same explanation on the onboarding Background Delivery page:
the "Not a commercial VPN" privacy reassurance and the "VPN badge" note.
To avoid duplicating the copy, extract the explainer content into a shared
component, BackgroundVPNExplainer.swift (VPNNotCommercialExplainer /
VPNBadgeExplainer + the shared section-header/row primitives). Both the
settings screen and the onboarding page now render the same single-sourced
content; each supplies its own card chrome (settings glassCard vs the
onboarding Theme.backgroundSecondary card). The badge sentence's feature
name is parameterized ("background transport" vs "background delivery") to
match each surface's terminology.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
d18bad6 to
38ddb7c
Compare
What
The last onboarding page (Background Delivery) brings up the on-device VPN / Network Extension, but only briefly noted that "your traffic isn't sent to any server." The fuller explanation that this isn't a traditional / commercial VPN lived only in Settings → Background Transport, which users never see during onboarding.
This surfaces that same explanation on the onboarding page so users understand up front that it's not actually a VPN:
How — no duplicated copy
Rather than copy/paste the wording, the explainer content is extracted into a shared component,
Views/Components/BackgroundVPNExplainer.swift:VPNNotCommercialExplainerandVPNBadgeExplainer(featureName:)hold the canonical copy + layout.VPNExplainerUIholds the shared section-header / row primitives.Both the settings screen (
BackgroundTransportView) and the onboarding page (BackgroundDeliveryPage) now render this single-sourced content; each supplies its own card chrome (settingsglassCard()vs the onboardingTheme.backgroundSecondarycard matchingPermissionsPage). The badge sentence's feature name is parameterized ("background transport" vs "background delivery") to fit each surface. The settings screen's now-duplicate private helpers were removed.Verification
xcodebuildColumba-Swift/Debug-Swift(the config that enablesCOLUMBA_ONBOARDING_ENABLED) → BUILD SUCCEEDED, no warnings on the touched files.🤖 Generated with Claude Code