saltbo
42e2a9b707
fix(stats): show exact partial-day snapshots
2026-07-22 01:18:24 -04:00
saltbo
e79e03d8fa
fix(stats): preserve missing data in dashboard charts
2026-07-22 00:45:17 -04:00
saltbo
498ce73261
fix(stats): split D1 counter queries within limits
2026-07-21 23:56:45 -04:00
saltbo
9e028f860e
fix(stats): make D1 backfill exact and bounded
2026-07-21 23:37:24 -04:00
saltbo
f6b89e3539
test(users): trace admin deletion scenario
2026-07-21 23:12:48 -04:00
saltbo
ff78a33464
fix(audit): enforce HTTP usecase boundary
...
Move transfer audit persistence and redirect audit target resolution behind usecase functions so HTTP handlers pass dependencies whole and satisfy the architectural boundary.
2026-07-21 23:09:39 -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
52c69defd7
fix(admin): count recent users from live data
2026-07-21 12:22:43 -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
8cd151c798
chore(openapi): refresh generated Go client
2026-07-20 13:09:37 -04:00
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] and Ravi 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