Jasper Van
6ad1563acc
feat(image-hosting): automate Cloudflare domain setup ( #530 )
2026-07-28 01:03:56 -04:00
Jasper Van
1d58d5b80d
feat(image-hosting): add configurable custom domain providers ( #529 )
...
* feat(image-hosting): add custom domain providers
* test(image-hosting): cover custom domain provider flows
2026-07-27 22:52:18 -04:00
Jasper Van
b2859ec944
refactor(storage): remove legacy custom host downloads ( #528 )
...
* refactor(storage): remove custom host downloads
* test(download): cover private signed URLs end to end
2026-07-27 20:00:43 -04:00
Jasper Van
ece5f413be
fix(download): force browser-downloadable files to save ( #527 )
...
* fix(download): force browser-downloadable files to save
* fix(storage): require signed upload CORS headers
* fix(storage): keep upload metadata out of signatures
* fix(storage): sign bare upload commands
* revert: keep upload metadata in signed commands
2026-07-27 18:47:52 -04:00
Jasper Van
a5c281b26a
refactor(api)!: make site routes RESTful ( #526 )
...
Move site configuration under settings, model analytics and licensing as resources, and isolate scheduler runs under the internal API.
BREAKING CHANGE: site email, branding, analytics, licensing, WebDAV verification, and scheduler endpoint paths have changed.
Refs #451
2026-07-27 15:22:28 -04:00
Jasper Van
5473db9be1
fix(downloads): separate list data from task details ( #525 )
...
* fix(downloads): separate list items from task details
* fix(downloads): scope task list to downloader
* fix(downloads): stabilize table data
2026-07-27 10:22:47 -04:00
Jasper Van
ad0f21bb39
fix: unify list pagination and realtime updates ( #524 )
...
* fix!: unify pagination and realtime change delivery
Replace offset paging on affected unbounded collections with signed keyset tokens and infinite loading. Persist scoped resource changes so one global SSE connection can resume and invalidate query caches safely.
BREAKING CHANGE: migrated list APIs now accept pageToken and return nextPageToken instead of page and total fields.
Refs #450
* fix: keep page tokens at the HTTP boundary
Move signed page-token handling out of the pure domain layer so dependency-cruiser architecture checks pass without changing behavior.
* fix: route background job stats through usecase
Keep the HTTP boundary from reaching directly into repository ports and cover the new usecase wrapper.
* fix: align clients and checks with cursor pagination
* refactor: unify pagination boundaries and infinite loading
2026-07-27 02:02:53 -04:00
saltbo
5c3d5a71a5
chore(openapi): regenerate object list model
2026-07-26 22:09:07 -04:00
saltbo
7957295ac9
test(objects): remove invalid spec breadcrumbs
2026-07-26 22:05:32 -04:00
saltbo
321545dea1
perf(files): lazily load sidebar folder tree
2026-07-26 22:03:01 -04:00
saltbo
a41d31a974
perf(webdav): reuse directory snapshots
2026-07-26 19:13:56 -04:00
saltbo
7fa8b0c277
perf(reads): collapse database round trips
2026-07-26 18:42:50 -04:00
saltbo
9b402c5413
fix(webdav): preserve single-query cold resolution
2026-07-26 17:38:16 -04:00
saltbo
ed94193e2f
perf(webdav): coalesce workspace route lookups
2026-07-26 17:34:40 -04:00
saltbo
c0b979c750
perf(downloads): collapse metering writes
2026-07-26 17:30:46 -04:00
saltbo
b719974ecc
chore(webdav): trace download latency phases
2026-07-26 17:25:07 -04:00
saltbo
a6a9b1ea0e
fix(auth): keep API key writes out of Workers KV
2026-07-26 17:18:15 -04:00
saltbo
318ed5eae2
perf(webdav): reuse resolved matter for uploads
2026-07-26 17:13:00 -04:00
saltbo
ca000a415d
perf(webdav): collapse metadata write round trips
2026-07-26 17:06:28 -04:00
saltbo
076b74a29b
perf(webdav): parallelize API key identity checks
2026-07-26 16:56:00 -04:00
saltbo
7c16915de0
perf(webdav): collapse repeated path lookups
2026-07-26 16:51:06 -04:00
saltbo
05f41ef606
perf(auth): use Better Auth API key storage
2026-07-26 16:03:56 -04:00
saltbo
e7e7c4481b
perf(auth): use Better Auth hot-path features
2026-07-26 15:55:44 -04:00
saltbo
67623d0238
perf(http): bypass image domains for app routes
2026-07-26 14:38:01 -04:00
saltbo
ae6417878b
perf(webdav): cache verified auth bursts
2026-07-26 14:34:29 -04:00
saltbo
f9c15a0858
fix(deploy): build worker before upload
2026-07-26 14:26:33 -04:00
saltbo
c1a1aa9a3e
perf(webdav): skip unused PROPFIND state queries
2026-07-26 14:24:57 -04:00
saltbo
d8222ec757
perf(cache): add multi-runtime layered caching
2026-07-26 14:15:17 -04:00
saltbo
3921d9c00d
perf(webdav): reduce hot-path database work
2026-07-26 13:51:02 -04:00
saltbo
1a61b6d9e2
fix(downloader): serialize attempt ledger updates
2026-07-26 10:39:27 -04:00
saltbo
5f4f8979b2
chore(release): v2.8.1
v2.8.1
2026-07-24 17:18:51 -04:00
saltbo
07fb7c3a50
perf(database): reduce D1 write amplification
2026-07-24 15:15:03 -04:00
saltbo
ef78e20261
docs(changelog): add v2.7.4 and v2.8.0 release notes
2026-07-24 14:54:59 -04:00
saltbo
ae9273ce01
feat(auth): remember last login method
v2.8.0
2026-07-24 12:33:36 -04:00
saltbo
5d0215d66d
chore(release): v2.8.0
2026-07-24 12:22:25 -04:00
saltbo
4ec1fb5785
fix(downloader): restore idle heartbeat interval
2026-07-24 11:49:51 -04:00
saltbo
b8041c021c
fix(analytics): make pie chart legend scrollable
2026-07-24 11:32:59 -04:00
saltbo
8924660339
fix(downloads): preserve integer event fields in D1
2026-07-24 11:06:41 -04:00
Jasper Van
d6d811f41c
feat(public): redesign profile and share pages ( #522 )
...
* feat(public): redesign profile and share pages
* fix(openapi): regenerate Go client
* test(share): cover README validation boundaries
2026-07-24 08:35:05 -04:00
saltbo
0550e41868
feat(shares)!: make landing shares public by default
...
Replace opt-in profile listings with an opt-out private flag and a unified privacy endpoint.
BREAKING CHANGE: showOnProfile, listedAt, and the profile-listing endpoints are replaced by private and PUT /api/shares/:token/privacy.
2026-07-24 01:07:01 -04:00
saltbo
10602e5a50
chore(branding): remove deprecated SVG assets
2026-07-24 00:48:50 -04:00
agent-kanban[bot]
526d237a4e
feat: connect curated shares to public profiles ( #519 )
...
* feat: connect curated shares to public profiles
Agent-Profile: https://agent-kanban.dev/agents/1dc839c09b5ee5e5
* chore: retry CI after tunnel failure
Agent-Profile: https://agent-kanban.dev/agents/1dc839c09b5ee5e5
---------
Co-authored-by: Marina Zhou <marina-zhou@mails.agent-kanban.dev >
2026-07-24 00:39:25 -04:00
saltbo
9ccea6c846
fix(e2e): redeem credits from workspace billing
2026-07-23 20:21:03 -04:00
saltbo
2123810e26
fix(e2e): configure public tunnel origin
2026-07-23 19:53:21 -04:00
saltbo
948b628449
fix(e2e): unbind cloud license bindings
2026-07-23 19:26:55 -04:00
saltbo
5611d82420
test(e2e): wait for cloud license cleanup
2026-07-23 19:10:37 -04:00
dependabot[bot]
46f802a8e2
chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates ( #516 )
...
Bumps the npm_and_yarn group with 2 updates in the / directory: [@hono/node-server](https://github.com/honojs/node-server ) and [hono](https://github.com/honojs/hono ).
Updates `@hono/node-server` from 1.19.13 to 2.0.10
- [Release notes](https://github.com/honojs/node-server/releases )
- [Commits](https://github.com/honojs/node-server/compare/v1.19.13...v2.0.10 )
Updates `hono` from 4.12.25 to 4.12.27
- [Release notes](https://github.com/honojs/hono/releases )
- [Commits](https://github.com/honojs/hono/compare/v4.12.25...v4.12.27 )
---
updated-dependencies:
- dependency-name: "@hono/node-server"
dependency-version: 2.0.10
dependency-type: direct:production
dependency-group: npm_and_yarn
- dependency-name: hono
dependency-version: 4.12.27
dependency-type: direct:production
dependency-group: npm_and_yarn
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: agent-kanban[bot] <295243365+agent-kanban[bot]@users.noreply.github.com>
2026-07-23 19:06:36 -04:00
saltbo
10b6883061
feat(profile): add public profile menu link
2026-07-23 19:03:56 -04:00
saltbo
83c635c791
fix(e2e): seed enabled storage semantics
2026-07-23 18:55:33 -04:00
saltbo
2c1d797df8
fix(e2e): update storage with PATCH
2026-07-23 18:36:54 -04:00