Auto-commit 2026-03-11 16:32
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user