Skip to content

Add toast notification infrastructure#20010

Open
carlos-zamora wants to merge 4 commits intomainfrom
dev/cazamor/toast/base
Open

Add toast notification infrastructure#20010
carlos-zamora wants to merge 4 commits intomainfrom
dev/cazamor/toast/base

Conversation

@carlos-zamora
Copy link
Member

@carlos-zamora carlos-zamora commented Mar 24, 2026

Summary of the Pull Request

Adds the infrastructure for toast notifications. Breakdown:

  • DesktopNotification:
    • DesktopNotificationArgs includes the struct to group all notification-related data together.
    • SendNotification() actually sends it
  • AppCommandlineArgs.cpp: added a check for the __fromToast no-op sentinel
  • Most of the other changes are just bubbling up the notification from the TerminalPaneContent to TerminalPage
  • TabManagement.cpp: _SendDesktopNotification() does the final packaging of the notification before calling the DesktopNotification API

This simply adds the infrastructure! Looks like nothing can actually take advantage of it yet

Heavily based on #19935
Co-authored by @zadjii-msft

@carlos-zamora
Copy link
Member Author

carlos-zamora commented Mar 24, 2026

Some minor changes from the PR this was based on:

  1. Rate-limit race condition: compare_exchange_strong return value is now used directly
  2. UI thread safety: SummonWindowRequested is now marshaled to UI thread via Dispatcher().RunAsync()
  3. moved some comments around
  4. use C++20 designated initializer (and add const)
  5. use ApplicationDisplayName() instead of RS_(NotificationTitle) for notification title

@github-actions

This comment has been minimized.

@carlos-zamora carlos-zamora force-pushed the dev/cazamor/toast/base branch from 4357c17 to aeb531f Compare March 25, 2026 17:29
## Summary of the Pull Request
Targets #20010 

Manually assign an AUMID to our process when we're running unpackaged.
Main difference from #19937 is what AUMID we use. Before, it was per
branding, but the `WindowEmperor` already appends an exe path hash for
unpackaged instances to prevent crosstalk. Here, we're just using the
same pattern: `Microsoft.WindowsTerminal.<hash>`.

Heavily based on #19937
Co-authored by @zadjii-msft
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant