Files
mangabaka-seeder/docs/TODO.md
T

4.5 KiB

TODO

Durable backlog. Agents append here instead of leaving TODO comments in source. Small, specific, independently actionable. Remove only when actually done. Design: specs/001-webtoons-covers.md.

Now

  • Write the implementation plan with superpowers:writing-plans into docs/plans/001-webtoons-covers.md, and show it to the user before implementing (the user asked for this in the design session).

Next (rough order; the plan will refine it)

  • Scaffold with Bun. package.json, bun.lock, TypeScript, .gitignore (already exists). Scripts for test, typecheck, build (page, Worker, userscript). Then fill the Commands in AGENTS.md and the Verified commands in docs/PERMISSIONS.md from runs that worked.

  • Capture fixtures from real responses: Webtoons pages (Tower of God, crow-time canvas, title_no 6065 mature, a 2015 Wayback snapshot), Wayback CDX output, MangaBaka series, links, images for 9999, and a snapshot/preview if a token is available.

  • Re-download the OpenAPI spec from https://mangabaka.org/api.json; derive core/mangabaka/types.ts (SaveSubmissionBody, series-images snapshot and preview, V1_Series_Cover_Image).

  • core/: model, transport (rate limit, retries, timeouts, token scoping), links, sources + registry, webtoons (urls, parse, index), history/wayback, images, covers, mangabaka client, hosting (server, litterbox, catbox, direct), seed.

  • server/: app.ts (assets, /api/config, /api/fetch allowlist, /api/upload store|catbox, /covers/*, per-IP rate limit), Storage + folder storage with a daily 30-day sweep and a total size cap (507 when full), entry bun.ts.

  • web/: two-link form, review cards, host picker with lifetimes, rehost, copy, token flow (preview → confirm → save).

  • userscript/: panel on mangabaka.org series pages, GM_xmlhttpRequest transport, token in GM_setValue, direct litterbox/catbox uploads, optional server URL, build to mbseed.user.js with metadata banner.

  • Manual smoke test against Tower of God (9999 / title_no 95).

  • Update README, docs/ARCHITECTURE.md and PRODUCT.md/DESIGN.md to match reality.

  • Userscript: fill MangaBaka's cover form for users without a token (spec §4.9) — needs the logged-in form's markup and a check that it accepts programmatic input (spec §7.5). The panel offers copy-and-paste instead.

Verify with real services (once possible)

  • Which of our servers and domain hosts it (MBSEED_PUBLIC_URL); where the covers folder lives.
  • Does catbox accept uploads from our server?
  • Does MangaBaka accept our storage URLs, litterbox/catbox URLs, and swebtoon-phinf.pstatic.net (direct)?
  • Does MangaBaka copy images on submission or on approval?
  • Is "main cover" really is_default: true? Ask on the MangaBaka Discord if unclear.
  • Where are personal access tokens created in the MangaBaka UI? Add it to the README.
  • Does the MangaBaka cover form accept fields filled by a userscript?

Someday

  • S3-compatible bucket as a Storage option, if a single server's disk stops being enough.
  • Password gate (spec §4.11) — only if the open site gets abused or traffic grows too large.
  • Cloudflare Workers entry (server/worker.ts, R2 binding). If added: Workers serve static assets before the Worker unless run_worker_first is set — needed for the gate to cover them.
  • Bun CLI on the same core.
  • More sources: Tapas, Tappytoon, Lezhin, Manta.
  • Following Webtoons language editions of the same series.
  • Edits beyond covers (series fields, links), via other submission resources.
  • CI: check AGENTS.md, CLAUDE.md, GEMINI.md and the docs/ paths exist; fail if AGENTS.md exceeds 150 lines.

Recurring

  • Maintain AGENTS.md:
    • Add a rule only in response to a real failure. When an agent repeatedly gets something wrong, that is a gap; add one line, ideally with a code example. Do not pre-empt hypothetical mistakes.
    • Update in the same PR as the convention change. A stale rules file is worse than none — it actively misleads.
    • Prune quarterly. Delete rules whose convention has changed or whose mistake no longer occurs.
    • Optional, cheap validation: run the same task twice in clean sessions, with and without the file, and compare steps and token use.

Known issues

  • None yet (no code).