Commit graph

  • 0b35367200
    fix: Store pairing codes as hash of MD5-derived key clients send main Chmouel Boudjnah 2026-08-29 09:54:01 +02:00
  • 97dc541fa0
    fix: Add copy button for flash secrets to prevent transcription errors Chmouel Boudjnah 2026-08-29 08:51:18 +02:00
  • 6a69428983
    feat: Separate OPDS rate limiter from authentication limits Chmouel Boudjnah 2026-08-28 23:08:28 +02:00
  • 33732f14bc
    fix: refuse a position that cannot be read instead of storing it as zero Chmouel Boudjnah 2026-08-26 23:26:25 +02:00
  • e750e82f16 fix: acknowledge a retried post-sweep resurrect as duplicate Chmouel Boudjnah 2026-08-25 11:54:45 +02:00
  • 0a6d4167aa feat: sync annotations across devices (ADR-0028) Chmouel Boudjnah 2026-08-25 09:18:04 +02:00
  • 0cb07fd881
    fix: acknowledge a retried post-sweep resurrect as duplicate Chmouel Boudjnah 2026-08-25 11:54:45 +02:00
  • 9a5f0f9cb7
    feat: sync annotations across devices (ADR-0028) Chmouel Boudjnah 2026-08-25 09:18:04 +02:00
  • 2deb744a79 docs: record ADR-0028, annotation sync as mutable reading state Chmouel Boudjnah 2026-08-25 07:32:11 +02:00
  • 64f056b5b0
    docs: record ADR-0028, annotation sync as mutable reading state Chmouel Boudjnah 2026-08-25 07:32:11 +02:00
  • a71d5c2b4a fix: Constrain dashboard device IDs Chmouel Boudjnah 2026-08-24 15:56:55 +02:00
  • 5bd21ac29f docs: Refresh dashboard screenshot Chmouel Boudjnah 2026-08-24 15:50:11 +02:00
  • 1400347807 feat: Show custom device names in dashboard reading sessions Chmouel Boudjnah 2026-08-24 15:46:28 +02:00
  • 4638fdac7e
    fix: Constrain dashboard device IDs Chmouel Boudjnah 2026-08-24 15:56:55 +02:00
  • 0315a700b7
    docs: Refresh dashboard screenshot Chmouel Boudjnah 2026-08-24 15:50:11 +02:00
  • a9820f0f71
    feat: Show custom device names in dashboard reading sessions Chmouel Boudjnah 2026-08-24 15:46:28 +02:00
  • a79a907ea7 fix: fall back for cross-folder series piles Chmouel Boudjnah 2026-08-24 02:32:22 +02:00
  • 23570f8768 test: keep screenshot fixture folders visible Chmouel Boudjnah 2026-08-24 02:29:32 +02:00
  • 0ce92044db feat: group web series across the library Chmouel Boudjnah 2026-08-24 02:27:59 +02:00
  • 39ea5b6cb7
    fix: fall back for cross-folder series piles Chmouel Boudjnah 2026-08-24 02:32:22 +02:00
  • 5b6ef11a1e
    test: keep screenshot fixture folders visible Chmouel Boudjnah 2026-08-24 02:29:32 +02:00
  • ac5f150e56
    feat: group web series across the library Chmouel Boudjnah 2026-08-24 02:27:59 +02:00
  • c576e0f624 fix: keep the dashboard's span honest at both of its edges Chmouel Boudjnah 2026-08-24 01:55:37 +02:00
  • cb5a4188d7 feat: let the web dashboard ask about any span of reading Chmouel Boudjnah 2026-08-24 01:33:27 +02:00
  • 888ea83335
    fix: keep the dashboard's span honest at both of its edges Chmouel Boudjnah 2026-08-24 01:55:37 +02:00
  • 2aa505e9a0
    feat: let the web dashboard ask about any span of reading Chmouel Boudjnah 2026-08-24 01:33:27 +02:00
  • a271b3849b test: pin a count of days with no unit to the default span Chmouel Boudjnah 2026-08-23 23:19:33 +02:00
  • 7301138c36 fix: fall back to the default span when a range cannot be read Chmouel Boudjnah 2026-08-23 22:57:24 +02:00
  • f5ae00551a feat: answer insights over an explicit span of days Chmouel Boudjnah 2026-08-23 22:40:52 +02:00
  • d4ab5e1fb6
    test: pin a count of days with no unit to the default span Chmouel Boudjnah 2026-08-23 23:19:33 +02:00
  • dea0e00407
    fix: fall back to the default span when a range cannot be read Chmouel Boudjnah 2026-08-23 22:57:24 +02:00
  • ee233879f8
    feat: answer insights over an explicit span of days Chmouel Boudjnah 2026-08-23 22:40:52 +02:00
  • c9687a36bf
    fix: redirect after a settings mutation instead of rendering in place Chmouel Boudjnah 2026-08-22 11:48:38 +02:00
  • 01ba487b13 feat: scope catalog access to explicit per-user folder grants Chmouel Boudjnah 2026-08-22 10:37:28 +02:00
  • 6499253653
    feat: scope catalog access to explicit per-user folder grants Chmouel Boudjnah 2026-08-22 10:37:28 +02:00
  • db99ceef81
    docs: replace em dashes and fix formatting Chmouel Boudjnah 2026-08-22 07:33:05 +02:00
  • 21d4f49531
    docs: align openapi contract Chmouel Boudjnah 2026-08-21 18:05:29 +02:00
  • 7d38b61a89
    docs: polish readability and flow of project documentation Chmouel Boudjnah 2026-08-21 17:19:41 +02:00
  • 5004f7bfd0
    feat: refresh reading library UI Chmouel Boudjnah 2026-08-21 15:57:09 +02:00
  • ffcf51adba
    fix: make read status visible Chmouel Boudjnah 2026-08-21 12:00:12 +02:00
  • d2d8686a82
    feat: add read status toggle Chmouel Boudjnah 2026-08-21 11:17:14 +02:00
  • 7d0de19476
    fix: show thumbnails in series reading order Chmouel Boudjnah 2026-08-21 10:55:24 +02:00
  • 939ccead66 feat: group library books by series Chmouel Boudjnah 2026-08-21 10:36:34 +02:00
  • d6bdef2766
    feat: group library books by series Chmouel Boudjnah 2026-08-21 10:36:34 +02:00
  • 5930254719
    feat: group library books by series agent/harden-credential-enrolment Chmouel Boudjnah 2026-08-21 10:36:34 +02:00
  • 1157733ded fix: validate generated invite secrets Chmouel Boudjnah 2026-08-19 23:36:21 +02:00
  • ce355dfa29 fix: harden credential enrolment Chmouel Boudjnah 2026-08-19 23:28:28 +02:00
  • a4d1b63202
    fix: validate generated invite secrets Chmouel Boudjnah 2026-08-19 23:36:21 +02:00
  • a462e71452
    fix: harden credential enrolment Chmouel Boudjnah 2026-08-19 23:28:28 +02:00
  • 78c161fffe
    feat: Support trusted-proxy-aware client IP rate limiting Chmouel Boudjnah 2026-08-19 22:52:26 +02:00
  • f0a4a65105
    docs: Add comparison section against alternative servers Chmouel Boudjnah 2026-08-19 11:55:58 +02:00
  • 0663d3aff3
    docs: add dashboard screenshot and populate mock data Chmouel Boudjnah 2026-08-19 11:32:47 +02:00
  • 53a3c72f3d
    Merge pull request #3 from chmouel/consolidate-admin-into-settings Chmouel Boudjnah 2026-08-19 11:27:15 +02:00
  • 18be04476f
    fix: resolve web UI lint issues Chmouel Boudjnah 2026-08-19 11:22:15 +02:00
  • 6fe55c8a63
    feat: Consolidate account controls into unified settings hub Chmouel Boudjnah 2026-08-19 11:10:43 +02:00
  • e6ecc999a0
    feat: add confirmation prompts to destructive admin actions Chmouel Boudjnah 2026-08-19 10:30:29 +02:00
  • 8aff0a681a
    Merge pull request #2 from chmouel/delete-a-book Chmouel Boudjnah 2026-08-19 09:15:42 +02:00
  • f8e6bffdbe
    fix: Prevent browser tests from auto-discovering Chrome in CI Chmouel Boudjnah 2026-08-19 09:10:57 +02:00
  • 9ed28bc0c8
    docs: a book may be deleted where a book may be written Chmouel Boudjnah 2026-08-19 08:44:15 +02:00
  • 2511d1e228
    feat(webui): deleting a book from the browser Chmouel Boudjnah 2026-08-19 08:42:14 +02:00
  • 99adc9300f
    feat(api): DELETE /v1/books/{id} Chmouel Boudjnah 2026-08-19 08:37:05 +02:00
  • d3aeb09571
    feat(content): removing a book's file from a folder that accepts uploads Chmouel Boudjnah 2026-08-19 08:29:55 +02:00
  • 3c606afcc7
    feat(store): deleting a catalog book, and the reading with it Chmouel Boudjnah 2026-08-19 08:25:27 +02:00
  • a476d07125
    feat(store): a scope for deleting a book Chmouel Boudjnah 2026-08-19 08:18:54 +02:00
  • 2340ee5fdd
    docs(adr): a book may be deleted where a book may be written Chmouel Boudjnah 2026-08-19 08:16:27 +02:00
  • c14678ef3b
    feat(webui): land on what is on this server Chmouel Boudjnah 2026-08-19 00:21:33 +02:00
  • e39269cd58
    fix(upload): join an uploaded book to the work it belongs to Chmouel Boudjnah 2026-08-19 00:21:25 +02:00
  • 86d433b979
    feat(webui): a way to delete a work, and to retire a missing book Chmouel Boudjnah 2026-08-18 23:59:26 +02:00
  • 9e0c662d9e
    fix(openapi): declare the folder the upload route takes Chmouel Boudjnah 2026-08-18 22:36:27 +02:00
  • c2cb620964
    fix(deploy): name the environment variables the server reads Chmouel Boudjnah 2026-08-18 22:29:57 +02:00
  • 55419b2491
    fix(webui): offer the upload scope where scopes are granted Chmouel Boudjnah 2026-08-18 22:27:52 +02:00
  • 9762102837
    docs: Improve readability and conciseness of project README Chmouel Boudjnah 2026-08-18 22:24:06 +02:00
  • 7e47de419c
    test(calibre): a fixture Calibre would recognise Chmouel Boudjnah 2026-08-18 22:10:11 +02:00
  • dbc951d114
    fix(upload): one book, however many copies arrive at once Chmouel Boudjnah 2026-08-18 21:12:54 +02:00
  • dad87ca14e
    docs: the browser's half of an upload Chmouel Boudjnah 2026-08-18 21:04:52 +02:00
  • b2d2265a07
    feat(webui): send a book to a folder from the browser Chmouel Boudjnah 2026-08-18 21:03:52 +02:00
  • 5c12303859
    feat(admin): folder-uploads, to mark a folder from a shell Chmouel Boudjnah 2026-08-18 20:24:10 +02:00
  • 1788b86b30
    fix(epub): keep every role a contributor is credited with Chmouel Boudjnah 2026-08-18 20:23:16 +02:00
  • 7fc19a3b5c
    docs: say that a marked folder can be uploaded into Chmouel Boudjnah 2026-08-18 19:54:09 +02:00
  • f43489a180
    fix(calibre): only ever create, and never outside the library Chmouel Boudjnah 2026-08-18 19:51:27 +02:00
  • 991808ec39
    feat(calibre): add an uploaded book to a Calibre library properly Chmouel Boudjnah 2026-08-18 19:41:21 +02:00
  • 91f31e4359
    feat(api): accept a book uploaded into a folder that asked for one Chmouel Boudjnah 2026-08-18 19:24:28 +02:00
  • 978c5bcc0b
    feat(folders): let an administrator mark a folder as accepting uploads Chmouel Boudjnah 2026-08-18 19:15:24 +02:00
  • d40f052e3e
    docs(adr): record ADR-0023, an upload is a file written into a folder Chmouel Boudjnah 2026-08-18 19:11:34 +02:00
  • 52a1f42ed3
    feat: Add Tokyo Night, Rosé Pine themes across the web UI Chmouel Boudjnah 2026-08-17 23:25:18 +02:00
  • 35b74f640f
    feat: Add fullscreen toggle to web reader interface Chmouel Boudjnah 2026-08-17 23:11:54 +02:00
  • a6f54e1d78
    feat: Answer unknown-work batch refusals with a structured code Chmouel Boudjnah 2026-08-17 16:41:02 +02:00
  • ceeaf67f8a
    refactor: Improve Calibre reconciliation and orphan cleanup Chmouel Boudjnah 2026-08-17 16:09:08 +02:00
  • 308024ee4c
    feat: Make Calibre metadata authoritative during reconciliation Chmouel Boudjnah 2026-08-17 15:41:45 +02:00
  • 7ce0c05260
    feat: Add sort direction toggle to library view Chmouel Boudjnah 2026-08-17 12:45:22 +02:00
  • 1a412c7642
    fix(series): round a claim revision to the millisecond Chmouel Boudjnah 2026-08-17 12:37:39 +02:00
  • 5ee20e11e1
    fix(store): add the claim columns by migration, not by editing the baseline Chmouel Boudjnah 2026-08-17 12:13:32 +02:00
  • baab033105
    feat(catalog): say which layer a book's series came from Chmouel Boudjnah 2026-08-17 11:54:38 +02:00
  • f25b7686a5
    feat(series): make a claim write conditional and idempotent Chmouel Boudjnah 2026-08-17 11:54:29 +02:00
  • 4c0c2e8bbf
    fix(catalog): stop listing books the server will not serve Chmouel Boudjnah 2026-08-16 23:29:51 +02:00
  • 2ad2a62a80
    feat(scripts): audit a Calibre library against its disk Chmouel Boudjnah 2026-08-16 23:08:57 +02:00
  • 209d94ca79
    fix(calibre): serve the format that is on the disk Chmouel Boudjnah 2026-08-16 22:20:13 +02:00
  • fb5460caf8 docs(adr): record ADR-0021 as implemented Chmouel Boudjnah 2026-08-16 20:57:30 +02:00
  • c169cb631b feat(series): merge two shelves, split one in two Chmouel Boudjnah 2026-08-16 20:54:44 +02:00
  • 8a558fee4e
    fix(ui): enforce user font scaling over publisher paragraph styles Chmouel Boudjnah 2026-08-16 19:57:41 +02:00