Commit Graph
19 Commits
Author SHA1 Message Date
XingfenD 7d650107d2 feat(upload): resumable chunked upload protocol for large files — init(parts≤32MB)/status/complete endpoints with fingerprint-derived deterministic uploadId (same file resumes, no restart), sessions in BOOKS_DIR/.uploads with 24h sweep, frontend uploadBook auto-switches >16MB to 8MB parts (retry x3 in place, skip received); oversize single POST now reports honest 413 too_large instead of "multipart field 'file' required" (was MaxBytesReader abort mislabeled); UPLOAD_MAX_MB wired into both compose stacks (cap total, .env.example 2048), nginx body limit drops to 32m; testCfg limit 1MB, CJK/fullwidth-colon filename proven unaffected; e2e verified with 311MB real file (39 parts, sha1 match) 2026-09-07 23:56:40 +08:00
XingfenD c6dfb92c76 fix(cbz): smooth scrollbar/slider dragging — rAF-coalesce scroll handler, idle-debounced prefetch, frame-batched height corrections, PageHeights.setEst converges unseen pages to the first measured page size, page slider seeks instantly while scrubbing (no per-notch smooth-animation restart); restore lost ### Fixed header in changelog 2026-09-07 23:13:04 +08:00
XingfenD 065fde5b56 feat(reader): immersive chrome + WeChat-Read/Mihon-style bottom sheets — tap-center toggles header/toolbar, progress & page sliders seek anywhere, WYSIWYG theme swatches, A± font size; CBZ gains 连读/整页/适高 modes, edge-tap & arrow-key paging, persisted mode (seekChapter helper + test) 2026-09-07 23:03:26 +08:00
XingfenD 7e63c21902 feat(reader): stop detecting 卷 in txt splitting (volume lines stay body text, volume-only books fall back to pseudo-sections); replace chapter dropdown with a 目录 sidebar overlay (active row highlighted + centered, click-away/pick to close) 2026-09-07 22:42:10 +08:00
XingfenD 7fb01ce335 feat(ui): warm library palette (zinc+emerald -> stone+amber) with hover/focus feedback; text reader gains paper/sepia/night themes + persisted font-size (lib/readerPrefs.ts), serif justified measure; PDF drops emoji icons for 首页/末页, CBZ pill page counter, EPUB centered spread, blur reader header with format badge, aria labels on login/search/chapter select 2026-09-07 22:37:47 +08:00
XingfenD f47f2a6199 fix(reader): split large txt into chapters (章 as boundaries, 卷 as optgroup labels, pseudo-sections when unmarked) rendered one at a time so the browser stops freezing; decode via strict-UTF-8-then-GB18030 with UTF-16 BOM sniffing to kill mojibake; progress locator {ch,scrollFraction} with old global-fraction fallback 2026-09-07 22:21:29 +08:00
XingfenD 45eefd6741 feat(libs): create library by name only; root_path derived server-side as BOOKS_DIR/SafeName(name), validated at creation; drop root_path input from admin UI; align changelogs to bilingual template; trim AGENTS.md to rules not derivable from repo layout 2026-09-07 21:56:59 +08:00
XingfenD ca64bc0d73 refactor(repo): conform structure to AGENTS.md (web->frontend, internal/api->cmd/webui/{api,handlers}, docs/README+CHANGELOGs, module .gitignores, drop stray library/ and committed debug bins) 2026-09-07 21:37:30 +08:00
XingfenD 6b3a4e5240 docs(plan): docker deploy conformance implementation plan (5 tasks); spec: smoke storage path item 2026-09-07 19:42:39 +08:00
XingfenD e563c88913 docs(spec): docker deployment conformance redesign (dev/release compose, prepare.sh, shared volumes, storage path) 2026-09-07 19:36:34 +08:00
XingfenD 22ae1717f4 docs: tick completed plan checkboxes, mark spec as implemented 2026-09-07 17:27:24 +08:00
XingfenD 1adb596981 docs(plan): execution-time amendments log for plan2-frontend 2026-09-07 17:22:04 +08:00
XingfenD e08f1dd5b9 docs(plan): PageHeights.range end-exclusive matches its tests 2026-09-07 16:02:53 +08:00
XingfenD 052b94bb6a docs(plan): lazy import lands with first reader wiring (noUnusedLocals) 2026-09-07 15:49:44 +08:00
XingfenD 36a2014a8b docs(plan): shelf scan button carries isAdmin guard (constraint governs) 2026-09-07 15:44:25 +08:00
XingfenD b730b7acb4 docs(plan): frontend Plan 2 — shelf, four readers, admin, PWA, dockerized SPA 2026-09-07 15:14:58 +08:00
XingfenD a20b32fe26 docs(plan): test suite command uses -p 1 (shared-PG destructive fixtures race) 2026-09-04 23:54:03 +08:00
XingfenD d4972d6d4c docs(plan): fix unclosed code fence in Task 2, bump api build image to golang:1.26 2026-09-04 23:43:19 +08:00
XingfenD 2458c9ca4d docs: book-comic-library spec + backend implementation plan 2026-09-04 23:36:04 +08:00