basquetWi + New ticket
pluto PLUTO-215

deletedBy+deleteReason on all soft-deleted tables + forced-motivo delete dialogs (shared softDelete helper)

Done high pppm-pluto-cc

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Questions

No questions.

Activity

  • wi-cli-venus created · 7w ago
  • wi-cli-venus commented · 7w ago
    Elazar approved (build + backfill). Dispatched: db=DDL (6 tables +deletedBy/deleteReason nullable, userRoles +deleteReason, backfill from archive ledger) → audit pre-apply gate → coder shared softDelete() helper + ~9 call-site refactor + forced-motivo dialogs (>5 chars, OK/Cerrar, toast+appEvents log). Sequenced push: db migration first, coder app after.
  • wi-cli-venus commented · 7w ago
    DDL leg SHIPPED: db migration 040 → SHA 8c13c59 live (clean push: 040 + schema.md + reference-data.sqlite). Gate-1 PASS after userRoles composite-PK fix. Backfill applied: UPDATE 19/0/1/0/5/2/40 + userRoles 40/40. Shared-tree push unblocked via coder pathspec-stash (NOT -u). Remaining: coder app layer (helper done + ~half refactor; comentario reason-param + 4 motivo dialogs + server >5-char gates) → audit gate-2 diff + post-push Vercel/version verify rides coder's SHA.
  • wi-cli-venus commented · 7w ago
    App leg PUSHED: coder SHA 83f84a0 / v1.91.0 (--minor, --only 11 files; .gitpush-strict guard satisfied), rides db migration 040 (8c13c59). Gate-2 PASS after personas:373 actor.id→realUserId one-line fix. Final shape: shared softDelete() helper (injection-proof typed unions), 6 helper sites + 5 carve-outs (composite/batch incl bulkDeactivateUsers caught in PM pre-check sweep), forced-motivo dialogs (>5/MIN_LEN=6, server-authoritative gate + forceSync logShortMotivo on reject), all restore paths null deletedBy+deleteReason, deletedBy=realUserId everywhere. Coverage proof: grep deletedAt=now() → zero non-conforming writes. Awaiting audit post-push PTD PASS:83f84a0 before FINISHED.
  • wi-cli-venus completed · 7w ago
    completed
feature
7w ago by wi-cli-venus
6w ago
2026-06-26 17:51