Files
ani-cli-web/CHANGELOG.md
T

178 lines
10 KiB
Markdown

# Changelog
## 0.8.13 - 2026-05-12
- Added a manual thumbnail upload button for watchlist cards that still have no poster, saving the selected image into the local thumbnail cache for that anime.
## 0.8.12 - 2026-05-12
- Improved thumbnail lookup for season-labeled titles by retrying AnimeSchedule searches with simplified base-title queries before falling back to AniDB.
- Stopped failed thumbnail fetch attempts from refreshing the retry window, so broken lookups do not get stuck in an immediate 404 state after one bad fetch.
- Added extra request headers to AniDB page lookups to improve compatibility with cover-page fetches that were returning `403 Forbidden`.
## 0.8.11 - 2026-05-12
- Added a small per-anime thumbnail reload button on watchlist cards that forces a redownload of that show's cached cover image.
## 0.8.10 - 2026-05-12
- Fixed watchlist source links to use AllManga's `bangumi/<show_id>` page format instead of the earlier incorrect route pattern.
## 0.8.9 - 2026-05-12
- Changed watchlist anime titles into direct links to their AllManga source pages, using the tracked show ID plus a normalized title slug.
## 0.8.8 - 2026-05-11
- Moved `config.json` into the project-local `.ani-cli-web/` folder so app settings now live alongside the queue database, watchlist data, staging files, and thumbnail cache.
- Added automatic migration from the legacy XDG config location so existing web app settings are preserved on first startup after the move.
## 0.8.7 - 2026-05-11
- Moved all project runtime state that previously lived under `~/.local/state/ani-cli-web/` into the project-local `.ani-cli-web/` folder.
- Added one-time migration for the legacy queue database, queue JSON, watchlist JSON, AniDB title dump, staging directory, and thumbnails so existing local data is carried into the project folder automatically.
## 0.8.6 - 2026-05-11
- Changed watchlist cards to append into the DOM before assigning poster image URLs, avoiding detached-image and lazy-load edge cases during poster rendering.
- Added a per-page thumbnail nonce to the local poster URL so a fresh watchlist load always bypasses stale browser-cached misses for `/api/watchlist/thumb/...`.
## 0.8.5 - 2026-05-11
- Fixed watchlist poster rendering for browser-cached images by attaching thumbnail load and error handlers before setting `img.src`, then immediately showing already-complete images.
- This resolves the case where posters existed on disk and the watchlist route was healthy, but cached images stayed hidden because the browser had already finished loading them before the old listener was attached.
## 0.8.4 - 2026-05-11
- Fixed the watchlist thumbnail renderer to always request the local `/api/watchlist/thumb/...` image route instead of trusting stale `thumbnail_ready` state from older cached entries.
- This lets already-downloaded project-local thumbnails render on the page even when the cached file exists but the watchlist row has not yet been refreshed to mark it ready.
## 0.8.3 - 2026-05-11
- Migrated any legacy watchlist thumbnails from the old state-directory cache into the new project-local `.ani-cli-web/thumbnails/` folder on access.
- Fixed thumbnail retry gating so the app no longer skips refetch attempts when a thumbnail filename exists in the database but the actual cached file is missing on disk.
- Expanded thumbnail debug logging to show whether the expected cached file actually exists before the retry-window decision is made.
## 0.8.2 - 2026-05-11
- Moved watchlist thumbnail storage into the project-local `.ani-cli-web/thumbnails/` folder so cached images can be inspected directly from the repository tree.
- Added debug logs for the local `/api/watchlist/thumb/...` route and file-serving path so thumbnail cache hits, misses, and served files are visible in `--debug` output.
## 0.8.1 - 2026-05-11
- Added a `--debug` runtime flag for `ani-cli-web` and `./ani-cli-web` that logs thumbnail-source request flow, match decisions, responses, cache writes, and failures while fetching watchlist images.
- Added support for the typo-tolerant `---debug` form as well, so debugging still works if that form is used by mistake.
## 0.8.0 - 2026-05-11
- Switched watchlist thumbnails to prefer AnimeSchedule metadata, which `ani-cli` already uses upstream for title-based metadata lookups.
- Stored the resolved AnimeSchedule route and title on watchlist entries so future poster fetches can reuse that stable route instead of repeating a title search every time.
- Restored only a one-shot watchlist thumbnail warm-up request for the visible page, avoiding the old repeated background refresh loop.
## 0.7.5 - 2026-05-11
- Removed automatic watchlist thumbnail warm-up requests after page render so the watchlist no longer keeps making background refresh-style requests while the thumbnail issue is shelved.
## 0.7.4 - 2026-05-11
- Added watchlist removal end-to-end with a new `Remove` button beside `Refresh` and `Open` on each watchlist card.
- Added a watchlist remove API action and cleaned up a card's cached poster file when its watchlist entry is deleted.
## 0.7.3 - 2026-05-11
- Handled browser/client disconnects gracefully in the shared HTTP response writer so abandoned watchlist requests no longer cascade into `BrokenPipeError` tracebacks.
- Ignored disconnect exceptions in the request exception path to avoid attempting a second error response on an already closed socket.
## 0.7.2 - 2026-05-11
- Fixed the AniDB poster extractor to handle relative `/images/main/...` image links in addition to fully qualified CDN URLs.
- Normalized AniDB poster URLs through `urljoin` before downloading, which should unblock entries where AniDB serves the image link off the anime page first and redirects afterward.
- Added an AniDB referer header to image downloads for better compatibility with direct cover fetches.
## 0.7.1 - 2026-05-11
- Stored the matched AniDB `aid` and AniDB title on each watchlist entry so future thumbnail fetches reuse a stable AniDB identity instead of re-searching by name every time.
- Added lightweight AniDB debug hints to watchlist cards via hover text so matched AniDB IDs and titles can be inspected without changing the compact card layout.
- Allowed forced thumbnail retries to rematch by title when a previously stored AniDB ID fails to produce a cover.
## 0.7.0 - 2026-05-11
- Switched watchlist thumbnails from AniList to AniDB.
- Added AniDB title-dump caching for local title-to-anime resolution and AniDB page poster extraction for one-at-a-time cover fetching.
- Kept local thumbnail caching so each watchlist entry only needs its AniDB poster resolved once while it remains tracked.
## 0.6.2 - 2026-05-11
- Changed watchlist thumbnail warm-up to force small sequential retry batches for the currently visible page so previously failed covers can recover immediately.
- Removed the client-side `CSS.escape` dependency from thumbnail repaint logic for broader browser compatibility.
- Kept thumbnail batching capped to avoid reintroducing external source rate-limit spikes.
## 0.6.1 - 2026-05-11
- Changed watchlist thumbnail loading to a controlled batched warm-up flow so missing covers are not requested all at once.
- Added per-show thumbnail request deduplication to avoid duplicate cover fetches while the same image is already being resolved.
- Updated the watchlist client to repaint cards when newly cached thumbnails become available.
## 0.6.0 - 2026-05-11
- Switched the watchlist to paged loading with 30 cards per page so the desktop view can target a 5 by 6 layout without leaving large blank areas.
- Tightened the sidebar again so the main watchlist pane has more room for cards on wide screens.
- Improved thumbnail loading by prefetching missing covers in the background and retrying failed card image requests with a forced refresh.
## 0.5.0 - 2026-05-11
- Reworked the watchlist into a tighter multi-column poster grid that prioritizes title, sub and dub counts, last checked time, and refresh/open actions.
- Added cached external cover lookups for watchlist entries under the app state directory.
- Reduced the watchlist sidebar width so wider screens can fit roughly 4 to 5 anime cards per row.
## 0.4.0 - 2026-05-11
- Reworked the standalone watchlist page to use the same split-panel layout and navigation language as the search page.
- Added watchlist summary cards and richer tracked-show cards so status, episode totals, and search handoff all live in the same visual system.
- Updated the search page navigation styling so both pages now feel like one consistent GUI.
## 0.3.1 - 2026-05-11
- Split the watchlist out to its own standalone `/watchlist` page.
- Kept the main `/` page focused on search, queue management, and downloads.
- Added a watchlist-to-search handoff that pre-fills the search page query.
## 0.3.0 - 2026-05-11
- Moved the watchlist into SQLite with automatic migration from the legacy `watchlist.json` file.
- Changed the watchlist model to track one row per show with separate sub and dub episode counts.
- Added manual refresh actions for one show or the entire watchlist.
- Split the sidebar into switchable Search and Watchlist pages.
- Added direct watchlist tracking from search results.
## 0.2.2 - 2026-05-11
- Fixed a broken watchlist merge that caused `app.py` to fail during startup with an `IndentationError`.
- Restored the web server entrypoint so `./ani-cli-web` starts the local HTTP server again.
- Repaired watchlist POST routes, storage lookups, and embedded page script placement so the watchlist UI can load and update cleanly.
## 0.2.1 - 2026-05-11
- Padded season folder numbers to two digits, such as `Season 01` and `Season 02`.
## 0.2.0 - 2026-05-11
- Replaced JSON queue storage with SQLite-backed queue persistence.
- Added automatic migration from the previous `queue.json` queue file.
- Limited the queue view to 10 jobs per page with previous and next controls.
- Added bulk queue actions to remove finished jobs and retry all failed jobs.
## 0.1.2 - 2026-05-11
- Updated finalized download layout to save media under `ANI_CLI_DOWNLOAD_DIR/anime_name/Season <season>/`.
## 0.1.1 - 2026-05-11
- Expanded `.gitignore` to ignore `__pycache__` directories at every project depth.
## 0.1.0 - 2026-05-11
- Split `ani-cli-web` into a standalone project that uses system-wide `ani-cli`.
- Added project hygiene files: `.gitignore`, `VERSION`, and this changelog.
- Documented runtime state handling and standalone project layout.