2026-04-03 - 2026-10-03

Overview

72 Active Pull Requests
103 Active Issues
Excluding merges, 2 authors have pushed 86 commits to main and 203 commits to all branches. On main, 230 files have changed and there have been 149267 additions and 102601 deletions.

12 Releases published by 1 user

Published v1.6.0 2026-08-27 23:10:58 +07:00

Published v1.5.1 2026-08-23 14:03:01 +07:00

Published v1.5.0 2026-08-23 12:55:44 +07:00

Published v1.4.3 2026-08-17 12:06:25 +07:00

Published v1.4.2 2026-08-16 22:04:27 +07:00

Published v1.4.1 2026-08-16 21:23:03 +07:00

Published v1.4.0 2026-08-16 20:17:08 +07:00

Published v1.3.0 2026-08-12 05:57:16 +07:00

Published v1.2.1 2026-08-10 19:11:42 +07:00

Published v1.2.0 2026-08-10 18:14:29 +07:00

Published v1.1.0 2026-08-09 16:51:53 +07:00

Published v0.1.2 2026-08-09 06:28:19 +07:00

72 Pull requests merged by 1 user

Merged #177 Cinder pass across /admin, the login gate, and the library's a11y floor 2026-08-27 23:09:43 +07:00

Merged #176 fix: series removal sent its status line twice 2026-08-23 14:02:45 +07:00

Merged #175 fix: pgtest left an anonymous volume behind on every run 2026-08-23 13:14:50 +07:00

Merged #174 Spec #137: per-Series poll failure state, completion hint, and outbound owner notification 2026-08-23 11:31:11 +07:00

Merged #163 Spec #136: Finished belongs to the Series — owner-owned poll gate, Lifecycle bucket dropped 2026-08-22 17:31:53 +07:00

Merged #162 Skills: split plan-tickets out of implement-tickets 2026-08-22 16:43:43 +07:00

Merged #156 Spec #135: owner data-correction actions — Latest Chapter, series_url, Cover, orphan removal 2026-08-22 12:10:41 +07:00

Merged #148 Admin dashboard: pages, Lane observability, poll pass log, per-Series intervention (#134) 2026-08-22 08:27:20 +07:00

Merged #133 docs: name the Stall and the Correction in CONTEXT.md 2026-08-21 15:26:32 +07:00

Merged #128 docs: name the admin dashboard's domain terms in CONTEXT.md 2026-08-19 19:00:26 +07:00

Merged #126 Add a gitea skill; point AGENTS.md at it 2026-08-17 17:52:17 +07:00

Merged #113 docs: make every AGENTS.md cite code, not docs or issues 2026-08-17 13:43:50 +07:00

Merged #112 fix: give covers their own 10 MiB byte cap (#71) 2026-08-17 12:06:15 +07:00

Merged #111 chore: remove graphify 2026-08-17 11:43:16 +07:00

Merged #110 fix: an asleep browser Lane is not a stalled one on the admin page 2026-08-16 22:04:19 +07:00

Merged #109 fix: don't read Cloudflare's injected jsd script as a refusal 2026-08-16 21:17:30 +07:00

Merged #108 Sightings: a Reader report defers a Poll of a solitary Series (#103) 2026-08-16 20:11:00 +07:00

Merged #107 Owner-only admin page: Reader roster plus Poll Lane status (#102) 2026-08-16 15:02:15 +07:00

Merged #106 feat: one Poll Lane per Site, replacing the shared pace (#100) 2026-08-16 13:16:21 +07:00

Merged #105 Poll comix.to through the browser sidecar (#98) 2026-08-16 12:14:00 +07:00

Merged #104 docs: add Poll Lane and Sighting to the shared vocabulary 2026-08-16 11:42:17 +07:00

Merged #99 docs: correct the bot-score claims behind the browser poller 2026-08-12 09:32:08 +07:00

Merged #97 chore: drop asuracomic.net from the userscript, CORS allowlist and docs 2026-08-12 05:53:18 +07:00

Merged #95 feat: one registry entry per Site, one shared Series-page read 2026-08-12 05:43:39 +07:00

Merged #93 Remove the client latest-chapter scan for lightnovelworld (#91) 2026-08-11 20:58:20 +07:00

