XingfenD
|
95317a0108
|
docs(readme): rewrite run/dev/migrate instructions for dev/release deploy spec
- scripts/smoke.sh: idempotent re-run (reuse existing member/library on 409)
- web client.ts: probe localStorage methods, not typeof (node 22+ stub regression)
|
2026-09-07 21:09:11 +08:00 |
|
XingfenD
|
0de824cc6a
|
feat(deploy): dev compose runs full stack with source mounts, delve, shared volumes; vite proxy target via env (dlv --accept-multiclient, GOPROXY=goproxy.cn in dev image)
|
2026-09-07 21:04:40 +08:00 |
|
XingfenD
|
67dc4bc2bf
|
feat(deploy): dev/prod Dockerfiles in service dirs (backend/,web/), templates live beside rendered outputs, entrypoint copies /etc/booklib conf before resolver injection
|
2026-09-07 20:53:41 +08:00 |
|
XingfenD
|
505f660dbd
|
fix: self-heal missing library root on access; accept .zip in admin upload picker
|
2026-09-07 20:16:26 +08:00 |
|
XingfenD
|
cc66a648b0
|
fix(web): logout-path parity, CSP header, epub display fallback + small review nits
|
2026-09-07 17:17:33 +08:00 |
|
XingfenD
|
96e96fec51
|
feat(web): pwa offline caching, dockerized SPA, full-stack nginx smoke
|
2026-09-07 16:33:50 +08:00 |
|
XingfenD
|
1bd7688ee6
|
feat(web): admin users CRUD + libraries create/scan/upload
|
2026-09-07 16:18:58 +08:00 |
|
XingfenD
|
4f4eff871c
|
feat(web): epub reader via epubjs arraybuffer bootstrap with cfi progress
|
2026-09-07 16:15:10 +08:00 |
|
XingfenD
|
de3015e537
|
feat(web): pdf reader with dpr-aware canvas rendering and keyboard paging
|
2026-09-07 16:08:49 +08:00 |
|
XingfenD
|
b2e40a5049
|
feat(web): txt/md reader with dompurified markdown and scroll-fraction progress
|
2026-09-07 16:04:37 +08:00 |
|
XingfenD
|
654e4febf1
|
feat(web): cbz reader — virtual scroll with height correction, prefetch, progress restore
|
2026-09-07 15:58:01 +08:00 |
|
XingfenD
|
97f6d2d3b6
|
feat(web): throttled progress saver with keepalive flush, reader dispatch shell
|
2026-09-07 15:47:11 +08:00 |
|
XingfenD
|
bc81b03d6a
|
fix(web): hide scan trigger from members per admin-only write rule
|
2026-09-07 15:44:08 +08:00 |
|
XingfenD
|
cf512b7d5a
|
feat(web): shelf with library tabs, search, dir groups, covers, continue-reading, admin delete/scan
|
2026-09-07 15:40:03 +08:00 |
|
XingfenD
|
63b41f333e
|
feat(web): authed blob image pipeline with LRU, cover card, dir grouping
|
2026-09-07 15:36:19 +08:00 |
|
XingfenD
|
b231b62720
|
fix(web): login honors from-path redirect; me-error clears stored token
|
2026-09-07 15:32:13 +08:00 |
|
XingfenD
|
c34289ebbe
|
feat(web): auth context, login page, route guards, toast/error shell
|
2026-09-07 15:27:11 +08:00 |
|
XingfenD
|
2f0fc25c7c
|
feat(web): typed api client with bearer token, 401 logout, binary channels
|
2026-09-07 15:23:18 +08:00 |
|
XingfenD
|
0cc040d750
|
feat(web): vite+react+ts+tailwind4 scaffold, vitest, /api dev proxy
|
2026-09-07 15:19:02 +08:00 |
|