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
saltbo
461becc3d3
fix(oauth): synchronize Realmroot client scopes
2026-08-02 17:15:17 -04:00
Jasper Van
1caa4e580c
refactor(oauth): replace agent access naming ( #549 )
2026-08-01 00:32:31 -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
agent-kanban[bot] and Noah Reed
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
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
720f7c93aa
feat(storage): redesign backend management
2026-07-23 18:16:54 -04:00
saltbo
91720c76fd
feat(storage): add usage projection and management page
2026-07-23 13:36:18 -04:00
saltbo
ea26ff0c83
fix(stats): honor traffic ledger history
2026-07-22 12:24:45 -04:00
saltbo
1b82630786
fix(stats): show exact boundary-day data
2026-07-22 11:08:36 -04:00
saltbo
5acbd7e1f8
fix(stats): backfill registration source rollups
2026-07-22 10:40:18 -04:00
saltbo
e4750f84ce
fix(stats): recover activity from authentication sessions
2026-07-22 10:14:52 -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
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
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
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
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
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
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