Architecture: Which deep link URL scheme should Vitto Mobile use — vitto:/...
Documentation for Sessions
🏗️ Architecture: Which deep link URL scheme should Vitto Mobile use — vitto:/...
Date: 2026-02-26
Time: 22:13:10 UTC
Session: gspace1-148.4
Agent: angular
Confidence: 93%
Status: ✅ Documented
📋 Decision Context
Question:
Which deep link URL scheme should Vitto Mobile use — vitto:// or gograb-ai://?
Task: Unify deep link URL scheme for Vitto Mobile
🎯 Decision Made
Chosen:
Unified vitto:// scheme for both desktop and mobile. Same scheme as Tauri desktop app.
Options Considered:
- gograb-ai:// for mobile, vitto:// for desktop
- vitto:// for both platforms
- Use Universal Links / App Links (HTTPS-based) instead of custom schemes
💭 Reasoning
ROOT CAUSE: Session 144 scaffolded the Capacitor config with a comment saying 'gograb-ai://auth?token=...' but DesktopOAuthService.buildDeepLink() defaults to scheme 'vitto'. The Tauri desktop already registers and handles vitto://auth. Using a different scheme for mobile creates: (1) confusion about which scheme does what, (2) the need to pass a platform-specific scheme parameter to the auth page, (3) divergent configuration across platforms. ALTERNATIVES: (1) gograb-ai:// for mobile, vitto:// for desktop — rejected: requires auth page to know which platform launched it. (2) vitto:// for both — chosen: auth page always redirects to vitto://auth, both Tauri and Capacitor register vitto:// as their URL scheme. On macOS, Tauri owns vitto://. On iOS/Android, Capacitor owns it. No conflict since Tauri and Capacitor never run on the same OS. WHY THIS COULD BE WRONG: If Tauri ever ships an iOS/Android build (Tauri v3 roadmap), both apps would fight over vitto://. Mitigation: use Associated Domains / App Links (HTTPS-based) instead of custom schemes at that point.
📁 Files Involved
apps/vitto-mobile/capacitor.config.tsapps/vitto-mobile/ios/App/App/Info.plistapps/vitto-mobile/android/app/src/main/AndroidManifest.xml
🔗 Related
- Decision ID:
dev_1772143990451_xo91w9n - Session: 148
- Workspace: gspace1
Auto-generated by MCP Smart Consolidation