Merged #92 lightnovelworld Series identity is read from the chapter page (#80) 2026-08-11 18:21:51 +07:00

Merged #84 chore: refresh graphify map and tidy AGENTS.md 2026-08-11 11:19:48 +07:00

Merged #82 Implement a batch of tickets through per-ticket subagents 2026-08-11 10:08:10 +07:00

Merged #81 Record the lightnovelworld series-identity decision (#77) 2026-08-11 09:34:27 +07:00

Merged #76 Clear the stale Chrome singleton lock at browser boot 2026-08-10 19:11:24 +07:00

Merged #75 Restore the novel script's lost module-scope constants (#74) 2026-08-10 18:12:04 +07:00

Merged #73 Delete the kagane-specific cover path (#63) 2026-08-10 18:02:47 +07:00

Merged #72 Browser-backed Sites join the Cover pipeline (#62) 2026-08-10 11:06:37 +07:00

Merged #70 The Poll fills blank Covers for every Site and both Libraries 2026-08-10 10:14:27 +07:00

Merged #69 Covers render in the userscript panel, from a public route (#60) 2026-08-10 08:52:58 +07:00

Merged #68 A newly bookmarked Series acquires its Cover at creation (#59) 2026-08-10 04:07:54 +07:00

Merged #67 feat(latest): extract per-site covers (#58) 2026-08-10 01:43:57 +07:00

Merged #66 Add gated cover byte fetcher 2026-08-10 00:45:56 +07:00

Merged #65 Move cover bytes to content-addressed filesystem storage 2026-08-10 00:11:21 +07:00

Merged #64 Define Cover and record hosting its bytes (#47) 2026-08-09 23:19:38 +07:00

Merged #53 Give the Tailscale ACL step a working policy file 2026-08-09 16:12:03 +07:00

Merged #52 Move the browser off the VPS to its own unit (#46) 2026-08-09 15:28:22 +07:00

Merged #51 Prefetch Kagane covers during latest polling 2026-08-09 14:59:01 +07:00

Merged #50 Make browser sidecar on-demand (#44) 2026-08-09 07:39:08 +07:00

Merged #49 Persist kagane covers in Postgres 2026-08-09 06:52:03 +07:00

Merged #48 feat(latest): split browser poll cooldown 2026-08-09 06:25:49 +07:00

Merged #37 Fix comix titles and covers, kagane volume chapters, and kagane cover rendering 2026-08-08 23:27:33 +07:00

Merged #36 Open registration to guild members (#27) 2026-08-08 20:23:18 +07:00

Merged #35 Offer the userscripts as a download for mobile Violentmonkey (#26) 2026-08-08 16:39:31 +07:00

Merged #34 Cut production over (#26) 2026-08-08 16:06:48 +07:00

Merged #33 Prove the import against a copy of the real library (#25) 2026-08-08 15:15:34 +07:00

Merged #32 Per-Reader userscript credential with UI install and rotation (#24) 2026-08-08 14:54:04 +07:00

Merged #31 feat(backend): Discord OAuth login with DB-backed sessions (#23) 2026-08-08 08:51:23 +07:00

Merged #30 Give every Bookmark an owner (Reader table) 2026-08-08 08:05:18 +07:00

Merged #29 Split Series from Bookmark, keeping the wire format flat (#21) 2026-08-08 07:19:55 +07:00

Merged #28 Run on Postgres with today's schema 2026-08-08 06:52:21 +07:00

Merged #16 docs: secure-coding rules for agents, and refresh stale AGENTS.md top-matter 2026-08-06 20:07:35 +07:00

Merged #15 rebrand: MangaBM → BookmarkManager, add novel library support 2026-08-06 03:58:24 +07:00

Merged #14 docs: split CLAUDE.md into per-directory guidance 2026-08-04 20:35:17 +07:00

Merged #13 Add comix.to and kagane.to support 2026-08-03 19:53:46 +07:00

Merged #12 Action key under the tabs, plus the brand mark 2026-07-31 17:14:16 +07:00

Merged #11 Work the design critique down: chapter format, colour law, search, strip, a11y 2026-07-30 22:34:24 +07:00

