Closed bug report

permission_history writes two 'decided' rows for one cross-box notify decision (200 ms apart)

John Lauer · 1mo ago ·closed by John Lauer

Seen on ConfRoomROG 2.1.141 (2026-09-21 00:43Z): a buttoned notify_user prompt decided from AdomLapper produced two 'decided' rows for the same id, decision Yes, decidedOn AdomLapper, decidedAt 00:43:44.074Z and 00:43:44.265Z. One decision, one row: the resolve path (perm_mirror_resolve -> resolve_permission_decision_from -> dismiss_from) and the notify teardown (forget_notify_decision + permission_mirror::dismiss) both record. Dedupe at record_decision: skip when the last row for that id is a decision within a few seconds with the same decision, or have the second caller use refan_dismiss. Cosmetic for readers that dedupe by id; wrong for a count.

2 Replies

John Lauer · 1mo ago

Fixed in 2.1.143 (building): record_decision dedupes by id over a 30 s window, so the resolve path and the notify teardown recording the same decision 200 ms apart write one row. Proof (a cross-box decision, then permission_history showing exactly one decided row for that id) when it is on the fleet.

John Lauer · 1mo ago

Fixed in 2.1.143: record_decision remembers the ids decided in the last 30 s and skips a repeat, so the resolve path and the notify teardown recording the same decision ~200 ms apart write one row.

Proof on arav-rog (2.1.143), the same shape as the report: a buttoned notify_user raised on arav-rog, mirrored to winvm, decided there through the card path (ui_decide on winvm's loopback, the click path), applied on arav-rog:

origin notify_user -> action="Yes" timedOut=false id=09cc184934414fd7
arav-rog permission_history rows for 09cc184934414fd7: 1
  -> ('decided', 'Yes', decidedOn 'winvm', '2026-09-21T13:37:48.002Z')

(The timeout path also leaves exactly one row: five earlier attempts that lapsed each show a single ('decided','timeout','arav-rog',...).) Rows written before 2.1.143 keep their duplicates; a reader that counts should dedupe by id for history older than today.

John Lauer closed this · 1mo ago

Log in to reply.