All six Sites' completed marker, read by their adapters #168

Closed
opened 2026-08-22 17:39:59 +07:00 by sulthan · 1 comment
Owner

Parent

Part of #137.

What to build

Independent of the failure-state work — can start immediately.

Every Site publishes its own machine-readable completion status on the page the Poll already reads, and the backend throws it away. Each adapter learns to answer one question: does this page say the work is completed. Nothing is stored yet, so this ticket is parsing plus fixtures.

Research (2026-08-19, docs/research/completion-markers.md on branch research/completion-markers) found all six publish an explicit marker and that triggering only on the completed value has no false-positive path on any Site. So: no normalised status word, no confirmation counter, no expiry, no suspicion damping. The residual error is a false negative — a finished Series that gets no hint — and we accept it.

Acceptance criteria

  • One predicate per Site reading the completed value only: asurascans' status (its dropped is editorial), demonicscans' info-block pair, comix's finished, kagane's publication status, novelfull's status link, lightnovelworld's creative-work status.
  • kagane's divergent case is asserted explicitly: the upload status is ignored, because it is the release's state and the two are proven to diverge.
  • No mapping table and no shared status word — the six vocabularies are not comparable, and nothing acts on any value but completed.
  • A failed extraction yields not-completed, never an error and never unknown-as-suspicion. A fixture with the selector removed proves it.
  • Four Sites ride a payload the adapter already parses; demonicscans and novelfull each gain one new selector against markup nobody controls. Paid deliberately: a broken selector degrades to a missing hint, and on exactly those two Sites Completed is the only signal the Site can emit, so omitting them would make an absent hint unreadable.
  • Per-Site tests against a completed fixture and an ongoing one, in the existing stored-fixture style. The network-gated smoke tests stay gated and out of the default run.
  • The six predicates are verified against live pages before this is called done, per the repo's adapter rule — not assumed from fixtures.

Blocked by

  • None — can start immediately.
## Parent Part of #137. ## What to build Independent of the failure-state work — can start immediately. Every Site publishes its own machine-readable completion status on the page the Poll already reads, and the backend throws it away. Each adapter learns to answer one question: does this page say the work is *completed*. Nothing is stored yet, so this ticket is parsing plus fixtures. Research (2026-08-19, `docs/research/completion-markers.md` on branch `research/completion-markers`) found all six publish an explicit marker and that triggering only on the *completed* value has no false-positive path on any Site. So: no normalised status word, no confirmation counter, no expiry, no suspicion damping. The residual error is a false negative — a finished Series that gets no hint — and we accept it. ## Acceptance criteria - [ ] One predicate per Site reading the **completed value only**: asurascans' status (its `dropped` is editorial), demonicscans' info-block pair, comix's `finished`, kagane's *publication* status, novelfull's status link, lightnovelworld's creative-work status. - [ ] kagane's divergent case is asserted explicitly: the *upload* status is ignored, because it is the release's state and the two are proven to diverge. - [ ] No mapping table and no shared status word — the six vocabularies are not comparable, and nothing acts on any value but completed. - [ ] A failed extraction yields not-completed, never an error and never unknown-as-suspicion. A fixture with the selector removed proves it. - [ ] Four Sites ride a payload the adapter already parses; demonicscans and novelfull each gain one new selector against markup nobody controls. Paid deliberately: a broken selector degrades to a missing hint, and on exactly those two Sites `Completed` is the only signal the Site can emit, so omitting them would make an absent hint unreadable. - [ ] Per-Site tests against a completed fixture and an ongoing one, in the existing stored-fixture style. The network-gated smoke tests stay gated and out of the default run. - [ ] The six predicates are verified against live pages before this is called done, per the repo's adapter rule — not assumed from fixtures. ## Blocked by - None — can start immediately.
sulthan added the ready-for-agent label 2026-08-22 17:39:59 +07:00
sulthan self-assigned this 2026-08-22 18:11:22 +07:00
Author
Owner

Merged into spec-137. DONE — Completed func field + siteCompletedFrom dispatch on all six Sites' registry entries, live-verified 2026-08-22 (curl for asura/demonic/lightnovelworld; CDP sidecar for comix/kagane/novelfull). kagane divergence (publication_status only, upload_status ignored) asserted; note the divergence fixture is composed, not a live trim (both vocabularies independently live-verified). No production caller yet — #169 wires it in next wave. Full backend suite green post-merge.

Merged into spec-137. DONE — Completed func field + siteCompletedFrom dispatch on all six Sites' registry entries, live-verified 2026-08-22 (curl for asura/demonic/lightnovelworld; CDP sidecar for comix/kagane/novelfull). kagane divergence (publication_status only, upload_status ignored) asserted; note the divergence fixture is composed, not a live trim (both vocabularies independently live-verified). No production caller yet — #169 wires it in next wave. Full backend suite green post-merge.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sulthan/mangaBookmark#168