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
|
93638ed647
|
fix(api): classify DB errors in library paths
|
2026-09-07 12:44:47 +08:00 |
|
XingfenD
|
12f6e82308
|
fix(api): lazy cover self-heal + tmp-file skip
|
2026-09-07 12:44:47 +08:00 |
|
XingfenD
|
6adbab44c3
|
fix(security): trusted-proxy-scoped login rate limit
|
2026-09-07 12:44:47 +08:00 |
|
XingfenD
|
a11bf28155
|
fix(backend): dbErr 503 degradation for connection-class DB errors
|
2026-09-06 19:53:19 +08:00 |
|
XingfenD
|
8f18072843
|
feat(backend): reading progress upsert + listing, path-keyed survival
|
2026-09-05 20:59:11 +08:00 |
|
XingfenD
|
8206c7a4ed
|
fix(backend): single error body on pages paths, reject newline entry names, empty-index cache skip
|
2026-09-05 20:56:05 +08:00 |
|
XingfenD
|
0946f6be5a
|
feat(backend): cover/file/pages endpoints — immutable URLs, Range, disk+redis caches
|
2026-09-05 00:48:40 +08:00 |
|
XingfenD
|
249619b857
|
feat(backend): book list/detail/delete with embedded progress + cache cleanup
|
2026-09-05 00:42:08 +08:00 |
|
XingfenD
|
193d7612b5
|
feat(backend): directory scanner — diff, error state, covers, cache sweep, redis lock
|
2026-09-05 00:31:32 +08:00 |
|
XingfenD
|
ed4ee2458f
|
feat(backend): user + library admin API, atomic sanitized upload
|
2026-09-05 00:16:33 +08:00 |
|
XingfenD
|
51735680e0
|
test(backend): setupAPI points BooksDir at os.TempDir and resets shared loginrl key
|
2026-09-05 00:16:33 +08:00 |
|
XingfenD
|
18e31396f3
|
fix(backend): login timing-guard uses a valid bcrypt hash so the compare actually runs
|
2026-09-04 23:59:39 +08:00 |
|
XingfenD
|
bc88cabc47
|
feat(backend): jwt middleware, login with redis rate limit, /auth/me
|
2026-09-04 23:58:26 +08:00 |
|
XingfenD
|
ad934d9812
|
feat(backend): module scaffold, config, gin router with healthz
|
2026-09-04 23:39:31 +08:00 |
|