From a3b485717502041414e4b83a1ec3941527963754 Mon Sep 17 00:00:00 2001 From: John O'Keefe Date: Mon, 30 Mar 2026 20:12:47 -0400 Subject: [PATCH] docs: add release notes for v0.7.0 Comprehensive release notes documenting: - Major error handling improvements - Backend API changes (AniList, MAL, Simkl) - Frontend error modal and state management - Bug fixes and stability improvements - Technical details and upgrade instructions --- RELEASE_NOTES_v0.7.0.md | 166 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 RELEASE_NOTES_v0.7.0.md diff --git a/RELEASE_NOTES_v0.7.0.md b/RELEASE_NOTES_v0.7.0.md new file mode 100644 index 0000000..0fdc129 --- /dev/null +++ b/RELEASE_NOTES_v0.7.0.md @@ -0,0 +1,166 @@ +# 🎉 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