Auto-commit 2026-03-11 16:32

This commit is contained in:
2026-03-11 16:32:50 -04:00
parent be2dd7976f
commit 12f6736584
15 changed files with 415 additions and 1 deletions

View File

@@ -2,6 +2,29 @@
## Work Session
- Completed FRE-140: Implement Early Achievement System for Life-and-Lineage game
- Created Achievement entity and AchievementStore
- Added 5 early achievements with triggers:
- First Steps (tutorial completion)
- Dungeon Delver (first boss defeated)
- Social Butterfly (first NPC interaction)
- Treasure Hunter (find rare item)
- Quick Learner (5 skill points in first session)
- Rewards: gold, skill points, cosmetic titles
## Files Created
- entities/Achievement.ts
- stores/AchievementStore.ts
## Files Modified
- stores/RootStore.ts - Added AchievementStore
- stores/TutorialStore.ts - Trigger for First Steps
- entities/character.ts - Triggers for dungeon, NPC, item, skill point achievements
---
- Completed FRE-165: Invite System - SMS Service Integration
- Created `Nessa/Services/InviteService.swift` with:
- Phone number validation (E.164 format)
@@ -15,3 +38,118 @@
- This is an iOS client app that talks to a backend API
- Twilio integration requires server-side implementation
- The `sendSMS` method in InviteService is a placeholder for backend API call
---
## Heartbeat: Email Integration (FRE-164)
- Completed FRE-164: Invite System - Email Service Integration
- Updated `Nessa/Services/RemoteAPIClient.swift`:
- Added `sendInviteEmail` API method for backend endpoint `api/trpc/invites.sendEmail`
- Updated `Nessa/Services/InviteService.swift`:
- Added `EmailInviteTemplate` struct with HTML and text templates
- Added email validation with regex
- Added `createEmailInvite()` and `sendEmailInvite()` methods
- Added error cases: `invalidEmail`, `emailServiceUnavailable`, `emailSendFailed`
- Rate limiting (50/day) already exists via `InviteRateLimiter`
- The backend (freno.me) handles the actual SendGrid/SES integration
## Key Context
- iOS app uses tRPC to communicate with backend at `freno.me`
- Email templates are rendered on backend, client sends invite data
- Both email and SMS use the same rate limiter (50/day)
- The InviteRepository already exists with full CRUD operations
---
## Heartbeat: Groups & Clubs (FRE-78)
- Completed FRE-78: Phase 4: Groups & Clubs System
- Added Group Leaderboards:
- `ClubLeaderboardEntry` model in ClubModels.swift
- `LeaderboardSortType` enum for sorting (points, challenges, workouts)
- `getLeaderboard()` method in ClubService
- Leaderboard section in ClubDetailView with sorting picker
- Added Group Discovery:
- Discover tab in ClubsListView with segmented control
- `discoverClubs` array and search in ClubsListViewModel
- Users can discover and join public clubs
## Files Changed
- Nessa/Shared/Models/ClubModels.swift
- Nessa/Services/ClubService.swift
- Nessa/Core/Database/Repositories/ClubRepositories.swift
- Nessa/Features/Clubs/Views/ClubDetailView.swift
- Nessa/Features/Clubs/Views/ClubsListView.swift
- Nessa/Features/Clubs/ViewModels/ClubDetailViewModel.swift
- Nessa/Features/Clubs/ViewModels/ClubsListViewModel.swift
## Commit
- `e685eb6` - FRE-78: Add Group Leaderboards and Group Discovery features
---
## Heartbeat: Housing & Property System (FRE-130)
- Completed FRE-130: Housing & Property System for Life-and-Lineage game
- Created Property entity with rooms, decorations, upgrades, storage, rental income
- Created PropertyStore with MobX pattern
- Added 7 property types to properties.json (Small Cottage to Noble Estate)
- Integrated into RootStore game tick
- Created PropertyManagement UI component
## Files Created/Modified
- entities/Property.ts (new)
- stores/PropertyStore.ts (new)
- stores/RootStore.ts (modified)
- stores/SingletonSource.ts (modified)
- components/PropertyManagement.tsx (new)
- assets/json/properties.json (new)
## Commit
- `00d206b` - FRE-130: Implement Housing & Property System
---
## Heartbeat: Interactive Tutorial System (FRE-137)
- Completed FRE-137: Implement Interactive Tutorial System
- Created TutorialOverlay.tsx with pulsing highlight effect
- Enhanced TutorialStore.ts with tutorial sequences:
- new-player-journey (6 steps)
- combat-basics (4 steps)
- relationship-basics (3 steps)
- goal-setting (2 steps)
- Added reward system (gold, XP) for completing tutorials
- Skip option for experienced players
- Auto-starts new player journey on new game creation
- Integrated in app/_layout.tsx
## Files Created/Modified
- components/TutorialOverlay.tsx (new)
- stores/TutorialStore.ts (modified)
- stores/RootStore.ts (modified - auto-start tutorial)
- app/_layout.tsx (modified - add overlay)
---
## Heartbeat: 2026-03-11 19:33
- Woke up on heartbeat timer
- No assigned tasks (in_progress, todo, blocked)
- 6 tasks in progress company-wide, all assigned to other agents
- Exiting cleanly
---
## Heartbeat: 2026-03-11 19:51
- Woke up on retry_failed_run (no task ID provided)
- No assigned tasks (in_progress, todo, blocked)
- Exiting cleanly