Commit Graph
71 Commits
Author SHA1 Message Date
Lucas WintherandClaude Opus 5.5 899e8a0d54 docs: spec 004 (KakaoPage source), its plan, and captured KakaoPage fixtures
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 14:17:16 +02:00
Lucas WintherandClaude Opus 5.5 80185210ac Merge branch 'chore/analytics'
Continuous Integration / lint-and-test (push) Successful in 6s
Continuous Integration / docker-build-and-push (push) Successful in 24s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 12:27:11 +02:00
Lucas WintherandClaude Opus 5.5 91d32352e4 chore(web): page views via our Shynet instance (page only, not the userscript panel)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 12:27:11 +02:00
Lucas WintherandClaude Opus 5.5 e0bd630bb6 Merge branch 'feat/tapas': Tapas source, comics and novels (spec 003)
Continuous Integration / lint-and-test (push) Successful in 7s
Continuous Integration / docker-build-and-push (push) Successful in 25s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 12:12:44 +02:00
Lucas WintherandClaude Opus 5.5 6e97e95ce9 docs: remove the finished plan 003 (the spec is the record)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 12:12:44 +02:00
Lucas WintherandClaude Opus 5.5 d16bdf7545 docs: deferred Tapas review minors in TODO
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 12:12:44 +02:00
Lucas WintherandClaude Opus 5.5 bc81fc3282 docs: plan 003 ticked; possible early-click race noted
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 12:09:53 +02:00
Lucas WintherandClaude Opus 5.5 556a365071 feat: Tapas in the copy, userscript @connect and docs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:56:37 +02:00
Lucas WintherandClaude Opus 5.5 187e85fcaa feat(core): Tapas source (comics and novels), registered
Series by slug, id or episode link; portrait original and banner; age-checked
mature series resolve with a warning and no current covers; Wayback history
keeps only this series' captures.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:56:03 +02:00
Lucas WintherandClaude Opus 5.5 f914c85545 feat(core): parse Tapas series, reader and age-check pages
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:54:52 +02:00
Lucas WintherandClaude Opus 5.5 137402072e feat(core): Tapas links, image URLs and same-series check
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:54:19 +02:00
Lucas WintherandClaude Opus 5.5 d5c07465da docs: spec 003 (Tapas source), its plan, and captured Tapas fixtures
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:53:36 +02:00
Lucas WintherandClaude Opus 5.5 a7253940fa Merge branch 'feat/download-and-history': download covers as a ZIP, history of searches (spec 002)
Continuous Integration / lint-and-test (push) Successful in 6s
Continuous Integration / docker-build-and-push (push) Successful in 24s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:47:11 +02:00
Lucas WintherandClaude Opus 5.5 a7ff9ae20d docs: remove the finished plan 002 (the spec is the record)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:46:05 +02:00
Lucas WintherandClaude Opus 5.5 49c9efa704 docs: history keeper in architecture; deferred review minors in TODO; plan ticked
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:46:05 +02:00
Lucas WintherandClaude Opus 5.5 0d4a1a61fa fix: final review — cached links keep their expiry; history removal sticks; saves flushed
- A link reused from the rehost cache keeps the expiry it was uploaded with, and
  links near expiry are uploaded again (a dead litterbox link could be filed).
- History saving moves into HistoryKeeper (tested): removing an entry or clearing
  the history cancels a pending save and stops tracking the series on screen;
  a pending edit is saved before a new search, before opening another entry and
  when the page is hidden; opening an entry no longer re-saves the current one.
- The "couldn't be saved" line sits outside the History list, so it shows even
  when the list is empty; a refused IndexedDB says history is off.
