Files
DeepSeek-Reasonix/internal/event
esengine 45018f14d5 fix(notify): do not announce a replayed approval or question again
Problem: while an approval or ask card waited for input, Windows kept
raising "Approval needed" toasts, one about every minute (#9156).

Root cause: the desktop replays pending prompts whenever it reconciles a tab
(backend status sync, tab switch, navigation), and Controller replay emits
through the same notification-wrapped sink as the original request. Nothing
on the event said it was a replay, so the notify sink treated each one as a
new request for attention.

Fix: the controller, which is the only party that knows it is replaying,
marks the events emitPendingPrompts re-emits with event.Event.Replayed, and
notify sends nothing for a marked event. The sink keeps no state, so a
controller rebuilt behind the TUI's shared sink, whose prompt ids restart at
"1", still notifies its new prompts.

Test: TestReplayedPromptDoesNotNotifyAgain fails on origin/main-v2 with
"notifications for one approval replayed 3 times = 4, want 1";
TestRebuiltControllersSharingASinkEachNotify fails against an id-set dedupe
with "notifications for two controllers' approval 1 = 1, want 2". Both pass
after, with the existing replay tests and the notify and event suites.
2026-09-26 12:07:44 -07:00
..