Merged #10 Rebuild both UIs on the Cinder design 2026-07-30 09:47:09 +07:00

Merged #9 Widen the edge-tab tap target, split scroll from reposition 2026-07-28 20:36:26 +07:00

Merged #8 Serve the userscript from the backend; card + loading fixes 2026-07-28 18:28:28 +07:00

Merged #7 Leaner userscript: edge tab, card-click continue, test harness 2026-07-28 16:21:02 +07:00

Merged #6 Stable Asura series IDs: strip rotating build hash 2026-07-28 07:21:11 +07:00

Merged #5 Offline retry queue for userscript writes 2026-07-27 17:52:17 +07:00

Merged #4 Archived and finished buckets, userscript nav chips 2026-07-27 16:58:06 +07:00

Merged #3 Web UI: Updated tab, inline errors, mobile card fixes 2026-07-27 00:42:20 +07:00

Merged #2 feat: server-side latest-chapter polling 2026-07-26 18:54:43 +07:00

Merged #1 feat: password-gated web UI on the same backend 2026-07-26 03:59:59 +07:00

99 Issues closed from 1 user

Closed #137 Spec: per-Series poll failure state, completion hint, and outbound owner notification 2026-08-23 11:31:11 +07:00

Closed #173 The page explains every fault the message names 2026-08-23 11:28:12 +07:00

Closed #172 The other three conditions the rule selects 2026-08-23 02:49:50 +07:00

Closed #170 The completion hint reaches the owner, and decides nothing 2026-08-23 00:54:10 +07:00

Closed #167 A failure names itself on the page 2026-08-23 00:54:10 +07:00

Closed #166 Two new filters: failing, and the subset nothing stands behind 2026-08-23 00:12:50 +07:00

Closed #171 Outbound owner notification, and the stall it exists for 2026-08-23 00:12:50 +07:00

Closed #165 poll_failures: the row is the failure state 2026-08-22 23:28:14 +07:00

Closed #169 The pass remembers when a Site called a work completed 2026-08-22 23:28:14 +07:00

Closed #168 All six Sites' completed marker, read by their adapters 2026-08-22 18:28:55 +07:00

Closed #164 A sixth outcome word: not_found splits out of errors 2026-08-22 18:28:54 +07:00

Closed #136 Spec: Finished belongs to the Series - own the poll gate, drop the Reader Lifecycle bucket 2026-08-22 17:31:53 +07:00

Closed #159 Finished joins the admin filter vocabulary; four hygiene predicates learn to exclude it 2026-08-22 17:29:00 +07:00

Closed #161 Glossary and the stale Reader-count note catch up with the cutover 2026-08-22 17:15:10 +07:00

Closed #160 Reader side: two Lifecycle buckets and a derived finished label on the flat Bookmark 2026-08-22 17:15:10 +07:00

Closed #158 Owner Finish control on the Series detail page: confirm-gated finish, instant un-finish 2026-08-22 17:15:09 +07:00

Closed #157 The cutover: finished becomes a Series fact, and the Lane's poll gate is rewritten with it 2026-08-22 13:03:37 +07:00

Closed #135 Spec: owner data-correction actions - Latest Chapter, series_url, Cover, and orphan removal 2026-08-22 12:25:30 +07:00

Closed #155 Orphan removal: one Series at a time, with the foreign key as the guard 2026-08-22 09:59:03 +07:00

Closed #154 Cover byte reclamation: one guarded helper, file first, covers row last 2026-08-22 09:38:04 +07:00

Closed #152 Latest Chapter provenance: one derived line naming the actor class 2026-08-22 09:37:49 +07:00

Closed #153 A Forced Poll replaces the Cover; an ordinary pass still only fills a blank one 2026-08-22 09:25:16 +07:00

Closed #151 Series URL repair, owner-typed and gated by the poller's own fetch gate 2026-08-22 09:24:59 +07:00

Closed #150 Cover addresses derived from the bytes, and a store surface that replaces a Cover 2026-08-22 09:09:49 +07:00

Closed #149 Latest Chapter correction: one numeric input, overwritten by the next machine write 2026-08-22 09:09:48 +07:00

Closed #54 Admin-only per-Series cover refetch (blocked on admin dashboard) 2026-08-22 08:41:23 +07:00

