# 🎉 AniTrack v0.7.0 Release Notes ## 🚨 Major Feature: Comprehensive Error Handling This release brings **massive improvements** to application stability and user experience. The app will **no longer crash** when API services are down or experiencing errors! --- ## ✨ What's New ### 🛡️ Graceful API Error Handling - **Application Stability**: App now remains running even when AniList, MAL, or Simkl APIs are down - **Visual Error Feedback**: Beautiful modal dialogs display error details instead of silent crashes - **Manual Retry**: Users can retry failed API connections with a single button click - **Continue Using App**: Dismiss error messages and continue with limited functionality ### 🔧 Backend Improvements #### AniList Integration - Replaced all `log.Fatal()` calls with proper error returns - Added error handling for API failures, network issues, and authentication errors - `AniListSearch` now returns detailed error messages - `GetAniListUserWatchingList` gracefully handles 403/404 responses #### MyAnimeList Integration - Updated `MALHelper` to return structured errors - All MAL API functions now return errors instead of crashing: - `GetMyAnimeList` - `MyAnimeListUpdate` - `GetMyAnimeListAnime` - `DeleteMyAnimeListEntry` - Fixed OAuth callback server to prevent shutdown on errors #### Simkl Integration - Updated `SimklHelper` with status code validation (200-299 range) - All Simkl API functions now return errors: - `SimklGetUserWatchlist` - `SimklSyncEpisodes` - `SimklSyncRating` - `SimklSyncStatus` - `SimklSearch` - `SimklSyncRemove` - Replaced `log.Fatal()` with proper error logging ### 💻 Frontend Improvements #### New Error Management System - **Centralized Error State**: New reactive stores for API errors - `apiError` - Tracks current error with service, message, and status - `isApiDown` - Quick flag for API availability - **Error Helper Functions**: - `setApiError()` - Set error state from any component - `clearApiError()` - Reset error state #### New Error Modal Component - Auto-displays when API errors occur - Shows service name, error message, and HTTP status code - **"Retry Connection"** button - Attempts to reconnect to the failed service - **"Dismiss"** button - Close modal and continue using the app - Beautiful red-themed styling with Tailwind CSS - Supports all three services (AniList, MAL, Simkl) #### Updated User Interface - Home page now displays "API Unavailable" state when services are down - Helpful warning messages guide users during outages - App structure remains visible and functional during errors --- ## 🐛 Bug Fixes - **Critical**: Fixed app crashes when AniList API returns 403 Forbidden errors - **Critical**: Fixed app crashes when AniList API is down or unreachable - **Critical**: Fixed MAL OAuth server crashing on connection errors - **Critical**: Fixed Simkl JSON marshaling errors crashing the app - **Improved**: Better error messages for all API failures --- ## 📊 Technical Details ### Go Backend Changes - **AniListFunctions.go**: Updated 3 functions with error handling - **MALFunctions.go**: Updated 5 functions with error handling - **MALUserFunctions.go**: Fixed server error handling - **SimklFunctions.go**: Updated 7 functions with error handling - **SimklUserFunctions.go**: Fixed 2 critical error handling issues ### Frontend Changes - **ErrorModal.svelte**: New component (73 lines) - **GlobalVariablesAndHelperFunctions.svelte**: Added error state system (27 lines) - **App.svelte**: Integrated ErrorModal into main layout - **CheckIfAniListLoggedInAndLoadWatchList.svelte**: Added error handling - **Home.svelte**: Added API down state display --- ## 🎯 Impact ### Before (v0.6.5) - ❌ App crashes to desktop when AniList API is down - ❌ Users see only console error messages - ❌ Must restart app after API failures - ❌ No way to retry failed connections ### After (v0.7.0) - ✅ App stays open during any API failures - ✅ Beautiful modal dialogs explain what went wrong - ✅ One-click retry to reconnect services - ✅ Continue using app with limited functionality --- ## 🔄 Upgrading No migration needed! This release is fully backward compatible. Simply run: ```bash git pull wails build ``` Or download the latest release from the releases page. --- ## 🙏 Acknowledgments This release addresses a critical stability issue that was affecting users during API service outages. Special thanks to the community for reporting these crashes and providing detailed error logs. --- ## 📝 Full Changelog ### Added - Error modal component with retry/dismiss functionality - Centralized error state management system - API availability status tracking - Visual feedback for all API failures - Manual retry functionality for all services ### Changed - AniList API functions to return errors instead of crashing - MAL API functions to return errors instead of crashing - Simkl API functions to return errors instead of crashing - Error handling from console-only to UI modal dialogs - App behavior from crash-on-error to graceful-degradation ### Fixed - App crashes on AniList 403 errors - App crashes on network failures - MAL OAuth server shutdown on errors - Simkl JSON marshaling crashes - All `log.Fatal()` calls that terminated the app ### Removed - `alert()` calls in favor of modal system - Vite timestamp file (cleanup) --- **Version**: 0.7.0 **Release Date**: March 2026 **Upgrade Difficulty**: ⭐ Easy (backward compatible) **Recommended**: ⭐⭐⭐⭐⭐ Highly recommended for all users