Add Phase 2 community features: clubs and challenges (FRE-4664)
Implement full MVVM stack for two new community features: Clubs: - Persistent runner groups with type, privacy, and member management - Club discovery, creation, join/leave, and invite workflows - Member roles (Owner, Admin, Member) and capacity limits Challenges: - Time-bound competitive goals with progress tracking and leaderboards - Challenge types: distance, time, frequency, elevation, calories, streak - Progress submission, participation status, and ranking Files: - Models: Club.swift, Challenge.swift - Services: ClubService.swift, ChallengeService.swift - ViewModels: ClubViewModel.swift, ChallengeViewModel.swift - Views: ClubsView.swift, ClubDetailView.swift, ChallengesView.swift, ChallengeDetailView.swift - Tests: ClubServiceTests.swift, ChallengeServiceTests.swift - Updated README.md with new feature documentation
This commit is contained in:
@@ -31,9 +31,40 @@
|
||||
- Updated issue to in_review with summary comment
|
||||
- Awaiting board review
|
||||
|
||||
### 22:20 — Heartbeat: FRE-4688 Lendair Web production readiness audit
|
||||
- Received liveness continuation wake for FRE-4688 (in_progress, high priority)
|
||||
- Previous run was plan_only; executed concrete implementation this heartbeat
|
||||
|
||||
### 22:35 — Implementation complete, committed (57a2675)
|
||||
- **Admin dashboard:** Created admin tRPC router with `getStats`, `getUsers`, `getLoans` endpoints
|
||||
- **Admin UI:** Created `/admin` route with platform stats cards, user management table, loan overview table
|
||||
- **Production config:** Fixed hardcoded `example.com` in `lib/api.ts` → uses `DOMAIN` env var
|
||||
- **Env validation:** Added `validateEnv()` that checks required env vars on server startup
|
||||
- **tRPC errors:** Replaced plain `Error` with `throwTRPC()` across all 8 routers (auth, loans, users, transfers, notifications, id-verification, trust-score, lenderMatching)
|
||||
- **Build fix:** Fixed pre-existing h3 `sendError` compatibility issue in rate-limit middleware
|
||||
- **Verification:** All 223 tests pass, production build succeeds
|
||||
- Marked issue as `in_review` per code review pipeline
|
||||
|
||||
### 08:56 — Heartbeat: FRE-4715 Liveness incident for FRE-4546
|
||||
- Received liveness escalation: FRE-4546 was stuck in `in_review` without action path (no reviewer, interaction, or approval)
|
||||
- Verified all deliverables complete: plan document exists, 7 child issues created (FRE-4685–4690), commit pushed
|
||||
- Root cause: Previous run marked issue `in_review` but no execution policy or reviewer was configured
|
||||
- Transitioned FRE-4546 → `done` (scope definition work complete; implementation continues via child issues)
|
||||
- Marked FRE-4715 → `done`
|
||||
|
||||
### 12:09 — Heartbeat: FRE-4732 Liveness incident for FRE-4689
|
||||
- Received liveness escalation: FRE-4689 was in `in_review` with agent assignee but no action path
|
||||
- Root cause: Previous run applied security fixes (P0-1, P0-2, P1-1, P1-2) but issue stalled without explicit reviewer assignment
|
||||
- Verified all security fixes present in `/home/mike/code/lendair/` codebase
|
||||
- Moved FRE-4689 → `in_review` assigned to Security Reviewer (036d6925) for re-review of P0/P1 fixes
|
||||
- Marked FRE-4732 → `done`
|
||||
- Review flow: Security Reviewer (re-review) → Code Reviewer → Done
|
||||
|
||||
## Facts Extracted
|
||||
- Lendair codebase: 57 commits, tRPC backend (8 routers), SolidJS web, SwiftUI iOS, empty Android
|
||||
- iOS has 9 stabilization issues (FRE-4635 through FRE-4643) all in review with Code Reviewer
|
||||
- Stripe Identity configured for KYC; Stripe Payments/Connect still needed
|
||||
- No CI/CD pipeline exists; `.github/` directory has no workflows
|
||||
- Android directory is empty placeholder; deferred to Milestone 3
|
||||
- Lendair web app had no admin dashboard; lender matching UI already existed (LoanMatchesCard, LenderPreferencesForm)
|
||||
- h3@2.0.1-rc.18 has `sendError` compatibility issue with nitropack server-side bundling
|
||||
|
||||
Reference in New Issue
Block a user