Closed #134 Spec: admin dashboard - pages, Lane observability, poll pass log, and per-Series intervention 2026-08-22 08:27:20 +07:00

Closed #147 Pause and resume one Site's Lane, with a mandatory expiry 2026-08-22 01:20:30 +07:00

Closed #146 Forced Poll: ask for one Series to be checked now 2026-08-22 01:05:31 +07:00

Closed #143 Overview page: a verdict line, and a stats block where every figure is a door 2026-08-22 01:05:10 +07:00

Closed #145 Lanes page reads the database, and the in-memory Lane state is deleted 2026-08-22 00:36:12 +07:00

Closed #144 Per-Series detail page, keyed by the composite the rest of the system uses 2026-08-22 00:36:01 +07:00

Closed #142 Series list page: eight hygiene filters, Site and Library narrowing, paging 2026-08-22 00:35:48 +07:00

Closed #141 The poller records one pass row per exit, with a skip reason and outcome counts 2026-08-21 18:51:03 +07:00

Closed #140 Cross-Series admin read model, with the privacy boundary in the projection 2026-08-21 18:22:36 +07:00

Closed #139 Durable Lane state: poll_passes and poll_lanes, plus their store surface 2026-08-21 17:37:43 +07:00

Closed #138 Split the admin surface into four bookmarkable pages with a nav row 2026-08-21 17:10:29 +07:00

Closed #114 Map: a proper owner admin dashboard 2026-08-21 15:48:23 +07:00

Closed #132 Notification outside the page: is the dashboard pull-only? 2026-08-21 14:58:10 +07:00

Closed #131 Latest Chapter provenance: what records that the number moved 2026-08-21 14:04:10 +07:00

Closed #130 Completion-marker hint: storage, presentation, and false-positive containment 2026-08-20 21:34:16 +07:00

Closed #127 Per-Series Poll outcome state and the failing filter 2026-08-20 21:18:00 +07:00

Closed #125 Orphan Series: is removal an owner action, and what happens to the Cover bytes 2026-08-20 20:32:22 +07:00

Closed #129 Research: which Sites publish a machine-readable completion marker 2026-08-19 19:20:29 +07:00

Closed #124 Series-level finished state, and the fate of the finished Lifecycle bucket 2026-08-19 19:00:53 +07:00

Closed #122 Prototype: the Cinder admin surface 2026-08-19 10:00:32 +07:00

Closed #121 Data-correction actions: Latest Chapter and series_url repair 2026-08-18 09:31:57 +07:00

Closed #120 Per-Series cover refetch and the store's force path 2026-08-18 08:46:39 +07:00

Closed #118 Hygiene filters for the Series view 2026-08-18 06:59:54 +07:00

Closed #117 Poll history: persist it, or stay a live-now view 2026-08-17 19:33:34 +07:00

Closed #119 Poller command seam: force-poll and pause-lane through the database 2026-08-17 18:56:44 +07:00

Closed #116 Cross-Series read model and the privacy boundary 2026-08-17 16:54:03 +07:00

Closed #115 Admin dashboard information architecture and route map 2026-08-17 16:04:03 +07:00

Closed #123 Research: how far htmx and the existing filter.js carry a filterable Series list 2026-08-17 15:29:28 +07:00

Closed #78 novelfull cover never appears in the userscript list after bookmarking 2026-08-17 12:07:07 +07:00

Closed #71 Covers over maxBodyBytes (4 MiB) can never be filled by the Poll 2026-08-17 12:06:15 +07:00

Closed #103 Sightings: a Reader report defers a Poll where being wrong hurts only them 2026-08-16 20:11:00 +07:00

Closed #102 Owner-only admin page: Reader roster plus Poll Lane status 2026-08-16 15:02:15 +07:00

Closed #101 Poll Lanes: one independent Poll stream per Site, replacing the shared pace 2026-08-16 13:47:05 +07:00

Closed #100 Poll Lanes: one independent Poll stream per Site, replacing the shared pace 2026-08-16 13:16:21 +07:00

Closed #98 comix.to now behind a Cloudflare JS challenge: poller gets 403, needs the browser sidecar 2026-08-16 12:14:01 +07:00

