saltbo
76f9e01f89
fix(traffic): meter webdav downloads
2026-06-06 10:37:14 -04:00
saltbo
4f15956209
fix(quota): reconcile storage usage after purge
2026-06-06 10:31:22 -04:00
saltbo
65eb5d9738
fix(downloader): reset runtime on task restart
2026-06-06 00:54:26 -04:00
saltbo
6aa711bfb6
refactor(downloads): reshape download task status model
2026-06-06 00:07:21 -04:00
saltbo
e113c6c2cf
fix(downloader): clean recovered torrent runtime
2026-06-05 22:34:32 -04:00
saltbo
031c568c40
fix(downloader): keep task upload tokens stable
2026-06-05 22:02:19 -04:00
saltbo
8f272b8a41
refactor(downloader): clarify task states and restart action
2026-06-05 21:51:32 -04:00
saltbo
9dd3ca0105
fix(downloader): separate interrupted task recovery
2026-06-05 21:34:57 -04:00
saltbo
6ba1f16282
fix(downloader): preserve retry recovery checkpoints
2026-06-05 20:52:38 -04:00
saltbo
3f7a859e73
refactor(downloader): consolidate api contract generation
2026-06-05 15:24:56 -04:00
saltbo
0b3bc2da09
fix(api-keys): return 429 for rate-limited keys
2026-06-05 13:19:34 -04:00
saltbo
3c9e1bf1ca
fix(webdav): stabilize propfind directory listings
2026-06-05 12:39:56 -04:00
saltbo
b5154e76d9
fix(storage): presign multipart complete without body
2026-06-05 01:42:41 -04:00
saltbo
83d26e9dd6
fix(storage): surface multipart complete failures
2026-06-05 01:31:50 -04:00
saltbo
4ec207290e
fix(storage): avoid sdk xml parser for multipart
2026-06-05 00:15:52 -04:00
saltbo
d6a368c6c0
fix(downloader): multipart upload large results
2026-06-04 23:40:25 -04:00
saltbo
655b58d93a
fix(downloader): acknowledge stopped cancel controls
2026-06-04 20:01:38 -04:00
saltbo
52dc621ecf
fix(objects): avoid LIKE patterns for folder descendants
2026-06-04 18:11:10 -04:00
saltbo
4dcbab55b1
feat(downloads): improve task controls and metadata
2026-06-04 14:57:44 -04:00
saltbo
94dada75ba
feat(downloads): add task actions and classification
2026-06-04 14:08:39 -04:00
saltbo
6276530476
feat(auth): unify api key management
2026-06-04 12:39:59 -04:00
saltbo
1b4f149d05
feat(downloads): stream normalized task details
2026-06-03 13:08:14 -04:00
saltbo
754d1aaa3d
fix(downloads): separate storage and peer upload metrics
2026-06-03 12:23:31 -04:00
saltbo
cf3324b4a2
feat(downloads): preserve directory uploads
2026-06-03 12:05:55 -04:00
saltbo
f698e5a8a9
feat(downloads): show normalized task details
2026-06-03 11:12:56 -04:00
saltbo
53076d7873
feat(downloads): add remote download workers
2026-06-03 02:21:50 -04:00
saltbo
1ff6d13998
feat(billing): meter storage egress with credits
2026-06-02 22:22:40 -04:00
saltbo
7f85da222f
feat(quota): consolidate storage entitlements
2026-06-02 20:12:59 -04:00
Jasper Van
f45e8732fc
feat: integrate cloud credits store flow
...
Replace ZPAN Store Wallet semantics with Credits-only APIs and UI.
Proxy Cloud credits through credit-account routes, send unitless gift-card credits, and block metered downloads on insufficient Cloud credits before presign while rolling back local counters.
Verification waiver: E2E fails only because the hosted Cloud target rejects the merged Credits gift-card payload; AK follow-up kxel47x6x6l3 tracks that target gap.
2026-06-01 22:31:46 -04:00
saltbo
c0c6a27ecb
fix(s3): bypass customHost in presignUpload to support S3 PUT uploads on R2 custom domains
2026-05-27 21:09:37 -04:00
saltbo
f65139fc35
fix(s3): set Content-Disposition metadata on objects during S3 direct upload for custom domains
2026-05-27 19:57:08 -04:00
saltbo
399f9325a5
fix(s3): conform to RFC 6266 for ResponseContentDisposition filename encoding
2026-05-27 14:12:15 -04:00
saltbo
f3972c2df0
fix(s3): handle missing customHost scheme and remove bucket name from path
2026-05-27 12:12:11 -04:00
saltbo
f869eeb3e9
fix(s3): apply customHost to presigned upload, download, and inline URLs
2026-05-27 12:01:52 -04:00
saltbo
ef4a10577a
fix(archive): persist streaming task progress
2026-05-15 17:57:00 -04:00
saltbo
2438275ea8
feat(archive): queue streaming archive jobs
2026-05-15 09:59:08 -04:00
Jasper Van
8b45c6218a
fix: use better auth captcha providers ( #401 )
...
Agent-Profile: https://agent-kanban.dev/agents/a318237412dd8b98
2026-05-13 16:39:09 -04:00
Jasper Van
fdb61c2a14
feat: add captcha protection for authentication ( #400 )
...
* feat: add captcha protection for authentication
Agent-Profile: https://agent-kanban.dev/agents/a318237412dd8b98
* test: guard captcha option key literal
Agent-Profile: https://agent-kanban.dev/agents/a318237412dd8b98
* test: avoid captcha placeholder literal
Agent-Profile: https://agent-kanban.dev/agents/a318237412dd8b98
* fix: pin captcha secret option literal
Agent-Profile: https://agent-kanban.dev/agents/a318237412dd8b98
* fix: block oauth when captcha is enabled
Agent-Profile: https://agent-kanban.dev/agents/a318237412dd8b98
* test: cover captcha social pass-through
Agent-Profile: https://agent-kanban.dev/agents/a318237412dd8b98
* test: cover settings identity and registration saves
Agent-Profile: https://agent-kanban.dev/agents/a318237412dd8b98
2026-05-13 15:20:28 -04:00
saltbo
2b69a02c04
fix(webdav): speed up small fixed-length uploads
2026-05-13 00:26:15 -04:00
saltbo
8560b1b2ef
fix(webdav): support unknown length streaming PUT
2026-05-12 23:22:19 -04:00
saltbo
ea27161690
fix(webdav): unblock worker streaming transfers
2026-05-12 22:09:49 -04:00
saltbo
ba0f27eb77
fix(webdav): stream file transfers
2026-05-12 21:17:32 -04:00
Jasper Van
c218f90712
fix(webdav): make preview auth and locks D1-safe ( #399 )
...
Agent-Profile: https://agent-kanban.dev/agents/1dc839c09b5ee5e5
2026-05-12 12:28:53 -04:00
Jasper Van
e41ea3f016
feat(webdav): add RFC 4918 Class 2 support ( #398 )
...
* feat(webdav): add RFC 4918 class 2 support
Agent-Profile: https://agent-kanban.dev/agents/1dc839c09b5ee5e5
* test(webdav): cover RFC failure paths
Agent-Profile: https://agent-kanban.dev/agents/1dc839c09b5ee5e5
* fix(webdav): harden RFC lock and state semantics
Agent-Profile: https://agent-kanban.dev/agents/1dc839c09b5ee5e5
* fix(webdav): cover rejected RFC edge cases
Agent-Profile: https://agent-kanban.dev/agents/1dc839c09b5ee5e5
* test(webdav): cover precondition rejection paths
Agent-Profile: https://agent-kanban.dev/agents/1dc839c09b5ee5e5
* fix(webdav): close RFC lock compliance gaps
Agent-Profile: https://agent-kanban.dev/agents/1dc839c09b5ee5e5
* fix(webdav): close lock refresh scope gaps
Agent-Profile: https://agent-kanban.dev/agents/1dc839c09b5ee5e5
2026-05-12 11:38:29 -04:00
Jasper Van
9557f4da7c
feat: harden WebDAV client compatibility
...
Serve WebDAV file GETs directly from storage, add coherent validators/range support, expand PROPFIND properties, and honor Overwrite/precondition behavior for WebDAV operations.
Agent-Profile: https://agent-kanban.dev/agents/1dc839c09b5ee5e5
2026-05-11 23:21:11 -04:00
Jasper Van
85cd3994b3
feat: add user-bound WebDAV app passwords
2026-05-11 22:28:46 -04:00
Jasper Van
0694d5511a
feat: add local archive background jobs
2026-05-11 20:42:01 -04:00
Jasper Van
efb92397bf
feat: add WebDAV API-key protocol routes ( #390 )
...
* feat: add WebDAV API key routes
Agent-Profile: https://agent-kanban.dev/agents/1dc839c09b5ee5e5
* fix: route WebDAV preview requests to worker
Agent-Profile: https://agent-kanban.dev/agents/1dc839c09b5ee5e5
2026-05-11 19:32:29 -04:00
Jasper Van
2053b84c1a
feat: add background job foundation ( #388 )
...
* feat: add background job foundation
Agent-Profile: https://agent-kanban.dev/agents/1dc839c09b5ee5e5
* fix: normalize cloud gift card create responses
Agent-Profile: https://agent-kanban.dev/agents/1dc839c09b5ee5e5
2026-05-11 19:24:54 -04:00
saltbo
0de620d021
fix(cloud-store): align customer fields with cloud
2026-05-10 13:41:43 -04:00