diff --git a/RELEASE_NOTES_v0.7.0.md b/RELEASE_NOTES_v0.7.0.md deleted file mode 100644 index 0fdc129..0000000 --- a/RELEASE_NOTES_v0.7.0.md +++ /dev/null @@ -1,166 +0,0 @@ -# 🎉 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