Closed #96 Remove asuracomic.net: pin the userscript, CORS allowlist, fixtures and notes to asurascans.com 2026-08-12 05:53:19 +07:00

Closed #94 One registry entry per Site, and one shared Series-page read for the Poll and the Acquisition 2026-08-12 05:43:40 +07:00

Closed #55 Spec: the backend acquires, stores and serves every Series Cover (fixes #47) 2026-08-11 20:59:38 +07:00

Closed #77 lightnovelworld: chapter slug != series slug, so poller 404s on renamed novels 2026-08-11 20:59:19 +07:00

Closed #80 Spec: lightnovelworld Series identity is read from the chapter page, not derived from it (#77) 2026-08-11 20:58:59 +07:00

Closed #91 Novel userscript's client-side latest-chapter scan is still scoped to the derived slug (lnw) 2026-08-11 20:28:11 +07:00

Closed #88 Live canary: the lnw comment-thread marker still holds 2026-08-11 13:34:37 +07:00

Closed #90 Stale lnw rows repair themselves on the next chapter visit 2026-08-11 13:08:38 +07:00

Closed #87 Poll's lnw chapter scan: unscoped and comment-truncated 2026-08-11 13:04:05 +07:00

Closed #89 lnw identity is read from the chapter page, not derived 2026-08-11 11:53:58 +07:00

Closed #86 lnw scan fixture: real page text, better novel 2026-08-11 11:53:57 +07:00

Closed #85 PROBE-DELETEME 2026-08-11 11:28:08 +07:00

Closed #74 novel-bookmark.user.js: background latest-check throws ReferenceError, never runs 2026-08-10 18:12:04 +07:00

Closed #63 Delete the kagane-specific cover path 2026-08-10 18:02:48 +07:00

Closed #62 Browser-backed Sites join the Cover pipeline 2026-08-10 11:06:37 +07:00

Closed #61 The Poll fills blank Covers for every Site and both Libraries 2026-08-10 10:14:28 +07:00

Closed #60 Covers render in the userscript panel, from a public route 2026-08-10 08:52:58 +07:00

Closed #59 A newly bookmarked Series acquires its Cover at creation 2026-08-10 04:07:55 +07:00

Closed #47 Bug: comix.to cover still not fetched for the web and userscript so the web is using the placeholder cover image, kagane.to cover image showed up in web but not propperly shown in userscript 2026-08-10 04:07:55 +07:00

Closed #58 Per-Site Cover extraction, fixture-backed 2026-08-10 01:43:57 +07:00

Closed #38 Relocate the headless browser to the home machine, make it on-demand, and persist kagane covers 2026-08-10 00:46:53 +07:00

Closed #46 Move the browser to the home machine over the tailnet and delete it from the VPS 2026-08-10 00:46:30 +07:00

Closed #57 Cover byte fetcher gated by destination class 2026-08-10 00:45:56 +07:00

Closed #56 Cover bytes move to a content-addressed filesystem store 2026-08-10 00:18:12 +07:00

Closed #45 Prefetch kagane covers during the poll cycle 2026-08-09 07:52:00 +07:00

Closed #44 Make the headless browser on-demand: spawn on connect, reap when idle 2026-08-09 07:17:38 +07:00

Closed #43 Persist kagane covers so they survive restarts and a sleeping browser 2026-08-09 06:52:03 +07:00

Closed #42 Split the latest-chapter poll cooldown so browser-backed sites rest longer 2026-08-09 06:16:54 +07:00

Closed #18 Migrate to Postgres and a Reader-owned schema (Step 1: foundation, single Reader) 2026-08-08 20:25:16 +07:00

Closed #19 Open registration to Discord guild members (Step 2: multi-Reader) 2026-08-08 20:25:16 +07:00

Closed #27 Open registration to guild members 2026-08-08 20:23:18 +07:00

Closed #26 Cut production over 2026-08-08 19:38:24 +07:00

Closed #25 Prove the import against a copy of the real library 2026-08-08 15:11:52 +07:00

Closed #24 Per-Reader userscript credential 2026-08-08 09:35:22 +07:00

Closed #23 Log in with Discord 2026-08-08 08:41:59 +07:00

