Commit Graph
19 Commits
Author SHA1 Message Date
MaashkinoozheandClaude Opus 5.5 b2bb34174c Fold the sentinel into the scraper and drop the sentinel service (BL-0046)
The stall watchdog now runs inside the scraper (ScraperService.checkStalls,
every 30 s from the work loop): same rule as before, one checkpoint-safe
restart, quarantine on the second stall, missing checkpoint is no evidence,
and paused time no longer counts. Stalls are recorded as scraper incidents
(failure.kind 'stall'). The private /api/recovery endpoint is gone.

Dropped with the service: reader/scraper-unreachable incidents (supervisor
and Docker handle crashes; the health page shows "Scraper: unreachable"),
duplicate job-failure incidents and the unused /metrics endpoint.
The stack is now reader + scraper (+ optional peer-gateway).
The supervisor test moved to runtime/test (npm run test:runtime stays).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 22:58:03 +02:00
MaashkinoozheandClaude Opus 5.5 086f6353f8 Add built-in backup of the data folder (BL-0044)
The reader owns a scheduled backup into BACKUP (Compose: BACKUP_PATH mounted at
/backup, off when unset). A run pauses the scraper queue through its control
API, waits (bounded) until no job is active, writes a verified tar.gz of DATA
with db.json from memory and scraper/queue.json stored paused, excludes
runtime/lock/pid/temp files, resumes only a queue it paused, then applies
count- or day-based retention to its own archive names only. Schedule,
retention, "Back up now" and last result live in Settings > Service health.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 18:03:21 +02:00
Codex ddd9c62c40 Show read-only server reading hours in settings 2026-10-14 22:42:54 +02:00
Codex 77553bbece Style reading quiz feedback by result 2026-10-14 21:48:31 +02:00
Codex d8eba9169f Add deployment reading windows and progress-aware quiz unlock 2026-10-14 15:34:55 +02:00
Codex 0d51f214d5 Test paused-source confirmation through reader UI 2026-10-14 09:44:01 +02:00
Codex 6d713e0a8c Keep source plugins in single scraper process 2026-10-13 22:42:20 +02:00
Codex 47de081721 Checkpoint peering identity and opt-in discovery 2026-10-13 22:00:54 +02:00
Codex c5a92282a9 Checkpoint first-party source parser pilot 2026-10-13 21:45:27 +02:00
Codex 605fa5b9d8 Add per-user page tone modes to reader 2026-10-12 23:49:02 +02:00
Codex da40d73f02 Redesign admin peering settings and catalogs 2026-10-11 01:06:03 +02:00
Codex 492477f86a Add scoped peer access and reversible serving controls 2026-10-11 00:25:14 +02:00
Codex d0275223a7 Expose Greatest source links and safe scraper inspection 2026-10-09 14:53:52 +02:00
Codex f493afcc18 Explain why each Greatest manga earned its place 2026-10-09 11:26:57 +02:00
Codex bedd0bc3b3 Show Greatest inclusion reasons on catalog tiles 2026-10-09 10:25:18 +02:00
Codex f713d0c0a9 Complete Greatest covers and use Japanese navigation label 2026-10-09 10:22:01 +02:00
Codex 5df94db9a3 Add Greatest of All Time manga dashboard 2026-10-09 10:10:34 +02:00
Maashkinoozhe eef4ffa07c Consolidate MangaCircus app, scraper, and Compose baseline 2026-10-07 23:28:20 +02:00
Maashkinoozhe 8dd776b7f4 MangaParty: self-hosted manga/comic/webtoon reader
Zero-dependency Node server + plain HTML/JS frontend.

- Library is a folder tree (Manga/Book/Chapter/pages), indexed in place;
  page roles (cover, double, extra, rotation) are file name tags
- Accounts with per-user progress, reading settings, follows and
  new-chapter notifications (in-app + optional webhook)
- Reader with Flow, Page and Book modes, pointer-anchored page zoom,
  tap zones, auto-hiding controls, chapter picker, page preloading
- Multiple versions per chapter with community votes
- Docker image and compose file
- Demo library generator (tools/make-dummy.js)
- Docs: architecture, library format, import, scraper guide
2026-10-01 09:35:05 +02:00