Commit Graph

3 Commits

Author SHA1 Message Date
080f10f1c5 Fix all build errors in Xcode-managed nested source files
The Xcode project was created inside the existing folder structure,
producing a second copy of all source files at the deeper nested path
that Xcode actually compiles. All fixes are now applied to both paths.

Changes:
- Add `import Combine` to nested ViewModels (Portfolio, Recommendations,
  Positions, Alerts) and NotificationHandler — required for @Published
- Add `import UIKit` to NotificationPermissions — UIApplication is UIKit
- Rewrite APIClient to use `(any Encodable)?` instead of invalid
  `(some Encodable)?` syntax; add encodeAny() helper to open existential
  for JSONEncoder; remove private EmptyBody type
- Replace all `body: Optional<String>.none` / `Optional<EmptyBody>.none`
  call sites with plain `nil` across all ViewModels and Views
- Sync all fixes between nested Xcode path and outer source path

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 15:51:09 -04:00
14d715ed14 Fix 25 Xcode build errors and 2 warnings
- 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>
2026-04-09 15:46:16 -04:00
b7d4e900cc Initial implementation of Options Sidekick
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>
2026-04-09 14:38:25 -04:00