Closed #22 Give every Bookmark an owner 2026-08-08 08:05:19 +07:00

Closed #21 Split Series from Bookmark, keeping the wire format flat 2026-08-08 07:11:56 +07:00

Closed #20 Run on Postgres with today's schema 2026-08-08 06:52:21 +07:00

103 Issues created by 1 user

Opened #17 PopUp Blocked 2026-08-08 03:57:48 +07:00

Opened #18 Migrate to Postgres and a Reader-owned schema (Step 1: foundation, single Reader) 2026-08-08 05:58:29 +07:00

Opened #19 Open registration to Discord guild members (Step 2: multi-Reader) 2026-08-08 06:00:41 +07:00

Opened #20 Run on Postgres with today's schema 2026-08-08 06:06:26 +07:00

Opened #22 Give every Bookmark an owner 2026-08-08 06:06:27 +07:00

Opened #23 Log in with Discord 2026-08-08 06:06:27 +07:00

Opened #21 Split Series from Bookmark, keeping the wire format flat 2026-08-08 06:06:27 +07:00

Opened #24 Per-Reader userscript credential 2026-08-08 06:06:28 +07:00

Opened #25 Prove the import against a copy of the real library 2026-08-08 06:06:29 +07:00

Opened #26 Cut production over 2026-08-08 06:06:29 +07:00

Opened #27 Open registration to guild members 2026-08-08 06:06:30 +07:00

Opened #38 Relocate the headless browser to the home machine, make it on-demand, and persist kagane covers 2026-08-09 03:30:36 +07:00

Opened #42 Split the latest-chapter poll cooldown so browser-backed sites rest longer 2026-08-09 03:35:24 +07:00

Opened #43 Persist kagane covers so they survive restarts and a sleeping browser 2026-08-09 03:35:25 +07:00

Opened #44 Make the headless browser on-demand: spawn on connect, reap when idle 2026-08-09 03:35:25 +07:00

Opened #45 Prefetch kagane covers during the poll cycle 2026-08-09 03:35:45 +07:00

Opened #46 Move the browser to the home machine over the tailnet and delete it from the VPS 2026-08-09 03:36:16 +07:00

Opened #47 Bug: comix.to cover still not fetched for the web and userscript so the web is using the placeholder cover image, kagane.to cover image showed up in web but not propperly shown in userscript 2026-08-09 03:45:40 +07:00

Opened #54 Admin-only per-Series cover refetch (blocked on admin dashboard) 2026-08-09 22:55:06 +07:00

Opened #55 Spec: the backend acquires, stores and serves every Series Cover (fixes #47) 2026-08-09 23:03:01 +07:00

Opened #56 Cover bytes move to a content-addressed filesystem store 2026-08-09 23:12:11 +07:00

Opened #57 Cover byte fetcher gated by destination class 2026-08-09 23:12:11 +07:00

Opened #58 Per-Site Cover extraction, fixture-backed 2026-08-09 23:12:11 +07:00

Opened #59 A newly bookmarked Series acquires its Cover at creation 2026-08-09 23:12:12 +07:00

Opened #61 The Poll fills blank Covers for every Site and both Libraries 2026-08-09 23:12:12 +07:00

Opened #60 Covers render in the userscript panel, from a public route 2026-08-09 23:12:12 +07:00

Opened #62 Browser-backed Sites join the Cover pipeline 2026-08-09 23:12:13 +07:00

Opened #63 Delete the kagane-specific cover path 2026-08-09 23:12:14 +07:00

Opened #71 Covers over maxBodyBytes (4 MiB) can never be filled by the Poll 2026-08-10 10:12:36 +07:00

Opened #74 novel-bookmark.user.js: background latest-check throws ReferenceError, never runs 2026-08-10 18:00:49 +07:00

Opened #77 lightnovelworld: chapter slug != series slug, so poller 404s on renamed novels 2026-08-10 19:29:32 +07:00

Opened #78 novelfull cover never appears in the userscript list after bookmarking 2026-08-10 19:36:24 +07:00

Opened #79 lightnovelworld a-will-eternal: chapter list max (1317) disagrees with the Site's own newest-chapter indicators (1298) 2026-08-11 09:20:47 +07:00

