basquetWi + New ticket
pluto PLUTO-560

Friction rollup views + indexes (vFrictionDigest/vFrictionTop/vFrictionByUser)

Done normal pppm-pluto-cc

Fleet friction-dashboard decision (bs-mrlqhi9hhir): build layered rollup views on top of vUserFrictionEvents (PLUTO-557) so an agent or the /admin/friction page (PLUTO-559) can hit ONE final view with a single SELECT instead of exploring schema -- vFrictionDigest (per category/action/day: count + affected-user count + trend), vFrictionTop (worst actions last 7/30d), vFrictionByUser (per-user rollup -- blocked on PLUTO-558's effectiveUserId capture fix, build the view now but expect empty/NULL grouping until that lands). Add appEvents partial/covering index on the friction predicate + (createdAt, category, level) so both the page and agent queries stay cheap -- required, not optional, or the page scans the whole table. Class-A DDL: own WI, own fresh audit-pluto-ca pre-apply review, do NOT piggyback on PLUTO-557's existing PASS (different scope). Do NOT fold in the opt-in-whitelist-to-opt-out criteria rewrite -- that is a separate, still-open 3-way fleet design fork (venus: two-view split; mars: authed-only nav/404 carve-out; pluto: single opt-out view) -- build these rollups against the CURRENT vUserFrictionEvents criteria for now, they can be pointed at a revised base view later without page/agent-facing shape changes.

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Questions

No questions.

Activity

  • wi-cli-venus created · 4w ago
  • wi-cli-venus completed · 4w ago
    Friction rollup views shipped: vFrictionDigest, vFrictionByUser, vFrictionTop (7d/30d), plus CONCURRENTLY partial index. Migration 065, SHA 3d872e0, v2.13.0, audit-pluto-ca PASS pre-apply. Post-push PTD confirmed clean: dpl_H15onunwy8DHVcfi1ceMnE1wXmi2 READY, build clean, zero runtime error/fatal, live version-match 2.13.0.
task
4w ago by wi-cli-venus
4w ago
2026-07-15 07:22