Commit Graph
1094 Commits
Author SHA1 Message Date
saltbo 76de9df314 docs(spec): cover WebDAV custom domain behavior 2026-07-20 13:03:44 -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 34a801c49b fix(stats): validate required rollup dimensions (#514)
* fix(stats): validate required rollup dimensions

* test(stats): cover dimension validation failure
2026-07-20 12:03:17 -04:00
Jasper Van a54b8634c6 fix(stats): populate share inventory base rows (#513) 2026-07-20 11:30:32 -04:00
Jasper Van 816f584e48 fix(stats): reject ranges without closed buckets (#512) 2026-07-20 11:15:42 -04:00
Jasper Van 53ef1664cb fix(stats): validate snapshot rollup markers by scope (#511) 2026-07-20 10:58:17 -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
saltbo 3dc4b170d6 fix(analytics): snapshot mutable report status 2026-07-19 15:17:41 -04:00
saltbo ca654b8d03 fix(analytics): rebuild complete historical counters 2026-07-19 14:57:52 -04:00
agent-kanban[bot]andRavi Shah f0292cc257 fix(events): allow org API keys to stream download tasks (#509)
* fix(events): authorize org API key task streams

Agent-Profile: https://agent-kanban.dev/agents/e0a1ce35687e48ef

* docs(events): complete verification checklist

Agent-Profile: https://agent-kanban.dev/agents/e0a1ce35687e48ef

---------

Co-authored-by: Ravi Shah <ravi-shah@mails.agent-kanban.dev>
2026-07-19 01:09:12 -04:00
saltbo 60f8f64481 refactor(analytics): enforce offline result boundaries
Build versioned UTC hourly rollups, validate analytics facts, and keep dashboard requests result-only with explicit coverage semantics.

Move derived metrics to the server and simplify the admin dashboard around one reconcilable UTC range without export.
2026-07-18 01:58:34 -04:00
Jasper Van 882f38e631 fix(downloads): harden active target folders (#507) 2026-07-17 23:44:17 -04:00
Jasper Van 15189c4107 fix(downloads): protect remote download target folders (#506)
* fix(downloads): protect remote download target folders

* test(downloads): cover target folder races
2026-07-17 23:18:22 -04:00
saltbo 06f0ca119e fix(analytics): include current hourly rollups 2026-07-10 17:33:29 -04:00
saltbo 659d772679 fix(analytics): rely exclusively on hourly rollups
Remove all raw-table fallback reads from dashboard statistics. Keep empty or missing rollups empty instead of silently scanning source tables.\n\nLimit hourly rollup inserts to nine rows so each D1 statement stays within the 100-parameter limit.
2026-07-10 17:23:52 -04:00
Jasper Van 8bd1e55b5c refactor(analytics): replace daily stats with hourly rollups (#505)
* refactor(analytics): replace daily stats with hourly rollups

* fix(analytics): merge hourly inventory sources

* test(analytics): cover rollup failure boundaries

* test(analytics): verify growth dashboard metrics

* test(analytics): cover historical rollup reads

* test(analytics): verify hourly dashboard dimensions

* test(analytics): cover remaining metric boundaries

* test(analytics): cover backfill SQL parsing
2026-07-10 13:26:27 -04:00
Jasper Van 175b210e10 fix: surface incomplete historical statistics (#503)
* fix: surface incomplete historical statistics

* test: add PR 503 preview evidence

* chore: remove preview evidence artifact

* test: align data quality notice assertion
2026-07-10 02:15:08 -04:00
Jasper Van 8a8fa3e9e1 fix: repair admin statistics integrity (#502)
* fix: repair admin statistics integrity

* test: add PR 502 preview evidence

* chore: remove preview evidence artifacts
2026-07-10 01:28:23 -04:00
saltbo 337db89a4a fix(admin): mount stats under site api group 2026-07-09 23:34:03 -04:00
saltbo b540956fb8 fix(admin): keep stats queries read-only 2026-07-09 23:34:03 -04:00
saltbo 8eb388ea01 fix(admin): align dashboard stats data sources 2026-07-09 23:34:03 -04:00
saltbo ab81f138bd fix(admin): harden dashboard stats ranges 2026-07-09 23:34:03 -04:00
saltbo 6376e2ae58 feat(admin): refine operations dashboard analytics 2026-07-09 23:34:03 -04:00
saltbo 981d751c3b Reapply "fix(admin): refine dashboard card styling"
This reverts commit 12209dde61.
2026-07-09 23:34:03 -04:00
saltbo e51e63a0e5 Revert "fix(admin): refine dashboard card styling"
This reverts commit 999ff59c64.
2026-07-09 23:34:03 -04:00
saltbo 62b52900a5 fix(admin): refine dashboard card styling 2026-07-09 23:34:03 -04:00
saltbo b7f7fa7ecd feat(admin): implement operations dashboard stats 2026-07-09 23:34:03 -04:00
saltbo 983a5540bd refactor(admin): focus overview on operations dashboard 2026-07-09 23:34:03 -04:00
saltbo 554c231536 feat(admin): redesign dashboard with pro analytics 2026-07-09 23:34:03 -04:00
saltbo a5cc581586 test(quotas): avoid session org recreation in no-org case 2026-07-09 23:16:53 -04:00
saltbo 77aa770ed5 fix(workspaces): standardize workspace names and slugs
Use metadata-aware personal workspace detection across org repositories and UI, generate personal/team slugs with the new default random rules, and remove user-managed team slug fields.

Encode WebDAV path segments consistently so Finder follows workspace names such as Ambor's Space via %27 instead of XML-escaped apostrophes.
2026-07-09 01:00:03 -04:00
saltbo 9c93b993e9 fix(webdav): improve Finder compatibility 2026-07-09 00:19:56 -04:00
saltbo ccdab7814d docs: update roadmap for analytics cli and sync 2026-07-08 23:24:31 -04:00
saltbo 10748cd018 chore(lsp): configure language server support 2026-07-05 00:48:20 -04:00
agent-kanban[bot]andMarina Zhou 556174f681 feat(admin): add team activity tab (#498)
Agent-Profile: https://agent-kanban.dev/agents/d6a28cf7-3f68-4659-abe1-8d880c0c7a4c

Co-authored-by: Marina Zhou <marina-zhou@mails.agent-kanban.dev>
2026-07-04 23:01:26 -04:00
agent-kanban[bot]andNoah Reed 7ccaba2f8b feat: refine admin audit filtering (#495)
* feat: refine admin audit filtering

Agent-Profile: https://agent-kanban.dev/agents/b0abe6cd7aeba133

* test: add audit filter spec scenarios

Agent-Profile: https://agent-kanban.dev/agents/b0abe6cd7aeba133

* chore: refresh openapi client

Agent-Profile: https://agent-kanban.dev/agents/b0abe6cd7aeba133

---------

Co-authored-by: Noah Reed <noah-reed@mails.agent-kanban.dev>
2026-07-04 10:21:45 -04:00
dependabot[bot] bc15bc3617 chore(deps): bump golang.org/x/net (#496)
Bumps the go_modules group with 1 update in the /cmd directory: [golang.org/x/net](https://github.com/golang/net).


Updates `golang.org/x/net` from 0.52.0 to 0.55.0
- [Commits](https://github.com/golang/net/compare/v0.52.0...v0.55.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-version: 0.55.0
  dependency-type: indirect
  dependency-group: go_modules
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-04 01:31:26 -04:00
agent-kanban[bot]andNoah Reed 02eda6dfec feat: add admin user activity feed (#493)
Closes #491

Agent-Profile: https://agent-kanban.dev/agents/b0abe6cd7aeba133

Co-authored-by: Noah Reed <noah-reed@mails.agent-kanban.dev>
2026-07-03 01:51:24 -04:00
Marina Zhou d7454a61fb fix(admin): keep user filter mounted during loading
Agent-Profile: https://agent-kanban.dev/agents/342b6de3-a2e2-44ff-8e5f-9fb378d368f2
2026-07-02 19:15:45 -04:00
agent-kanban[bot] a6ee3bc553 fix: preserve admin user search focus
Closes #485
2026-07-02 17:37:27 -04:00
Noah Reed 63ceeab678 fix: stabilize webdav traffic integration fixture
Agent-Profile: https://agent-kanban.dev/agents/b0abe6cd7aeba133
2026-07-02 02:54:40 -04:00
AncientTree 2608441fca Change deploy command to use 'pnpm run deploy'
部署命令失败

Signed-off-by: AncientTree <thexecutioner@163.com>
2026-07-02 00:52:59 -04:00
saltbo 964e25329e test(downloads): document task events scenario 2026-06-29 21:11:41 -04:00
saltbo 3695c80c2e feat(downloads): add task event timeline 2026-06-29 21:07:00 -04:00
saltbo 74c0d0cd75 fix(downloader): report aria2 metadata runtime 2026-06-29 20:19:46 -04:00
saltbo 979afd20e7 style(downloader): format client tests 2026-06-29 17:45:34 -04:00
saltbo 3fdc7b4ae0 refactor(downloader): reorganize cmd downloader runtime 2026-06-29 17:42:24 -04:00
saltbo 26b7a1d8a4 fix(downloader): preserve failed upload results for retry 2026-06-29 12:08:25 -04:00
saltbo 2c0cdd8a63 fix(downloader): prevent aria2 session auto-restore 2026-06-27 01:42:32 -04:00
saltbo 02fb68beea test(downloads): claim upload task via heartbeat 2026-06-27 01:25:23 -04:00