# Cursor Rules Changelog

## [2025-05-30] - Context Synchronization Update

### Added
- Conditional property inclusion pattern in `always/error-handling.mdc` - Prevents sending null values to API
- Gzip compression support documentation in `components/native-modules.mdc` - Documents new init() parameter
- Evolution notices for patterns that have been refined based on recent codebase changes

### Changed
- `always/error-handling.mdc` - Updated UUID generation pattern to prefer expo-crypto with fallback
- `components/storage-operations.mdc` - Updated AsyncStorageAdapter to handle both ES6 and CommonJS exports
- `always/core-conventions.mdc` - Added note about consistent import spacing
- `components/javascript-implementation.mdc` - Updated identity queue management to use core module method

### Deprecated
- None in this update

### Migration Notes
Teams should be aware of these evolved patterns:
1. **UUID Generation**: expo-crypto is now preferred for Expo environments with uuid.v4() as fallback
2. **Storage Module**: AsyncStorage module resolution now handles different export formats
3. **API Payloads**: Use conditional spread operator to exclude null values
4. **Gzip Support**: Optional compression available in init() method

### Impact Summary
- Improved Expo compatibility through better UUID generation
- More reliable storage initialization across different bundler configs
- Cleaner API payloads by excluding null values
- Better alignment with current codebase patterns