v2.3.0 - Production-Safe Defaults
·
123 commits
to main
since this release
Production-Safe Defaults - Auto-cleanup enabled by default to prevent memory leaks.
π‘οΈ Breaking Change (Behavior)
IMPORTANT: Auto-cleanup is now enabled by default to prevent memory leaks with dynamic IDs.
- Old behavior:
limiterAutoCleanupTTLdefaulted tonull(disabled) - New behavior:
limiterAutoCleanupTTLdefaults toDuration(minutes: 10)(enabled)
Impact:
- β No code changes needed for most apps
- β Apps using dynamic IDs are now safer by default
- β Limiters unused for 10+ minutes are auto-removed when count exceeds 100
- β Actively used limiters are never cleaned up
Migration:
// To keep old behavior (disable auto-cleanup):
DebounceThrottleConfig.init(
limiterAutoCleanupTTL: null, // Explicitly disable
);π¦ What Changed
- Default
limiterAutoCleanupTTL:nullβDuration(minutes: 10) - Updated documentation to reflect new defaults
- Added tests for default behavior
- Enhanced examples to show auto-cleanup is enabled by default
π― Why This Change?
Memory leaks with dynamic IDs can cause production crashes. Making auto-cleanup the default ensures apps are safe by default, following the principle of "secure by default."