Opened #80 Spec: lightnovelworld Series identity is read from the chapter page, not derived from it (#77) 2026-08-11 09:27:48 +07:00

Opened #85 PROBE-DELETEME 2026-08-11 11:27:12 +07:00

Opened #86 lnw scan fixture: real page text, better novel 2026-08-11 11:28:08 +07:00

Opened #87 Poll's lnw chapter scan: unscoped and comment-truncated 2026-08-11 11:28:08 +07:00

Opened #89 lnw identity is read from the chapter page, not derived 2026-08-11 11:28:09 +07:00

Opened #88 Live canary: the lnw comment-thread marker still holds 2026-08-11 11:28:09 +07:00

Opened #90 Stale lnw rows repair themselves on the next chapter visit 2026-08-11 11:28:10 +07:00

Opened #91 Novel userscript's client-side latest-chapter scan is still scoped to the derived slug (lnw) 2026-08-11 11:54:13 +07:00

Opened #94 One registry entry per Site, and one shared Series-page read for the Poll and the Acquisition 2026-08-11 23:59:46 +07:00

Opened #96 Remove asuracomic.net: pin the userscript, CORS allowlist, fixtures and notes to asurascans.com 2026-08-12 00:35:30 +07:00

Opened #98 comix.to now behind a Cloudflare JS challenge: poller gets 403, needs the browser sidecar 2026-08-12 09:03:28 +07:00

Opened #100 Poll Lanes: one independent Poll stream per Site, replacing the shared pace 2026-08-16 11:28:04 +07:00

Opened #101 Poll Lanes: one independent Poll stream per Site, replacing the shared pace 2026-08-16 11:28:12 +07:00

Opened #102 Owner-only admin page: Reader roster plus Poll Lane status 2026-08-16 11:28:19 +07:00

Opened #103 Sightings: a Reader report defers a Poll where being wrong hurts only them 2026-08-16 11:28:27 +07:00

Opened #114 Map: a proper owner admin dashboard 2026-08-17 15:21:29 +07:00

Opened #115 Admin dashboard information architecture and route map 2026-08-17 15:22:41 +07:00

Opened #116 Cross-Series read model and the privacy boundary 2026-08-17 15:22:42 +07:00

Opened #118 Hygiene filters for the Series view 2026-08-17 15:22:43 +07:00

Opened #117 Poll history: persist it, or stay a live-now view 2026-08-17 15:22:43 +07:00

Opened #120 Per-Series cover refetch and the store's force path 2026-08-17 15:22:44 +07:00

Opened #119 Poller command seam: force-poll and pause-lane through the database 2026-08-17 15:22:44 +07:00

Opened #121 Data-correction actions: Latest Chapter and series_url repair 2026-08-17 15:22:45 +07:00

Opened #122 Prototype: the Cinder admin surface 2026-08-17 15:22:45 +07:00

Opened #123 Research: how far htmx and the existing filter.js carry a filterable Series list 2026-08-17 15:22:46 +07:00

Opened #124 Series-level finished state, and the fate of the finished Lifecycle bucket 2026-08-17 16:38:23 +07:00

Opened #125 Orphan Series: is removal an owner action, and what happens to the Cover bytes 2026-08-17 16:53:20 +07:00

Opened #127 Per-Series Poll outcome state and the failing filter 2026-08-17 19:33:58 +07:00

Opened #129 Research: which Sites publish a machine-readable completion marker 2026-08-19 19:01:13 +07:00

Opened #130 Completion-marker hint: storage, presentation, and false-positive containment 2026-08-19 19:01:32 +07:00

Opened #131 Latest Chapter provenance: what records that the number moved 2026-08-20 21:19:11 +07:00

Opened #132 Notification outside the page: is the dashboard pull-only? 2026-08-21 14:04:51 +07:00

Opened #134 Spec: admin dashboard - pages, Lane observability, poll pass log, and per-Series intervention 2026-08-21 15:47:44 +07:00

Opened #136 Spec: Finished belongs to the Series - own the poll gate, drop the Reader Lifecycle bucket 2026-08-21 15:47:53 +07:00

Opened #135 Spec: owner data-correction actions - Latest Chapter, series_url, Cover, and orphan removal 2026-08-21 15:47:53 +07:00

