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
167 lines
5.5 KiB
Markdown
167 lines
5.5 KiB
Markdown
# 🎉 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
|