1bc9307c29
beep boop
2026-06-03 14:45:49 -04:00
a5dabe7faf
um
2026-06-03 14:18:22 -04:00
d17229735f
playwright
2026-06-03 14:08:27 -04:00
8e953cdd7c
fmt
2026-06-03 14:05:49 -04:00
a07c004f2d
drop notification, reget deps
2026-06-03 14:05:27 -04:00
203591ca05
resetting
2026-06-03 13:54:53 -04:00
61d48d3648
onnx, fix depl issue
2026-06-03 13:35:37 -04:00
1408d0cd1d
last one
2026-06-02 17:38:21 -04:00
1511a844a7
feat(ios): implement offline mode & sync conflict resolution ( #23 )
...
- Add OfflineSyncCoordinator for managing offline/online transitions
- Add OfflineSyncIndicatorView for UI feedback during sync
- Add SyncProgress tracking with stage descriptions and progress bars
- Add delta sync support with savings tracking
- Add BackgroundTaskScheduler interval configs for low-power mode
- Add isProcessingTask discriminator to BackgroundTaskID
- Add DeltaFetchResult generic type for efficient data fetching
- Add SyncProgressStage enum with localized descriptions
- Add progress reset on app launch to prevent stale state
- Add delta sync savings percentage calculation
- Update BackgroundSyncTests with comprehensive coverage
- Add OfflineSyncTests for offline queue and conflict resolution
- Mark task 22 (Token Refresh) and task 28 (Review Compliance) as done
- Update Xcode project with new source files and build phases
2026-06-02 17:00:17 -04:00
6b729a1334
feat: integrate KordantSpamShieldExtension target and complete App Review compliance (Task 28)
...
- Add KordantSpamShieldExtension target to project.yml with proper
app-extension type, bundle identifier, and deployment target
- Create CallKit + App Group entitlements for SpamShield extension
- Move SpamDirectoryService to Sources/Shared for cross-target access
- Update app-review-checklist with 5 new technical items (total: 121)
- Update rejection-risk-mitigation with extension build integration
- Add SpamShield extension details to reviewer notes
- Mark Task 24 (push deep links) and Task 28 as complete
2026-06-02 15:04:50 -04:00
e33ddf3002
feat: complete Tasks 21-28 — backend integration, security hardening, UI tests & CI
...
- Add Apple Sign-In backend (JWKS verification, account linking, session management)
- Implement push notification deep linking with NotificationDeepLinkRouter
- Add jailbreak detection, runtime integrity monitoring, secure enclave service
- Implement OAuth social login, token refresh, and secure logout flows
- Add image caching (memory/disk), optimizer, upload queue, async semaphore
- Implement notification analytics, type preferences, and category setup
- Expand UI test suite with UITestBase, accessibility, auth flow, performance tests
- Add CI pipeline for iOS UI tests (3 device sizes) and performance benchmarks
- Restructure Xcode project to manual groups with KordantWidgets target
- Add SwiftLint, Swift Collections/Algorithms/GoogleSignIn dependencies
- Update project.yml for XcodeGen with new targets and configurations
2026-06-02 15:01:38 -04:00
ab0d4857db
web security audit fixes
2026-06-02 10:30:42 -04:00
36b087ae92
finish android task suite
2026-06-02 08:14:00 -04:00
6c4d77bbec
significant android work
2026-06-02 00:04:30 -04:00
542172d1e8
android flesh out
2026-06-01 12:58:34 -04:00
ba73daa66c
deep research addressement
2026-06-01 08:40:10 -04:00
c159f07322
shortcommings
2026-05-31 22:03:18 -04:00
3b29de3234
security sweep
2026-05-29 09:03:47 -04:00
469c28fa64
security audit fix start
2026-05-28 20:23:38 -04:00
26d9f8b050
clear references
2026-05-28 08:59:24 -04:00
1e1773c186
oof
2026-05-27 10:30:23 -04:00
5214412fff
get to prod tasks
2026-05-26 16:06:34 -04:00
04e839640f
fix landing scroll
2026-05-26 14:55:10 -04:00
3bcbdae678
fix stripe configuration
2026-05-26 13:47:43 -04:00
72609755f8
clear old assets, new ci/cd flow
2026-05-26 11:54:41 -04:00
82815009c9
mostly android
2026-05-26 09:38:54 -04:00
9ee3d532be
final
2026-05-25 23:25:10 -04:00
aacb800f4a
name refactor
2026-05-25 23:23:27 -04:00
8ac2ce5273
reduced nesting
2026-05-25 23:08:11 -04:00
3d246af3f7
rebranding
2026-05-25 22:49:37 -04:00
b62ab77fbe
holy moly thats a lotta damage
2026-05-25 22:10:19 -04:00
c01c1a5636
rebranding work
2026-05-25 21:53:01 -04:00
89822dedb8
db rearch
2026-05-25 20:50:45 -04:00
3ccaeaa2e3
feat(android): add API client, tRPC bridge, and offline support
...
- Add Retrofit with kotlinx-serialization converter for tRPC endpoints
- Create TRPCApiService with type-safe wrappers for all procedures
- Implement AuthInterceptor for JWT injection from EncryptedSharedPreferences
- Add ErrorHandler with exponential backoff retry logic and ApiResult sealed class
- Create 11 serializable data models matching backend enums
- Add JSON file-based cache with TTL invalidation (CacheManager)
- Implement repositories: User, DarkWatch, VoicePrint, Alert, Subscription
- Add offline sync: PendingRequestQueue, OfflineWorker, SyncManager
- Create manual DI modules: NetworkModule, DatabaseModule, RepositoryModule
- Add WorkManager for background offline request processing
- Add ConnectivityManager-based network monitoring for auto-sync
- Configure build system with KSP for Room, kotlinx-serialization plugin
- Update build config with environment-specific API URLs
- Write 19 new unit tests for ErrorHandler, CacheManager, TRPCResponse, SyncManager
2026-05-25 20:41:53 -04:00
a90534e164
feat(android): implement auth screens, onboarding flow, and account setup
...
- Add AuthRepository with EncryptedSharedPreferences and OkHttp API calls
- Add AuthViewModel with login/signup/reset/Google Sign-In flows
- Create auth screens: AuthScreen, LoginScreen, SignupScreen,
ForgotPasswordScreen, ResetPasswordScreen, BiometricAuthScreen
- Create onboarding screens with HorizontalPager: PlanSelection,
WatchlistSetup, FamilyInvite, Complete (with checkmark animation)
- Wire auth state to navigation: unauthenticated→auth, new→onboarding,
authenticated→dashboard
- Add PasswordStrength utility with tests
- Add dependencies: security-crypto, biometric, play-services-auth,
okhttp, gson, lottie-compose, material-icons-core
- Add unit tests: 23 tests passing for AuthViewModel and PasswordStrength
2026-05-25 20:24:33 -04:00
325be03797
feat(android): add design system components matching web theme
...
Implement 10 reusable Jetpack Compose UI components:
- ShieldButton: 4 variants (primary/secondary/ghost/danger), 3 sizes, loading state, icon support
- ShieldCard: gradient background matching web .gradient-card, click handling, header/footer slots
- ShieldTextField: validation, password toggle, error/helper text, focus styling
- ShieldBadge: 5 variants (default/success/warning/error/info), pill shape, icon support
- ShieldModal: ModalBottomSheet + AlertDialog, swipe-to-dismiss
- ShieldToast: Snackbar-based with 4 variants, auto-dismiss, action buttons
- ShieldAvatar: Coil async image loading, initials fallback, online status indicator
- ShieldProgressBar: linear progress with percentage, 5 color variants
- ShieldEmptyState: icon, title, description, action button
- ShieldSkeleton: shimmer animation with infinite transition
All components use theme tokens (no hardcoded colors) and support light/dark modes.
Add Coil dependency for avatar image loading.
Add ComponentShowcase preview with light/dark mode support.
Add instrumented Compose UI tests for all components.
2026-05-25 20:15:27 -04:00
35bc5f4af1
feat(android): establish Jetpack Compose foundation with navigation and shared theme
...
- Set up project namespace to com.shieldai.android
- Add navigation-compose dependency
- Create ShieldAI brand color palette (Color.kt) with light/dark tokens
- Add Material3 Typography scale (Type.kt) with all text styles
- Create Shape.kt with small/medium/large rounded corners
- Implement ShieldAITheme with light/dark color schemes and optional dynamic color
- Define Screen sealed class with all destinations (Dashboard, Services, Alerts, Settings, Account, Login, Signup, Onboarding, ServiceDetail)
- Create NavGraph with composable routes and placeholder screens
- Implement BottomNavBar with 5 navigation items with icons
- Create AppNavigation with Scaffold, NavHost, and bottom nav visibility logic
- Add ShieldAIApp Application class and updated MainActivity
- Create vector drawables for bottom nav icons
- Add test files under new package
- Remove old template package (com.mikefreno.shieldai)
2026-05-25 20:08:42 -04:00
78c63f018c
iOS: update submodule reference for native features (push, biometrics, voice, camera, document scanner)
2026-05-25 20:03:00 -04:00
8cf26e04af
feat(iOS): implement dashboard, service screens, and settings views
...
- Dashboard with threat score gauge, recent alerts, service cards, quick actions
- AlertDetail with severity header, correlated alerts, resolve/false-positive actions
- DarkWatch with watchlist CRUD, exposures list, scan button
- VoicePrint with enrollments, analysis history, recording sheet
- SpamShield with stats, number checking, custom rules CRUD
- HomeTitle with property watchlist and property detail view
- RemoveBrokers with broker registry and removal requests with progress
- Settings with account, subscription, preferences, family, logout
- CRUD mutations added to TRPCalling protocol
- SpamCheckResult model added
- Comprehensive unit tests for all view models
2026-05-25 19:45:19 -04:00
7625d0caea
feat(ios): add API client, tRPC bridge, offline support, and model definitions
...
- APIClient: URLSession wrapper with auth, retry, logging
- TRPCBridge: tRPC procedure caller with type-safe wrappers
- Models: 14 Codable structs matching backend schema
- CacheManager: TTL-based offline caching
- OfflineQueue: persistent mutation queue with retry
- NetworkMonitor: connectivity tracking via NWPathMonitor
- Tests: unit tests for all components (92 total, all passing)
2026-05-25 19:23:31 -04:00
0fc7b2e745
chore: update iOS submodule with design system components
2026-05-25 18:38:59 -04:00
a5aeace438
task 28: update iOS sub-repo reference with app foundation changes
2026-05-25 18:29:04 -04:00
b03096f19d
feat(browser-ext): move browser extension to browser-ext/ and update API client to tRPC
...
- Create browser-ext/ with full extension code (MV3 manifest, background
service worker, content script, popup, options page)
- Add tRPC API client that communicates with unified monolith endpoints
- Implement cache, settings, and phishing detection utilities
- Create extension tRPC router in web app (getAuthStatus, linkDevice,
reportPhishing)
- Configure Vite build with manifest V3 support
- Write unit tests for cache, phishing detector, and API client
- All 20 tests passing, TypeScript lint clean
2026-05-25 18:13:44 -04:00
20dc5bf785
feat: add error boundaries, loading skeletons, page transitions, and empty states
...
- ErrorBoundary: global error boundary with ShieldAI branding, retry/report
- Skeleton: SkeletonText, SkeletonCard, SkeletonAvatar, SkeletonTable
- PageTransition: fade-in + translate-y on route change, respects reduced motion
- EmptyState: reusable component with icon, title, description, action
- Button: add ariaLabel prop support
- Toast: add aria-live=polite region
- Dashboard: replace pulse divs with SkeletonCard fallbacks
- Service pages: add skeleton layouts, empty states, mutation loading states
- 404 page: polished with ShieldAI branding and home navigation
- app.tsx: add ErrorBoundary, PageTransition, skip-to-content link
- app.css: add page-enter animation with prefers-reduced-motion support
2026-05-25 18:05:29 -04:00
c02457c66a
feat: real-time alerts via WebSocket push notifications
...
- Add ws WebSocket server (port 3001) with JWT auth and user-socket mapping
- Add WebSocket client with exponential backoff reconnection and heartbeat
- Add useRealtimeAlerts hook with toast notifications and unread badge
- Add alert.publisher service (WS → push → email fallback)
- Integrate publisher into DarkWatch, VoicePrint, HomeTitle, SpamShield, RemoveBrokers
- Update Navbar with connection status indicator and unread count
- Add comprehensive tests (14 passing) for server, client, and publisher
2026-05-25 17:58:47 -04:00
3a8e329f02
feat: dashboard unified widgets for all services
...
Implement 8 rich dashboard widgets replacing placeholder stat cards:
- ThreatScoreWidget: SVG circular gauge (0-100) with color-coded score
- AlertFeedWidget: Real-time alert stream with mark-as-read actions
- ExposureWidget: DarkWatch exposure summary with run-scan button
- VoicePrintWidget: Enrollment/analysis counts with mini bar chart
- SpamShieldWidget: Blocked calls/SMS stats with custom rules
- HomeTitleWidget: Watched properties and recent changes
- RemoveBrokersWidget: Broker registry progress with completion bar
- QuickActionsWidget: Shortcut buttons for common tasks
Update dashboard route with responsive 2-column grid layout,
auto-refresh via 60-second intervals, Suspense boundaries,
and skeleton loading states. Update tests for new widget layout.
2026-05-25 17:45:40 -04:00
7cbcde6a6b
feat: wire frontend pages to tRPC APIs
...
- Add hooks (useAuth, useSubscription, useNotifications) for real API data
- Add auth service (login/signup) with password hashing and session support
- Replace stub auth with real tRPC calls in login/signup/onboarding pages
- Replace mock dashboard data with real API data from hooks
- Create service pages: DarkWatch, VoicePrint, SpamShield, HomeTitle, RemoveBrokers, Settings
- Update Navbar, TopBar, Sidebar with real user data and correct routes
- Add passwordHash field to users schema for credential auth
- Fix tests to work with real hooks (mock tRPC/hooks)
2026-05-25 17:34:48 -04:00
eb8e57c674
feat: implement background job system with queue, worker, scheduler, and handlers
...
- Add job queue abstraction (InMemoryQueue and Redis/BullMQ adapter)
- Add polling worker with retry logic and exponential backoff
- Add 6 job handlers: darkwatch.scan, voiceprint.batch, hometitle.scan,
removebrokers.process, reports.generate, notifications.send
- Add cron-based scheduler with tier-appropriate frequencies
(Basic/Plus/Premium)
- Add tRPC scheduler router for admin (runJobNow, getJobStatus, etc.)
- Add entry point with graceful shutdown support
- Achieve 100% test pass rate for new job system
2026-05-25 17:16:21 -04:00
659ab9b71a
feat: implement security report generation backend (task 21)
...
- Add report-schedules DB schema table
- Create reports tRPC router with getReports, generateReport, getReport,
deleteReport, getScheduledReports, updateSchedule procedures
- Create reports service with async report generation lifecycle
- Create report generator (compileData, renderHTML, generatePDF, uploadPDF)
- Add HTML templates for monthly-plus, annual-premium, weekly-digest
- Add Valibot schemas for input validation
- Wire router into root.ts and update DB schema exports/relations
- Install puppeteer for HTML-to-PDF conversion
- Write unit tests for router (11 tests) and service (12 tests)
2026-05-25 17:08:43 -04:00
4f7882a10d
feat: add alert correlation & normalization engine with tRPC router
...
Implement the cross-service alert correlation and normalization engine:
- correlation router with 6 procedures: getAlerts, getAlertDetails,
getGroups, getGroupDetails, resolveAlert, getStats
- correlation service with normalizeAlert, correlateAlerts,
getAlertTimeline, resolveAlert, getThreatScore, getAlertStats
- correlation engine with findRelatedAlerts, createCorrelationGroup,
updateGroupSeverity, deduplicateAlerts
- alert normalizer with service-specific converters for DarkWatch,
SpamShield, VoicePrint, HomeTitle, and RemoveBrokers
- Entity extraction (emails, phones, SSNs) and threat scoring
with severity-weighted decay over 30-day window
- 52 unit tests across engine, service, normalizer, and router
2026-05-25 16:55:31 -04:00