audiobookshelf/test/server
Barnabas 25577f5eea Add finishedDates history to keep multiple finished dates per book
Adds a finishedDates JSON column to mediaProgresses that records a
timestamp for every finish event, so re-listening to a book no longer
loses the previous finished date.

- Marking finished (manually or automatically) appends to finishedDates
- Explicitly un-marking finished removes the most recent entry
- Re-listening to a finished item keeps the history
- Migration backfills finishedDates from the existing finishedAt
- finishedDates is exposed on media progress API responses
- Year in review stats now include books re-finished in later years
- Item page shows previous finished dates with a tooltip

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 10:21:51 -06:00
..
controllers Update LibraryItemController test with 403 tests 2026-04-21 17:13:52 -05:00
finders Improved subtitle parsing to account for bare colon in title 2026-02-06 14:31:09 -05:00
managers Add ApiCacheManager test for should remove recent-episodes cache entries 2026-04-26 16:51:39 -05:00
migrations Add finishedDates history to keep multiple finished dates per book 2026-06-10 10:21:51 -06:00
objects Fixes + add progress to m4b and embed tools 2024-07-20 12:28:06 +03:00
providers Add tests for cleanSeriesSequence 2024-03-14 19:37:51 +02:00
utils Improved subtitle parsing to account for bare colon in title 2026-02-06 14:31:09 -05:00
Logger.test.js Log non-strings into log file like console.log does 2024-09-11 19:58:30 +03:00