The completion hint reaches the owner, and decides nothing #170

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

Parent

Part of #137.

What to build

The owner stops having to remember which works ended. A filter lists every Site-completed Series to work through in one sitting, a landing figure shows the work without opening it, and the detail page says so beside the Finish control. It is a hint and never a shortcut: the Site never decides the Lifecycle.

Acceptance criteria

  • A site-completed filter joins the vocabulary, ordered with the informational tail beside finished, carrying the same finished guard #159's hygiene predicates gained — a retired row is not presented as work.
  • One figure in the landing stats block links to it, printing an unlinked digit at zero.
  • One line beside the Finish control on the detail page, with its age. No field on the list row — a row has two lines and this is true of few Series; the filter is the work list and the figure is how the owner sees it.
  • The Finish control does not change: one control, still confirm-gated. The hint may not pre-fill it, add a second button, or remove the confirm step.
  • No dismissal column. The owner's answers are Finish or ignore; a stored dismissal would be a third opinion on the row and would need its own rule for the day the Site's marker changes again.
  • After a finish the filter excludes the Series and the detail page hides the hint; un-finishing puts it back in the Poll query and the next Poll writes a fresh answer.
  • No notification when a browser-gated Site's hint ages while the sidecar is asleep — the same degradation their Covers already have.
  • Store and web tests cover the filter's finished exclusion, the figure at zero and nonzero, the hidden hint on a finished Series, and the unchanged Finish control when a hint is present.

Blocked by

  • #169 — The pass remembers when a Site called a work completed
## Parent Part of #137. ## What to build The owner stops having to remember which works ended. A filter lists every Site-completed Series to work through in one sitting, a landing figure shows the work without opening it, and the detail page says so beside the Finish control. It is a hint and never a shortcut: the Site never decides the Lifecycle. ## Acceptance criteria - [ ] A `site-completed` filter joins the vocabulary, ordered with the informational tail beside `finished`, carrying the same finished guard #159's hygiene predicates gained — a retired row is not presented as work. - [ ] One figure in the landing stats block links to it, printing an unlinked digit at zero. - [ ] One line beside the Finish control on the detail page, with its age. **No field on the list row** — a row has two lines and this is true of few Series; the filter is the work list and the figure is how the owner sees it. - [ ] The Finish control does not change: one control, still confirm-gated. The hint may not pre-fill it, add a second button, or remove the confirm step. - [ ] No dismissal column. The owner's answers are Finish or ignore; a stored dismissal would be a third opinion on the row and would need its own rule for the day the Site's marker changes again. - [ ] After a finish the filter excludes the Series and the detail page hides the hint; un-finishing puts it back in the Poll query and the next Poll writes a fresh answer. - [ ] No notification when a browser-gated Site's hint ages while the sidecar is asleep — the same degradation their Covers already have. - [ ] Store and web tests cover the filter's finished exclusion, the figure at zero and nonzero, the hidden hint on a finished Series, and the unchanged Finish control when a hint is present. ## Blocked by - #169 — The pass remembers when a Site called a work completed
sulthan added the ready-for-agent label 2026-08-22 17:40:00 +07:00
sulthan self-assigned this 2026-08-23 00:16:31 +07:00
Author
Owner

Merged into spec-137 (with #167, resolved an additive struct-field conflict in seriesDetailView). All 8 acceptance criteria implemented: site_completed filter with finished guard, landing figure via existing door()/seriesFilterOrder[1:] (unlinked at zero), detail-page hint line (no list-row field), Finish control untouched/confirm-gated, no dismissal column, finish/un-finish flow verified through the store, no notification path touched. go test ./... green. cr-spec: clean. cr-standards: 1 gofmt finding fixed, 2 judgement calls declined.

Merged into spec-137 (with #167, resolved an additive struct-field conflict in seriesDetailView). All 8 acceptance criteria implemented: site_completed filter with finished guard, landing figure via existing door()/seriesFilterOrder[1:] (unlinked at zero), detail-page hint line (no list-row field), Finish control untouched/confirm-gated, no dismissal column, finish/un-finish flow verified through the store, no notification path touched. go test ./... green. cr-spec: clean. cr-standards: 1 gofmt finding fixed, 2 judgement calls declined.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sulthan/mangaBookmark#170