Kiro Agent
f15365d03c
feat(shelf): 在读 / 想读 / 已读 and 分组 (prototypes 2 and 19)
...
Server: user_books gains reading_status. The shelf list computes each
book's readingState — an explicit 在读/已读 mark wins, otherwise progress
decides (>=99% 已读, started 在读), and 想读 gives way once reading starts —
filters by ?status=, and PUT /api/v1/books/:id/reading-status sets or
clears the mark.
Client: chips 全部/在读/想读/已读 and 分组 (a series or a tag from the
shelf's facets) above the toolbar, all kept in the URL; a state label on
each cover; the ⋯ menu marks 想读/在读/已读, clears the mark, or takes the
book off the shelf.
Docs: API, UI and media user guide for this and the other V3.1 gaps.
2026-10-20 04:47:06 +00:00
..
2026-09-23 10:13:03 +08:00
2026-09-27 22:28:37 +08:00
2026-09-27 18:22:51 +08:00
2026-10-01 08:09:29 +08:00
2026-09-24 16:59:28 +08:00
2026-10-02 11:24:25 +08:00
2026-09-16 14:45:04 +08:00
2026-09-16 15:28:34 +08:00
2026-09-19 23:04:03 +08:00
2026-09-24 16:03:35 +08:00
2026-10-03 12:12:30 +08:00
2026-10-03 12:12:30 +08:00
2026-09-16 19:51:38 +08:00
2026-09-16 19:51:38 +08:00
2026-10-03 12:12:30 +08:00
2026-09-20 17:02:40 +08:00
2026-09-19 14:46:15 +08:00
2026-10-19 22:33:27 +08:00
2026-10-03 12:12:30 +08:00
2026-09-24 16:59:28 +08:00
2026-09-16 19:51:38 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-19 22:33:26 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-04 11:40:26 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-20 04:41:03 +00:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-20 10:17:18 +08:00
2026-10-03 15:04:34 +08:00
2026-10-20 10:17:18 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-04 11:02:23 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-20 04:28:32 +00:00
2026-10-03 15:04:34 +08:00
2026-10-20 04:33:53 +00:00
2026-10-03 15:04:34 +08:00
2026-10-05 17:09:38 +08:00
2026-10-03 15:04:34 +08:00
2026-10-03 15:04:34 +08:00
2026-10-19 22:33:26 +08:00
2026-10-20 04:05:35 +00:00
2026-09-20 17:02:40 +08:00
2026-09-16 18:04:11 +08:00
2026-09-16 14:45:04 +08:00
2026-09-27 18:22:51 +08:00
2026-09-28 10:32:34 +08:00
2026-10-01 08:26:08 +08:00
2026-10-20 04:28:32 +00:00
2026-10-20 04:26:51 +00:00
2026-10-03 12:12:30 +08:00
2026-09-20 17:36:59 +08:00
2026-09-20 17:02:40 +08:00
2026-10-20 04:26:51 +00:00
2026-09-27 18:22:51 +08:00
2026-10-20 04:05:35 +00:00
2026-09-24 16:37:30 +08:00
2026-09-20 18:40:09 +08:00
2026-09-27 22:28:37 +08:00
2026-09-19 09:09:12 +08:00
2026-10-03 12:12:30 +08:00
2026-09-20 10:37:27 +08:00
2026-10-20 04:47:06 +00:00
2026-09-19 14:17:55 +08:00
2026-10-20 04:47:06 +00:00
2026-09-23 13:40:38 +08:00
2026-10-03 12:12:30 +08:00
2026-09-27 18:22:51 +08:00
2026-09-24 07:47:32 +08:00
2026-10-20 04:26:51 +00:00
2026-10-20 04:26:51 +00:00
2026-09-28 12:38:54 +08:00
2026-09-16 22:55:58 +08:00
2026-09-16 22:55:58 +08:00
2026-09-16 14:45:04 +08:00
2026-09-16 19:51:38 +08:00
2026-09-19 09:09:12 +08:00