Harden queue worker crashes and POST validation

This commit is contained in:
Dymas
2026-05-16 11:14:52 +02:00
parent 92762b07d5
commit d5f81d15b7
7 changed files with 150 additions and 59 deletions
+4 -1
View File
@@ -2,7 +2,7 @@
A local web UI for a system-wide `ani-cli` install.
Current version: `0.29.1`
Current version: `0.29.2`
## Project Layout
@@ -86,6 +86,7 @@ The app currently includes:
- Queue log writes are batched during active downloads to reduce SQLite churn on noisy jobs.
- Queue persistence now stores core job metadata and logs in structured SQLite columns instead of treating the whole job as one large JSON blob.
- Queue worker startup failures now degrade into a normal failed job state instead of crashing the background queue thread.
- Unexpected post-launch queue worker failures now also fail the active job cleanly instead of leaving it stuck in `running`.
- Failed and canceled downloads now clean their project-local staging directories automatically so partial files do not accumulate under `.ani-cli-web/staging/`.
- Failed thumbnail refresh attempts now record a retry timestamp, so unresolved covers back off instead of immediately requerying upstream sources on every later warm-up.
- Download-to-watchlist fallback matching now keeps season and part identity intact while still tolerating equivalent season notation such as `2nd Season` vs `Season 2`.
@@ -140,6 +141,8 @@ When the app is placed behind a loopback reverse proxy, forwarded external clien
This keeps the queue, config, and watchlist APIs safer when the app is intentionally exposed beyond localhost.
Malformed watchlist action payloads now return `400 Bad Request` when required JSON fields are missing, instead of surfacing those client mistakes as `404 Not Found`.
## Download Queue
The queue is stored in SQLite and shown 10 jobs at a time.