Originally created by: kristofferR
The Windows half of [#86] (Ref [#86]), completing the trilogy with Linux [#167] and macOS [#173] (Ref [#167], Ref [#173]). Depends on the Windows toast module issue (grouping/clear-on-read) landing first; reuses the platform-neutral reply machinery from [#167]/#173 (on_notification_reply, REPLY_IN_FLIGHT serialization, pending-ack map, carrier:reply-result, page-side quick-reply.ts) — whichever lands first ships it.
Design
!hide_notification_preview && validated_thread_path(...).is_some(). Eligible → toast XML gains <input id="reply" type="text" placeHolderContent="Message…"/>, <action content="Reply" arguments="action=reply&id=<hex>" hint-inputId="reply" activationType="background"/>, <action content="Open" arguments="action=open&id=<hex>" activationType="foreground"/>. Ineligible → no actions at all (no blind reply on redacted banners). Sync alerts never.Activated handler branches on parsed launch args. reply → cast to IToastActivatedEventArgs2, UserInput().Lookup("reply") → string, trim + cap ~2000 chars (empty → plain click), hand to the shared on_notification_reply — which evals __carrierQuickReply without raising the window, waits ≤20 s for the ack, and on failure does show_main + __carrierOpenThread + one fixed "Reply not sent — opening the conversation" toast. A successful reply ack also calls clear_thread_group (same symmetry as [#174]).activationType="background" still fires the in-process Activated event for a shortcut-registered (non-COM) AUMID on Win10 and Win11; if not, fall back to foreground and accept the app coming forward on reply — document which won.Testing. Unit: eligibility matrix, reply-text sanitation, activation-args parsing (shared with the module issue). Manual: reply from the banner and from Action Center with the window hidden to tray (message sends, window stays hidden); hide-preview on → no input field; failure path preserves text in the composer; two threads replied in quick succession route independently; reply to a toast after the banner timed out.
Part of [#187].
Tickets: #167
Tickets: #173
Tickets: #174
Tickets: #187
Tickets: #233
Tickets: #86
Originally posted by: kristofferR
Implemented in PR [#233] and manually verified on Windows 11 during PR [#247]. Reply and Open actions work from Action Center, successful replies clear the conversation group, and the failure path opens the conversation safely. Closing as complete.
Related
Tickets:
#233Tickets:
#247Ticket changed by: kristofferR