John O'Keefe
94bd69d22d
feat(filters): save current filter as smart collection — the bridge (item 3.5)
...
The bookshelf's save modal grows a second action: "Save as Collection"
POSTs the current (completed, scope-stamped) tree to
/api/collections — the same validated write path every tree
collection uses — and lands you on the new collection's page. The qf
engine then drives it everywhere: the shelf's live shelf-count, the
collections page, the replay chain for episode trees. The legacy
"Save Filter" (bookmark the wire params) stays as the sibling action.
This is the plan's bridge: a book search graduated into a live shelf
with one click, authored in the ONE filter system.
2026-10-30 19:25:02 -04:00
..
2026-10-28 09:37:14 -04:00
2026-10-28 09:37:14 -04:00
2026-10-28 09:37:14 -04:00
2026-10-25 11:06:08 -04:00
2026-10-13 12:24:12 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-30 13:54:37 -04:00
2026-10-30 13:54:37 -04:00
2026-10-27 13:22:54 -04:00
2026-10-27 13:22:54 -04:00
2026-10-30 10:12:43 -04:00
2026-10-30 10:12:43 -04:00
2026-10-25 18:14:44 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-25 17:22:40 -04:00
2026-10-25 18:14:44 -04:00
2026-10-25 18:14:44 -04:00
2026-10-30 15:52:14 -04:00
2026-10-30 15:52:14 -04:00
2026-10-30 12:03:44 -04:00
2026-10-30 12:03:44 -04:00
2026-10-29 16:05:03 -04:00
2026-10-29 16:05:03 -04:00
2026-05-24 21:20:24 -04:00
2026-03-27 15:52:02 -04:00
2026-10-30 19:25:02 -04:00
2026-10-30 19:25:02 -04:00
2026-10-25 11:06:08 -04:00
2026-10-18 12:08:20 -04:00
2026-10-27 23:33:52 -04:00
2026-10-30 12:03:44 -04:00
2026-10-30 12:03:44 -04:00
2026-10-30 19:22:17 -04:00
2026-10-30 19:22:17 -04:00
2026-10-30 16:18:29 -04:00
2026-10-30 16:18:29 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-26 08:17:49 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-24 14:31:36 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-25 11:06:08 -04:00
2026-08-10 13:43:13 -04:00
2026-10-25 11:06:08 -04:00
2026-10-19 18:59:36 -04:00
2026-10-30 19:22:17 -04:00
2026-10-30 19:22:17 -04:00
2026-10-25 11:06:08 -04:00
2026-08-05 16:45:02 -04:00
2026-10-30 13:54:37 -04:00
2026-10-30 13:54:37 -04:00
2026-10-29 16:17:55 -04:00
2026-10-29 16:17:55 -04:00
2026-10-25 17:22:40 -04:00
2026-10-25 16:58:28 -04:00
2026-10-29 15:44:48 -04:00
2026-10-29 15:44:48 -04:00
2026-10-25 11:06:08 -04:00
2026-10-24 19:44:34 -04:00
2026-10-26 14:58:50 -04:00
2026-10-30 14:13:39 -04:00
2026-10-30 14:13:39 -04:00
2026-10-30 12:03:44 -04:00
2026-10-30 12:03:44 -04:00
2026-10-30 12:03:44 -04:00
2026-10-26 13:59:32 -04:00
2026-10-26 13:59:32 -04:00
2026-10-25 11:06:08 -04:00
2026-08-05 16:45:02 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-24 19:44:34 -04:00
2026-10-24 19:44:34 -04:00
2026-08-05 16:45:02 -04:00
2026-08-05 16:45:02 -04:00
2026-10-27 15:11:49 -04:00
2026-10-27 15:11:49 -04:00
2026-10-28 10:12:20 -04:00
2026-10-28 10:12:20 -04:00
2026-10-03 23:54:07 -04:00
2026-10-24 19:44:34 -04:00
2026-10-24 19:44:34 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-18 12:08:07 -04:00
2026-10-18 12:08:07 -04:00
2026-10-18 12:08:07 -04:00
2026-10-25 11:06:08 -04:00
2026-05-10 16:13:21 -04:00
2026-10-30 16:54:36 -04:00
2026-10-27 23:33:52 -04:00
2026-10-27 23:33:52 -04:00
2026-10-19 18:59:36 -04:00
2026-10-29 15:44:48 -04:00