jarvis
82f5988d56
fix(objects): load creator profiles on demand
...
Keep object list responses limited to recorded creator identities and resolve full profiles through the creator subresource. Normalize list avatar sizing and avoid retrying terminal creator lookup errors.
2026-08-16 21:06:09 -04:00
realmroot[bot]
10e16d14a2
fix(store): complete agent capacity purchase workflow ( #561 )
...
* fix(oauth): make token revocation idempotent
* fix(store): complete agent capacity purchase workflow
* fix(build): refresh patched dependency lock hash
* fix(oauth): hide inactive token state on revoke
---------
Co-authored-by: saltbo <saltbo@foxmail.com >
2026-08-12 02:26:35 +00:00
Jasper Van
fa19323eda
feat: attribute files and downloads to actors ( #559 )
...
* feat: attribute files and downloads to actors
* chore: refresh preview after staging migration
* fix: use a dash for missing actor identity
* fix: complete actor attribution and file creator UI
* fix: refine file creator identity UI
2026-08-08 11:04:16 -04:00
Jasper Van
1b7d8d55f5
fix(audit): resolve agent api key and device actors ( #557 )
...
* fix(audit): resolve agent api key and device actors
* fix(deps): address high severity advisories
* test(audit): cover actor identity boundaries
* fix(audit): support Cloudflare agent info fetches
* docs: add audit actor preview evidence
* docs: add api key audit preview evidence
2026-08-07 23:55:22 -04:00
Jasper Van
b92df828ab
ci: parallelize and isolate test suites ( #556 )
...
* ci: parallelize and isolate test suites
* ci: avoid unavailable Playwright video runtime
* ci: shard coverage and cache docker smoke
* ci: balance Playwright shards by test
* ci: smoke test the CLI container
* ci: enforce merged coverage thresholds
* ci: ratchet canonical coverage baseline
* ci: make coverage ratchet lossless
* ci: organize parallel gates by responsibility
* perf(ci): reduce total runner time
* perf(ci): balance runner cost and latency
* perf(ci): suppress passing test logs
* fix(test): make coverage sorting proof deterministic
* perf(docker): exclude test-only build inputs
* perf(ci): scope Docker smokes to packaging changes
* refactor(test): enforce fast test boundaries
* test: isolate coverage ownership
* perf(test): run backend projects concurrently
* perf(ci): separate test layers by runtime
* perf(test): separate integration boundaries
* perf(ci): prioritize test runners
* docs(ci): clarify package scheduling
* test: restore shared Cloudflare mocks
* fix(preview): isolate Cloudflare E2E build config
* fix(auth): bind preview sessions to request origin
* revert: remove ineffective preview auth workaround
* fix(auth): stop signing JWTs on session reads
2026-08-05 15:01:12 -04:00
saltbo
3064403c92
fix(ids): make normalization optional
...
Keep historical identifiers readable and addressable while generating all new entity IDs with Base62. Reject unsafe external ID references and preserve API keys and device codes during optional normalization.
2026-08-05 13:06:41 -04:00
Jasper Van
17db813d1c
feat(ids)!: normalize persistent identifiers to Base62 ( #554 )
...
* feat(ids)!: normalize persistent identifiers to Base62
BREAKING CHANGE: historical ZPan-owned IDs and public tokens require the one-time normalization migration; old public links and stored credentials are invalidated without runtime fallback.
* fix(ids): namespace public redirect tokens
Generate share tokens as s plus 11 Base62 characters and image tokens as i plus 11 Base62 characters. Dispatch /r by namespace prefix, reuse the single resolved record, and update migration validation, contracts, documentation, and tests.
* fix(ids): guard future object storage keys
* fix(ids): normalize historical references safely
2026-08-05 00:36:18 -04:00
Jasper Van
4ab0b0922a
fix(openapi): whitelist Better Auth downloader Device Flow ( #552 )
...
Publish only explicitly registered Better Auth operations in the ZPan product OpenAPI contract while preserving runtime auth routes and discovery.
2026-08-04 16:39:54 -04:00
saltbo
50a9895fcf
fix(auth): add request diagnostics and correlation
2026-08-04 12:18:52 -04:00
saltbo
0be5c1b7e9
feat(agent): support workspace-scoped resource access
2026-08-03 19:13:50 -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
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
Jasper Van
d15ca86226
fix(store): recover interrupted capacity purchases ( #548 )
...
* fix(store): recover interrupted capacity purchases
* test(store): cover inactive x402 receiver
2026-07-31 16:25:05 -04:00
saltbo
4027f0c7a6
fix(auth): trust official worker preview origins
2026-07-31 09:42:25 -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
954aae5f9e
test(auth): set OAuth issuer in CF fixtures
2026-07-30 10:53:52 -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
saltbo
09fc8de901
refactor(auth): model workspace binding explicitly
2026-07-30 00:07:15 -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]
00d298627c
feat: publish Restish OpenAPI security bindings ( #540 )
...
Agent-Profile: https://agent-kanban.dev/agents/1dc839c09b5ee5e5
Co-authored-by: Marina Zhou <marina-zhou@mails.agent-kanban.dev >
2026-07-29 14:26:37 -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]
bba443817a
fix: harden legacy downloader bootstrap ( #536 )
...
* fix: harden legacy downloader bootstrap
Agent-Profile: https://agent-kanban.dev/agents/f68cfbce6456edb5
* fix: cover downloader bootstrap hardening
Agent-Profile: https://agent-kanban.dev/agents/f68cfbce6456edb5
* fix: document downloader bootstrap auth policy
Agent-Profile: https://agent-kanban.dev/agents/f68cfbce6456edb5
---------
Co-authored-by: Ethan Cole <ethan-cole@mails.agent-kanban.dev >
2026-07-29 01:42:47 -04:00
agent-kanban[bot]
da286e9db3
feat: declare explicit route authorization policies ( #535 )
...
Agent-Profile: https://agent-kanban.dev/agents/1dc839c09b5ee5e5
Co-authored-by: Marina Zhou <marina-zhou@mails.agent-kanban.dev >
2026-07-29 00:30:22 -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
saltbo
808f8611e4
fix(events): rotate long-lived SSE connections
2026-07-28 10:53:21 -04:00
Jasper Van
20feaa6c91
fix(image-hosting): bypass auth on custom domains ( #532 )
...
* fix(image-hosting): bypass auth on custom domains
* test(image-hosting): cover traffic compensation
2026-07-28 10:03:47 -04:00
Jasper Van
faea00d025
feat(image-hosting): improve custom-domain image links ( #531 )
2026-07-28 02:38:03 -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
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
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
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
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