- Recently searched bands wrap their meta line instead of cutting the count.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:45:48 +02:00
Lucas WintherandClaude Opus 5.5 1cf31b26cf fix(web): history focus rings inside the rows, aligned Clear history, no duplicate reopen note; DESIGN.md
From the impeccable finish review.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:41:52 +02:00
Lucas WintherandClaude Opus 5.5 2a0e786e6f docs: download and history in README, architecture, decisions; test refused storage
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:38:34 +02:00
Lucas WintherandClaude Opus 5.5 2da992fd81 feat(web): history of searches on the page
Each search is kept in IndexedDB with its covers and edits; the History list and
a shelf of recent series on the start screen reopen it instantly. Searching a
series again keeps the edits of covers that are still there.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:35:06 +02:00
Lucas WintherandClaude Opus 5.5 81ee5f0efa feat(web): download the selected covers as a ZIP
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:32:51 +02:00
Lucas WintherandClaude Opus 5.5 01c2253051 feat(web): history view helpers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:31:51 +02:00
Lucas WintherandClaude Opus 5.5 2293d2810f feat(core): saved searches for the history
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:31:32 +02:00
Lucas WintherandClaude Opus 5.5 414a272d40 feat(core): remember where and until when a cover is hosted
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:30:27 +02:00
Lucas WintherandClaude Opus 5.5 7569c0bb29 feat(core): download bundle of the selected covers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:29:56 +02:00
Lucas WintherandClaude Opus 5.5 3eb0332c87 feat(core): store-only ZIP writer
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:29:04 +02:00
Lucas WintherandClaude Opus 5.5 d1b8350263 feat(web): old covers from the Wayback Machine start off
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:28:27 +02:00
Lucas WintherandClaude Opus 5.5 e7af273a6d docs: spec 002 (download covers, history of searches) and its plan
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:28:13 +02:00
Lucas WintherandClaude Opus 5.5 6c9bc62186 Merge branch 'fix/main-band-selection'
Continuous Integration / lint-and-test (push) Successful in 6s
Continuous Integration / docker-build-and-push (push) Successful in 24s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:24:27 +02:00
Lucas WintherandClaude Opus 5.5 a68159c958 fix(web): visible text selection on the main-cover band
The page-wide highlight is band red at 30%, invisible on the red band, so its
text looked unselectable. Reverse the band's colours for the selection there.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:24:27 +02:00
Lucas WintherandClaude Opus 5.5 9ae2ba3241 Merge branch 'fix/darkreader'
Continuous Integration / lint-and-test (push) Successful in 6s
Continuous Integration / docker-build-and-push (push) Successful in 23s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:07:43 +02:00
Lucas WintherandClaude Opus 5.5 a64b2009df fix(web): use the page's own dark theme when Dark Reader is on
Dark Reader marks <html data-darkreader-scheme="dark">; the page then sets
data-theme="dark" and adds <meta name="darkreader-lock"> so Dark Reader
removes its generated styles.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 11:07:43 +02:00
Lucas WintherandClaude Opus 5.5 f6d27aa5cc Merge branch 'chore/docker': Docker image and Gitea CI
Continuous Integration / lint-and-test (push) Successful in 9s
Continuous Integration / docker-build-and-push (push) Successful in 26s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 10:46:09 +02:00
Lucas WintherandClaude Opus 5.5 ec51b7b5fc chore: Dockerfile, Gitea CI image build, docker-compose example
The server now stops on SIGTERM/SIGINT so docker stop is immediate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 10:45:13 +02:00
Lucas WintherandClaude Opus 5.5 2282897b4b Merge branch 'feat/webtoons-covers': mangabaka-seeder v0.1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:55:11 +02:00
Lucas WintherandClaude Opus 5.5 b2eb621ebb docs: remove the finished plan (the spec is the record)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:50:01 +02:00
Lucas WintherandClaude Opus 5.5 baa3476b73 fix(server): inert proxy responses, API-call header, image-only uploads; origin check by host
From the final review: proxied archived HTML could run on our origin and read a
remembered token; /api/upload accepted any Wayback URL and GIF-prefixed bytes; the
origin check broke behind a TLS proxy; one unreadable snapshot could fail a run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:49:52 +02:00
Lucas WintherandClaude Opus 5.5 5084f8c557 docs: v0.1 README, architecture and TODO
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:40:39 +02:00
Lucas WintherandClaude Opus 5.5 df7e1bcd42 feat(userscript): Seed covers panel on MangaBaka series pages
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:40:04 +02:00
Lucas WintherandClaude Opus 5.5 162ab4afb0 feat(userscript): GM_xmlhttpRequest transport, GM storage, metadata banner and build
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:38:20 +02:00
Lucas WintherandClaude Opus 5.5 17ecebc4a4 feat(web): Obi Shelf design in a console layout, with a timeline view; record DESIGN.md
The user chose the direction over two mockup rounds (samples/mockups, gitignored):
the Obi Shelf's shelf and colours, Graphite Console side panels, the Annotated
Edition timeline as a second view, and warm off-colour grounds in both themes.
Selects look editable; labels are source-neutral. impeccable finish review: ship.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:38:00 +02:00
Lucas WintherandClaude Opus 5.5 aea4a1a35c fix(server): keep connections open 240 s; Bun's 10 s default cut slow Wayback lookups off
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 00:43:47 +02:00
Lucas WintherandClaude Opus 5.5 6f43ef0615 feat(web): working page (two links → review cards → rehost → copy or preview/confirm)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 23:44:58 +02:00
Lucas WintherandClaude Opus 5.5 9a13111589 feat(server): Bun.serve entry with folder storage and daily sweep; document running it
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 23:39:53 +02:00
Lucas WintherandClaude Opus 5.5 2debb3d513 feat(server): web-standard handler (config, allowlisted fetch proxy, upload, covers, assets)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 23:39:19 +02:00
Lucas WintherandClaude Opus 5.5 4197b174b5 feat(server): config from env, trusted client IP, per-IP rate limiter, safe asset paths
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 23:39:13 +02:00
Lucas WintherandClaude Opus 5.5 9019d99c59 feat(server): size-capped covers folder with a 30-day sweep; in-memory storage for tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 23:39:06 +02:00
Lucas WintherandClaude Opus 5.5 260ae2f5c0 feat(core): shared review session (cards, main cover, rehost, manual text, token flow)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 23:38:54 +02:00
Lucas WintherandClaude Opus 5.5 0ed017056f feat(core): compose the pipeline (links → series → current + history → inspect → compare)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 23:38:48 +02:00
Lucas WintherandClaude Opus 5.5 a6c02cb548 feat(core): image hosts (server, litterbox, catbox, direct) and per-image rehosting
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 23:38:22 +02:00
Lucas WintherandClaude Opus 5.5 1e548701ca feat(core): build the cover seed (whole set, one default) and manual-entry text
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 23:38:15 +02:00