Skip to content

vibe code fixes for existing issues#27

Open
willianba wants to merge 2 commits into
masterfrom
fix/critical-async-and-mutation-bugs
Open

vibe code fixes for existing issues#27
willianba wants to merge 2 commits into
masterfrom
fix/critical-async-and-mutation-bugs

Conversation

@willianba

Copy link
Copy Markdown
Owner
  • fix: replace forEach with Promise.all to prevent silent async failures
  • skip serena folder

This commit fixes two critical bugs that could cause data corruption:

1. **forEach with async functions (CRITICAL)**
   - Changed forEach to map + Promise.all in expense update/delete
   - forEach doesn't wait for async functions, causing silent failures
   - Errors inside forEach async callbacks were being swallowed
   - Database could end up in inconsistent state with partial updates

2. **Date mutation bug**
   - Fixed direct mutation of expense.payment.date object
   - Now creates new Date instance to prevent side effects
   - Prevents race conditions in concurrent updates

3. **Code quality improvement**
   - Simplified getInstallmentDate() to avoid triple Date construction
   - More readable and performant date handling

Impact:
- Recurring expense updates now properly fail-fast if any update fails
- All correlated expenses update atomically as a group
- Date mutations no longer affect original objects
- Better error propagation to user
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant