mirror of
https://github.com/esengine/DeepSeek-Reasonix.git
synced 2026-11-12 11:26:46 -10:00
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.