Commit Graph

  • 85d65f5eda feat(analysis): slice tall pages to the pixel budget for reliable OCR MechaCat02 2026-06-13 22:36:23 +02:00
  • ab9b8fb172 fix(analysis): raise default ANALYSIS_MAX_TOKENS 900 -> 4096 MechaCat02 2026-06-13 21:33:35 +02:00
  • 8b5bd99446 feat(analysis): live SSE updates in the admin coverage dashboard MechaCat02 2026-06-13 21:12:56 +02:00
  • d0cd31c9a7 feat(analysis): live SSE event stream for the admin dashboard MechaCat02 2026-06-13 21:06:20 +02:00
  • 6bb72b8775 feat(analysis): admin coverage overview + per-page result inspector UI MechaCat02 2026-06-13 20:39:54 +02:00
  • 824f5acf22 feat(analysis): admin coverage + per-page inspection API MechaCat02 2026-06-13 20:34:05 +02:00
  • 268e8cc6c2 fix(analysis): use json_schema response_format + surface vision error bodies MechaCat02 2026-06-13 20:14:38 +02:00
  • 7e675b72cc feat(analysis): admin analysis section uses manga search + chapter picker MechaCat02 2026-06-13 20:05:09 +02:00
  • 8b7ea2e1b2 feat(analysis): admin UI — reader context-menu action + dashboard section MechaCat02 2026-06-13 19:57:03 +02:00
  • 9607488278 feat(analysis): scoped admin re-enqueue (all/manga/chapter) + force-on-include MechaCat02 2026-06-13 19:49:54 +02:00
  • d36f24e9af feat(search): frontend content search (text + warnings) + manga warning banner MechaCat02 2026-06-13 19:12:34 +02:00
  • bd39476ac7 feat(mangas): content-warning filter on search + deduped banner on detail MechaCat02 2026-06-13 19:03:26 +02:00
  • af870bd157 feat(search): page content-search endpoint (multi-tag AND + text + warnings) MechaCat02 2026-06-13 18:58:07 +02:00
  • 7d80a437bf feat(analysis): worker daemon + real dispatcher + app wiring MechaCat02 2026-06-13 18:51:53 +02:00
  • dbde6e02c4 feat(analysis): vision client + system prompt + AnalysisConfig MechaCat02 2026-06-13 18:45:57 +02:00
  • 2bbf1595ff feat(analysis): enqueue page-analysis on upload/crawl + admin backfill endpoints MechaCat02 2026-06-13 18:39:03 +02:00
  • 63e1aa5484 feat(analysis): page-analysis schema, domain types, and analyze_page job kind MechaCat02 2026-06-13 18:27:08 +02:00
  • f30600162e feat(page-tags): normalize page_tags onto the shared tags table MechaCat02 2026-06-13 17:44:38 +02:00
  • 33f684887d feat(mangas): add tag-similarity "Similar" section on manga detail MechaCat02 2026-06-13 15:48:15 +02:00
  • 6c901e64c9 feat(search): tag-based page search surface + per-page tags & collections MechaCat02 2026-06-13 15:51:38 +02:00
  • 9910a0a995 fix(frontend): reader back button pops history instead of pushing (0.60.2) MechaCat02 2026-06-08 20:59:10 +02:00
  • 00577071fd fix(frontend): mobile layout polish + overflow handling (0.60.1) MechaCat02 2026-06-08 20:58:21 +02:00
  • 1e3fd27308 feat(frontend): mobile account hub + library wrapper (0.60.0) MechaCat02 2026-06-07 11:35:07 +02:00
  • f5842510b7 feat(frontend): mobile reader with tap zones + settings sheet (0.59.0) MechaCat02 2026-06-07 11:22:54 +02:00
  • 780632bee3 feat(frontend): mobile manga detail with hero + sticky CTA (0.58.0) MechaCat02 2026-06-07 11:07:30 +02:00
  • be6b974150 feat(frontend): mobile catalog with sheet filters + sort (0.57.0) MechaCat02 2026-06-07 10:54:58 +02:00
  • 6dcb720a0f feat(frontend): mobile primitives + bottom-nav chrome (0.56.0) MechaCat02 2026-06-06 19:46:16 +02:00
  • d6ac648ac9 feat(admin): crawler observability dashboard + reliability hardening (0.55.0) MechaCat02 2026-06-06 18:49:56 +02:00
  • 679abae736 feat(chapter): preserve source-site order in chapter list (0.52.0) MechaCat02 2026-06-03 07:25:09 +02:00
  • b812c6d16c fix(reader): drop "Chapter N:" prefix from chapter title display (0.51.2) MechaCat02 2026-06-03 07:22:17 +02:00
  • e93eec89e5 fix(crawler): queue chapter content in ascending number order (0.51.1) MechaCat02 2026-06-02 21:13:51 +02:00
  • 8818c890c5 feat(reader): chapter select dropdown for direct chapter jumps (0.51.0) MechaCat02 2026-06-02 07:09:30 +02:00
  • c134bdbbde feat: cover retry backfill + admin force-resync for manga & chapter (0.50.0) MechaCat02 2026-06-01 22:00:09 +02:00
  • 5c22dfdb41 feat: paginate list views, fix stale page titles, tidy admin filter bar MechaCat02 2026-06-01 21:18:53 +02:00
  • e50fc093c3 feat: add PRIVATE_MODE site-wide auth gate (0.48.0) MechaCat02 2026-06-01 20:05:30 +02:00
  • 72756cfef2 feat(crawler): honour CRAWLER_LIMIT in the in-process daemon (0.47.0) MechaCat02 2026-06-01 20:07:01 +02:00
  • 4e20350645 fix(crawler): translate socks5h:// → socks5:// for Chromium --proxy-server MechaCat02 2026-05-31 20:55:29 +02:00
  • 713ca139c4 feat(deploy): add optional tor service to dev compose for native-backend dev MechaCat02 2026-05-31 20:36:24 +02:00
  • e3cff9d874 fix(deploy): pivot tor service to password auth + wrapper entrypoint MechaCat02 2026-05-31 20:25:54 +02:00
  • d47e832613 fix(crawler): redact TorAuth::Password in Debug, drop NEWNYM info→debug MechaCat02 2026-05-31 20:25:36 +02:00
  • c30c7a546f fix(crawler): unify recircuit budget semantics — N = total attempts MechaCat02 2026-05-31 20:25:25 +02:00
  • a0db7beb81 chore: bump to 0.46.0 for TOR proxy + recircuit feature MechaCat02 2026-05-31 18:55:46 +02:00
  • ecbbebafc4 feat(deploy): dockurr/tor service + torrc; wire crawler to use it by default MechaCat02 2026-05-31 18:54:40 +02:00
  • 8c6378b877 feat(crawler): recircuit TOR on transient pages and unauthenticated probes MechaCat02 2026-05-31 18:52:28 +02:00
  • 8557e432a2 feat(crawler): plumb TorController through FetchContext and pipelines MechaCat02 2026-05-31 18:43:15 +02:00
  • d6d84dedcb feat(crawler): retry_on_transient_with_hook for between-retry side effects MechaCat02 2026-05-31 18:37:38 +02:00
  • d37b94871e feat(crawler): TorController for control-port NEWNYM signaling MechaCat02 2026-05-31 18:36:24 +02:00
  • 8e39fadd21 ci: build via host docker socket (plain build); fix missing daemon socket (#5) fabi 2026-05-31 17:40:14 +00:00
  • 3b3d13a0f6 fix(crawler): walk list pages incrementally; stop on empty page (0.45.1) (#4) fabi 2026-05-31 16:37:14 +00:00
  • 0f90af80cb ci(test-backend): ubuntu-latest + rustup (fix node-not-found) (#3) fabi 2026-05-31 16:18:21 +00:00
  • 6b49a47d0a feat(crawler): system Chromium via CRAWLER_CHROMIUM_BINARY (0.45.0) (#2) fabi 2026-05-31 15:47:47 +00:00
  • e851355f28 Merge pull request 'ci: no-SSH local deploy + Dockerfile build fixes' (#1) from fix/ci-deploy-pipeline into main fabi 2026-05-31 15:43:54 +00:00
  • 2a0cc24c07 ci: deploy to the local stack over the runner socket, not SSH fabi 2026-05-31 17:26:58 +02:00
  • a615b0aee7 fix(docker): unblock image builds on this host fabi 2026-05-31 17:26:58 +02:00
  • a2826d6467 feat(crawler): CRAWLER_ALLOW_ANY_HOST bypasses the host allowlist (0.44.0) MechaCat02 2026-05-31 14:52:49 +02:00
  • 1eebb90e25 fix(crawler): unhang shutdown on lingering Arc<Browser>, silence WS noise (0.43.1) MechaCat02 2026-05-31 14:47:36 +02:00
  • 030b27754b feat(api): admin-initiated user creation via POST /admin/users (0.43.0) MechaCat02 2026-05-31 14:00:31 +02:00
  • 2f47faa11c feat(auth): ALLOW_SELF_REGISTER toggle + public /auth/config endpoint (0.42.0) MechaCat02 2026-05-31 13:56:18 +02:00
  • 6dd21451a8 chore: sync Cargo.lock for 0.41.2 MechaCat02 2026-05-30 22:26:24 +02:00
  • f6728dc71a fix(admin): security-audit findings — paginate chapters, lock down unchecked helper (0.41.2) MechaCat02 2026-05-30 22:23:55 +02:00
  • aa2159ca06 fix(admin): three review findings — audit no-op, 404, chapter priority (0.41.1) MechaCat02 2026-05-30 21:58:15 +02:00
  • b434c9b68d feat(frontend): /admin dashboard with users/mangas/system views (0.41.0) MechaCat02 2026-05-30 21:49:39 +02:00
  • cc4ec76d17 feat(api): admin system metrics endpoint with disk/mem/cpu alerts (0.40.0) MechaCat02 2026-05-30 21:45:06 +02:00
  • bf7c9b5c2a feat(api): admin manga/chapter overview with derived sync state (0.39.0) MechaCat02 2026-05-30 21:41:09 +02:00
  • 0b2018ceca feat(api): admin user management endpoints with audit log (0.38.0) MechaCat02 2026-05-30 21:35:35 +02:00
  • ab8b7acc34 feat(auth): admin role with cookie-only RequireAdmin extractor (0.37.0) MechaCat02 2026-05-30 21:26:26 +02:00
  • 9925f54695 fix(crawler): narrow browser-dead heuristic to typed downcasts (0.36.7) MechaCat02 2026-05-30 20:41:59 +02:00
  • eaa5afda50 fix(crawler): skip sync when empty chapters + prior > 0 (0.36.6) MechaCat02 2026-05-30 20:17:42 +02:00
  • 5c04b0532b fix(crawler): panic-isolate the cron tick body (0.36.5) MechaCat02 2026-05-30 20:08:11 +02:00
  • 655ea42731 fix(crawler): scope dispatch_target to live sources, newest first (0.36.4) MechaCat02 2026-05-30 20:03:45 +02:00
  • 70e8a7895c fix(crawler): relaunch chromium on CDP / nav-timeout errors (0.36.3) MechaCat02 2026-05-30 18:39:19 +02:00
  • 8e0b638e3f fix(crawler): wait for page marker instead of fixed 1s sleep (0.36.2) MechaCat02 2026-05-30 18:29:38 +02:00
  • e2bd1462ba fix(crawler): wrap wait_for_navigation in 30s timeout (0.36.1) MechaCat02 2026-05-30 18:10:51 +02:00
  • 9f56f283d4 feat(crawler): single-mode walker gated by recovery flag (0.36.0) MechaCat02 2026-05-29 23:49:28 +02:00
  • 33f7e19077 fix(crawler): serialize sync_manga_chapters per-manga (0.35.6) MechaCat02 2026-05-29 20:45:01 +02:00
  • c6bb9160e3 fix(crawler): scope chapter_sources lookup per-manga (0.35.5) MechaCat02 2026-05-29 20:43:08 +02:00
  • 50763addcf fix(crawler): quarantine recently-dead chapters from re-enqueue (0.35.4) MechaCat02 2026-05-29 20:42:41 +02:00
  • 766c6eebac fix(crawler): guard ack_done/ack_failed/release on state='running' (0.35.3) MechaCat02 2026-05-29 20:42:18 +02:00
  • c686d6eb51 fix(crawler): sentinel-gate parse_chapter_list to stop false drops (0.35.2) MechaCat02 2026-05-29 20:41:47 +02:00
  • dea9b1aaa8 fix(crawler): close walker race against site reordering (0.35.1) MechaCat02 2026-05-29 20:14:01 +02:00
  • f57ca8e45c feat: harden auth, shutdown, and session bundle (0.35.0) MechaCat02 2026-05-28 20:27:21 +02:00
  • 8d34132883 bugfix: security & correctness bundle (0.34.1) MechaCat02 2026-05-28 20:24:51 +02:00
  • c5c1179e9d chore: full hop-by-hop header strip and 60s timeout on /api/* proxy MechaCat02 2026-05-28 19:20:55 +02:00
  • c320eda7cd chore: dedupe is_unique_violation, lift SQL into repo, centralise URL parsing MechaCat02 2026-05-28 19:31:49 +02:00
  • bd9a6bd257 chore: drop dead 'failed' branch from crawler_jobs partial index MechaCat02 2026-05-28 19:23:55 +02:00
  • ebc1966103 chore: run containers as non-root, add HEALTHCHECK, npm ci MechaCat02 2026-05-28 19:22:04 +02:00
  • e4333631e1 chore: run CI on PRs, require POSTGRES_PASSWORD, document HTTPS need MechaCat02 2026-05-28 19:23:04 +02:00
  • e7662d18d6 feat: gitea actions for build, push, and ssh deploy (0.34.0) MechaCat02 2026-05-28 06:56:13 +02:00
  • 45ce0d8f12 feat: incremental crawl mode with seed-completion gate (0.33.0) MechaCat02 2026-05-28 06:41:26 +02:00
  • 51f42b03e9 feat: default crawler browser to headless (0.32.0) MechaCat02 2026-05-27 20:27:05 +02:00
  • fa0a7da311 feat: edit existing manga metadata (0.31.0) MechaCat02 2026-05-27 20:26:23 +02:00
  • 9ff49166a5 feat: transient-page detection across the crawler (0.30.0) MechaCat02 2026-05-26 22:47:21 +02:00
  • b845d88766 feat: bookmark create enqueues SyncChapterContent jobs (0.29.0) MechaCat02 2026-05-25 20:59:14 +02:00
  • 9fe0f26d75 feat: in-process crawler daemon with cron and worker pool (0.28.0) MechaCat02 2026-05-25 20:32:02 +02:00
  • 93c7fd63fc feat: crawler job queue ops and dedup index (0.27.0) MechaCat02 2026-05-25 19:59:09 +02:00
  • 89b84252a5 bugfix: subquery-wrap pending chapters query so DISTINCT + ORDER BY agree (0.26.1) MechaCat02 2026-05-24 22:20:15 +02:00
  • 728d704a66 feat: CRAWLER_KEEP_BROWSER_OPEN waits for Ctrl+C in headed mode (0.26.0) MechaCat02 2026-05-24 21:33:18 +02:00
  • d24e68c78d feat: chapter content sync via PHPSESSID + per-host pacing (0.25.0) MechaCat02 2026-05-23 00:28:36 +02:00
  • 51346227dd feat: route reader by chapter id, allow duplicate-numbered chapters (0.24.0) MechaCat02 2026-05-22 23:37:07 +02:00
  • c51353ead3 bugfix: chapter source key uses chapter id, not /pg-1/ (0.23.1) MechaCat02 2026-05-22 23:15:36 +02:00