Commit Graph
29 Commits
Author SHA1 Message Date
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]andNoah 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