{
  "version": 1,
  "project": "codex",
  "generated_at": "2026-10-17T23:48:20Z",
  "entries": [
    {
      "id": "codex-v2.6.3",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.6.3",
      "published_at": "2026-10-02T23:24:00Z",
      "version": "2.6.3",
      "summary": "Keep agent worktrees out of the Docker build context; Stop a session that moved nothing from rewriting reading progress; Report a concurrently replayed reading session as a duplicate",
      "body": "### 🐛 Bug Fixes\n\n- *(build)* Keep agent worktrees out of the Docker build context\n- *(db)* Stop a session that moved nothing from rewriting reading progress\n- *(db)* Report a concurrently replayed reading session as a duplicate",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.6.3"
    },
    {
      "id": "codex-v2.6.2",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.6.2",
      "published_at": "2026-09-28T17:57:55Z",
      "version": "2.6.2",
      "summary": "State scoped imports as coverage, and carry want-to-read across",
      "body": "### 🔌 API\n\n- *(api)* State scoped imports as coverage, and carry want-to-read across",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.6.2"
    },
    {
      "id": "codex-v2.6.1",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.6.1",
      "published_at": "2026-09-28T05:05:16Z",
      "version": "2.6.1",
      "summary": "Let an import actually use external ids, and scope it to a library",
      "body": "### 🔌 API\n\n- *(api)* Let an import actually use external ids, and scope it to a library",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.6.1"
    },
    {
      "id": "codex-v2.6.0",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.6.0",
      "published_at": "2026-09-28T02:55:45Z",
      "version": "2.6.0",
      "summary": "Show reading of deleted books, and a confirmed way to delete it; Add a Reading Progress settings page for export and import; Count reading of deleted books, and let a reader purge it",
      "body": "### 🔌 API\n\n- *(api)* Count reading of deleted books, and let a reader purge it\n- *(api)* Export and import one user's reading state across a library split\n- *(api)* Export soft-deleted books, and respect rating timestamps on import\n- *(api)* Harden reading-progress import against colliding and crafted input\n- *(api)* CamelCase the reading-progress transfer wire format\n\n### 🚀 Features\n\n- *(web)* Show reading of deleted books, and a confirmed way to delete it\n- *(web)* Add a Reading Progress settings page for export and import\n\n### 🐛 Bug Fixes\n\n- *(db)* Keep reading history when its book is hard-deleted\n- Make removed-book history reachable and its purge honest\n- *(build)* Use the system linker on macOS",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.6.0"
    },
    {
      "id": "codex-v2.5.0",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.5.0",
      "published_at": "2026-09-12T23:27:57Z",
      "version": "2.5.0",
      "summary": "Validate a hand-written filter condition against the field catalog; Add a JSON view of the filter rule, with copy and paste; Show the rule JSON panel under the filter builder",
      "body": "### 🚀 Features\n\n- *(web)* Validate a hand-written filter condition against the field catalog\n- *(web)* Add a JSON view of the filter rule, with copy and paste\n- *(web)* Show the rule JSON panel under the filter builder",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.5.0"
    },
    {
      "id": "codex-v2.4.16",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.4.16",
      "published_at": "2026-09-09T03:04:07Z",
      "version": "2.4.16",
      "summary": "Stop a parked tab from clobbering progress read elsewhere",
      "body": "### 🐛 Bug Fixes\n\n- *(reader)* Stop a parked tab from clobbering progress read elsewhere",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.4.16"
    },
    {
      "id": "codex-v2.4.15",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.4.15",
      "published_at": "2026-09-05T05:56:49Z",
      "version": "2.4.15",
      "summary": "Honor the sort parameter on unsearched book lists",
      "body": "### 🔌 API\n\n- *(api)* Honor the sort parameter on unsearched book lists",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.4.15"
    },
    {
      "id": "codex-v2.4.14",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.4.14",
      "published_at": "2026-09-04T17:56:16Z",
      "version": "2.4.14",
      "summary": "Codex 2.4.14 released.",
      "body": "See the full release notes on GitHub.",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.4.14"
    },
    {
      "id": "codex-v2.4.13",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.4.13",
      "published_at": "2026-09-04T02:48:00Z",
      "version": "2.4.13",
      "summary": "Gate progress endpoints on the progress permissions; Require series:read on want-to-read, recommendations, and series exports; Unify the permission wire format and expose plugins-manage in the picker",
      "body": "### 🔌 API\n\n- *(api)* Gate progress endpoints on the progress permissions\n- *(api)* Require series:read on want-to-read, recommendations, and series exports\n- *(api)* Unify the permission wire format and expose plugins-manage in the picker\n- *(api)* Accept API keys as Bearer tokens\n\n### 🐛 Bug Fixes\n\n- *(ci)* Skip npm publishes for versions already on the registry\n- *(docker)* Install the dev frontend from the lockfile too",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.4.13"
    },
    {
      "id": "codex-v2.4.12",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.4.12",
      "published_at": "2026-09-03T21:51:32Z",
      "version": "2.4.12",
      "summary": "Move the plugin publish jobs to npm 12",
      "body": "### 🐛 Bug Fixes\n\n- *(ci)* Move the plugin publish jobs to npm 12",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.4.12"
    },
    {
      "id": "codex-v2.4.11",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.4.11",
      "published_at": "2026-09-03T19:50:08Z",
      "version": "2.4.11",
      "summary": "Use the lockfile in the cross-build image too",
      "body": "### 🐛 Bug Fixes\n\n- *(docker)* Use the lockfile in the cross-build image too",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.4.11"
    },
    {
      "id": "codex-v2.4.10",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.4.10",
      "published_at": "2026-09-03T17:55:33Z",
      "version": "2.4.10",
      "summary": "Install the frontend from the lockfile, not a live re-resolve",
      "body": "### 🐛 Bug Fixes\n\n- *(docker)* Install the frontend from the lockfile, not a live re-resolve",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.4.10"
    },
    {
      "id": "codex-v2.4.9",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.4.9",
      "published_at": "2026-09-03T16:47:51Z",
      "version": "2.4.9",
      "summary": "Size the webtoon seam overlap to a full device pixel under zoom-out",
      "body": "### 🐛 Bug Fixes\n\n- *(reader)* Size the webtoon seam overlap to a full device pixel under zoom-out",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.4.9"
    },
    {
      "id": "codex-v2.4.8",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.4.8",
      "published_at": "2026-09-02T15:59:26Z",
      "version": "2.4.8",
      "summary": "Measure the away gap from the pause, not the last page turn",
      "body": "### 🐛 Bug Fixes\n\n- *(reader)* Measure the away gap from the pause, not the last page turn",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.4.8"
    },
    {
      "id": "codex-v2.4.7",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.4.7",
      "published_at": "2026-09-01T01:00:44Z",
      "version": "2.4.7",
      "summary": "Keep 8-bit alpha in the favicon's 16px frame",
      "body": "### 🐛 Bug Fixes\n\n- *(web)* Keep 8-bit alpha in the favicon's 16px frame",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.4.7"
    },
    {
      "id": "codex-v2.4.6",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.4.6",
      "published_at": "2026-09-01T00:23:08Z",
      "version": "2.4.6",
      "summary": "Switch the app icon to the ice+ember branding",
      "body": "### 🚀 Features\n\n- *(web)* Switch the app icon to the ice+ember branding",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.4.6"
    },
    {
      "id": "codex-v2.4.5",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.4.5",
      "published_at": "2026-08-31T16:30:50Z",
      "version": "2.4.5",
      "summary": "Bucket reading activity by the viewer's day instead of UTC",
      "body": "### 🐛 Bug Fixes\n\n- *(stats)* Bucket reading activity by the viewer's day instead of UTC",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.4.5"
    },
    {
      "id": "codex-v2.4.4",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.4.4",
      "published_at": "2026-08-29T23:41:38Z",
      "version": "2.4.4",
      "summary": "Overlap webtoon pages 1px to stop sub-pixel seams at zero gap",
      "body": "### 🐛 Bug Fixes\n\n- *(reader)* Overlap webtoon pages 1px to stop sub-pixel seams at zero gap",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.4.4"
    },
    {
      "id": "codex-v2.4.3",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.4.3",
      "published_at": "2026-08-29T17:30:59Z",
      "version": "2.4.3",
      "summary": "Let a reader drop a series reading direction back to the inherited one",
      "body": "### 🚀 Features\n\n- *(web)* Let a reader drop a series reading direction back to the inherited one",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.4.3"
    },
    {
      "id": "codex-v2.4.2",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.4.2",
      "published_at": "2026-08-29T07:10:11Z",
      "version": "2.4.2",
      "summary": "Stop losing the renumber pass a book was waiting on",
      "body": "### 🐛 Bug Fixes\n\n- *(scanner)* Stop losing the renumber pass a book was waiting on",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.4.2"
    },
    {
      "id": "codex-v2.4.1",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.4.1",
      "published_at": "2026-08-28T02:11:27Z",
      "version": "2.4.1",
      "summary": "Give the sorts with guaranteed ties a defined order; Finish giving every ordered list a defined total order; Order on-deck and the error list past their ties",
      "body": "### 🐛 Bug Fixes\n\n- *(db)* Give the sorts with guaranteed ties a defined order\n- *(db)* Finish giving every ordered list a defined total order\n- *(db)* Order on-deck and the error list past their ties",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.4.1"
    },
    {
      "id": "codex-v2.4.0",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.4.0",
      "published_at": "2026-08-27T01:21:48Z",
      "version": "2.4.0",
      "summary": "Store per-user reader settings for a series; Carry per-series reading directions over to the account; [breaking] Sync only reading direction per series, not every reader setting",
      "body": "### 🔌 API (breaking)\n\n- *(api)* [**breaking**] Sync only reading direction per series, not every reader setting\n\n### 🔌 API\n\n- *(api)* Give reading direction one vocabulary and validate every write\n- *(api)* Let any reader fix a series' reader settings for themselves\n- *(api)* Resolve reading direction per caller, not per series\n\n### 🚀 Features\n\n- *(db)* Store per-user reader settings for a series\n- *(web)* Carry per-series reading directions over to the account\n\n### 🐛 Bug Fixes\n\n- *(web)* Stop the reader rewriting a series for everyone who reads it",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.4.0"
    },
    {
      "id": "codex-v2.3.0",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.3.0",
      "published_at": "2026-08-26T19:15:31Z",
      "version": "2.3.0",
      "summary": "[breaking] Report live scan progress, and purge in seconds not days; Stop book search multiplying its page offset by the page size; Lock every series metadata field the write endpoints touch",
      "body": "### 🔌 API (breaking)\n\n- *(api)* [**breaking**] Report live scan progress, and purge in seconds not days\n\n### 🔌 API\n\n- *(api)* Stop book search multiplying its page offset by the page size\n- *(api)* Lock every series metadata field the write endpoints touch\n- *(api)* Report the scan counts the worker already recorded\n- *(api)* Honor the sort parameter on non-fuzzy book search\n- *(api)* Return the second page of the recently-added and in-progress feeds\n- *(api)* Keep recommendation dismissals across regeneration\n- *(api)* Describe the metadata auto-lock behaviour in the schema\n\n### 🐛 Bug Fixes\n\n- *(tasks)* Make finished-task retention a setting instead of ten seconds",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.3.0"
    },
    {
      "id": "codex-v2.2.4",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.2.4",
      "published_at": "2026-08-24T23:09:43Z",
      "version": "2.2.4",
      "summary": "Stop per-book analysis racing on positional book numbers",
      "body": "### 🐛 Bug Fixes\n\n- *(scanner)* Stop per-book analysis racing on positional book numbers",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.2.4"
    },
    {
      "id": "codex-v2.2.3",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.2.3",
      "published_at": "2026-08-24T18:29:11Z",
      "version": "2.2.3",
      "summary": "Serve the archive entry the page row names, not the one at that index; Stop dropping AVIF pages at the extension gate; Stop webtoon pages deadlocking on their own lazy load",
      "body": "### 🔌 API\n\n- *(api)* Serve the archive entry the page row names, not the one at that index\n\n### 🐛 Bug Fixes\n\n- *(parsers)* Stop dropping AVIF pages at the extension gate\n- *(reader)* Stop webtoon pages deadlocking on their own lazy load",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.2.3"
    },
    {
      "id": "codex-v2.2.2",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.2.2",
      "published_at": "2026-08-23T20:46:42Z",
      "version": "2.2.2",
      "summary": "Remove the duplicate header left by the 2.2.1 release; Make the auth pages follow the color scheme instead of forcing dark; Stop borrowing the book count as a volume or chapter numerator",
      "body": "### 🐛 Bug Fixes\n\n- *(changelog)* Remove the duplicate header left by the 2.2.1 release\n- *(web)* Make the auth pages follow the color scheme instead of forcing dark\n- *(web)* Stop borrowing the book count as a volume or chapter numerator",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.2.2"
    },
    {
      "id": "codex-v2.2.1",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.2.1",
      "published_at": "2026-08-23T06:30:52Z",
      "version": "2.2.1",
      "summary": "Make the reading-session rules a shared file instead of test code; Document the preference keys that exist and stop mocking ones that don't",
      "body": "### 🔌 API\n\n- *(api)* Document the preference keys that exist and stop mocking ones that don't\n\n### 🚀 Features\n\n- *(contracts)* Make the reading-session rules a shared file instead of test code",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.2.1"
    },
    {
      "id": "codex-v2.2.0",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.2.0",
      "published_at": "2026-08-22T20:20:20Z",
      "version": "2.2.0",
      "summary": "Make the book file endpoint range-capable and conditional; Describe the full response shapes as their own routes; Describe series pages, library book params, and the filter grammar correctly",
      "body": "### 🚀 Features\n\n- *(api)* Make the book file endpoint range-capable and conditional\n- *(api)* Describe the full response shapes as their own routes\n\n### 🐛 Bug Fixes\n\n- *(api)* Describe series pages, library book params, and the filter grammar correctly\n- *(api)* Declare the media types the binary endpoints actually send\n- *(api)* Reference generic type arguments instead of inlining them\n- *(web)* Serve the new full routes from the mocks and drop the dead full plumbing\n\n### 💼 Other\n\n- *(docs)* Upgrade Docusaurus and the OpenAPI plugin so the site builds again",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.2.0"
    },
    {
      "id": "codex-v2.1.0",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.1.0",
      "published_at": "2026-08-21T06:50:55Z",
      "version": "2.1.0",
      "summary": "Keep OIDC login state in the database so any replica can complete it; Stop plugin OAuth and entity events from being trapped in one process",
      "body": "### 🐛 Bug Fixes\n\n- *(auth)* Keep OIDC login state in the database so any replica can complete it\n- *(replicas)* Stop plugin OAuth and entity events from being trapped in one process",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.1.0"
    },
    {
      "id": "codex-v2.0.0",
      "project": "codex",
      "kind": "release",
      "title": "Codex 2.0.0",
      "published_at": "2026-08-21T01:14:31Z",
      "version": "2.0.0",
      "summary": "[breaking] Layer configuration with figment and nest env vars with __; Accept the environment value shapes the override layer allowed; [breaking] Make the ad-hoc environment reads real configuration keys",
      "body": "### 🚀 Features\n\n- *(config)* [**breaking**] Layer configuration with figment and nest env vars with __\n- *(config)* Accept the environment value shapes the override layer allowed\n- *(config)* [**breaking**] Make the ad-hoc environment reads real configuration keys\n- *(config)* [**breaking**] Refuse to start when the environment names a setting that is no longer read\n- *(config)* [**breaking**] Stop writing a config file at startup, add `codex config init`\n- *(db)* [**breaking**] Make PostgreSQL TLS a real setting and stop corrupting URLs on odd passwords\n\n### 🐛 Bug Fixes\n\n- *(config)* Reject a configuration that names a database section it lacks\n- *(config)* Ignore local overlays and keep the starter template in config/",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v2.0.0"
    },
    {
      "id": "codex-v1.44.5",
      "project": "codex",
      "kind": "release",
      "title": "Codex 1.44.5",
      "published_at": "2026-08-18T04:58:47Z",
      "version": "1.44.5",
      "summary": "Make webtoon page requests honour the downscale setting; Stop the webtoon reader mutating the DOM when a scroll settles",
      "body": "### 🐛 Bug Fixes\n\n- *(reader)* Make webtoon page requests honour the downscale setting\n- *(reader)* Stop the webtoon reader mutating the DOM when a scroll settles",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v1.44.5"
    },
    {
      "id": "codex-v1.44.4",
      "project": "codex",
      "kind": "release",
      "title": "Codex 1.44.4",
      "published_at": "2026-08-18T01:36:25Z",
      "version": "1.44.4",
      "summary": "Disclose sittings that reported no page count",
      "body": "### 🐛 Bug Fixes\n\n- *(stats)* Disclose sittings that reported no page count",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v1.44.4"
    },
    {
      "id": "codex-v1.44.3",
      "project": "codex",
      "kind": "release",
      "title": "Codex 1.44.3",
      "published_at": "2026-08-16T18:20:21Z",
      "version": "1.44.3",
      "summary": "Let the reading dashboard measure pages and books finished; Add calendar-year and all-time ranges to the reading dashboard; Stop the reading dashboard misnaming and mis-ranking series",
      "body": "### 🚀 Features\n\n- *(stats)* Let the reading dashboard measure pages and books finished\n- *(stats)* Add calendar-year and all-time ranges to the reading dashboard\n\n### 🐛 Bug Fixes\n\n- *(stats)* Stop the reading dashboard misnaming and mis-ranking series",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v1.44.3"
    },
    {
      "id": "codex-v1.44.2",
      "project": "codex",
      "kind": "release",
      "title": "Codex 1.44.2",
      "published_at": "2026-08-16T08:04:28Z",
      "version": "1.44.2",
      "summary": "Keep the activity calendar populated on the one-year range",
      "body": "### 🐛 Bug Fixes\n\n- *(web)* Keep the activity calendar populated on the one-year range",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v1.44.2"
    },
    {
      "id": "codex-v1.44.1",
      "project": "codex",
      "kind": "release",
      "title": "Codex 1.44.1",
      "published_at": "2026-08-16T06:28:44Z",
      "version": "1.44.1",
      "summary": "Make reading statistics work on PostgreSQL",
      "body": "### 🐛 Bug Fixes\n\n- *(db)* Make reading statistics work on PostgreSQL",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v1.44.1"
    },
    {
      "id": "codex-v1.44.0",
      "project": "codex",
      "kind": "release",
      "title": "Codex 1.44.0",
      "published_at": "2026-08-15T22:22:05Z",
      "version": "1.44.0",
      "summary": "Derive reading progress from an append-only session log; Add a batched endpoint for recording reading sessions; Measure reading time and pages read in all three readers",
      "body": "### 🚀 Features\n\n- *(db)* Derive reading progress from an append-only session log\n- *(api)* Add a batched endpoint for recording reading sessions\n- *(web)* Measure reading time and pages read in all three readers\n- *(api)* Attribute reading from Komga, OPDS and KOReader clients\n- *(api)* Collapse a reading sitting into a single session row\n- *(api)* Add reading statistics and a dashboard to view them\n- *(api)* Let a native client request an allowlisted OIDC redirect target\n- *(api)* Return the OIDC callback to the client that started the flow\n- *(config)* Report environment variables that are wrong or change in 2.0\n- *(api)* Remove a single entry from a book's read history\n\n### 🐛 Bug Fixes\n\n- *(api)* Make the OpenAPI document usable by strict client generators\n- *(config)* Accept --config after the check subcommand\n\n### ⚡ Performance\n\n- *(db)* Fold reading progress from the current pass only\n- *(db)* Mark a whole series in one transaction",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v1.44.0"
    },
    {
      "id": "codex-v1.43.6",
      "project": "codex",
      "kind": "release",
      "title": "Codex 1.43.6",
      "published_at": "2026-08-12T16:34:24Z",
      "version": "1.43.6",
      "summary": "Retry the initial connection when running migrations",
      "body": "### 🐛 Bug Fixes\n\n- *(db)* Retry the initial connection when running migrations",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v1.43.6"
    },
    {
      "id": "codex-v1.43.5",
      "project": "codex",
      "kind": "release",
      "title": "Codex 1.43.5",
      "published_at": "2026-08-12T06:05:38Z",
      "version": "1.43.5",
      "summary": "Stop starting processes from exhausting the connection limit",
      "body": "### 🐛 Bug Fixes\n\n- *(db)* Stop starting processes from exhausting the connection limit",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v1.43.5"
    },
    {
      "id": "codex-v1.43.4",
      "project": "codex",
      "kind": "release",
      "title": "Codex 1.43.4",
      "published_at": "2026-08-11T03:53:39Z",
      "version": "1.43.4",
      "summary": "Scaffold the mangabaka recommendations plugin; Generate mangabaka recommendations from library seeds; Keep franchise spam out of mangabaka recommendations",
      "body": "### 🚀 Features\n\n- *(plugins)* Scaffold the mangabaka recommendations plugin\n- *(plugins)* Generate mangabaka recommendations from library seeds\n- *(plugins)* Keep franchise spam out of mangabaka recommendations\n- *(plugins)* Blend reader-overlap recommendations into mangabaka results\n- *(plugins)* Make mangabaka recommendations configurable per user\n- *(plugins)* Register the mangabaka recommendations plugin\n\n### 🐛 Bug Fixes\n\n- *(plugins)* Stop sending the mangabaka popularity rank to the host",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v1.43.4"
    },
    {
      "id": "codex-v1.43.3",
      "project": "codex",
      "kind": "release",
      "title": "Codex 1.43.3",
      "published_at": "2026-08-07T18:52:30Z",
      "version": "1.43.3",
      "summary": "Show a real label for every active task",
      "body": "### 🐛 Bug Fixes\n\n- *(tasks)* Show a real label for every active task",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v1.43.3"
    },
    {
      "id": "codex-v1.43.2",
      "project": "codex",
      "kind": "release",
      "title": "Codex 1.43.2",
      "published_at": "2026-08-01T00:19:37Z",
      "version": "1.43.2",
      "summary": "Serve collection and read list covers as image bytes",
      "body": "### 🐛 Bug Fixes\n\n- *(komga)* Serve collection and read list covers as image bytes",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v1.43.2"
    },
    {
      "id": "codex-v1.43.1",
      "project": "codex",
      "kind": "release",
      "title": "Codex 1.43.1",
      "published_at": "2026-07-31T04:45:10Z",
      "version": "1.43.1",
      "summary": "Reorder filter builder conditions by dragging; Honour the sort parameter on a collection's series; Honour the sort parameter on a read list's books",
      "body": "### 🚀 Features\n\n- *(web)* Reorder filter builder conditions by dragging\n\n### 🐛 Bug Fixes\n\n- *(komga)* Honour the sort parameter on a collection's series\n- *(komga)* Honour the sort parameter on a read list's books\n- *(komga)* Stop thumbnail requests from blocking the async runtime\n- *(web)* Stop filter drags reverting and fix drops around groups",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v1.43.1"
    },
    {
      "id": "codex-v1.43.0",
      "project": "codex",
      "kind": "release",
      "title": "Codex 1.43.0",
      "published_at": "2026-07-31T01:04:38Z",
      "version": "1.43.0",
      "summary": "Explain each release action in its tooltip; Add rating filters and multi-library selection; Resolve rule-backed collection membership at read time",
      "body": "### 🚀 Features\n\n- *(web)* Explain each release action in its tooltip\n- *(search)* Add rating filters and multi-library selection\n- *(collections)* Resolve rule-backed collection membership at read time\n- *(api)* Create and edit rule-backed collections, and refuse to edit them by hand\n- *(web)* Build and browse automatic collections\n- *(db)* Add an append-only read-completion log\n- *(db)* Bank a completion on every finished read-through\n- *(api)* Expose read completion history and let users reset it\n- *(web)* Show read history on detail pages and let users reset it\n- *(web)* Suggest existing tags and genres in the filter builder\n\n### 🐛 Bug Fixes\n\n- *(web)* Repair the frontend build broken by the collection rule types\n- *(web)* Align the membership toggle's selected pill\n- *(web)* Refresh automatic collections when series metadata changes\n- *(api)* Stop shared caches storing the collection thumbnail redirect\n\n### ⚡ Performance\n\n- *(collections)* Stop resolving a whole rule to render one cover",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v1.43.0"
    },
    {
      "id": "codex-v1.42.3",
      "project": "codex",
      "kind": "release",
      "title": "Codex 1.42.3",
      "published_at": "2026-07-29T01:58:09Z",
      "version": "1.42.3",
      "summary": "Migrate mangabaka to the api.mangabaka.org host",
      "body": "### 🐛 Bug Fixes\n\n- *(plugins)* Migrate mangabaka to the api.mangabaka.org host",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v1.42.3"
    },
    {
      "id": "codex-v1.42.2",
      "project": "codex",
      "kind": "release",
      "title": "Codex 1.42.2",
      "published_at": "2026-07-22T17:45:09Z",
      "version": "1.42.2",
      "summary": "Expose the want-to-read queue as a virtual collection and read list",
      "body": "### 🚀 Features\n\n- *(komga)* Expose the want-to-read queue as a virtual collection and read list",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v1.42.2"
    },
    {
      "id": "codex-v1.42.1",
      "project": "codex",
      "kind": "release",
      "title": "Codex 1.42.1",
      "published_at": "2026-07-21T19:40:25Z",
      "version": "1.42.1",
      "summary": "Make the mobile search sheet scrollable above the iOS keyboard",
      "body": "### 🐛 Bug Fixes\n\n- *(web)* Make the mobile search sheet scrollable above the iOS keyboard",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v1.42.1"
    },
    {
      "id": "codex-v1.42.0",
      "project": "codex",
      "kind": "release",
      "title": "Codex 1.42.0",
      "published_at": "2026-07-19T02:05:19Z",
      "version": "1.42.0",
      "summary": "Add summary as a filterable field for series and books; Add webLinks manifest capability schema; Add plugins/web-links endpoint resolving webLinks templates",
      "body": "### 🚀 Features\n\n- *(search)* Add summary as a filterable field for series and books\n- *(plugins)* Add webLinks manifest capability schema\n- *(api)* Add plugins/web-links endpoint resolving webLinks templates\n- *(web)* Show plugin web-link buttons on the series detail page\n- *(plugins)* Declare webLinks in the tsundoku, mangaupdates, and nyaa manifests\n- *(plugins)* Make the nyaa search button's category and filter configurable\n- *(web)* Add alternate-link and search dropdown to plugin web-link buttons\n\n### 🐛 Bug Fixes\n\n- *(web)* Wrap collection and read list headers on narrow viewports\n- *(plugins)* Point the tsundoku search link at the root page",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v1.42.0"
    },
    {
      "id": "codex-v1.41.1",
      "project": "codex",
      "kind": "release",
      "title": "Codex 1.41.1",
      "published_at": "2026-07-16T01:48:23Z",
      "version": "1.41.1",
      "summary": "Add collection and read-list membership fields to data exports; Show all catalog fields in the export modal field groups",
      "body": "### 🚀 Features\n\n- *(export)* Add collection and read-list membership fields to data exports\n\n### 🐛 Bug Fixes\n\n- *(web)* Show all catalog fields in the export modal field groups",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v1.41.1"
    },
    {
      "id": "codex-v1.41.0",
      "project": "codex",
      "kind": "release",
      "title": "Codex 1.41.0",
      "published_at": "2026-07-15T04:37:58Z",
      "version": "1.41.0",
      "summary": "Shared media grid with sort selectors and drag-and-drop reorder; Manual ordering everywhere, collection summaries, persisted queue sort; Honor the ordered flag when listing collection and read list members",
      "body": "### 🚀 Features\n\n- *(web)* Shared media grid with sort selectors and drag-and-drop reorder\n- Manual ordering everywhere, collection summaries, persisted queue sort\n\n### 🐛 Bug Fixes\n\n- *(api)* Honor the ordered flag when listing collection and read list members\n- *(web)* Refresh want-to-read state on the book page by fixing its query key\n- *(web)* Keep the card hover panel off touch devices and out of the menu's way\n- *(docker)* Add codex-migrate to the dev image's dependency cache layer\n- Stuck covers, case-insensitive sorts, detail-key collision; add sort direction\n- Fluid index grids, persisted list sorts, fresh redirect thumbnails\n- *(api)* Case-insensitive name sort on the series list endpoint too",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v1.41.0"
    },
    {
      "id": "codex-v1.40.8",
      "project": "codex",
      "kind": "release",
      "title": "Codex 1.40.8",
      "published_at": "2026-07-12T07:24:42Z",
      "version": "1.40.8",
      "summary": "Drop unsafe optional chaining flagged by biome in tests",
      "body": "### 🐛 Bug Fixes\n\n- *(plugins)* Drop unsafe optional chaining flagged by biome in tests",
      "url": "https://github.com/AshDevFr/codex/releases/tag/v1.40.8"
    }
  ]
}
