Jasper Van
1268d902dd
Merge commit from fork
2026-08-03 01:05:11 -04:00
Jasper Van
8513b18a8e
feat(oauth): expose workspace authorization catalog ( #551 )
...
* feat(oauth): expose workspace authorization catalog
* fix(oauth): verify catalog tokens against canonical audience
* fix(auth): normalize Workers preview requests
* Revert "fix(auth): normalize Workers preview requests"
This reverts commit 02009f098f .
* fix(oauth): refresh configured resource scopes
2026-08-02 21:00:20 -04:00
saltbo
bc4a71f691
fix(api-keys): restore legacy Better Auth keys
2026-08-02 15:08:51 -04:00
Jasper Van
2657f82ef1
feat(auth): add contextual OAuth workspace grants ( #550 )
...
* feat(auth): add contextual OAuth workspace grants
* fix(auth): register RFC 9396 detail types
* fix(openapi): restore delegated CLI auth profile
* fix(store): recover paid capacity fulfillment
* fix(auth): close OAuth contract gaps
* fix(store): resume verified x402 settlements
* chore(deps): update zpan cloud sdk to 2.5.2
* test(store): cover verified settlement recovery
* fix(auth): localize standard consent scopes
* fix(docker): include dependency patches before install
* fix(store): harden x402 purchase responses
* test(auth): cover OAuth authorization boundaries
* docs: add PR 550 verification screenshots
* chore: remove temporary verification screenshots
* docs(openapi): document exhausted capacity response
2026-08-02 13:33:15 -04:00
Jasper Van
1caa4e580c
refactor(oauth): replace agent access naming ( #549 )
2026-08-01 00:32:31 -04:00
saltbo
8402844b5e
feat(store): add agent x402 capacity purchases
2026-07-31 09:27:24 -04:00
saltbo
a968f85d7c
fix(auth): persist delegated agent identity
2026-07-30 20:19:33 -04:00
saltbo
e740529ced
docs(openapi): describe storage selection override
2026-07-30 16:17:23 -04:00
saltbo
d7ba55b9da
feat(auth): support external agent resources
...
Replace bundled agent profiles, API keys, plugin, and skill surfaces with dynamic OAuth client registration, delegated DPoP tokens, discoverable scopes, and Arazzo-backed direct upload workflows.
Refs realmroot/realmroot#115
2026-07-30 10:41:39 -04:00
Jasper Van
a890e7bba2
refactor(auth): unify route authorization around scopes ( #544 )
2026-07-29 23:26:07 -04:00
agent-kanban[bot]
360237d069
feat: add restish zpan upload plugin ( #542 )
...
* feat: add restish zpan upload plugin
Agent-Profile: https://agent-kanban.dev/agents/f68cfbce6456edb5
* fix: restore single upload resume for restish plugin
Agent-Profile: https://agent-kanban.dev/agents/f68cfbce6456edb5
* ci(release): publish restish-zpan plugin assets
* fix(restish-zpan): accept restish operation aliases
---------
Co-authored-by: Ethan Cole <ethan-cole@mails.agent-kanban.dev >
Co-authored-by: saltbo <saltbo@foxmail.com >
2026-07-29 16:55:52 -04:00
agent-kanban[bot]
88916f4f03
feat: add agent oauth consent management UI ( #541 )
...
* feat: add agent oauth consent management UI
Agent-Profile: https://agent-kanban.dev/agents/7b0ab18fa695f04a
* test: cover agent oauth consent edge paths
Agent-Profile: https://agent-kanban.dev/agents/7b0ab18fa695f04a
* fix: route agent oauth consent through rpc
Agent-Profile: https://agent-kanban.dev/agents/7b0ab18fa695f04a
* test: cover agent oauth consent rpc on workers
Agent-Profile: https://agent-kanban.dev/agents/7b0ab18fa695f04a
* test: cover agent oauth grant-use middleware
Agent-Profile: https://agent-kanban.dev/agents/7b0ab18fa695f04a
---------
Co-authored-by: Iris Tan <iris-tan@mails.agent-kanban.dev >
2026-07-29 16:52:17 -04:00
agent-kanban[bot]
d22227ed2f
feat: add delegated agent OAuth provider ( #539 )
...
* feat: add delegated agent oauth provider
Agent-Profile: https://agent-kanban.dev/agents/e0a1ce35687e48ef
* test(auth): cover delegated OAuth configuration
* fix(auth): route OAuth metadata through worker
* fix(auth): advertise canonical OAuth issuer
* test: cover agent oauth provider integration
Agent-Profile: https://agent-kanban.dev/agents/e0a1ce35687e48ef
* test(auth): cover managed OAuth consent flow
---------
Co-authored-by: Ravi Shah <ravi-shah@mails.agent-kanban.dev >
Co-authored-by: saltbo <saltbo@foxmail.com >
2026-07-29 13:26:44 -04:00
agent-kanban[bot]
f2aea1bedb
feat: stabilize multipart upload protocol ( #537 )
...
Preserve legacy upload clients while adding explicit resumable parts, safe completion recovery, idempotent cleanup, and downloader-bound authorization.
2026-07-29 10:37:31 -04:00
agent-kanban[bot]
1b1b1db772
feat: add workspace agent API keys ( #538 )
...
Enforce owner/admin management, terminal expired/revoked lifecycle, explicit workspace scopes, current membership rechecks, and authenticated management UI.
2026-07-29 10:08:44 -04:00
agent-kanban[bot]
4817afecdb
feat: migrate content APIs to unified authorization ( #534 )
...
Agent-Profile: https://agent-kanban.dev/agents/b0abe6cd7aeba133
Co-authored-by: Noah Reed <noah-reed@mails.agent-kanban.dev >
2026-07-29 02:11:08 -04:00
agent-kanban[bot]
038e23172b
feat: establish unified authorization kernel ( #533 )
...
* feat: establish unified authorization kernel
Agent-Profile: https://agent-kanban.dev/agents/e0a1ce35687e48ef
* docs(v2.9): sync confirmed agent access plan
---------
Co-authored-by: Ravi Shah <ravi-shah@mails.agent-kanban.dev >
Co-authored-by: saltbo <saltbo@foxmail.com >
2026-07-28 21:34:11 -04:00
saltbo
c66590a51b
feat(image-hosting): gate custom domains and support origins
2026-07-28 14:48:53 -04:00
Jasper Van
faea00d025
feat(image-hosting): improve custom-domain image links ( #531 )
2026-07-28 02:38:03 -04:00
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
321545dea1
perf(files): lazily load sidebar folder tree
2026-07-26 22:03:01 -04:00
saltbo
ae6417878b
perf(webdav): cache verified auth bursts
2026-07-26 14:34:29 -04:00
saltbo
3921d9c00d
perf(webdav): reduce hot-path database work
2026-07-26 13:51:02 -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
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
720f7c93aa
feat(storage): redesign backend management
2026-07-23 18:16:54 -04:00
saltbo
7bf5d2f587
feat(storage): link files to their locations
2026-07-23 15:02:15 -04:00
saltbo
77475d5ceb
feat(storage): add compact file cleanup dialog
2026-07-23 14:52:42 -04:00
saltbo
91720c76fd
feat(storage): add usage projection and management page
2026-07-23 13:36:18 -04:00
saltbo
387c731b3b
feat(api-keys): unify user ownership and workspace scopes
2026-07-23 01:41:41 -04:00
saltbo
eea3dafefa
fix(upload): sync stored content type after upload
2026-07-23 00:43:49 -04:00
saltbo
23f679d18c
feat(webdav): add admin service controls
2026-07-22 23:25:54 -04:00
saltbo
e55ee53496
refactor(stats): unify audit and fact pipelines
...
Centralize request audit recording, preserve immutable download-task history, and derive hourly statistics and backfills from the same authoritative sources. Add durable user registration facts so admin deletion no longer destroys signup history.
2026-07-21 23:02:52 -04:00
saltbo
14abbf2648
fix(admin): use live overview metrics
2026-07-21 12:39:12 -04:00
saltbo
40c5f10d48
feat(admin): show storage change trend
2026-07-21 12:04:42 -04:00
saltbo
b6cbc614b8
fix(admin): enforce exact analytics data sources
2026-07-21 02:38:54 -04:00
saltbo
3abf4f231e
fix(storage): preserve purge history and track usage deltas
...
Retain purged matter and image metadata while hiding tombstones from live reads. Record exact storage deltas and build hourly trends only after the opening balance.
2026-07-21 00:29:27 -04:00
saltbo
d9da5094bb
feat(admin): add live dashboard overview
2026-07-20 22:35:12 -04:00
saltbo
e761b6aec7
feat(webdav): verify derived domains before publishing
2026-07-20 18:54:12 -04:00
saltbo
7fe16f3ed7
refactor(site): replace options with structured config APIs
2026-07-20 15:17:48 -04:00
saltbo
0bf1f9e973
feat(webdav): derive fixed domain from public URL
2026-07-20 13:45:22 -04:00
saltbo
75d7b50538
feat(webdav): support optional custom domains
...
Serve canonical root-relative DAV URLs on a configured hostname while preserving the existing /dav mount. Reconcile Cloudflare rewrite rules and Worker custom domains during fork deployments, and expose the effective URL through site options.
2026-07-20 12:59:58 -04:00
Jasper Van
c85e60f200
fix(analytics): enforce trustworthy offline statistics ( #510 )
...
* fix(analytics): enforce trustworthy offline statistics
Separate immutable counters from point-in-time snapshots, expose incomplete coverage instead of synthetic zeroes, and keep browser analytics result-only.
Restore finite Free quota baselines, fail closed for invalid storage quota, reconcile traffic reports fairly, and add production-safe backfill and data-quality diagnostics.
* fix(analytics): preserve global backfill totals
Group generated hourly backfill rows by their projected values so SQLite cannot resolve output aliases to source organization columns and overwrite cross-organization totals.
2026-07-20 10:23:22 -04:00