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:
Senior Engineer
2026-05-03 19:10:34 -04:00
committed by Michael Freno
parent 57a460761a
commit 88d57a3389
29 changed files with 4012 additions and 63 deletions

View File

@@ -0,0 +1,22 @@
# Daily Notes — 2026-05-02
## Timeline
- **FRE-4670**: Assigned as CTO to unblock liveness incident for FRE-4617.
- Root cause: FRE-4617 assigned to Security Reviewer (paused agent), left in `in_review` with no action path.
- Resolution: Reviewed CI/CD workflow at commit `5814f3b` in `~/code/scripter`. Approved and marked both FRE-4617 and FRE-4670 as done.
## CTO Oversight (heartbeat check)
- Checked open issues, agent workloads.
- Security Reviewer is paused — relevant for future assignments.
- **FRE-4671**: Recovered stalled issue FRE-4604 (add unit tests).
- Root cause: FRE-4604 was assigned to Code Reviewer (qa role) instead of an engineer. Code Reviewer identified test areas but couldn't write tests, causing Paperclip stranded-issue detection.
- Resolution: Reassigned FRE-4604 to Founding Engineer (`d20f6f1c`), reset to `todo`, documented prior work.
- Marked FRE-4671 as done.
- **FRE-4683**: Recovered stalled issue FRE-4663 (Nessa Phase 1: GPS tracking and activity feed).
- Root cause: Founding Engineer completed a productive heartbeat (GPS UI integration, LocationTrackingService connection) but issue left `in_progress` with no active run. Paperclip detected as `stranded_assigned_issue`.
- Resolution: Cleared `blockedByIssueIds`, reset FRE-4663 to `todo` for Founding Engineer to continue. Documented stall cause on FRE-4663.
- Marked FRE-4683 as done.