- Settings hub (gear → SettingsView) hosting Notifications and Connectivity (Connectivity previously had no entry point). - NotificationsView: permission flow, breaking/new-story alerts with a min-signal threshold, morning & evening briefings with time pickers, and a weather toggle + location, plus a "send test briefing" action. - NotificationManager: schedules daily briefings, builds "Jarvis" content (weather + top signal stories), fires breaking alerts off WebSocket story.created events, and refreshes via a BGAppRefresh task. - WeatherService: Open-Meteo geocoding + daily forecast (no API key/entitlement). - AppDelegate registers the background-refresh handler at launch; Info.plist gains UIBackgroundModes + BGTaskSchedulerPermittedIdentifiers. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
48 lines
1.4 KiB
YAML
48 lines
1.4 KiB
YAML
name: Jarvis
|
|
options:
|
|
bundleIdPrefix: com.kisani
|
|
deploymentTarget:
|
|
iOS: "17.0"
|
|
createIntermediateGroups: true
|
|
|
|
targets:
|
|
Jarvis:
|
|
type: application
|
|
platform: iOS
|
|
deploymentTarget: "17.0"
|
|
sources:
|
|
- path: Jarvis
|
|
info:
|
|
path: Jarvis/Info.plist
|
|
properties:
|
|
CFBundleDisplayName: Jarvis
|
|
UILaunchScreen:
|
|
UIColorName: ""
|
|
UISupportedInterfaceOrientations:
|
|
- UIInterfaceOrientationPortrait
|
|
UIUserInterfaceStyle: Dark
|
|
NSLocalNetworkUsageDescription: "Jarvis connects to your self-hosted news platform on the local network."
|
|
NSAppTransportSecurity:
|
|
NSAllowsArbitraryLoads: true
|
|
NSAllowsLocalNetworking: true
|
|
LSApplicationQueriesSchemes:
|
|
- tailscale
|
|
- zerotier
|
|
- wireguard
|
|
UIBackgroundModes:
|
|
- fetch
|
|
- processing
|
|
BGTaskSchedulerPermittedIdentifiers:
|
|
- com.kisani.jarvis.briefing.refresh
|
|
settings:
|
|
base:
|
|
PRODUCT_BUNDLE_IDENTIFIER: com.kisani.jarvis
|
|
MARKETING_VERSION: "1.0"
|
|
CURRENT_PROJECT_VERSION: "1"
|
|
TARGETED_DEVICE_FAMILY: "1"
|
|
SWIFT_VERSION: "5.0"
|
|
CODE_SIGNING_ALLOWED: "NO"
|
|
CODE_SIGNING_REQUIRED: "NO"
|
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME: AccentColor
|
|
ENABLE_USER_SCRIPT_SANDBOXING: "YES"
|