Version 1.2.5 (November 2025)
- ๐ Fixed: Monthly schedule bug where jobs never ran in shorter months
- Jobs configured for day 30-31 now run on last day of shorter months (e.g., Feb 28/29)
- Uses
calendar.monthrange()to determine actual last day of each month
- ๐ Fixed: Configuration deep copy bug causing shared nested dictionaries
- All
.copy()operations replaced with proper deep copy viajson.loads(json.dumps()) - Prevents config corruption when modifying nested notification settings
- Fixed in 4 locations: initialization + 3 in
load_config()
- All
- ๐ Fixed: KeyError in legacy Gotify config migration
- Now safely checks if notifications dict exists before accessing nested keys
- Uses
.get()with fallback values to prevent crashes on old config files
- ๐ง Improved: Eliminated duplicate code - moved
_validate_time()to module level- Removed identical function definitions from
/updateand/test-notificationroutes - Renamed to
validate_time()as public module-level function
- Removed identical function definitions from
- ๐ Improved: Better log clarity for prune operations
- Volumes: "Pruning volumes (unused anonymous volumes only)โฆ"
- ๐งน Cleanup: Moved
calendarimport from inline to top-level imports