{
  "version": 1,
  "project": "tsundoku",
  "generated_at": "2026-10-17T23:48:20Z",
  "entries": [
    {
      "id": "tsundoku-v1.19.2",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.19.2",
      "published_at": "2026-09-29T03:41:14Z",
      "version": "1.19.2",
      "summary": "Stop releases silently losing their detail-page data",
      "body": "### Bug Fixes\n\n- Stop releases silently losing their detail-page data",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.19.2"
    },
    {
      "id": "tsundoku-v1.19.1",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.19.1",
      "published_at": "2026-09-02T19:25:33Z",
      "version": "1.19.1",
      "summary": "Move resolved releases in bulk and route audiobooks to novel series",
      "body": "### Bug Fixes\n\n- Move resolved releases in bulk and route audiobooks to novel series",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.19.1"
    },
    {
      "id": "tsundoku-v1.19.0",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.19.0",
      "published_at": "2026-08-10T20:19:21Z",
      "version": "1.19.0",
      "summary": "Add a release by pasting its post url; Sort series by when releases were discovered; Find a series by its provider ID or URL",
      "body": "### Features\n\n- Add a release by pasting its post url\n- Sort series by when releases were discovered\n- Find a series by its provider ID or URL\n- Search every release from a new admin Releases page\n- *(admin)* Purge orphan series from the maintenance page\n- *(web)* Restructure the sources page and fold card details away\n\n### Bug Fixes\n\n- *(api)* Stop series search from silently dropping candidates\n- *(resolution)* Stop automatic resolves from reverting operator decisions\n- *(db)* Track every feed carrying a release, not just the first",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.19.0"
    },
    {
      "id": "tsundoku-v1.18.4",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.18.4",
      "published_at": "2026-08-07T21:09:54Z",
      "version": "1.18.4",
      "summary": "Sort filter presets and update the loaded one from the save modal",
      "body": "### Features\n\n- *(web)* Sort filter presets and update the loaded one from the save modal",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.18.4"
    },
    {
      "id": "tsundoku-v1.18.3",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.18.3",
      "published_at": "2026-07-29T01:51:35Z",
      "version": "1.18.3",
      "summary": "Move API host defaults to api.mangabaka.org",
      "body": "### Bug Fixes\n\n- *(mangabaka)* Move API host defaults to api.mangabaka.org",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.18.3"
    },
    {
      "id": "tsundoku-v1.18.2",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.18.2",
      "published_at": "2026-07-20T02:22:17Z",
      "version": "1.18.2",
      "summary": "Bulk-move selected releases to another series from the series page",
      "body": "### Features\n\n- *(web)* Bulk-move selected releases to another series from the series page",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.18.2"
    },
    {
      "id": "tsundoku-v1.18.1",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.18.1",
      "published_at": "2026-07-19T20:42:17Z",
      "version": "1.18.1",
      "summary": "Bulk re-enrich across sources, searches, and removed origins",
      "body": "### Features\n\n- Bulk re-enrich across sources, searches, and removed origins",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.18.1"
    },
    {
      "id": "tsundoku-v1.18.0",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.18.0",
      "published_at": "2026-07-19T05:22:09Z",
      "version": "1.18.0",
      "summary": "Add bulk actions on series cards (wishlist, search, refresh)",
      "body": "### Features\n\n- Add bulk actions on series cards (wishlist, search, refresh)",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.18.0"
    },
    {
      "id": "tsundoku-v1.17.1",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.17.1",
      "published_at": "2026-07-19T04:41:17Z",
      "version": "1.17.1",
      "summary": "Stop JSON-quoting numeric lookup ids in the address bar",
      "body": "### Bug Fixes\n\n- *(web)* Stop JSON-quoting numeric lookup ids in the address bar",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.17.1"
    },
    {
      "id": "tsundoku-v1.17.0",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.17.0",
      "published_at": "2026-07-19T04:21:26Z",
      "version": "1.17.0",
      "summary": "Add the series lookup endpoint for external-ID deep links; Add the /series/lookup deep-link resolver page",
      "body": "### Features\n\n- *(api)* Add the series lookup endpoint for external-ID deep links\n- *(web)* Add the /series/lookup deep-link resolver page",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.17.0"
    },
    {
      "id": "tsundoku-v1.16.0",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.16.0",
      "published_at": "2026-07-19T02:16:39Z",
      "version": "1.16.0",
      "summary": "Add configurable per-series release-search foundation; Add the per-series search run engine, audit trail, and CLI; Expose per-series release search over the admin API",
      "body": "### Features\n\n- *(search)* Add configurable per-series release-search foundation\n- *(search)* Add the per-series search run engine, audit trail, and CLI\n- *(search)* Expose per-series release search over the admin API\n- *(web)* Add the per-series Search releases button and admin search-endpoints list\n- *(api)* Expose per-source and global search run histories\n- *(web)* Surface run-history timelines for sources and searches",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.16.0"
    },
    {
      "id": "tsundoku-v1.15.2",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.15.2",
      "published_at": "2026-07-18T21:23:38Z",
      "version": "1.15.2",
      "summary": "Tsundoku 1.15.2 released.",
      "body": "See the full release notes on GitHub.",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.15.2"
    },
    {
      "id": "tsundoku-v1.15.1",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.15.1",
      "published_at": "2026-07-18T21:16:21Z",
      "version": "1.15.1",
      "summary": "Let the sticky filter panel scroll when taller than the viewport",
      "body": "### Bug Fixes\n\n- *(web)* Let the sticky filter panel scroll when taller than the viewport",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.15.1"
    },
    {
      "id": "tsundoku-v1.15.0",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.15.0",
      "published_at": "2026-06-23T19:33:08Z",
      "version": "1.15.0",
      "summary": "Optionally match series descriptions",
      "body": "### Features\n\n- *(search)* Optionally match series descriptions",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.15.0"
    },
    {
      "id": "tsundoku-v1.14.3",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.14.3",
      "published_at": "2026-06-23T01:42:06Z",
      "version": "1.14.3",
      "summary": "Confirm currency from any comparable axis",
      "body": "### Bug Fixes\n\n- *(codex)* Confirm currency from any comparable axis",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.14.3"
    },
    {
      "id": "tsundoku-v1.14.2",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.14.2",
      "published_at": "2026-06-23T01:08:19Z",
      "version": "1.14.2",
      "summary": "Parse MangaBaka source-id lookup envelope",
      "body": "### Bug Fixes\n\n- *(metadata)* Parse MangaBaka source-id lookup envelope",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.14.2"
    },
    {
      "id": "tsundoku-v1.14.1",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.14.1",
      "published_at": "2026-06-17T05:05:37Z",
      "version": "1.14.1",
      "summary": "Make series-detail release rows usable on mobile",
      "body": "### Bug Fixes\n\n- *(web)* Make series-detail release rows usable on mobile",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.14.1"
    },
    {
      "id": "tsundoku-v1.14.0",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.14.0",
      "published_at": "2026-06-17T03:46:05Z",
      "version": "1.14.0",
      "summary": "Make the top navigation mobile-friendly with a burger drawer; Collapse admin nav and feed filters into left drawers on mobile; Full-screen modals, 2-up cards, and wrapped config values on mobile",
      "body": "### Features\n\n- *(web)* Make the top navigation mobile-friendly with a burger drawer\n- *(web)* Collapse admin nav and feed filters into left drawers on mobile\n- *(web)* Full-screen modals, 2-up cards, and wrapped config values on mobile",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.14.0"
    },
    {
      "id": "tsundoku-v1.13.1",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.13.1",
      "published_at": "2026-06-15T06:39:59Z",
      "version": "1.13.1",
      "summary": "Add a full-drain mode to the manual series-metadata refresh",
      "body": "### Features\n\n- *(series)* Add a full-drain mode to the manual series-metadata refresh",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.13.1"
    },
    {
      "id": "tsundoku-v1.13.0",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.13.0",
      "published_at": "2026-06-15T05:40:25Z",
      "version": "1.13.0",
      "summary": "Add Nyaa search, clickable badges and bulk send on series detail; Show a detail tooltip on hovering a feed card title; Enrich and enlarge MangaBaka search result cards",
      "body": "### Features\n\n- *(web)* Add Nyaa search, clickable badges and bulk send on series detail\n- *(web)* Show a detail tooltip on hovering a feed card title\n- *(web)* Enrich and enlarge MangaBaka search result cards\n- *(web)* Support shift-click range select on series release bulk-send\n- *(series)* Carry MangaBaka publication dates and sort the feed by them",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.13.0"
    },
    {
      "id": "tsundoku-v1.12.0",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.12.0",
      "published_at": "2026-06-14T04:07:07Z",
      "version": "1.12.0",
      "summary": "Add admin wishlist flag, toggle and from-provider endpoints; Surface the series wishlist with a clip toggle, indicator and filter; Add the wishlist page, MangaBaka add modal and app-bar shortcut",
      "body": "### Features\n\n- *(series)* Add admin wishlist flag, toggle and from-provider endpoints\n- *(web)* Surface the series wishlist with a clip toggle, indicator and filter\n- *(web)* Add the wishlist page, MangaBaka add modal and app-bar shortcut\n- *(series)* Add an admin source filter to the series list",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.12.0"
    },
    {
      "id": "tsundoku-v1.11.1",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.11.1",
      "published_at": "2026-06-09T16:21:08Z",
      "version": "1.11.1",
      "summary": "Commit release link and coverage recompute atomically",
      "body": "### Bug Fixes\n\n- *(resolution)* Commit release link and coverage recompute atomically",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.11.1"
    },
    {
      "id": "tsundoku-v1.11.0",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.11.0",
      "published_at": "2026-06-09T02:59:38Z",
      "version": "1.11.0",
      "summary": "Add admin catalog export endpoint; Add admin catalog export page; Finish catalog export — OpenAPI, docs, filter polish",
      "body": "### Features\n\n- *(series)* Add admin catalog export endpoint\n- *(web)* Add admin catalog export page\n- *(series)* Finish catalog export — OpenAPI, docs, filter polish\n- *(spans)* Detect gap-preserving volume/chapter coverage\n- *(series)* Track merged release coverage and a change timestamp\n- *(series)* Add a cursor-paginated release feed endpoint\n- *(series)* Surface volume/chapter coverage in the catalog export\n- *(series)* Filter the release feed by external ids via POST\n\n### Bug Fixes\n\n- *(series)* Correct the OpenAPI path for the release feed",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.11.0"
    },
    {
      "id": "tsundoku-v1.10.2",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.10.2",
      "published_at": "2026-06-05T19:44:40Z",
      "version": "1.10.2",
      "summary": "Add sort by rating to the browse list",
      "body": "### Features\n\n- *(series)* Add sort by rating to the browse list",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.10.2"
    },
    {
      "id": "tsundoku-v1.10.1",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.10.1",
      "published_at": "2026-06-04T03:42:06Z",
      "version": "1.10.1",
      "summary": "Resolve against the Nyaa \"Information\" link, not just description links",
      "body": "### Bug Fixes\n\n- *(resolution)* Resolve against the Nyaa \"Information\" link, not just description links",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.10.1"
    },
    {
      "id": "tsundoku-v1.10.0",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.10.0",
      "published_at": "2026-06-04T03:17:49Z",
      "version": "1.10.0",
      "summary": "Add ignore_completion column for Codex tracking opt-out; Add Codex \"ignored\" status for completion-tracking opt-out; Add ignore-completion toggle endpoint",
      "body": "### Features\n\n- *(series)* Add ignore_completion column for Codex tracking opt-out\n- *(series)* Add Codex \"ignored\" status for completion-tracking opt-out\n- *(series)* Add ignore-completion toggle endpoint\n- *(web)* Add ignore-completion toggle, badge, and feed filter\n- *(download)* Add td-download crate with DownloadClient trait + ruTorrent client\n- *(download)* Add config, sent-to-client columns, and AppState client wiring\n- *(download)* Add admin send-to-client and status endpoints\n- *(web)* Add admin send-to-client button, override popover, and Sent badge\n- *(web)* Allow multiple Codex statuses in the feed filter\n- *(download)* Add connection-status, health-history, and send-audit tables\n- *(download)* Add connection test, status probe, and send-attempt recording\n- *(codex)* Add reachability history and on-demand connection test\n- *(web)* Add download client admin page and connection-test UI\n- *(download)* Add XML-RPC transport, nest [download.rutorrent] config, broaden UI\n- *(web)* Dedupe filter presets by name and confirm overwrites\n- *(admin)* Add Codex sweep history and richer download send audit\n\n### Bug Fixes\n\n- *(web)* Stop dropping spaces while typing in the filter search\n- *(download)* Support HTTP Digest auth for ruTorrent, not just Basic\n- *(mangabaka)* Validate dump content instead of trusting upstream sha1 sidecar",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.10.0"
    },
    {
      "id": "tsundoku-v1.9.0",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.9.0",
      "published_at": "2026-06-01T02:29:49Z",
      "version": "1.9.0",
      "summary": "Add PATCH endpoint to edit manual series; Add manual/auto metadataSource filter to the list endpoint; Edit manual series + manual/auto feed filter",
      "body": "### Features\n\n- *(series)* Add PATCH endpoint to edit manual series\n- *(series)* Add manual/auto metadataSource filter to the list endpoint\n- *(web)* Edit manual series + manual/auto feed filter",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.9.0"
    },
    {
      "id": "tsundoku-v1.8.2",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.8.2",
      "published_at": "2026-05-31T16:05:50Z",
      "version": "1.8.2",
      "summary": "Keep the group list from scrolling horizontally",
      "body": "### Bug Fixes\n\n- *(review)* Keep the group list from scrolling horizontally",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.8.2"
    },
    {
      "id": "tsundoku-v1.8.1",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.8.1",
      "published_at": "2026-05-31T06:27:14Z",
      "version": "1.8.1",
      "summary": "Cap the group list height and refresh it after a decision",
      "body": "### Bug Fixes\n\n- *(review)* Cap the group list height and refresh it after a decision",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.8.1"
    },
    {
      "id": "tsundoku-v1.8.0",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.8.0",
      "published_at": "2026-05-31T05:58:58Z",
      "version": "1.8.0",
      "summary": "Add searchQuery + breadth group filter to the review queue; Add release grouping to the review queue; Add a release-grouping panel to the review queue",
      "body": "### Features\n\n- *(review)* Add searchQuery + breadth group filter to the review queue\n- *(review)* Add release grouping to the review queue\n- *(review)* Add a release-grouping panel to the review queue\n- *(review)* Surface a dominant-candidate hint on release groups\n- *(review)* Make group rows full-width and auto-collapse on select",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.8.0"
    },
    {
      "id": "tsundoku-v1.7.2",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.7.2",
      "published_at": "2026-05-31T04:07:01Z",
      "version": "1.7.2",
      "summary": "Add a per-page size selector to the queue",
      "body": "### Features\n\n- *(review)* Add a per-page size selector to the queue",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.7.2"
    },
    {
      "id": "tsundoku-v1.7.1",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.7.1",
      "published_at": "2026-05-31T02:55:56Z",
      "version": "1.7.1",
      "summary": "Shift+click to select a range of releases in the queue",
      "body": "### Features\n\n- *(review)* Shift+click to select a range of releases in the queue",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.7.1"
    },
    {
      "id": "tsundoku-v1.7.0",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.7.0",
      "published_at": "2026-05-31T02:06:30Z",
      "version": "1.7.0",
      "summary": "Sort by title, collapsible cards, and bulk assign-to-series; Resolve foreign provider IDs and surface comment-sourced link suggestions; Redirect unknown routes to the feed instead of dead-ending",
      "body": "### Features\n\n- *(review)* Sort by title, collapsible cards, and bulk assign-to-series\n- *(review)* Resolve foreign provider IDs and surface comment-sourced link suggestions\n\n### Bug Fixes\n\n- *(web)* Redirect unknown routes to the feed instead of dead-ending",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.7.0"
    },
    {
      "id": "tsundoku-v1.6.2",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.6.2",
      "published_at": "2026-05-30T19:17:54Z",
      "version": "1.6.2",
      "summary": "Re-enrich multiple sources or all at once",
      "body": "### Features\n\n- *(web)* Re-enrich multiple sources or all at once",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.6.2"
    },
    {
      "id": "tsundoku-v1.6.1",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.6.1",
      "published_at": "2026-05-30T04:45:42Z",
      "version": "1.6.1",
      "summary": "Rework Codex ownership badges to highlight the actionable state; Persist display preferences and add a wide layout mode",
      "body": "### Features\n\n- *(web)* Rework Codex ownership badges to highlight the actionable state\n- *(web)* Persist display preferences and add a wide layout mode",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.6.1"
    },
    {
      "id": "tsundoku-v1.6.0",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.6.0",
      "published_at": "2026-05-30T02:04:10Z",
      "version": "1.6.0",
      "summary": "Add Codex presence foundation; Sync job, cron, and admin endpoints for presence overlay; Admin-only Codex presence overlay on series list and detail",
      "body": "### Features\n\n- *(config,db,codex)* Add Codex presence foundation\n- *(codex,scheduler,api)* Sync job, cron, and admin endpoints for presence overlay\n- *(api)* Admin-only Codex presence overlay on series list and detail\n- *(web)* Codex presence badges, filter, and connection panel\n- *(codex)* Startup status, fetched count, version warning, badge accents",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.6.0"
    },
    {
      "id": "tsundoku-v1.5.3",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.5.3",
      "published_at": "2026-05-29T22:36:20Z",
      "version": "1.5.3",
      "summary": "Render Back-to-feed link via renderRoot to fix type error",
      "body": "### Bug Fixes\n\n- *(web)* Render Back-to-feed link via renderRoot to fix type error",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.5.3"
    },
    {
      "id": "tsundoku-v1.5.0",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.5.0",
      "published_at": "2026-05-29T18:20:23Z",
      "version": "1.5.0",
      "summary": "Track highest volume/chapter across releases",
      "body": "### Features\n\n- *(source,db,resolution,api,web)* Track highest volume/chapter across releases",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.5.0"
    },
    {
      "id": "tsundoku-v1.5.1",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.5.1",
      "published_at": "2026-05-29T18:18:43Z",
      "version": "1.5.1",
      "summary": "Collapse the series tag list with a show-more toggle; Parse volume/chapter spans from real-world release names",
      "body": "### Features\n\n- *(web)* Collapse the series tag list with a show-more toggle\n\n### Bug Fixes\n\n- *(source,web)* Parse volume/chapter spans from real-world release names",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.5.1"
    },
    {
      "id": "tsundoku-v1.4.1",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.4.1",
      "published_at": "2026-05-29T15:20:50Z",
      "version": "1.4.1",
      "summary": "Add results-per-page selector to the series feed; Replace genre/tag chip clouds with searchable multi-selects",
      "body": "### Features\n\n- *(web)* Add results-per-page selector to the series feed\n\n### Performance\n\n- *(web)* Replace genre/tag chip clouds with searchable multi-selects",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.4.1"
    },
    {
      "id": "tsundoku-v1.4.0",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.4.0",
      "published_at": "2026-05-29T06:20:56Z",
      "version": "1.4.0",
      "summary": "Re-enrich existing releases by status; surface release details on series page",
      "body": "### Features\n\n- *(scheduler,api,web)* Re-enrich existing releases by status; surface release details on series page",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.4.0"
    },
    {
      "id": "tsundoku-v1.3.0",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.3.0",
      "published_at": "2026-05-29T05:47:38Z",
      "version": "1.3.0",
      "summary": "Capture and display the Nyaa Information-field link",
      "body": "### Features\n\n- *(source,api,web)* Capture and display the Nyaa Information-field link",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.3.0"
    },
    {
      "id": "tsundoku-v1.2.0",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.2.0",
      "published_at": "2026-05-29T03:50:28Z",
      "version": "1.2.0",
      "summary": "Split enrich + resolve timings on poll_runs and surface on metrics card",
      "body": "### Features\n\n- *(scheduler,api,web)* Split enrich + resolve timings on poll_runs and surface on metrics card",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.2.0"
    },
    {
      "id": "tsundoku-v1.1.1",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.1.1",
      "published_at": "2026-05-29T03:23:33Z",
      "version": "1.1.1",
      "summary": "Add split_chapter_suffix rule for bare trailing chapter numbers",
      "body": "### Features\n\n- *(resolution)* Add split_chapter_suffix rule for bare trailing chapter numbers",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.1.1"
    },
    {
      "id": "tsundoku-v1.1.2",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.1.2",
      "published_at": "2026-05-29T03:23:02Z",
      "version": "1.1.2",
      "summary": "Sort series releases by post date and add copy-link buttons; Match mangabaka.org links directly instead of falling to fuzzy",
      "body": "### Features\n\n- *(web,api)* Sort series releases by post date and add copy-link buttons\n- *(resolution)* Match mangabaka.org links directly instead of falling to fuzzy",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.1.2"
    },
    {
      "id": "tsundoku-v1.1.0",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.1.0",
      "published_at": "2026-05-29T00:08:18Z",
      "version": "1.1.0",
      "summary": "Centralize job lock + event lifecycle so manual triggers actually run",
      "body": "### Bug Fixes\n\n- *(scheduler,api)* Centralize job lock + event lifecycle so manual triggers actually run",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.1.0"
    },
    {
      "id": "tsundoku-v1.0.3",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.0.3",
      "published_at": "2026-05-28T15:06:40Z",
      "version": "1.0.3",
      "summary": "Add per-series refresh-metadata button",
      "body": "### Features\n\n- *(web)* Add per-series refresh-metadata button",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.0.3"
    },
    {
      "id": "tsundoku-v1.0.2",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.0.2",
      "published_at": "2026-05-28T14:48:47Z",
      "version": "1.0.2",
      "summary": "Expose app version via /info and show it in the header; Prevent provider/source card action group from shrinking; Mock /info and /events/jobs in MSW handlers",
      "body": "### Features\n\n- *(api,web)* Expose app version via /info and show it in the header\n\n### Bug Fixes\n\n- *(web)* Prevent provider/source card action group from shrinking\n- *(web)* Mock /info and /events/jobs in MSW handlers",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.0.2"
    },
    {
      "id": "tsundoku-v1.0.1",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.0.1",
      "published_at": "2026-05-28T06:04:08Z",
      "version": "1.0.1",
      "summary": "Add Playwright workflow for docs screenshots; Add init-config command and starter-template bootstrap; Touch CHANGELOG.md before git-cliff --prepend",
      "body": "### Features\n\n- *(screenshots)* Add Playwright workflow for docs screenshots\n- *(cli,config)* Add init-config command and starter-template bootstrap\n\n### Bug Fixes\n\n- *(makefile)* Touch CHANGELOG.md before git-cliff --prepend",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.0.1"
    },
    {
      "id": "tsundoku-v1.0.0",
      "project": "tsundoku",
      "kind": "release",
      "title": "Tsundoku 1.0.0",
      "published_at": "2026-05-28T05:49:32Z",
      "version": "1.0.0",
      "summary": "Land storage layer (sea-orm + FTS5) and frontend bootstrap follow-ups; Add MetadataProvider abstraction with MangaBaka impl and offline cache; Add DiscoverySource trait and Nyaa source with poll CLI",
      "body": "### Features\n\n- *(db)* Land storage layer (sea-orm + FTS5) and frontend bootstrap follow-ups\n- *(metadata)* Add MetadataProvider abstraction with MangaBaka impl and offline cache\n- *(source)* Add DiscoverySource trait and Nyaa source with poll CLI\n- *(resolution)* Add release-to-series resolution pipeline with resolve CLI\n- *(scheduler)* Add per-source poll and per-provider cache-refresh cron worker\n- *(api)* Add v1 HTTP API + single-user auth in td-api crate\n- *(web)* Add series feed and detail views with persisted filter presets\n- *(web)* Add review queue UI with admin-token auth gate\n- *(config)* Auto-merge sibling .local overlay between base file and env\n- *(admin)* Add /admin page with source/provider config and fan-out triggers\n- *(catalog)* Normalize genres and tags into joinable tables with filter UI\n- *(metrics)* Record scheduler runs and surface admin observability dashboards\n- *(resolve)* Translate legacy MangaUpdates IDs via live 308 redirects\n- *(resolve)* Clean release titles and Dice against cleaned queries\n- *(docs)* Scaffold Docusaurus docs site with landing page\n- *(docs)* Wire OpenAPI reference + align Makefile with Codex operational shape\n- *(review)* Add bulk retry-all button for the review queue\n- Rerank MangaBaka FTS hits and enrich the review queue card\n- *(admin)* Split admin into route-based multi-page UI under /admin/*\n- *(web)* Add debounced search and card/list view toggle on the feed\n- *(api,web)* Stream manual-trigger lifecycle via SSE\n- *(http)* Per-host outbound rate limiter for nyaa, mangabaka, mangaupdates\n- *(http)* Retry on 429/5xx with capped Retry-After and jittered backoff\n- *(admin)* Move review queue under /admin/review and fix sidebar active state\n- *(review)* Surface provider URL and alternate titles on candidates\n- *(api,web)* Show description, genres, and tags on the series feed list view\n- *(nyaa)* Walk multiple feed pages and skip already-seen posts\n- *(api,web)* Surface max_pages on the discovery-sources admin card\n- *(nyaa)* Add backfill command via HTML listing pagination\n- *(api,web)* Trigger source backfill in-process via endpoint and admin UI\n- *(resolution)* Strip bare chapter ranges and split subtitle heads\n- *(api,web)* Add standalone \"kept\" release disposition\n- *(api,web)* Add manual series creation\n- *(web)* Link review releases to an existing catalog series\n- *(api)* Filter the review queue by title, source, format, and status\n- *(api)* Bulk-reject and bulk-retry the review queue\n- *(web)* Search and filter the review queue\n- *(web)* Multi-select and bulk retry/reject in the review queue\n- *(web)* Show details and an expandable description on kept releases\n- *(api,web)* Show torrent file list and metadata volume/chapter counts\n- *(api,web)* Show series format on review candidates\n- *(web)* Show tags on the series page and relink misclassified releases\n- *(api,web)* Surface series rating, counts, and release count with matching sorts and filters\n- *(resolution,db,config)* Groundwork for bulk series metadata refresh\n- *(scheduler,db)* Scheduled series-metadata refresh job\n- *(api,cli)* Bulk series-metadata refresh endpoint + CLI\n- *(resolution,api)* Filter fuzzy candidates by release format; allow re-resolving resolved rows\n- *(api,web)* Multi-select genres and tags with any/all toggle\n- *(web)* Add dark mode toggle in the app shell\n\n### Bug Fixes\n\n- *(db)* Derive release id from (source_kind, external_id) only\n- *(web)* Prevent provider search results from compressing under flex shrink\n- *(nyaa)* Resolve XML entity references in parsed item fields\n- *(ci)* Unblock cargo-dist and Dockerfile.cross builds\n- *(mangabaka)* Correct public series URL to mangabaka.org/{id}\n- *(mangabaka)* Populate genres and tags from offline dump\n- *(ci)* Inherit workspace repository key in all crate manifests\n- *(ci)* Allow-dirty cargo-dist generated CI files\n- *(ci)* Define [profile.dist] for cargo-dist builds\n- *(review)* Enlarge candidate cards and show full alternate titles\n- *(web)* Forward hasReleases to the series API and tri-state the boolean filters\n\n### Other\n\n- *(api)* Add free-text series search and id-maps metrics endpoint",
      "url": "https://github.com/AshDevFr/tsundoku/releases/tag/v1.0.0"
    }
  ]
}