Opened #137 Spec: per-Series poll failure state, completion hint, and outbound owner notification 2026-08-21 15:47:54 +07:00

Opened #138 Split the admin surface into four bookmarkable pages with a nav row 2026-08-21 16:39:16 +07:00

Opened #140 Cross-Series admin read model, with the privacy boundary in the projection 2026-08-21 16:39:20 +07:00

Opened #139 Durable Lane state: poll_passes and poll_lanes, plus their store surface 2026-08-21 16:39:20 +07:00

Opened #141 The poller records one pass row per exit, with a skip reason and outcome counts 2026-08-21 16:39:20 +07:00

Opened #143 Overview page: a verdict line, and a stats block where every figure is a door 2026-08-21 16:39:21 +07:00

Opened #142 Series list page: eight hygiene filters, Site and Library narrowing, paging 2026-08-21 16:39:21 +07:00

Opened #144 Per-Series detail page, keyed by the composite the rest of the system uses 2026-08-21 16:39:23 +07:00

Opened #146 Forced Poll: ask for one Series to be checked now 2026-08-21 16:39:24 +07:00

Opened #145 Lanes page reads the database, and the in-memory Lane state is deleted 2026-08-21 16:39:24 +07:00

Opened #147 Pause and resume one Site's Lane, with a mandatory expiry 2026-08-21 16:39:25 +07:00

Opened #149 Latest Chapter correction: one numeric input, overwritten by the next machine write 2026-08-22 08:37:29 +07:00

Opened #150 Cover addresses derived from the bytes, and a store surface that replaces a Cover 2026-08-22 08:37:45 +07:00

Opened #151 Series URL repair, owner-typed and gated by the poller's own fetch gate 2026-08-22 08:38:00 +07:00

Opened #152 Latest Chapter provenance: one derived line naming the actor class 2026-08-22 08:38:13 +07:00

Opened #153 A Forced Poll replaces the Cover; an ordinary pass still only fills a blank one 2026-08-22 08:38:29 +07:00

Opened #154 Cover byte reclamation: one guarded helper, file first, covers row last 2026-08-22 08:39:02 +07:00

Opened #155 Orphan removal: one Series at a time, with the foreign key as the guard 2026-08-22 08:39:23 +07:00

Opened #157 The cutover: finished becomes a Series fact, and the Lane's poll gate is rewritten with it 2026-08-22 12:37:10 +07:00

Opened #158 Owner Finish control on the Series detail page: confirm-gated finish, instant un-finish 2026-08-22 12:37:21 +07:00

Opened #159 Finished joins the admin filter vocabulary; four hygiene predicates learn to exclude it 2026-08-22 12:37:29 +07:00

Opened #160 Reader side: two Lifecycle buckets and a derived finished label on the flat Bookmark 2026-08-22 12:37:39 +07:00

Opened #161 Glossary and the stale Reader-count note catch up with the cutover 2026-08-22 12:37:47 +07:00

Opened #164 A sixth outcome word: not_found splits out of errors 2026-08-22 17:39:56 +07:00

Opened #165 poll_failures: the row is the failure state 2026-08-22 17:39:57 +07:00

Opened #166 Two new filters: failing, and the subset nothing stands behind 2026-08-22 17:39:57 +07:00

Opened #167 A failure names itself on the page 2026-08-22 17:39:58 +07:00

Opened #168 All six Sites' completed marker, read by their adapters 2026-08-22 17:39:59 +07:00

Opened #169 The pass remembers when a Site called a work completed 2026-08-22 17:39:59 +07:00

Opened #170 The completion hint reaches the owner, and decides nothing 2026-08-22 17:40:00 +07:00

Opened #172 The other three conditions the rule selects 2026-08-22 17:40:01 +07:00

Opened #171 Outbound owner notification, and the stall it exists for 2026-08-22 17:40:01 +07:00

Opened #173 The page explains every fault the message names 2026-08-22 17:40:02 +07:00

Opened #178 Discord webhook doesnt work 2026-09-23 08:51:09 +07:00

Opened #179 Owner notices report four conditions; the ask is "any error event on the server" 2026-09-23 08:55:40 +07:00