- Add `import Combine` to PortfolioViewModel, RecommendationsViewModel,
PositionsViewModel, AlertsViewModel, and NotificationHandler — required
for @Published and ObservableObject to resolve correctly in Swift
- Fix @MainActor isolation error in PositionDetailView: replace broken
default-parameter init (PositionsViewModel() in sync context) with
@StateObject private var localVM and an optional parentVM parameter
- Update OpenPositionsView call site to use new parentVM: label
- Fix var→let warning in PortfolioViewModel.add()
- Remove unused `old` variable in AppDelegate.registerDevice()
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Full-stack iOS options trading assistant:
- Python FastAPI backend with SQLite, APScheduler (15-min position monitor),
APNs push notifications, and yfinance market data integration
- Signal engine: IV Rank (rolling HV proxy), SMA-50/200, swing-based
support/resistance, earnings detection, signal strength scoring and
noise-resistant SHA hash for change detection
- Recommendation engine: covered call and cash-secured put strike/expiry
selection across 0DTE, 1DTE, weekly, and monthly horizons
- REST API: /devices, /portfolio, /recommendations, /positions, /signals, /alerts
- iOS SwiftUI app (iOS 17+): dashboard, recommendations, trades, portfolio,
and alerts tabs with push notification deep-linking
- Unit + integration tests for signal engine and API layer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>