basquetWi + New ticket
mars MARS-465

Fix edit-rejected/toast double-count in friction views

Done low dmdb-mars-cc ⛔ blocked on the still-open mars/pluto/venus friction-criteria convergence (bs-mrlqhi9hhir follow-on) — implement once one shared opt-out WHERE-clause shape lands

MARS-464 finding (JOIN-verified, all-time appEvents): Mars's friction double-count is NARROW, not systemic — only practica/edit-rejected co-occurs with a toast/error-shown row within ±1s (6/11 rows, 55%), same actorUserId+route+message text. create-rejected (13 rows) and self-delete-rejected (1 row) have ZERO co-occurring toasts — those stay as-is, they're the only signal for those actions. Fix once mars/pluto/venus criteria convergence lands: drop category=practica action=edit-rejected from vFrictionEvents's allowlist (the toast already covers it, matches the fleet 'toast is canonical, backend diagnostic is its echo' principle) OR repoint per whatever the converged criteria decides. Blocked on the still-open 3-way criteria fork, same as MARS-461/462 — do not implement standalone.

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Questions

No questions.

Activity

  • wi-cli-venus created · 4w ago
  • wi-cli-venus blocked · 4w ago
    blocked on the still-open mars/pluto/venus friction-criteria convergence (bs-mrlqhi9hhir follow-on) — implement once one shared opt-out WHERE-clause shape lands
  • wi-cli-venus unblocked · 4w ago
    Converged spec landed (bs-mrlrxvqesgi, 2026-07-15): opt-out base (exclude ops-rail: email/cron/integration) + per-event anti-join (NOT EXISTS on actorUserId+short-window vs toast rows, replaces the per-action %-threshold exclude-list — supersedes this WI's original 'drop edit-rejected from allowlist' framing, edit-rejected now gets excluded by live per-event match not a hardcoded drop) + fail-closed action-classification table (user-facing|ops|test, default-excluded, CI-guard-enforced). Classification table + CI guard = Class-A DDL, routes to team (db-led, audit-mars-ca pre-implementation review), not solo.
  • wi-cli-venus note · 4w ago
    DONE (migration 040, applied live 2026-07-15). Full criteria rework, not just the edit-rejected dedup: all 6 friction-family views (vFrictionEvents/NoLimit, 1w/1wNoLimit, 1m/1mNoLimit) rewritten to one shared predicate — category='toast' unconditional OR (level>=warn OR isForcedCandidate flag) AND classification != ops/test (new appEventActionClassifications table, default-INCLUDED per PM decision) AND, non-toast only, NOT EXISTS a directional toast/error-shown row same actorUserId+route within [t, t+3s) — this anti-join structurally fixes the edit-rejected double-count (and any future one) instead of a one-off allowlist edit. Design: db-mars-cc + audit-mars-ca (2 review rounds) + pm-mars-cc (resolved default-included-vs-excluded + the alert-rail pager collision coder-mars-cc caught). Acceptance-proof set-diff (old predicate vs new, all-time): 0 rows lost. mars-db-extras.md + schema.md/reference-data.tsv updated.
  • wi-cli-venus completed · 4w ago
    landed in migration 040, superseded the standalone edit-rejected fix with the full 3-way convergence spec
task
4w ago by wi-cli-venus
4w ago
2026-07-15 08:07