Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DefTerm handoff does not work in NON glomming mode #12267

Closed
DHowett opened this issue Jan 26, 2022 · 2 comments · Fixed by #12272
Closed

DefTerm handoff does not work in NON glomming mode #12267

DHowett opened this issue Jan 26, 2022 · 2 comments · Fixed by #12272
Assignees
Labels
Area-DefApp Issue-Bug It either shouldn't be doing this or needs an investigation. Priority-0 Bugs that we consider release-blocking/recall-class (P0) Product-Terminal The new Windows Terminal. Resolution-Fix-Committed Fix is checked in, but it might be 3-4 weeks until a release.

Comments

@DHowett
Copy link
Member

DHowett commented Jan 26, 2022

Windows Terminal version

1.13.10251.0

Windows build number

No response

Other Software

No response

Steps to reproduce

No glomming. Hand off.

Expected Behavior

No response

Actual Behavior

No hand off

@DHowett DHowett added the Priority-0 Bugs that we consider release-blocking/recall-class (P0) label Jan 26, 2022
@DHowett DHowett added this to the Terminal v1.13 milestone Jan 26, 2022
@ghost ghost added Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting Needs-Tag-Fix Doesn't match tag requirements labels Jan 26, 2022
@DHowett DHowett added Area-DefApp Issue-Bug It either shouldn't be doing this or needs an investigation. Product-Terminal The new Windows Terminal. labels Jan 26, 2022
@ghost ghost removed the Needs-Tag-Fix Doesn't match tag requirements label Jan 26, 2022
@DHowett DHowett removed the Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting label Jan 26, 2022
@zadjii-msft
Copy link
Member

Stashing this in case the debugger goes away

Details
Break-in sent, waiting 30 seconds...
WARNING: Break-in timed out, suspending.
         This is usually caused by another thread holding the loader lock
(5514c.46d64): Wake debugger - code 80000007 (first chance)
*** WARNING: Unable to verify checksum for D:\dev\private\OpenConsole\src\cascadia\CascadiaPackage\bin\x64\Debug\AppX\TerminalApp.dll
KERNELBASE!wil::details::DebugBreak+0x3:
00007ffa`df174df3 c3              ret
0:000> p
Due to the break-in timeout the debugger cannot step or trace
       ^ Operation not supported in current debug session 'p'
0:000> p
Due to the break-in timeout the debugger cannot step or trace
       ^ Operation not supported in current debug session 'p'
0:000> g
(5514c.bab58): Break instruction exception - code 80000003 (first chance)
ntdll!DbgBreakPoint:
00007ffa`e1666610 cc              int     3
0:029> g
onecore\com\combase\dcomrem\channelb.cxx(6780)\combase.dll!00007FFAE071D9D7: (caller: 00007FFAE071C5ED) LogHr(16) tid(435f8) 80004021 The operation attempted is not supported.
onecore\com\combase\catalog\services.cxx(2622)\combase.dll!00007FFAE06E3671: (caller: 00007FFAE06E33C2) ReturnHr(3) tid(46d64) 80070490 Element not found.
    Msg:[Package WindowsTerminalDev_0.0.1.0_x64__8wekyb3d8bbwe is not singleton or system registered] 
onecore\com\combase\catalog\services.cxx(2622)\combase.dll!00007FFAE06E3671: (caller: 00007FFAE06E33C2) ReturnHr(4) tid(46d64) 80070490 Element not found.
    Msg:[Package WindowsTerminalDev_0.0.1.0_x64__8wekyb3d8bbwe is not singleton or system registered] 
D:\dev\private\OpenConsole\src\cascadia\TerminalApp\AppLogic.cpp(551)\TerminalApp.dll!00007FFA351A894F: (caller: 00007FFA35139C1F) LogHr(2) tid(46d64) 80070424 The specified service does not exist as an installed service.
    [winrt::TerminalApp::implementation::AppLogic::_IsKeyboardServiceEnabled(!hService.is_valid())]
ModLoad: 00007ffa`d3330000 00007ffa`d33d2000   C:\WINDOWS\SYSTEM32\policymanager.dll
ModLoad: 00007ffa`d3290000 00007ffa`d3323000   C:\WINDOWS\SYSTEM32\msvcp110_win.dll
ModLoad: 00007ffa`908a0000 00007ffa`90a55000   C:\Windows\System32\TaskFlowDataEngine.dll
(5514c.76c0): Break instruction exception - code 80000003 (first chance)
ntdll!DbgBreakPoint:
00007ffa`e1666610 cc              int     3
0:000> ~*k

.  0  Id: 5514c.46d64 Suspend: 1 Teb: 00000052`279c7000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 00000052`27afdb28 00007ffa`e15d95ed     ntdll!ZwWaitForAlertByThreadId+0x14 [minkernel\ntdll\daytona\objfre\amd64\usrstubs.asm @ 4051] 
01 (Inline Function) --------`--------     ntdll!RtlpWaitOnAddressWithTimeout+0x41 [minkernel\ntos\rtl\waitaddr.c @ 851] 
02 (Inline Function) --------`--------     ntdll!RtlpWaitOnAddress+0xdc [minkernel\ntos\rtl\waitaddr.c @ 1094] 
03 00000052`27afdb30 00007ffa`e15d9f38     ntdll!RtlpWaitOnCriticalSection+0x1cd [minkernel\ntos\rtl\resource.c @ 1604] 
04 00000052`27afdc40 00007ffa`e15d9d82     ntdll!RtlpEnterCriticalSectionContended+0x1a8 [minkernel\ntos\rtl\resource.c @ 2317] 
05 00000052`27afdca0 00007ffa`db89aa34     ntdll!RtlEnterCriticalSection+0x42 [minkernel\ntos\rtl\resource.c @ 1923] 
06 00000052`27afdcd0 00007ffa`db1c6880     CoreMessaging!CoreUICallSend+0xad94
07 00000052`27afdd60 00007ffa`db1c5e80     dcomp!DCompositionCreateDevice3+0x135f0
08 00000052`27afdda0 00007ffa`aea34dcc     dcomp!DCompositionCreateDevice3+0x12bf0
09 00000052`27afde30 00007ffa`aea34ce9     Windows_UI_Xaml!DllCanUnloadNow+0x1a2ac
0a 00000052`27afdec0 00007ffa`aea34c94     Windows_UI_Xaml!DllCanUnloadNow+0x1a1c9
0b 00000052`27afdef0 00007ffa`aea34a46     Windows_UI_Xaml!DllCanUnloadNow+0x1a174
0c 00000052`27afdf30 00007ffa`aea5014d     Windows_UI_Xaml!DllCanUnloadNow+0x19f26
0d 00000052`27afdf80 00007ffa`aea50996     Windows_UI_Xaml!DllCanUnloadNow+0x3562d
0e 00000052`27afe150 00007ffa`aea4e814     Windows_UI_Xaml!DllCanUnloadNow+0x35e76
0f 00000052`27afe270 00007ffa`aea4dc48     Windows_UI_Xaml!DllCanUnloadNow+0x33cf4
10 00000052`27afe5d0 00007ffa`aea527c5     Windows_UI_Xaml!DllCanUnloadNow+0x33128
11 00000052`27afe6e0 00007ffa`aeb56ecf     Windows_UI_Xaml!DllCanUnloadNow+0x37ca5
12 00000052`27afe9c0 00007ffa`ae85d3d9     Windows_UI_Xaml!DllMain+0x6a8cf
13 00000052`27afea20 00007ffa`aea3f1aa     Windows_UI_Xaml!GetErrorContextIndex+0xd8949
14 00000052`27afead0 00007ffa`aea2c6d7     Windows_UI_Xaml!DllCanUnloadNow+0x2468a
15 00000052`27afebf0 00007ffa`aea2c571     Windows_UI_Xaml!DllCanUnloadNow+0x11bb7
16 00000052`27afec50 00007ffa`aea2c492     Windows_UI_Xaml!DllCanUnloadNow+0x11a51
17 00000052`27afec90 00007ffa`ae90fa01     Windows_UI_Xaml!DllCanUnloadNow+0x11972
18 00000052`27afecf0 00007ffa`ae90f8e3     Windows_UI_Xaml!DllGetActivationFactory+0xe51
19 00000052`27afed30 00007ffa`ae90ef64     Windows_UI_Xaml!DllGetActivationFactory+0xd33
1a 00000052`27afed60 00007ffa`ae90ede0     Windows_UI_Xaml!DllGetActivationFactory+0x3b4
1b 00000052`27afeda0 00007ffa`ae93083a     Windows_UI_Xaml!DllGetActivationFactory+0x230
1c 00000052`27afee10 00007ffa`ae93075c     Windows_UI_Xaml!DllGetActivationFactory+0x21c8a
1d 00000052`27afee50 00007ffa`db894a90     Windows_UI_Xaml!DllGetActivationFactory+0x21bac
1e 00000052`27afee80 00007ffa`db8949e1     CoreMessaging!CoreUICallSend+0x4df0
1f 00000052`27afeeb0 00007ffa`db875599     CoreMessaging!CoreUICallSend+0x4d41
20 00000052`27afef00 00007ffa`db8c52c5     CoreMessaging!CoreUICallReceive+0xbce9
21 00000052`27afef60 00007ffa`db87c1dd     CoreMessaging!SvchostPushServiceGlobals+0x82b5
22 00000052`27afefd0 00007ffa`db87aece     CoreMessaging!CoreUICallReceive+0x1292d
23 00000052`27aff080 00007ffa`db87abd3     CoreMessaging!CoreUICallReceive+0x1161e
24 00000052`27aff120 00007ffa`db8ccc39     CoreMessaging!CoreUICallReceive+0x11323
25 00000052`27aff160 00007ffa`db89e861     CoreMessaging!SvchostPushServiceGlobals+0xfc29
26 00000052`27aff1a0 00007ffa`e13eaa53     CoreMessaging!CoreUICallSend+0xebc1
27 00000052`27aff210 00007ffa`e13ea41c     user32!CallWindowProcW+0x5c3
28 00000052`27aff370 00007ffa`e13f7d3a     user32!SendMessageW+0xbcc
29 00000052`27aff3d0 00007ffa`e1666964     user32!FillRect+0xba
2a 00000052`27aff430 00007ffa`dee81534     ntdll!KiUserCallbackDispatcherContinue [minkernel\ntos\rtl\amd64\trampoln.asm @ 607] 
2b 00000052`27aff4b8 00007ffa`e13f781e     win32u!ZwUserGetMessage+0x14 [onecoreuap\windows\core\umode\moderncore\objfre\amd64\usrstubs.asm @ 189] 
2c 00000052`27aff4c0 00007ff7`9629cf12     user32!GetMessageW+0x2e
2d 00000052`27aff520 00007ff7`963e34a2     WindowsTerminal!wWinMain+0x152 [D:\dev\private\OpenConsole\src\cascadia\WindowsTerminal\main.cpp @ 155] 
2e 00000052`27aff700 00007ff7`963e334e     WindowsTerminal!invoke_main+0x32 [d:\a01\_work\14\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 123] 
2f 00000052`27aff740 00007ff7`963e320e     WindowsTerminal!__scrt_common_main_seh+0x12e [d:\a01\_work\14\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 288] 
30 00000052`27aff7b0 00007ff7`963e353e     WindowsTerminal!__scrt_common_main+0xe [d:\a01\_work\14\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 331] 
31 00000052`27aff7e0 00007ffa`e0b41350     WindowsTerminal!wWinMainCRTStartup+0xe [d:\a01\_work\14\s\src\vctools\crt\vcstartup\src\startup\exe_wwinmain.cpp @ 17] 
32 00000052`27aff810 00007ffa`e1611e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
33 00000052`27aff840 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 

   1  Id: 5514c.70844 Suspend: 1 Teb: 00000052`279c9000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 00000052`27bffb18 00007ffa`e15e7c2f     ntdll!ZwWaitForWorkViaWorkerFactory+0x14 [minkernel\ntdll\daytona\objfre\amd64\usrstubs.asm @ 4075] 
01 00000052`27bffb20 00007ffa`e0b41350     ntdll!TppWorkerThread+0x2df [minkernel\threadpool\ntdll\worker.c @ 910] 
02 00000052`27bffe10 00007ffa`e1611e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
03 00000052`27bffe40 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 

   2  Id: 5514c.862d8 Suspend: 1 Teb: 00000052`279cb000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 00000052`27cffaf8 00007ffa`e15e7c2f     ntdll!ZwWaitForWorkViaWorkerFactory+0x14 [minkernel\ntdll\daytona\objfre\amd64\usrstubs.asm @ 4075] 
01 00000052`27cffb00 00007ffa`e0b41350     ntdll!TppWorkerThread+0x2df [minkernel\threadpool\ntdll\worker.c @ 910] 
02 00000052`27cffdf0 00007ffa`e1611e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
03 00000052`27cffe20 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 

   3  Id: 5514c.6fd00 Suspend: 1 Teb: 00000052`279cd000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 00000052`27dff658 00007ffa`e15e7c2f     ntdll!ZwWaitForWorkViaWorkerFactory+0x14 [minkernel\ntdll\daytona\objfre\amd64\usrstubs.asm @ 4075] 
01 00000052`27dff660 00007ffa`e0b41350     ntdll!TppWorkerThread+0x2df [minkernel\threadpool\ntdll\worker.c @ 910] 
02 00000052`27dff950 00007ffa`e1611e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
03 00000052`27dff980 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 

   4  Id: 5514c.435f8 Suspend: 1 Teb: 00000052`279cf000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 00000052`27efcf88 00007ffa`df0a4e7e     ntdll!ZwWaitForSingleObject+0x14 [minkernel\ntdll\daytona\objfre\amd64\usrstubs.asm @ 251] 
01 00000052`27efcf90 00007ffa`db8dac2c     KERNELBASE!WaitForSingleObjectEx+0x8e [minkernel\kernelbase\synch.c @ 1328] 
02 00000052`27efd030 00007ffa`db8abca6     CoreMessaging!SvchostPushServiceGlobals+0x1dc1c
03 00000052`27efd080 00007ffa`db8b0c11     CoreMessaging!CreateDispatcherQueueController+0x1a06
04 00000052`27efd110 00007ffa`db8b0ae9     CoreMessaging!MsgStringCreateStack+0x46f1
05 00000052`27efd1c0 00007ffa`bf43f5cf     CoreMessaging!MsgStringCreateStack+0x45c9
06 00000052`27efd220 00007ffa`bf43f24e     Windows_UI!Ordinal1600+0xa0bf
07 00000052`27efd2f0 00007ff7`9632a7d9     Windows_UI!Ordinal1600+0x9d3e
08 00000052`27efd3a0 00007ff7`963360d5     WindowsTerminal!winrt::impl::consume_Windows_UI_Core_ICoreDispatcher<winrt::Windows::UI::Core::ICoreDispatcher>::RunAsync+0xc9 [D:\dev\private\OpenConsole\src\cascadia\WindowsTerminal\Generated Files\winrt\Windows.UI.Core.h @ 191] 
09 00000052`27efd440 00007ff7`962d1e5b     WindowsTerminal!`winrt::resume_foreground'::`2'::awaitable::await_suspend+0x65 [D:\dev\private\OpenConsole\src\cascadia\WindowsTerminal\Generated Files\winrt\Windows.UI.Core.h @ 3492] 
0a 00000052`27efd490 00007ff7`962b0bef     WindowsTerminal!winrt::impl::notify_awaiter<`winrt::resume_foreground'::`2'::awaitable>::await_suspend<std::experimental::coroutine_traits<winrt::Windows::Foundation::IAsyncOperation<winrt::hstring>,AppHost *>::promise_type>+0x4b [D:\dev\private\OpenConsole\src\cascadia\WindowsTerminal\Generated Files\winrt\base.h @ 8886] 
0b 00000052`27efd4e0 00007ff7`962b0612     WindowsTerminal!AppHost::_GetWindowLayoutAsync$_ResumeCoro$1+0x57f [D:\dev\private\OpenConsole\src\cascadia\WindowsTerminal\AppHost.cpp @ 803] 
0c 00000052`27efdaf0 00007ff7`962aa6a3     WindowsTerminal!AppHost::_GetWindowLayoutAsync$_InitCoro$2+0x142
0d 00000052`27efdb80 00007ff7`962c3d5c     WindowsTerminal!AppHost::_GetWindowLayoutAsync+0xd3
0e 00000052`27efde10 00007ff7`962ad943     WindowsTerminal!`AppHost::AppHost'::`2'::<lambda_1>::operator()<winrt::Windows::Foundation::IInspectable const &>+0x3c [D:\dev\private\OpenConsole\src\cascadia\WindowsTerminal\AppHost.cpp @ 93] 
*** WARNING: Unable to verify checksum for D:\dev\private\OpenConsole\src\cascadia\CascadiaPackage\bin\x64\Debug\AppX\Microsoft.Terminal.Remoting.dll
0f 00000052`27efde60 00007ffa`5523bf69     WindowsTerminal!winrt::impl::delegate<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Microsoft::Terminal::Remoting::GetWindowLayoutArgs>,`AppHost::AppHost'::`2'::<lambda_1> >::Invoke+0x43 [D:\dev\private\OpenConsole\src\cascadia\WindowsTerminal\Generated Files\winrt\Windows.Foundation.h @ 895] 
10 00000052`27efdea0 00007ffa`55268935     Microsoft_Terminal_Remoting!winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Microsoft::Terminal::Remoting::GetWindowLayoutArgs>::operator()+0xb9 [D:\dev\private\OpenConsole\src\cascadia\Remoting\Generated Files\winrt\Windows.Foundation.h @ 2525] 
11 00000052`27efdf20 00007ffa`552667a5     Microsoft_Terminal_Remoting!winrt::impl::invoke<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Microsoft::Terminal::Remoting::GetWindowLayoutArgs>,winrt::Windows::Foundation::IInspectable,winrt::Microsoft::Terminal::Remoting::GetWindowLayoutArgs>+0x35 [D:\dev\private\OpenConsole\src\cascadia\Remoting\Generated Files\winrt\base.h @ 5762] 
12 00000052`27efdf70 00007ffa`55266133     Microsoft_Terminal_Remoting!winrt::event<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Microsoft::Terminal::Remoting::GetWindowLayoutArgs> >::operator()<winrt::Windows::Foundation::IInspectable,winrt::Microsoft::Terminal::Remoting::GetWindowLayoutArgs>+0x115 [D:\dev\private\OpenConsole\src\cascadia\Remoting\Generated Files\winrt\base.h @ 5897] 
13 00000052`27efe010 00007ffa`5526f323     Microsoft_Terminal_Remoting!`winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Microsoft::Terminal::Remoting::GetWindowLayoutArgs>::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Microsoft::Terminal::Remoting::GetWindowLayoutArgs><winrt::Microsoft::Terminal::Remoting::implementation::WindowManager,winrt::event<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Microsoft::Terminal::Remoting::GetWindowLayoutArgs> > winrt::Microsoft::Terminal::Remoting::implementation::WindowManager::*>'::`1'::<lambda_23_>::operator()<winrt::Windows::Foundation::IInspectable const &,winrt::Microsoft::Terminal::Remoting::GetWindowLayoutArgs const &>+0xc3 [D:\dev\private\OpenConsole\src\cascadia\Remoting\Generated Files\winrt\Windows.Foundation.h @ 2520] 
14 00000052`27efe090 00007ffa`5523bf69     Microsoft_Terminal_Remoting!winrt::impl::delegate<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Microsoft::Terminal::Remoting::GetWindowLayoutArgs>,`winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Microsoft::Terminal::Remoting::GetWindowLayoutArgs>::implementation<winrt::Microsoft::Terminal::Remoting::implementation::WindowManager,winrt::event<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Microsoft::Terminal::Remoting::GetWindowLayoutArgs> > winrt::Microsoft::Terminal::Remoting::implementation::WindowManager::*>'::`1'::<lambda_23_> >::Invoke+0x43 [D:\dev\private\OpenConsole\src\cascadia\Remoting\Generated Files\winrt\Windows.Foundation.h @ 895] 
15 00000052`27efe0d0 00007ffa`55234f97     Microsoft_Terminal_Remoting!winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Microsoft::Terminal::Remoting::GetWindowLayoutArgs>::operator()+0xb9 [D:\dev\private\OpenConsole\src\cascadia\Remoting\Generated Files\winrt\Windows.Foundation.h @ 2525] 
16 00000052`27efe150 00007ffa`55230d55     Microsoft_Terminal_Remoting!winrt::impl::invoke<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Microsoft::Terminal::Remoting::GetWindowLayoutArgs>,std::nullptr_t,winrt::Microsoft::Terminal::Remoting::implementation::GetWindowLayoutArgs>+0x87 [D:\dev\private\OpenConsole\src\cascadia\Remoting\Generated Files\winrt\base.h @ 5762] 
17 00000052`27efe1d0 00007ffa`5522fe40     Microsoft_Terminal_Remoting!winrt::event<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Microsoft::Terminal::Remoting::GetWindowLayoutArgs> >::operator()<std::nullptr_t,winrt::Microsoft::Terminal::Remoting::implementation::GetWindowLayoutArgs>+0x115 [D:\dev\private\OpenConsole\src\cascadia\Remoting\Generated Files\winrt\base.h @ 5897] 
18 00000052`27efe270 00007ffa`5523ebe4     Microsoft_Terminal_Remoting!winrt::Microsoft::Terminal::Remoting::implementation::Peasant::GetWindowLayout+0xb0 [D:\dev\private\OpenConsole\src\cascadia\Remoting\Peasant.cpp @ 304] 
19 00000052`27efe340 00007ffa`e0ef2763     Microsoft_Terminal_Remoting!winrt::impl::produce<winrt::Microsoft::Terminal::Remoting::implementation::Peasant,winrt::Microsoft::Terminal::Remoting::IPeasant>::GetWindowLayout+0x94 [D:\dev\private\OpenConsole\src\cascadia\Remoting\Generated Files\winrt\Microsoft.Terminal.Remoting.h @ 1247] 
1a 00000052`27efe3d0 00007ffa`e0ed597f     RPCRT4!NdrSendReceive+0x343
1b 00000052`27efe420 00007ffa`e0799451     RPCRT4!NdrStubCall2+0x77f
1c 00000052`27efea60 00007ffa`e06f4951     combase!CStdStubBuffer_Invoke+0xe1
1d 00000052`27efeaa0 00007ffa`e070fe2d     combase!CStdStubBuffer_Connect+0x1031
1e 00000052`27efead0 00007ffa`e070fb46     combase!Ordinal87+0x205d
1f 00000052`27efeb30 00007ffa`e07a0e58     combase!Ordinal87+0x1d76
20 00000052`27efec80 00007ffa`e0717aaf     combase!HSTRING_UserUnmarshal64+0xc88
21 00000052`27efecc0 00007ffa`e07ec254     combase!DcomChannelSetHResult+0x40f
22 00000052`27efeda0 00007ffa`e07eb15e     combase!Ordinal65+0xbf74
23 00000052`27efef60 00007ffa`e07e77af     combase!Ordinal65+0xae7e
24 00000052`27efef90 00007ffa`e071c691     combase!Ordinal65+0x74cf
25 00000052`27eff210 00007ffa`e0e88982     combase!DllGetClassObject+0x44a1
26 00000052`27eff300 00007ffa`e0eab05f     RPCRT4!RpcExceptionFilter+0x42
27 00000052`27eff350 00007ffa`e0eaac8c     RPCRT4!UuidToStringW+0xf3f
28 00000052`27eff430 00007ffa`e0eb8a25     RPCRT4!UuidToStringW+0xb6c
29 00000052`27eff4e0 00007ffa`e0eb8057     RPCRT4!TowerConstruct+0x6c65
2a 00000052`27eff5b0 00007ffa`e0eb76ec     RPCRT4!TowerConstruct+0x6297
2b 00000052`27eff6b0 00007ffa`e0eb73c1     RPCRT4!TowerConstruct+0x592c
2c 00000052`27eff730 00007ffa`e0eb6fef     RPCRT4!TowerConstruct+0x5601
2d 00000052`27eff7d0 00007ffa`e0ebcf99     RPCRT4!TowerConstruct+0x522f
2e 00000052`27eff910 00007ffa`e16200a0     RPCRT4!RpcImpersonateClient2+0x379
2f 00000052`27eff9a0 00007ffa`e163feec     ntdll!TppAlpcpExecuteCallback+0x280 [minkernel\threadpool\ntdll\lpc.c @ 426] 
30 00000052`27effa20 00007ffa`e15e7fd6     ntdll!TppDirectExecuteCallback+0xdc [minkernel\threadpool\ntdll\pool.c @ 3820] 
31 00000052`27effa80 00007ffa`e0b41350     ntdll!TppWorkerThread+0x686 [minkernel\threadpool\ntdll\worker.c @ 1109] 
32 00000052`27effd70 00007ffa`e1611e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
33 00000052`27effda0 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 

   5  Id: 5514c.aca18 Suspend: 1 Teb: 00000052`279d1000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 00000052`27fff558 00007ffa`df0cf0e0     ntdll!ZwWaitForMultipleObjects+0x14 [minkernel\ntdll\daytona\objfre\amd64\usrstubs.asm @ 947] 
01 00000052`27fff560 00007ffa`e07b3588     KERNELBASE!WaitForMultipleObjectsEx+0xf0 [minkernel\kernelbase\synch.c @ 1551] 
02 00000052`27fff850 00007ffa`e07b33fa     combase!Ordinal177+0x5b8
03 00000052`27fffae0 00007ffa`e07b31fc     combase!Ordinal177+0x42a
04 00000052`27fffb30 00007ffa`e07b3179     combase!Ordinal177+0x22c
05 00000052`27fffba0 00007ffa`e0b41350     combase!Ordinal177+0x1a9
06 00000052`27fffbd0 00007ffa`e1611e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
07 00000052`27fffc00 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 

   6  Id: 5514c.1d7a8 Suspend: 1 Teb: 00000052`279d3000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 00000052`280ffb58 00007ffa`e15e7c2f     ntdll!ZwWaitForWorkViaWorkerFactory+0x14 [minkernel\ntdll\daytona\objfre\amd64\usrstubs.asm @ 4075] 
01 00000052`280ffb60 00007ffa`e0b41350     ntdll!TppWorkerThread+0x2df [minkernel\threadpool\ntdll\worker.c @ 910] 
02 00000052`280ffe50 00007ffa`e1611e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
03 00000052`280ffe80 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 

   7  Id: 5514c.ab8f4 Suspend: 1 Teb: 00000052`27808000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 00000052`281ff638 00007ffa`e0fc67a1     win32u!ZwUserMsgWaitForMultipleObjectsEx+0x14 [onecoreuap\windows\core\umode\moderncore\objfre\amd64\usrstubs.asm @ 9909] 
01 (Inline Function) --------`--------     shcore!WorkThreadManager::CThread::WaitForThreadUpdate+0x36 [onecore\shell\shcore\libs\comtaskpool\taskpoolprivate.cpp @ 898] 
02 (Inline Function) --------`--------     shcore!WorkThreadManager::CThread::WaitForWork+0x65 [onecore\shell\shcore\libs\comtaskpool\taskpoolprivate.cpp @ 929] 
03 00000052`281ff640 00007ffa`e0fc5b26     shcore!WorkThreadManager::CThread::ThreadProc+0xc41 [onecore\shell\shcore\libs\comtaskpool\taskpoolprivate.cpp @ 1011] 
04 00000052`281ff8d0 00007ffa`e0fc4431     shcore!WorkThreadManager::CThread::s_ExecuteThreadProc+0x22 [onecore\shell\shcore\libs\comtaskpool\taskpoolprivate.cpp @ 854] 
05 (Inline Function) --------`--------     shcore!WorkThreadManager::CThread::StartThread::__l2::<lambda_9844335fc14345151eefcc3593dd6895>::operator()+0xd [onecore\shell\shcore\libs\comtaskpool\taskpoolprivate.cpp @ 718] 
06 00000052`281ff900 00007ffa`e0b41350     shcore!<lambda_9844335fc14345151eefcc3593dd6895>::<lambda_invoker_cdecl>+0x11 [onecore\shell\shcore\libs\comtaskpool\taskpoolprivate.cpp @ 721] 
07 00000052`281ff930 00007ffa`e1611e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
08 00000052`281ff960 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 

   8  Id: 5514c.852ac Suspend: 1 Teb: 00000052`279d9000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 00000052`283ff438 00007ffa`df0cf0e0     ntdll!ZwWaitForMultipleObjects+0x14 [minkernel\ntdll\daytona\objfre\amd64\usrstubs.asm @ 947] 
01 00000052`283ff440 00007ffa`ae963b5a     KERNELBASE!WaitForMultipleObjectsEx+0xf0 [minkernel\kernelbase\synch.c @ 1551] 
02 00000052`283ff730 00007ffa`ae8bec71     Windows_UI_Xaml!DllGetActivationFactory+0x54faa
03 00000052`283ff820 00007ffa`ae8bde11     Windows_UI_Xaml!GetErrorContextIndex+0x13a1e1
04 00000052`283ff8e0 00007ffa`e0b41350     Windows_UI_Xaml!GetErrorContextIndex+0x139381
05 00000052`283ff910 00007ffa`e1611e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
06 00000052`283ff940 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 

#  9  Id: 5514c.76c0 Suspend: 1 Teb: 00000052`2780a000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 00000052`284ffdc8 00007ffa`e1697c2e     ntdll!DbgBreakPoint [minkernel\ntos\rtl\amd64\debugstb.asm @ 61] 
01 00000052`284ffdd0 00007ffa`e0b41350     ntdll!DbgUiRemoteBreakin+0x4e [minkernel\ntdll\dlluistb.c @ 324] 
02 00000052`284ffe00 00007ffa`e1611e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
03 00000052`284ffe30 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 

  10  Id: 5514c.ec88 Suspend: 1 Teb: 00000052`279dd000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 00000052`285ff648 00007ffa`df0cf0e0     ntdll!ZwWaitForMultipleObjects+0x14 [minkernel\ntdll\daytona\objfre\amd64\usrstubs.asm @ 947] 
01 00000052`285ff650 00007ffa`e07b6b35     KERNELBASE!WaitForMultipleObjectsEx+0xf0 [minkernel\kernelbase\synch.c @ 1551] 
02 00000052`285ff940 00007ffa`e0713e50     combase!Ordinal178+0x9d5
03 00000052`285ff9a0 00007ffa`c57240d2     combase!CoWaitForMultipleHandles+0x80
04 00000052`285ff9e0 00007ffa`e0b41350     MrmCoreR+0x40d2
05 00000052`285ffbe0 00007ffa`e1611e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
06 00000052`285ffc10 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 

  11  Id: 5514c.bcc60 Suspend: 1 Teb: 00000052`279e1000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 00000052`2860fc28 00007ffa`df0a4e7e     ntdll!ZwWaitForSingleObject+0x14 [minkernel\ntdll\daytona\objfre\amd64\usrstubs.asm @ 251] 
01 00000052`2860fc30 00007ffa`d5c112e3     KERNELBASE!WaitForSingleObjectEx+0x8e [minkernel\kernelbase\synch.c @ 1328] 
02 00000052`2860fcd0 00007ffa`d69b69c0     nvwgf2umx_cfg!NVDEV_Thunk+0x293db3
03 00000052`2860fd20 00007ffa`e0b41350     nvwgf2umx_cfg!OpenAdapter12+0x5baae0
04 00000052`2860fd50 00007ffa`e1611e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
05 00000052`2860fd80 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 

  12  Id: 5514c.ade8 Suspend: 1 Teb: 00000052`279e3000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 00000052`2861f7a8 00007ffa`df0a4e7e     ntdll!ZwWaitForSingleObject+0x14 [minkernel\ntdll\daytona\objfre\amd64\usrstubs.asm @ 251] 
01 00000052`2861f7b0 00007ffa`d5c112e3     KERNELBASE!WaitForSingleObjectEx+0x8e [minkernel\kernelbase\synch.c @ 1328] 
02 00000052`2861f850 00007ffa`d69b69c0     nvwgf2umx_cfg!NVDEV_Thunk+0x293db3
03 00000052`2861f8a0 00007ffa`e0b41350     nvwgf2umx_cfg!OpenAdapter12+0x5baae0
04 00000052`2861f8d0 00007ffa`e1611e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
05 00000052`2861f900 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 

  13  Id: 5514c.701bc Suspend: 1 Teb: 00000052`279e5000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 00000052`2862fcc8 00007ffa`df0a4e7e     ntdll!ZwWaitForSingleObject+0x14 [minkernel\ntdll\daytona\objfre\amd64\usrstubs.asm @ 251] 
01 00000052`2862fcd0 00007ffa`d5c112e3     KERNELBASE!WaitForSingleObjectEx+0x8e [minkernel\kernelbase\synch.c @ 1328] 
02 00000052`2862fd70 00007ffa`d69b69c0     nvwgf2umx_cfg!NVDEV_Thunk+0x293db3
03 00000052`2862fdc0 00007ffa`e0b41350     nvwgf2umx_cfg!OpenAdapter12+0x5baae0
04 00000052`2862fdf0 00007ffa`e1611e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
05 00000052`2862fe20 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 

  14  Id: 5514c.44260 Suspend: 1 Teb: 00000052`279e7000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 00000052`2863fa88 00007ffa`df0a4e7e     ntdll!ZwWaitForSingleObject+0x14 [minkernel\ntdll\daytona\objfre\amd64\usrstubs.asm @ 251] 
01 00000052`2863fa90 00007ffa`d5c112e3     KERNELBASE!WaitForSingleObjectEx+0x8e [minkernel\kernelbase\synch.c @ 1328] 
02 00000052`2863fb30 00007ffa`d69b69c0     nvwgf2umx_cfg!NVDEV_Thunk+0x293db3
03 00000052`2863fb80 00007ffa`e0b41350     nvwgf2umx_cfg!OpenAdapter12+0x5baae0
04 00000052`2863fbb0 00007ffa`e1611e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
05 00000052`2863fbe0 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 

  15  Id: 5514c.4c2c0 Suspend: 1 Teb: 00000052`279e9000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 00000052`2864f678 00007ffa`df0a4e7e     ntdll!ZwWaitForSingleObject+0x14 [minkernel\ntdll\daytona\objfre\amd64\usrstubs.asm @ 251] 
01 00000052`2864f680 00007ffa`d5c112e3     KERNELBASE!WaitForSingleObjectEx+0x8e [minkernel\kernelbase\synch.c @ 1328] 
02 00000052`2864f720 00007ffa`d69b69c0     nvwgf2umx_cfg!NVDEV_Thunk+0x293db3
03 00000052`2864f770 00007ffa`e0b41350     nvwgf2umx_cfg!OpenAdapter12+0x5baae0
04 00000052`2864f7a0 00007ffa`e1611e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
05 00000052`2864f7d0 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 

  16  Id: 5514c.7d868 Suspend: 1 Teb: 00000052`279eb000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 00000052`2865fb98 00007ffa`df0a4e7e     ntdll!ZwWaitForSingleObject+0x14 [minkernel\ntdll\daytona\objfre\amd64\usrstubs.asm @ 251] 
01 00000052`2865fba0 00007ffa`d5c112e3     KERNELBASE!WaitForSingleObjectEx+0x8e [minkernel\kernelbase\synch.c @ 1328] 
02 00000052`2865fc40 00007ffa`d69b69c0     nvwgf2umx_cfg!NVDEV_Thunk+0x293db3
03 00000052`2865fc90 00007ffa`e0b41350     nvwgf2umx_cfg!OpenAdapter12+0x5baae0
04 00000052`2865fcc0 00007ffa`e1611e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
05 00000052`2865fcf0 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 

  17  Id: 5514c.5b7d8 Suspend: 1 Teb: 00000052`279ed000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 00000052`2866f798 00007ffa`df0a4e7e     ntdll!ZwWaitForSingleObject+0x14 [minkernel\ntdll\daytona\objfre\amd64\usrstubs.asm @ 251] 
01 00000052`2866f7a0 00007ffa`d5c112e3     KERNELBASE!WaitForSingleObjectEx+0x8e [minkernel\kernelbase\synch.c @ 1328] 
02 00000052`2866f840 00007ffa`d69b69c0     nvwgf2umx_cfg!NVDEV_Thunk+0x293db3
03 00000052`2866f890 00007ffa`e0b41350     nvwgf2umx_cfg!OpenAdapter12+0x5baae0
04 00000052`2866f8c0 00007ffa`e1611e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
05 00000052`2866f8f0 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 

  18  Id: 5514c.4a608 Suspend: 1 Teb: 00000052`279ef000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 00000052`2867f808 00007ffa`df0a4e7e     ntdll!ZwWaitForSingleObject+0x14 [minkernel\ntdll\daytona\objfre\amd64\usrstubs.asm @ 251] 
01 00000052`2867f810 00007ffa`d5c112e3     KERNELBASE!WaitForSingleObjectEx+0x8e [minkernel\kernelbase\synch.c @ 1328] 
02 00000052`2867f8b0 00007ffa`d69b69c0     nvwgf2umx_cfg!NVDEV_Thunk+0x293db3
03 00000052`2867f900 00007ffa`e0b41350     nvwgf2umx_cfg!OpenAdapter12+0x5baae0
04 00000052`2867f930 00007ffa`e1611e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
05 00000052`2867f960 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 

  19  Id: 5514c.1791c Suspend: 1 Teb: 00000052`279f1000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 00000052`2877f688 00007ffa`df0a4e7e     ntdll!ZwWaitForSingleObject+0x14 [minkernel\ntdll\daytona\objfre\amd64\usrstubs.asm @ 251] 
01 00000052`2877f690 00007ffa`d5aebe0f     KERNELBASE!WaitForSingleObjectEx+0x8e [minkernel\kernelbase\synch.c @ 1328] 
02 00000052`2877f730 00007ffa`d69b69c0     nvwgf2umx_cfg!NVDEV_Thunk+0x16e8df
03 00000052`2877f880 00007ffa`e0b41350     nvwgf2umx_cfg!OpenAdapter12+0x5baae0
04 00000052`2877f8b0 00007ffa`e1611e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
05 00000052`2877f8e0 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 

  20  Id: 5514c.82fe8 Suspend: 1 Teb: 00000052`279f3000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 00000052`282ff3a8 00007ffa`df0cf0e0     ntdll!ZwWaitForMultipleObjects+0x14 [minkernel\ntdll\daytona\objfre\amd64\usrstubs.asm @ 947] 
01 00000052`282ff3b0 00007ffa`df0cefde     KERNELBASE!WaitForMultipleObjectsEx+0xf0 [minkernel\kernelbase\synch.c @ 1551] 
02 00000052`282ff6a0 00007ffa`55260fac     KERNELBASE!WaitForMultipleObjects+0xe [minkernel\kernelbase\synch.c @ 1403] 
03 00000052`282ff6e0 00007ffa`552614f3     Microsoft_Terminal_Remoting!winrt::Microsoft::Terminal::Remoting::implementation::WindowManager::_waitOnMonarchThread+0x26c [D:\dev\private\OpenConsole\src\cascadia\Remoting\WindowManager.cpp @ 421] 
04 00000052`282ff8d0 00007ffa`552689e0     Microsoft_Terminal_Remoting!`winrt::Microsoft::Terminal::Remoting::implementation::WindowManager::_createPeasantThread'::`2'::<lambda_1>::operator()+0x23 [D:\dev\private\OpenConsole\src\cascadia\Remoting\WindowManager.cpp @ 374] 
05 00000052`282ff900 00007ffa`55267142     Microsoft_Terminal_Remoting!std::invoke<`winrt::Microsoft::Terminal::Remoting::implementation::WindowManager::_createPeasantThread'::`2'::<lambda_1> >+0x20 [C:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Tools\MSVC\14.31.30818\include\type_traits @ 1481] 
06 00000052`282ff930 00007ffa`56d02d20     Microsoft_Terminal_Remoting!std::thread::_Invoke<std::tuple<`winrt::Microsoft::Terminal::Remoting::implementation::WindowManager::_createPeasantThread'::`2'::<lambda_1> >,0>+0x82 [C:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Tools\MSVC\14.31.30818\include\thread @ 56] 
07 00000052`282ff9a0 00007ffa`e0b41350     ucrtbased!thread_start<unsigned int (__cdecl*)(void *),1>+0xb0 [minkernel\crts\ucrt\src\appcrt\startup\thread.cpp @ 97] 
08 00000052`282ffa00 00007ffa`e1611e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
09 00000052`282ffa30 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 

  21  Id: 5514c.9eec0 Suspend: 1 Teb: 00000052`279f5000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 00000052`2887f7d8 00007ffa`e13f781e     win32u!ZwUserGetMessage+0x14 [onecoreuap\windows\core\umode\moderncore\objfre\amd64\usrstubs.asm @ 189] 
01 00000052`2887f7e0 00007ffa`e07a9ecc     user32!GetMessageW+0x2e
02 00000052`2887f840 00007ffa`e07a9e06     combase!CoFreeUnusedLibrariesEx+0x47c
03 00000052`2887f8c0 00007ffa`e07b31fc     combase!CoFreeUnusedLibrariesEx+0x3b6
04 00000052`2887f900 00007ffa`e07b3179     combase!Ordinal177+0x22c
05 00000052`2887f970 00007ffa`e0b41350     combase!Ordinal177+0x1a9
06 00000052`2887f9a0 00007ffa`e1611e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
07 00000052`2887f9d0 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 

  22  Id: 5514c.b27d4 Suspend: 1 Teb: 00000052`279f7000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 00000052`2897fc08 00007ffa`e15e7c2f     ntdll!ZwWaitForWorkViaWorkerFactory+0x14 [minkernel\ntdll\daytona\objfre\amd64\usrstubs.asm @ 4075] 
01 00000052`2897fc10 00007ffa`e0b41350     ntdll!TppWorkerThread+0x2df [minkernel\threadpool\ntdll\worker.c @ 910] 
02 00000052`2897ff00 00007ffa`e1611e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
03 00000052`2897ff30 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 

  23  Id: 5514c.6cb4c Suspend: 1 Teb: 00000052`279f9000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 00000052`28a7fa88 00007ffa`e15e7c2f     ntdll!ZwWaitForWorkViaWorkerFactory+0x14 [minkernel\ntdll\daytona\objfre\amd64\usrstubs.asm @ 4075] 
01 00000052`28a7fa90 00007ffa`e0b41350     ntdll!TppWorkerThread+0x2df [minkernel\threadpool\ntdll\worker.c @ 910] 
02 00000052`28a7fd80 00007ffa`e1611e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
03 00000052`28a7fdb0 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 

  26  Id: 5514c.79fbc Suspend: 1 Teb: 00000052`27800000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 00000052`28d7fae8 00007ffa`e15e7c2f     ntdll!ZwWaitForWorkViaWorkerFactory+0x14 [minkernel\ntdll\daytona\objfre\amd64\usrstubs.asm @ 4075] 
01 00000052`28d7faf0 00007ffa`e0b41350     ntdll!TppWorkerThread+0x2df [minkernel\threadpool\ntdll\worker.c @ 910] 
02 00000052`28d7fde0 00007ffa`e1611e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
03 00000052`28d7fe10 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 

  27  Id: 5514c.70b28 Suspend: 1 Teb: 00000052`27802000 Unfrozen "DManip Delegate Thread"
 # Child-SP          RetAddr               Call Site
00 00000052`28e7faa8 00007ffa`ace5e01d     win32u!ZwUserMsgWaitForMultipleObjectsEx+0x14 [onecoreuap\windows\core\umode\moderncore\objfre\amd64\usrstubs.asm @ 9909] 
01 00000052`28e7fab0 00007ffa`ace5de46     directmanipulation!DllGetClassObject+0x2d0d
02 00000052`28e7fb80 00007ffa`e0b41350     directmanipulation!DllGetClassObject+0x2b36
03 00000052`28e7fbc0 00007ffa`e1611e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
04 00000052`28e7fbf0 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 

  28  Id: 5514c.bfde8 Suspend: 1 Teb: 00000052`27806000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 00000052`2907f6e8 00007ffa`e15e7c2f     ntdll!ZwWaitForWorkViaWorkerFactory+0x14 [minkernel\ntdll\daytona\objfre\amd64\usrstubs.asm @ 4075] 
01 00000052`2907f6f0 00007ffa`e0b41350     ntdll!TppWorkerThread+0x2df [minkernel\threadpool\ntdll\worker.c @ 910] 
02 00000052`2907f9e0 00007ffa`e1611e78     KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75] 
03 00000052`2907fa10 00000000`00000000     ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166] 
windbg> .open -a 7ff7962b0bef
0:000> dx Debugger.Sessions[0].Processes[348492].Threads[275960].Stack.Frames[12].SwitchTo();dv /t /v
Debugger.Sessions[0].Processes[348492].Threads[275960].Stack.Frames[12].SwitchTo()
00000052`27efdb80 <CLR type> __coro_heap_ellision = <unknown base type 80000013>
000001cb`cd16f170 void * __coro_frame_ptr = 0x00007ff7`962b0670
00000052`27efdb90 struct winrt::Windows::Foundation::IAsyncOperation<winrt::hstring> * __$ReturnUdt = 0x00000052`27efde30
00000052`27efdb98 class AppHost * this = 0x00000052`27aff570
0:004> dv /t /v
000001cb`cd16f180 struct winrt::apartment_context peasant_thread = struct winrt::apartment_context
000001cb`cd16f190 struct winrt::hstring layoutJson = struct winrt::hstring
000001cb`cd16f170 void * __coro_frame_ptr = 0x00007ff7`962b0670
0:004> dx -r1 ((WindowsTerminal!AppHost *)0x5227aff570)
((WindowsTerminal!AppHost *)0x5227aff570)                 : 0x5227aff570 [Type: AppHost *]
    [+0x008] _window          : unique_ptr {...} [Type: std::unique_ptr<IslandWindow,std::default_delete<IslandWindow> >]
    [+0x010] _app             [Type: winrt::TerminalApp::App]
    [+0x018] _logic           [Type: winrt::TerminalApp::AppLogic]
    [+0x020] _windowManager   [Type: winrt::Microsoft::Terminal::Remoting::WindowManager]
    [+0x028] _hotkeys         : { size=0 } [Type: std::vector<winrt::Microsoft::Terminal::Settings::Model::GlobalSummonArgs,std::allocator<winrt::Microsoft::Terminal::Settings::Model::GlobalSummonArgs> >]
    [+0x048] _desktopManager  [Type: winrt::com_ptr<IVirtualDesktopManager>]
    [+0x050] _shouldCreateWindow : true [Type: bool]
    [+0x051] _useNonClientArea : true [Type: bool]
    [+0x058] _getWindowLayoutThrottler : nullopt [Type: std::optional<til::throttled_func<0> >]
    [+0x0b8] _notificationIcon : empty [Type: std::unique_ptr<NotificationIcon,std::default_delete<NotificationIcon> >]
    [+0x0c0] _ReAddNotificationIconToken [Type: winrt::event_token]
    [+0x0c8] _NotificationIconPressedToken [Type: winrt::event_token]
    [+0x0d0] _ShowNotificationIconContextMenuToken [Type: winrt::event_token]
    [+0x0d8] _NotificationIconMenuItemSelectedToken [Type: winrt::event_token]
    [+0x0e0] _GetWindowLayoutRequestedToken [Type: winrt::event_token]
    [+0x0e8] _WindowCreatedToken [Type: winrt::event_token]
    [+0x0f0] _WindowClosedToken [Type: winrt::event_token]
0:004> dx -r1 (*((WindowsTerminal!winrt::TerminalApp::AppLogic *)0x5227aff588))
(*((WindowsTerminal!winrt::TerminalApp::AppLogic *)0x5227aff588))                 [Type: winrt::TerminalApp::AppLogic]
    [+0x000] m_ptr            : 0x1cbc0948638 [Type: winrt::impl::abi<winrt::Windows::Foundation::IUnknown,void>::type *]
0:004> dx -r1 (*((WindowsTerminal!winrt::apartment_context *)0x1cbcd16f180))
(*((WindowsTerminal!winrt::apartment_context *)0x1cbcd16f180))                 [Type: winrt::apartment_context]
    [+0x000] context          [Type: winrt::impl::resume_apartment_context]
0:004> dx -r1 (*((WindowsTerminal!winrt::impl::resume_apartment_context *)0x1cbcd16f180))
(*((WindowsTerminal!winrt::impl::resume_apartment_context *)0x1cbcd16f180))                 [Type: winrt::impl::resume_apartment_context]
    [+0x000] m_context        [Type: winrt::com_ptr<winrt::impl::IContextCallback>]
    [+0x008] m_context_type   : 2 [Type: int]
0:004> dx -r1 (*((WindowsTerminal!winrt::com_ptr<winrt::impl::IContextCallback> *)0x1cbcd16f180))
(*((WindowsTerminal!winrt::com_ptr<winrt::impl::IContextCallback> *)0x1cbcd16f180))                 [Type: winrt::com_ptr<winrt::impl::IContextCallback>]
    [+0x000] m_ptr            : 0x1cbbec1f4c0 [Type: winrt::impl::IContextCallback *]
0:004> dx -r1 ((WindowsTerminal!winrt::impl::IContextCallback *)0x1cbbec1f4c0)
((WindowsTerminal!winrt::impl::IContextCallback *)0x1cbbec1f4c0)                 : 0x1cbbec1f4c0 [Type: winrt::impl::IContextCallback *]
0:004> dx -r1 (*((WindowsTerminal!winrt::TerminalApp::AppLogic *)0x5227aff588))
(*((WindowsTerminal!winrt::TerminalApp::AppLogic *)0x5227aff588))                 [Type: winrt::TerminalApp::AppLogic]
    [+0x000] m_ptr            : 0x1cbc0948638 [Type: winrt::impl::abi<winrt::Windows::Foundation::IUnknown,void>::type *]
0:004> dx -r1 (*((WindowsTerminal!winrt::TerminalApp::AppLogic *)0x5227aff588)).m_ptr
(*((WindowsTerminal!winrt::TerminalApp::AppLogic *)0x5227aff588)).m_ptr                 : 0x1cbc0948638 [Type: winrt::impl::produce<winrt::TerminalApp::implementation::AppLogic,winrt::TerminalApp::IAppLogic> * (derived from winrt::impl::abi<winrt::Windows::Foundation::IUnknown,void>::type *)]
0:004> dx -r1 (*((WindowsTerminal!winrt::TerminalApp::implementation::AppLogic *)0x1cbc0948638))
Error: Unable to find type 'winrt::TerminalApp::implementation::AppLogic *' for cast.
0:004> dx -r1 (*((TermianlApp!winrt::TerminalApp::implementation::AppLogic *)0x1cbc0948638))
Error: Unable to find module 'TermianlApp' for qualified type lookup.
0:004> dx -r1 (*((TerminalApp!winrt::TerminalApp::implementation::AppLogic *)0x1cbc0948638))
(*((TerminalApp!winrt::TerminalApp::implementation::AppLogic *)0x1cbc0948638))                 [Type: winrt::TerminalApp::implementation::AppLogic]
    [+0x008] vtable           [Type: winrt::impl::produce<winrt::TerminalApp::implementation::AppLogic,winrt::TerminalApp::IAppLogic>]
    [+0x010] vtable           [Type: winrt::impl::produce<winrt::TerminalApp::implementation::AppLogic,winrt::TerminalApp::IDirectKeyListener>]
    [+0x018] vtable           [Type: winrt::impl::produce<winrt::TerminalApp::implementation::AppLogic,winrt::TerminalApp::IDialogPresenter>]
    is_composing     : false [Type: bool]
    [=0x7ffa3599cf88] m_inner          : 0x0 [Type: winrt::impl::abi<winrt::Windows::Foundation::IInspectable,void>::type *]
    [+0x028] m_references     : 0x1cbc8932f80 [Type: std::atomic<unsigned __int64>]
    [+0x030] _RequestedThemeChangedHandlers [Type: winrt::event<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,enum winrt::Windows::UI::Xaml::ElementTheme> >]
    [+0x048] _SettingsChangedHandlers [Type: winrt::event<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Windows::Foundation::IInspectable> >]
    [+0x060] _SystemMenuChangeRequestedHandlers [Type: winrt::event<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::TerminalApp::SystemMenuChangeArgs> >]
    [+0x078] _isUwp           : true [Type: bool]
    [+0x079] _isElevated      : true [Type: bool]
    [+0x080] _root            [Type: winrt::com_ptr<winrt::TerminalApp::implementation::TerminalPage>]
    [+0x088] _settings        [Type: winrt::Microsoft::Terminal::Settings::Model::CascadiaSettings]
    [+0x090] _settingsLoadExceptionText [Type: winrt::hstring]
    [+0x098] _settingsLoadedResult : 0x00000000 (The operation completed successfully.) [Type: HRESULT]
    [+0x09c] _loadedInitialSettings : false [Type: bool]
    [+0x0a0] _numOpenWindows  : 0x0 [Type: unsigned __int64]
    [+0x0a8] _dialogLock      [Type: std::shared_mutex]
    [+0x0b0] _dialog          [Type: winrt::Windows::UI::Xaml::Controls::ContentDialog]
    [+0x0b8] _appArgs         [Type: TerminalApp::AppCommandlineArgs]
    [+0x780] _settingsAppArgs [Type: TerminalApp::AppCommandlineArgs]
    [+0xe48] _reloadSettings  : {...} [Type: std::shared_ptr<ThrottledFunc<0> >]
    [+0xe58] _reloadState     [Type: til::throttled_func<0>]
    [+0xeb0] _languageProfileNotifier [Type: winrt::com_ptr<winrt::TerminalApp::implementation::LanguageProfileNotifier>]
    [+0xeb8] _reader          [Type: wil::unique_any_t<wil::folder_change_reader_t<wil::details::unique_storage<wil::details::resource_policy<wil::details::folder_change_reader_state *,void (__cdecl*)(wil::details::folder_change_reader_state *),&wil::details::delete_folder_change_reader_state,wistd::integral_constant<unsigned __int64,2>,wil::details::folder_change_reader_state *,wil::details::folder_change_reader_state *,0,std::nullptr_t> >,wil::err_returncode_policy> >]
    [+0xec0] _hasCommandLineArguments : true [Type: bool]
    [+0xec1] _hasSettingsStartupActions : true [Type: bool]
    [+0xec8] _warnings        : { size=0 } [Type: std::vector<enum winrt::Microsoft::Terminal::Settings::Model::SettingsLoadWarnings,std::allocator<enum winrt::Microsoft::Terminal::Settings::Model::SettingsLoadWarnings> >]
0:004> dx -r1 (*((TerminalApp!winrt::com_ptr<winrt::TerminalApp::implementation::TerminalPage> *)0x1cbc09486b8))
(*((TerminalApp!winrt::com_ptr<winrt::TerminalApp::implementation::TerminalPage> *)0x1cbc09486b8))                 [Type: winrt::com_ptr<winrt::TerminalApp::implementation::TerminalPage>]
*** WARNING: Unable to verify checksum for D:\dev\private\OpenConsole\src\cascadia\CascadiaPackage\bin\x64\Debug\AppX\Microsoft.Terminal.Settings.Model.dll
    [+0x000] m_ptr            : 0x1cbc8907290 [Type: winrt::TerminalApp::implementation::TerminalPage *]
0:004> dx -r1 ((TerminalApp!winrt::TerminalApp::implementation::TerminalPage *)0x1cbc8907290)
((TerminalApp!winrt::TerminalApp::implementation::TerminalPage *)0x1cbc8907290)                 : 0x1cbc8907290 [Type: winrt::TerminalApp::implementation::TerminalPage *]
    [+0x018] vtable           [Type: winrt::impl::produce<winrt::TerminalApp::implementation::TerminalPage,winrt::TerminalApp::ITerminalPage>]
    [+0x020] vtable           [Type: winrt::impl::produce<winrt::TerminalApp::implementation::TerminalPage,winrt::Windows::UI::Xaml::Data::INotifyPropertyChanged>]
    [+0x028] vtable           [Type: winrt::impl::produce<winrt::TerminalApp::implementation::TerminalPage,winrt::Windows::UI::Xaml::Controls::IPageOverrides>]
    [+0x030] vtable           [Type: winrt::impl::produce<winrt::TerminalApp::implementation::TerminalPage,winrt::Windows::UI::Xaml::Controls::IControlOverrides>]
    [+0x038] vtable           [Type: winrt::impl::produce<winrt::TerminalApp::implementation::TerminalPage,winrt::Windows::UI::Xaml::Controls::IControlOverrides6>]
    [+0x040] vtable           [Type: winrt::impl::produce<winrt::TerminalApp::implementation::TerminalPage,winrt::Windows::UI::Xaml::IFrameworkElementOverrides>]
    [+0x048] vtable           [Type: winrt::impl::produce<winrt::TerminalApp::implementation::TerminalPage,winrt::Windows::UI::Xaml::IFrameworkElementOverrides2>]
    [+0x050] vtable           [Type: winrt::impl::produce<winrt::TerminalApp::implementation::TerminalPage,winrt::Windows::UI::Xaml::IUIElementOverrides>]
    [+0x058] vtable           [Type: winrt::impl::produce<winrt::TerminalApp::implementation::TerminalPage,winrt::Windows::UI::Xaml::IUIElementOverrides7>]
    [+0x060] vtable           [Type: winrt::impl::produce<winrt::TerminalApp::implementation::TerminalPage,winrt::Windows::UI::Xaml::IUIElementOverrides8>]
    [+0x068] vtable           [Type: winrt::impl::produce<winrt::TerminalApp::implementation::TerminalPage,winrt::Windows::UI::Xaml::IUIElementOverrides9>]
    [+0x070] vtable           [Type: winrt::impl::produce<winrt::TerminalApp::implementation::TerminalPage,winrt::Windows::UI::Xaml::Markup::IComponentConnector>]
    [+0x078] vtable           [Type: winrt::impl::produce<winrt::TerminalApp::implementation::TerminalPage,winrt::Windows::UI::Xaml::Markup::IComponentConnector2>]
    is_composing     : true [Type: bool]
    [+0x008] m_inner          [Type: winrt::Windows::Foundation::IInspectable]
    [+0x010] m_references     : 0x1cbc88fe580 [Type: std::atomic<unsigned __int64>]
    [+0x080] Bindings         [Type: winrt::com_ptr<winrt::TerminalApp::implementation::XamlBindings>]
    [+0x088] _contentLoaded   : true [Type: bool]
    [+0x090] _Root            [Type: winrt::Windows::UI::Xaml::Controls::Grid]
    [+0x098] _TabRow          [Type: winrt::TerminalApp::TabRowControl]
    [+0x0a0] _TabContent      [Type: winrt::Windows::UI::Xaml::Controls::Grid]
    [+0x0a8] _AboutDialog     [Type: winrt::Windows::UI::Xaml::Controls::ContentDialog]
    [+0x0b0] _QuitDialog      [Type: winrt::Windows::UI::Xaml::Controls::ContentDialog]
    [+0x0b8] _CloseAllDialog  [Type: winrt::Windows::UI::Xaml::Controls::ContentDialog]
    [+0x0c0] _CloseReadOnlyDialog [Type: winrt::Windows::UI::Xaml::Controls::ContentDialog]
    [+0x0c8] _MultiLinePasteDialog [Type: winrt::Windows::UI::Xaml::Controls::ContentDialog]
    [+0x0d0] _LargePasteDialog [Type: winrt::Windows::UI::Xaml::Controls::ContentDialog]
    [+0x0d8] _ControlNoticeDialog [Type: winrt::Windows::UI::Xaml::Controls::ContentDialog]
    [+0x0e0] _CouldNotOpenUriDialog [Type: winrt::Windows::UI::Xaml::Controls::ContentDialog]
    [+0x0e8] _CommandPalette  [Type: winrt::TerminalApp::CommandPalette]
    [+0x0f0] _WindowIdToast   [Type: winrt::Microsoft::UI::Xaml::Controls::TeachingTip]
    [+0x0f8] _RenameFailedToast [Type: winrt::Microsoft::UI::Xaml::Controls::TeachingTip]
    [+0x100] _WindowRenamer   [Type: winrt::Microsoft::UI::Xaml::Controls::TeachingTip]
    [+0x108] _WindowRenamerTextBox [Type: winrt::Windows::UI::Xaml::Controls::TextBox]
    [+0x110] _CouldNotOpenUriReason [Type: winrt::Windows::UI::Xaml::Documents::Run]
    [+0x118] _UnopenedUri     [Type: winrt::Windows::UI::Xaml::Documents::Run]
    [+0x120] _NoticeMessage   [Type: winrt::Windows::UI::Xaml::Documents::Run]
    [+0x128] _ClipboardContentScrollViewer [Type: winrt::Windows::UI::Xaml::Controls::ScrollViewer]
    [+0x130] _ClipboardText   [Type: winrt::Windows::UI::Xaml::Controls::TextBlock]
    [+0x138] _KeyboardServiceWarningInfoBar [Type: winrt::Microsoft::UI::Xaml::Controls::InfoBar]
    [+0x140] _CloseOnExitInfoBar [Type: winrt::Microsoft::UI::Xaml::Controls::InfoBar]
    [+0x148] _SetAsDefaultInfoBar [Type: winrt::Microsoft::UI::Xaml::Controls::InfoBar]
    [+0x150] _PropertyChangedHandlers [Type: winrt::event<winrt::Windows::UI::Xaml::Data::PropertyChangedEventHandler>]
    [+0x168] _TitleChangedHandlers [Type: winrt::event<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::hstring> >]
    [+0x180] _LastTabClosedHandlers [Type: winrt::event<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::TerminalApp::LastTabClosedEventArgs> >]
    [+0x198] _SetTitleBarContentHandlers [Type: winrt::event<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Windows::UI::Xaml::UIElement> >]
    [+0x1b0] _FocusModeChangedHandlers [Type: winrt::event<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Windows::Foundation::IInspectable> >]
    [+0x1c8] _FullscreenChangedHandlers [Type: winrt::event<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Windows::Foundation::IInspectable> >]
    [+0x1e0] _ChangeMaximizeRequestedHandlers [Type: winrt::event<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Windows::Foundation::IInspectable> >]
    [+0x1f8] _AlwaysOnTopChangedHandlers [Type: winrt::event<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Windows::Foundation::IInspectable> >]
    [+0x210] _RaiseVisualBellHandlers [Type: winrt::event<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Windows::Foundation::IInspectable> >]
    [+0x228] _SetTaskbarProgressHandlers [Type: winrt::event<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Windows::Foundation::IInspectable> >]
    [+0x240] _InitializedHandlers [Type: winrt::event<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Windows::UI::Xaml::RoutedEventArgs> >]
    [+0x258] _IdentifyWindowsRequestedHandlers [Type: winrt::event<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Windows::Foundation::IInspectable> >]
    [+0x270] _RenameWindowRequestedHandlers [Type: winrt::event<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::TerminalApp::RenameWindowRequestedArgs> >]
    [+0x288] _IsQuakeWindowChangedHandlers [Type: winrt::event<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Windows::Foundation::IInspectable> >]
    [+0x2a0] _SummonWindowRequestedHandlers [Type: winrt::event<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Windows::Foundation::IInspectable> >]
    [+0x2b8] _CloseRequestedHandlers [Type: winrt::event<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Windows::Foundation::IInspectable> >]
    [+0x2d0] _OpenSystemMenuHandlers [Type: winrt::event<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Windows::Foundation::IInspectable> >]
    [+0x2e8] _QuitRequestedHandlers [Type: winrt::event<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable,winrt::Windows::Foundation::IInspectable> >]
    [+0x300] _hostingHwnd     : {...} [Type: std::optional<HWND__ *>]
    [+0x310] _tabView         [Type: winrt::Microsoft::UI::Xaml::Controls::TabView]
    [+0x318] _tabRow          [Type: winrt::TerminalApp::TabRowControl]
    [+0x320] _tabContent      [Type: winrt::Windows::UI::Xaml::Controls::Grid]
    [+0x328] _newTabButton    [Type: winrt::Microsoft::UI::Xaml::Controls::SplitButton]
    [+0x330] _settings        [Type: winrt::Microsoft::Terminal::Settings::Model::CascadiaSettings]
    [+0x338] _tabs            [Type: winrt::Windows::Foundation::Collections::IObservableVector<winrt::TerminalApp::TabBase>]
    [+0x340] _mruTabs         [Type: winrt::Windows::Foundation::Collections::IObservableVector<winrt::TerminalApp::TabBase>]
    [+0x348] _settingsTab     [Type: winrt::TerminalApp::SettingsTab]
    [+0x350] _isInFocusMode   : false [Type: bool]
    [+0x351] _isFullscreen    : false [Type: bool]
    [+0x352] _isMaximized     : false [Type: bool]
    [+0x353] _isAlwaysOnTop   : false [Type: bool]
    [+0x358] _WindowName      [Type: winrt::hstring]
    [+0x360] _WindowId        : 0x1cbc88b9890 [Type: unsigned __int64]
    [+0x368] _loadFromPersistedLayoutIdx : nullopt [Type: std::optional<unsigned int>]
    [+0x370] _numOpenWindows  : 0x1cbc88cc300 [Type: unsigned __int64]
    [+0x378] _maintainStateOnTabClose : false [Type: bool]
    [+0x379] _rearranging     : true [Type: bool]
    [+0x37c] _rearrangeFrom   : 524747 [Type: std::optional<int>]
    [+0x384] _rearrangeTo     : 32762 [Type: std::optional<int>]
    [+0x38c] _removing        : true [Type: bool]
    [+0x390] _previouslyClosedPanesAndTabs : { size=576460752303423483 } [Type: std::vector<std::vector<winrt::Microsoft::Terminal::Settings::Model::ActionAndArgs,std::allocator<winrt::Microsoft::Terminal::Settings::Model::ActionAndArgs> >,std::allocator<std::vector<winrt::Microsoft::Terminal::Settings::Model::ActionAndArgs,std::allocator<winrt::Microsoft::Terminal::Settings::Model::ActionAndArgs> > > >]
    [+0x3b0] _systemRowsToScroll : 0xe094fd70 [Type: unsigned int]
    [+0x3b8] _dialogPresenter [Type: winrt::weak_ref<winrt::TerminalApp::IDialogPresenter>]
    [+0x3c0] _bindings        [Type: winrt::com_ptr<winrt::TerminalApp::implementation::AppKeyBindings>]
    [+0x3c8] _actionDispatch  [Type: winrt::com_ptr<winrt::TerminalApp::implementation::ShortcutActionDispatch>]
    [+0x3d0] _layoutUpdatedRevoker [Type: winrt::impl::event_revoker<winrt::Windows::UI::Xaml::IFrameworkElement,&winrt::impl::abi<winrt::Windows::UI::Xaml::IFrameworkElement,void>::type::`vcall'{400}'>]
    [+0x3e0] _startupState    : -930440352 [Type: winrt::TerminalApp::implementation::StartupState]
    [+0x3e8] _startupActions  [Type: winrt::Windows::Foundation::Collections::IVector<winrt::Microsoft::Terminal::Settings::Model::ActionAndArgs>]
    [+0x3f0] _shouldStartInboundListener : false [Type: bool]
    [+0x3f1] _isEmbeddingInboundListener : false [Type: bool]
    [+0x3f8] _windowIdToast   : empty [Type: std::shared_ptr<Toast>]
    [+0x408] _windowRenameFailedToast : nullptr [Type: std::shared_ptr<Toast>]
    [+0x418] _displayingCloseDialog : false [Type: bool]
    [+0x419] _shouldMouseVanish : false [Type: bool]
    [+0x41a] _isMouseHidden   : false [Type: bool]
    [+0x420] _defaultPointerCursor [Type: winrt::Windows::UI::Core::CoreCursor]
    [+0x428] _lastPreviewedCommand [Type: winrt::Microsoft::Terminal::Settings::Model::Command]
    [+0x430] _restorePreviewFuncs : { size=286154163644857965 } [Type: std::vector<std::function<void __cdecl(void)>,std::allocator<std::function<void __cdecl(void)> > >]
0:004> dx -r1 (*((TerminalApp!winrt::Windows::Foundation::Collections::IVector<winrt::Microsoft::Terminal::Settings::Model::ActionAndArgs> *)0x1cbc8907678))
(*((TerminalApp!winrt::Windows::Foundation::Collections::IVector<winrt::Microsoft::Terminal::Settings::Model::ActionAndArgs> *)0x1cbc8907678))                 [Type: winrt::Windows::Foundation::Collections::IVector<winrt::Microsoft::Terminal::Settings::Model::ActionAndArgs>]
    [+0x000] m_ptr            : 0x0 [Type: winrt::impl::abi<winrt::Windows::Foundation::IUnknown,void>::type *]
0:004> dx -r1 (*((TerminalApp!TerminalApp::AppCommandlineArgs *)0x1cbc09486f0))
(*((TerminalApp!TerminalApp::AppCommandlineArgs *)0x1cbc09486f0))                 [Type: TerminalApp::AppCommandlineArgs]
    [=0x7ffa35a8e998] NixHelpFlag      : "-?" [Type: std::basic_string_view<char,std::char_traits<char> >]
    [=0x7ffa35a8e9b0] WindowsHelpFlag  : "/?" [Type: std::basic_string_view<char,std::char_traits<char> >]
    [=0x7ffa35a8e9c8] PlaceholderExeName : "wt.exe" [Type: std::basic_string_view<wchar_t,std::char_traits<wchar_t> >]
    [=0x7ffa35de9180] _commandDelimiterRegex : "^;|[^\\];" [Type: std::basic_regex<wchar_t,std::regex_traits<wchar_t> >]
    [+0x000] _app             [Type: CLI::App]
    [+0x3b0] _newTabCommand   [Type: TerminalApp::AppCommandlineArgs::NewTerminalSubcommand]
    [+0x3f0] _newTabShort     [Type: TerminalApp::AppCommandlineArgs::NewTerminalSubcommand]
    [+0x430] _newPaneCommand  [Type: TerminalApp::AppCommandlineArgs::NewPaneSubcommand]
    [+0x488] _newPaneShort    [Type: TerminalApp::AppCommandlineArgs::NewPaneSubcommand]
    [+0x4e0] _focusTabCommand : 0x1cbc0938e70 [Type: CLI::App *]
    [+0x4e8] _focusTabShort   : 0x1cbc0939270 [Type: CLI::App *]
    [+0x4f0] _moveFocusCommand : 0x1cbc0939670 [Type: CLI::App *]
    [+0x4f8] _moveFocusShort  : 0x1cbc0939a70 [Type: CLI::App *]
    [+0x500] _movePaneCommand : 0x1cbc0939e70 [Type: CLI::App *]
    [+0x508] _movePaneShort   : 0x1cbc093a270 [Type: CLI::App *]
    [+0x510] _swapPaneCommand : 0x1cbc093a670 [Type: CLI::App *]
    [+0x518] _focusPaneCommand : 0x1cbc093aa70 [Type: CLI::App *]
    [+0x520] _focusPaneShort  : 0x1cbc180e690 [Type: CLI::App *]
    [+0x528] _profileName     [Type: std::basic_string<char,std::char_traits<char>,std::allocator<char> >]
    [+0x550] _startingDirectory [Type: std::basic_string<char,std::char_traits<char>,std::allocator<char> >]
    [+0x578] _startingTitle   [Type: std::basic_string<char,std::char_traits<char>,std::allocator<char> >]
    [+0x5a0] _startingTabColor [Type: std::basic_string<char,std::char_traits<char>,std::allocator<char> >]
    [+0x5c8] _startingColorScheme : "" [Type: std::basic_string<char,std::char_traits<char>,std::allocator<char> >]
    [+0x5f0] _suppressApplicationTitle : false [Type: bool]
    [+0x5f4] _moveFocusDirection : None (0) [Type: winrt::Microsoft::Terminal::Settings::Model::FocusDirection]
    [+0x5f8] _swapPaneDirection : -1048516016 [Type: winrt::Microsoft::Terminal::Settings::Model::FocusDirection]
    [+0x600] _commandline     : { size=0 } [Type: std::vector<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::allocator<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >]
    [+0x620] _splitVertical   : true [Type: bool]
    [+0x621] _splitHorizontal : true [Type: bool]
    [+0x622] _splitDuplicate  : true [Type: bool]
    [+0x624] _splitPaneSize   : -1.#QNAN0 [Type: float]
    [+0x628] _movePaneTabIndex : 0 [Type: int]
    [+0x62c] _focusTabIndex   : -1 [Type: int]
    [+0x630] _focusNextTab    : false [Type: bool]
    [+0x631] _focusPrevTab    : false [Type: bool]
    [+0x634] _focusPaneTarget : 0 [Type: int]
    [+0x638] _currentCommandline : 0x0 [Type: TerminalApp::Commandline *]
    [+0x640] _launchMode      : nullopt [Type: std::optional<enum winrt::Microsoft::Terminal::Settings::Model::LaunchMode>]
    [+0x648] _isHandoffListener : true [Type: bool]
    [+0x650] _startupActions  : { size=0 } [Type: std::vector<winrt::Microsoft::Terminal::Settings::Model::ActionAndArgs,std::allocator<winrt::Microsoft::Terminal::Settings::Model::ActionAndArgs> >]
    [+0x670] _exitMessage     [Type: std::basic_string<char,std::char_traits<char>,std::allocator<char> >]
    [+0x698] _shouldExitEarly : true [Type: bool]
    [+0x69c] _loadPersistedLayoutIdx : 459 [Type: int]
    [+0x6a0] _windowTarget    [Type: std::basic_string<char,std::char_traits<char>,std::allocator<char> >]

We're seemingly hung waiting to get the layouts, in the defterm, non monarch window

@zadjii-msft
Copy link
Member

zadjii-msft commented Jan 27, 2022

@ghost ghost added the In-PR This issue has a related PR label Jan 27, 2022
@ghost ghost closed this as completed in #12272 Jan 27, 2022
@ghost ghost added Resolution-Fix-Committed Fix is checked in, but it might be 3-4 weeks until a release. and removed In-PR This issue has a related PR labels Jan 27, 2022
ghost pushed a commit that referenced this issue Jan 27, 2022
There are a couple places where we now bail immediately on startup, if we think the window is going to get created without any tabs. We do that to prevent a blank window from flashing on the screen when launching auto-elevate profiles. Unfortunately, those broke defterm in a particularly hard to debug way. In the defterm invocation, there actually aren't any tabs when the app completes initialization. We use the initialization to actually accept the defterm handoff. So what would happen is that the window would immediately close itself gracefully, never accepting the handoff.

In my defense, #8514, the original auto-elevated PR, predates defterm merging (906edf7) by a few months, so I totally forgot to test this when rolling it into the subsequent iterations of that PR.

* Related to: 
  * #7489
  * #12137 
  * #12205 
* [x] Closes #12267 
* [x] I work here
* [ ] No tests on this code unfortunately
* [x] Tested manually

Includes a semi-related code fix to #10922 to make that quieter. That is perpetually noisy, and when trying to debug defterm, you've only got about 30s to do that before it bails, so the `sxe eh` breaks in there are quite annoying.
Daasin added a commit to FOSS-Archives/microterminal that referenced this issue Mar 3, 2022
* Prevent potential null pointer crash in export buffer action (#12180)

## Summary of the Pull Request
Prevents a potential null pointer crash in the export buffer action.

## PR Checklist
* [x] Closes #12170
* [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
* [ ] Tests added/passed
* [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
* [ ] Schema updated.
* [ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx

## Validation Steps Performed
Manually tested.

* Disable being able to set the automatic adjustment of indistinguishable text (#12160)

## Summary of the Pull Request
Disables the automatic adjustment of indistinguishable text (added in #11095) because of the concerns brought up in #11917. Also, the setting is hidden in the SUI for as long as this feature remains disabled.

## PR Checklist
* [ ] Closes #xxx
* [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
* [ ] Tests added/passed
* [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
* [ ] Schema updated.
* [x] I work here

* [build] Fix the release build after we removed WTU (#12188)

* Merged PR 6815087: [Git2Git] !6814613: conhost FT: skip a test that fails on OneCore

[Git2Git] Merged PR 6814613: conhost FT: skip a test that fails on OneCore

Fixes MSFT-33720056

Retrieved from https://microsoft.visualstudio.com os.2020 OS official/rs_wdx_dxp_windev 6410311eee21e9ce147464af89d35f3569d4d2b9

* Setup OneFuzz for CI (#10431)

## Summary of the Pull Request
This PR sets up a OneFuzz pipeline on Azure DevOps for our repo.

## Detailed Description of the Pull Request / Additional comments
- fuzz.yml: defines the stages and pipeline for ADO
- build-console-fuzzing: builds the solution in the Fuzzing configuration
- build-console-steps: omits a few tasks that are unnecessary for this build configuration 
- sln and vcxproj changes: the solution wasn't building in CI. This makes sure that's fixed.
- fuzzing.md: a short guide on how to get OneFuzz set up and add a new fuzzer

## References
#7638

* atlas: apply colors/flags per column instead of just the first one (#12189)

The atlas engine currently applies colors and flags (underline,
overline, ...) based on the first column in a glyph; this means that
every member of a ligature is drawn in the same color with the same
underline style.

This commit makes us look up cell color and flags based on the actual
buffer column it represents, so that ligatures can be printed in
multiple colors and with different underline styles.

* Make sure titles always sanitized before passing over conpty (#12211)

When title updates are forwarded from the host to the client terminal,
they're passed over conpty in an `OSC 0` sequence. If there are any
control characters embedded in that title text it's essential they be
filtered out, otherwise they are likely to be misinterpreted by the VT
parser on the other side. This PR fixes a case where that sanitization
step was missed for titles initialized at startup.

Originally the sanitization step was handled in `DoSrvSetConsoleTitleW`,
which catches title changes made via VT escape sequences, or through the
console API, but missed the title initialization at startup. I've now
moved that sanitization code into the `CONSOLE_INFORMATION::SetTitle`
method, which should cover all cases.

This sanitization is only meant to occur when in "pty mode", though,
which we were originally establishing with an `IsInVtIoMode` call.
However, `IsInVtIoMode` does not return the correct result when the
title is set at startup, since the VT I/O thread is not initialized at
that point. So I've instead had to change that to an `InConptyMode`
call, which determines the conpty state from the launch args.

## Validation Steps Performed

I've manually confirmed the test case described in issue #12206 is now
working correctly.

However, the change to using `InConptyMode` caused some of the unit
tests to fail, because there isn't a real conpty connection when
testing. Fortunately there are some `EnableConptyModeForTests` methods
used by the unit tests to fake the appearance of a conpty connection,
and I just needed to add some additional state in one of those methods
to trigger the correct `InConptyMode` response.

Closes #12206

* ci: move helix queueing to a separate stage as well (#12167)

This pull request moves the Helix queuing to a separate stage outside of the build stage.

* Fix gridline drawings for DxEngine (#12224)

With the introduction of a common `RenderSettings` class in 62c95b5,
`PaintBufferGridLines` was now uniformly called with a proper alpha-less
`COLORREF` argument. This commit crudely fixes the issue by forcing
the color to be fully opaque in the `DxEngine` class.

## PR Checklist
* [x] Closes #12223
* [x] I work here
* [x] Tests added/passed

## Validation Steps Performed

* Launch pwsh.exe
* Hyperlinks get underlines on hover ✅

* AtlasEngine: Make shader hot-reloads possible in Windows Terminal (#12227)

This minor change makes it possible to hot-reload the AtlasEngine shaders under
Windows Terminal. Launching an UWP application from Visual Studio doesn't
necessarily result in a working directory inside the project folder,
which makes relative file paths impractical. While the `__FILE__` macro is
compiler dependent it works under our build setup with MSVC at least.

## Validation Steps Performed

* Shader hot-reloading works under Windows Terminal ✅

* Fix opacity restore for command palette previews (#12229)

This commit correctly restores the previous opacity when the command palette
preview is cancelled. It includes an additional change in order to make the
`AdjustOpacity` setter consistent and symmetric with the `Opacity` getter.

## PR Checklist
* [x] Closes #12228
* [x] I work here
* [x] Tests added/passed

## Validation Steps Performed

* Open Windows Terminal command palette
* Choose "Set background opacity..."
* Cycle through the items without selecting one
* Press Escape
* Previous opacity is restored ✅

* Misc. elevation crash fixes (#12205)

This is a collection of fixes:
* dd213a5c180997e8b761ca9f8078c0ba58503a0b: This was a crash I discovered while investigating. Probably not the root cause crash, but a crash nonetheless.
* ba491212afcbafdabc89d88b78f1dc5076dea0c3...0b18ae4ed73cbb15452c7c15aefa0c2671db9605: A collection of fixes to _not_ create the window when we're about to handoff each of the new tabs, panes, to an elevated window. That should prevent us from starting up XAML at all, which should take care of #12169. Additionally, it'll prevent us from restoring the unelevated windows, which should resolve #12190
* The remainder of the commits where fixes for other weird edge cases as a part of this. Notably:
  * ff7259918933067872a14df5b0e3c6f6d7764e57: Autopromote the first `split-pane` to a new tab, in the case that it's preceded with only `new-tab` actions that opened elevated windows. 

#### checklist

* [x] I work here
* [x] Docs are fine
* [x] Closes #12190
* [x] Closes #12169

* Fix unbalanced unlock in PtySignalInputThread::_Shutdown (#12181)

The only way to notice that LeaveCriticalSection() was called more
often than EnterCriticalSection() is by calling EnterCriticalSection()
again in the future, which will then deadlock.
Since this bug occurs on exit it wasn't noticeable with the old console lock.
With the new, stricter ticket lock this bug causes a fail-fast exit.

## PR Checklist
* [x] Closes #12168
* [x] I work here
* [x] Tests added/passed

## Validation Steps Performed
* Launch and then exit Windows Terminal
* OpenConsole cleanly exits ✅

* PR 6616045: Hand off to Windows Terminal Stable by default (!)

This commit also introduces a check that we are in an interactive
session before we perform handoff, so as to not break service accounts.

It also adds some tracing.

* Fix the build after ingesting 3bd3a4f71

* Fix spelling after inbox merge

* Uh oh someone broke main on an FI

  Fixes FI bugs introduced in 33c2cd458a1fb00077c0ae62cd8043e388d50943

* This actually fixes the FI. I obviously forgot to build the tests.

* Fix a merge conflict that broke the build (#12245)

Less "merge conflict" and more "something that got missed in a merge".
The offending commits are
*  68ab807
*  b3fab51

The Fuzzer build doesn't run on PR, so it didn't notice this couldn't build.

@carlos-zamora as an FYI

* Add support for hyperlinks to AtlasEngine (#12225)

`Renderer` owns the information of the hovered interval in `_hoveredInterval`
and provides no access to this information. We can only infer it from calls
to `PaintBufferGridLines`, if we're given the request to draw an underline
despite the previous call to `UpdateDrawingBrushes` not specifying it.
While it'd be possible to fix this and pass the underline flag to
`UpdateDrawingBrushes`, I personally consider this aspect of `Renderer` to be
a "leaky abstraction" as it's inherently incompatible with any engine not
working like `DxEngine`, such as the `AtlasEngine`. It's likely more
worthwhile to fundamentally change the `Renderer` architecture in the future.

## PR Checklist
* [x] Closes #11871
* [x] I work here
* [x] Tests added/passed

## Validation Steps Performed

* Launch pwsh.exe
* Hyperlinks are underlined when hovered ✅
* Launch WSL / bash
* Run `printf '\e]8;;http://example.com\e\\This is a link\e]8;;\e\\\n'`
* Hyperlink is underlined when hovered ✅

* AtlasEngine: Redraw immediately on opacity changes (#12226)

Since `AtlasEngine` prefers drawing without alpha for performance reasons,
calls to `EnableTransparentBackground` require a draw cycle.
This PR makes `Renderer::_NotifyPaintFrame` public and calls it.

Related to #9999.

## PR Checklist
* [x] I work here
* [x] Tests added/passed

## Validation Steps Performed

* Open Windows Terminal command palette
* Choose "Set background opacity..."
* Cycling through the items without selecting one
  changes background opacity immediately ✅

* Pin the `NETCore.App.Host` version to appease nuget (#12248)

This gets rid of warnings like

```
NU1102: Unable to find package Microsoft.NETCore.App.Host.win-x64 with version (= 3.1.21)
- Found 1 version(s) in TerminalDependencies [ Nearest version: 3.1.18 ]
```

Technically, there's a `NETCore.App.Host.3.1.21` that's out now. We _could_
migrate to that, but then we'd have to make sure to manually re-upload that
nuget package to our nuget feed, and then we'd still get this warning the
next time that package is updated.

Theoretically, there's a 6.x version too, but considering this is a debugging
tool, we don't care all that much.

* [x] I work here
* [x] Discussed this with Dustin
* [x] Gets rid of a SUPER TRIVIAL warning.

* Send an updated cursor position at the end of writing a run (#12210)

I can find the commit where this regressed tomorrow if needed. In #10685 we stopped emitting these notifications while we were deferring cursor drawing. We however forgot to send the notification at the end of the defer.

This likely has a small perf impact. We however do need these cursor position events for IMEs to be able to track the cursor position (and low key for #10821)

* [x] regressed in #10685
* [x] Closes #11170
* [x] I work here
* [x] Tests added

* Merged PR 6881653: [Git2Git] Merged PR 6881093: BUILD FIX: Reintroduce BOM to conhost manifests

[Git2Git] Merged PR 6881093: BUILD FIX: Reintroduce BOM to conhost manifests

Related work items: MSFT-37882151

Retrieved from https://microsoft.visualstudio.com os.2020 OS official/rs_wdx_dxp_windev b6f388b08b0b431ffc5663fe27eef260688febd6

* Merged PR 6882227: [Git2Git] Merged PR 6881763: Change to hardcoded system GUIDs to appease manifest validation

Manifest validation won't accept migration/initialization of HKCU-based registry keys anymore. The enforcement scripts says that they should be defined in code instead. So here it is: defined in code insteead.

Retrieved from https://microsoft.visualstudio.com os.2020 OS official/rs_wdx_dxp_windev 67c720b628de4acefbc381891b7e7d29d387038e

Related work items: MSFT-37867666

* Remove the Tray Icon from velocity (#12246)

This will turn the feature on always from this point on. That means 1.13 Stble
would be the first Stable release to have this feature (unless we cherry-pick
this to 1.12 stable, which we may)

* [x] Closes #12220
* [x] I work here

* Fix Opacity in Windows 10, again (#12255)

More fallout from the settings refactor. Probably because testing on a Windows
10 device is hard, because you actually need a physical machine to get acrylic
to behave correctly.

Basically, the code is simpler now, but we missed the windows 10 only edge case
where acrylic can get turned on, but we forget to enable the acrylic brush, so
it just stays off.

Refer to #11619 where this regressed, and #11643, #12229, because this is just a
hard problem apparently

* [x] Closes #11743. Technically OP is complaining about behavior that's
  by-design, but it made me realize this regressed in 1.12.
* [ ] No tests on this part of the `TermControl` unfortunately.
* [x] Hauled out my old Win10 laptop to verify that opacity works right:
  - [x] A fresh profile isn't created with any opacity
  - [x] Mouse wheeling turns on acrylic
  - [x] Using `opacity` only in the settings still stealthily enables acrylic

* Update PGO helpers to mitigate Y2K22 bug (#12262)

The PGO helpers NuGet had the Y2K22 bug. This receives and integrates the updated package in our project to restore NuGet functionality.

## PR Checklist
* [x] Closes #12261
* [x] I work here
* [x] If it builds it sits.

## Validation Steps Performed
* [x] Build new PGO instrument data with this pipeline update: https://dev.azure.com/microsoft/Dart/_build/results?buildId=44304850&view=results

* Expose Defterm info to ComboBoxItem properly (#12259)

## Summary of the Pull Request
Makes `Model::DefaultTerminal` an `IStringable`, which presents it as a string, when possible. This enables text search for defterm's setting. This also enables screen readers to identify the combo box items by their text content (app name, author, and version) as opposed to being treated as an item containing more text. As a part of that, I cleaned up the UIA tree to treat the item's name as "\<name\>, \<author\>, \<version\>". This is consistent with how the Settings App presents installed apps in Apps > Installed apps.

#11251 will be resolved upon verification by the accessibility team.

## Validation Steps Performed
Verified using Narrator and Accessibility Insights.

* Add a keyboard shortcut handler to the TabRowControl (#12260)

This makes the scenario mentioned in #8480 work. It's maybe not as holistic a solution as we'd like, but it definitely works.

Tested both with Narrator, and using the TabView scroll handles to get tab focus into the tab row manually

* [x] Closing the _active_ tab with <kbd>Ctrl+Shift+w</kbd> works (not the `TabViewItem` that has focus, but that's how Edgium works so that seems fine)
* [x] Opening a tab with <kbd>Ctrl+Shift+t</kbd> works
* [x] Opening the cmdpal with <kbd>Ctrl+Shift+p</kbd> works
* [x] Will take care of #8480 once we get the a11y team to validate
* [x] I work here


#### Notes:

None of

```xaml
PreviewKeyDown="_KeyDownHandler"
KeyDown="_KeyDownHandler"
KeyUp="_KeyDownHandler"
```

On the TerminalPage directly seem to fire when the focus is in the `TabViewItem` or the New Tab flyout. But they fire just fine when focus is in the `TermControl`. Interesting, because you'd think that the `TermControl` would have already handled the key...

* [Command Palette] Announce if suggestions were found to screen readers (#12266)

## Summary of the Pull Request
Expands on #9582. If the command palette finds results, the screen reader says "Suggestions available".

Makes the scenario mentioned in #7907 work.

This is sufficient for various reasons:
1. According to the bug report, saying that suggestions are available is sufficient
> Screen reader should provide the results info on searching commands like 10 results found or suggestions available when there are any search results (Source: #7907)

2. This is common practice. Settings app and XAML Controls Gallery do this for their search box.

Also, the user should be able to know how many results were found by tabbing/selecting a result item. When this is done, the screen reader will use `SizeOfSet` and `PositionInSet` to announce how many results were found and which one we're currently on.

## Validation Steps Performed
Verified this behavior using Narrator.
Verified it matches the behavior of the Settings app and the XAML Controls Gallery.

* Switch WinUI to the Windows 11 styles (#12241)

* Rename the "Bold" SGR attribute as "Intense" (#12270)

When we gave users the ability to configure how the `SGR 1` attribute
should be rendered, we described those options as "intense is bright"
and "intense is bold". Internally, though, we still referred to the `SGR 1`
attribute as bold. This PR renames all occurrences of "Bold" (when
referring to the `SGR 1` attribute) as "Intense", so the terminology is
more consistent now.

PR #10969 is where we decided on the wording to describe the `SGR 1`
attribute.

Specific changes include:
* `TextAttribute::IsBold` method renamed to `IsIntense`
* `TextAttribute::SetBold` method renamed to `SetIntense`
* `VtEngine::_SetBold` method renamed to `_SetIntense`
* `ExtendedAttributes::Bold` enum renamed to `Intense`
* `GraphicsOptions::BoldBright` enum renamed to `Intense`
* `GraphicsOptions::NotBoldOrFaint` enum renamed to `NotIntenseOrFaint`
* `SgrSaveRestoreStackOptions::Boldness` enum renamed to `Intense`

## Validation Steps Performed

I've checked that the code still compiles and the unit tests still run
successfully.

Closes #12252

* AtlasEngine: Implement ClearType blending (#12242)

This commit extracts DirectWrite related shader code into dwrite.hlsl
and adds support for ClearType blending.

Additionally the following changes are piggybacked into this commit:
* Some incorrect code around fallback glyph sizing was removed as
  this is already accomplished by `CreateTextLayout` internally
* Hot-reload failed to work with dwrite.hlsl as the `pFileName`
  parameter was missing
* Legibility of the dotted underline was improved by increasing
  the line gap from 1:1 to 3:1

Part of #9999.

## PR Checklist
* [x] I work here
* [x] Tests added/passed

## Validation Steps Performed
* Types are clear ✅

* Fix defterm in wake of auto-elevation (#12272)

There are a couple places where we now bail immediately on startup, if we think the window is going to get created without any tabs. We do that to prevent a blank window from flashing on the screen when launching auto-elevate profiles. Unfortunately, those broke defterm in a particularly hard to debug way. In the defterm invocation, there actually aren't any tabs when the app completes initialization. We use the initialization to actually accept the defterm handoff. So what would happen is that the window would immediately close itself gracefully, never accepting the handoff.

In my defense, #8514, the original auto-elevated PR, predates defterm merging (906edf7) by a few months, so I totally forgot to test this when rolling it into the subsequent iterations of that PR.

* Related to: 
  * #7489
  * #12137 
  * #12205 
* [x] Closes #12267 
* [x] I work here
* [ ] No tests on this code unfortunately
* [x] Tested manually

Includes a semi-related code fix to #10922 to make that quieter. That is perpetually noisy, and when trying to debug defterm, you've only got about 30s to do that before it bails, so the `sxe eh` breaks in there are quite annoying.

* Rename "Windows Terminal" -> "Terminal" (#12264)

This should be most of the surfaces that we really care about for displaying "Windows Terminal". There's a pile of other references in code, but I couldn't find any other resources that mention it. 

I left a lot of the references to Windows Terminal throughout. Seemed like it was fine to keep calling it that in most places, just these localized strings that are going to be displayed in the Shell that should be changed.

Rough compare:
![image](https://user-images.githubusercontent.com/18356694/151248506-edf9a6ab-d93f-438f-8755-cdf6ae643736.png)


The strings were also moved to the Context Menu resources file, because that's localized into more languages. 

@DHowett we may want to spin a full build to make sure this works and I didn't miss anything

* [x] Closes #12091

* Add support for ctrl+click on the dropdown to launch elevated (#12209)

Just like the shift+click and the alt click shortcuts, now Ctrl+Click will launch a new window with that profile, elevated.

I also found that the GenerateName wasn't updated for the elevate arg, so added that. I considered adding the following to the defaults, but decided against it. It added 10 more entries to the command palette that were only separated by the `elevate: true` param, so that didn't feel valuable. Those are posted below for posterity.

* [x] closes https://github.com/microsoft/terminal/projects/5#card-50759221
* [x] Tested manually

Includes a semi-related dead code removal for the `elevated` param for `_OpenNewWindow`, which didn't end up being used, and wouldn't work as intended anyways.

* Add Elevate flag to the SUI (#12257)

Does what it says on the box

![image](https://user-images.githubusercontent.com/18356694/151168418-68dd9737-ceee-4dbc-8ab4-2b07f5d3fddb.png)

* [x] I work here
* [x] Discussed in OneNote

* Don't open a hole in the terminal window when pasting (#12208)

Turns out, this bug only repros in Controls version 2. I'm not sure why, but it didn't repro only on main. So this fix does nothing until #11720 merges.

This PR prevents us from setting properties on the paste warning dialog unless we actually need to paste. 5f9c551b7edced4ed72a4b9694998143f96589a3 proves that settings these properties is what would cause the bug in the first place. 

I went a step further and cleaned this up a bit. This was always a little weird, having to get the `BracketedPasteEnabled` for the active control on the UI thread before we actually display the warning. In the post-#5000 future where going back to the control like this would be a x-proc hop, I figured I should just skip that entirely and plumb the `BracketedPaste` state out in the initial request. 

* [x] Closes #12202
* [x] I work here
* [x] No tests, but there's not a great place for a test like this
* [x] Doesn't affect docs

See also: #12241 which would introduce #12202 on its own.

* Fix broken reset button on some profile settings (#12275)

## Summary of the Pull Request
This fixes a bug where several settings would not show the reset button. The root cause of this issue is two fold:
1. Hooking up `CurrentXXX`
   - `GETSET_BINDABLE_ENUM_SETTING` was hooked up to the **settings** model profile object instead of the **view** model profile object. Since the settings model has no `PropertyChanged` system, any changes were directly being applied to the setting, but not notifying the view model (and thus, the view, by extension) to update themselves.
   - This fix required me to slightly modify the macro. Rather than using two parameters (object and function name), I used one parameter (path to getter/setter). 
2. Responding to the `PropertyChanged` notifications
   - Now that we're actually dispatching the `PropertyChanged` notifications, we need to actually respond to them. This behavior was defined in `Profiles::OnNavigatedTo()` in the `PropertyChanged()` handler. Funny enough, that code was still there, it just didn't do anything because it was trying to notify that `Profiles::CurrentXXX` changed. This is invalid because `CurrentXXX` got moved to `ProfileViewModel`.
   - The fix here was pretty easy. Just move the property changed handler to `ProfileViewModel`'s `PropertyChanged` handler that is defined in the ctor.

## References
Bug introduced in #11877

## Validation Steps Performed
✅ Profile termination behavior
✅ Bell notification style
✅ Text antialiasing
✅ Scrollbar visibility

* Update our SUI to follow win 11 guidelines (#11720)

## Summary of the Pull Request
Updates our SUI to follow the windows 11 style guidelines. Includes updating our setting containers to follow the 'expander' style.

## PR Checklist
* [x] Closes #10631
* [x] Closes #9978
* [x] Closes #9595
* [x] Closes #11231
* [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
* [ ] Tests added/passed
* [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
* [ ] Schema updated.
* [x] I work here

* AtlasEngine: Fix various ClearType rendering issues (#12278)

This commit fixes the following issues when ClearType rendering is enabled:
* Colored glyphs are now drawn using grayscale AA, similar to all current
  browsers. This ensures proper gamma correctness during blending in our
  shader, while generally making no discernable difference for legibility.
* Our ClearType shader only emits fully opaque colors, just like the official
  ClearType implementation. Due to this we need to force grayscale AA if the
  user specifies both ClearType and a background image, as the image would
  otherwise not be visible.

## PR Checklist
* [x] I work here
* [x] Tests added/passed

## Validation Steps Performed
* Grayscale AA when drawing emojis ✅
* Grayscale AA when using a background image ✅

* Add a BreadcrumbBar to the SUI (#12144)

## Summary of the Pull Request
**Note: This PR targets #11720**

Replaces our old pivot-style settings UI with a breadcrumb bar style, as per the windows 11 style guidelines. This required splitting `Profiles.xaml` into 3 separate files, `Profiles_Base.xaml` for general settings, `Profiles_Appearance.xaml` for appearance settings, `Profiles_Advanced.xaml` for advanced settings

The header in the navigation view is now a [BreadcrumbBar](https://docs.microsoft.com/en-us/windows/apps/design/controls/breadcrumbbar), which can be used to navigate back to `Profiles_Base` after moving into the advanced or appearance page (see GIF below)

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist
* [ ] Closes #xxx
* [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
* [ ] Tests added/passed
* [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
* [ ] Schema updated.
* [x] I work here

## Validation Steps Performed
![breadcrumb](https://user-images.githubusercontent.com/26824113/150410517-2232811e-4f5b-4732-9a0d-569cc94093b3.gif)

* Change where the NotificationIcon looks up our resources (#12282)

I didn't have the tray icon enabled before I suppose, so this never got hit? Anyhow, we need to change where we look for the AppName. Otherwise we crash on launch 😨

* [x] fixes `main`
* [x] I work here
* regressed in #12264
* [x] Tested by: actually running the Terminal with this, it launched

* Simplify the IStateMachineEngine interface (#12277)

There were a number of methods in the `IStateMachineEngine` interface
which controlled how the `StateMachine` interpreted escape sequences.
But essentially what it came down to was a bunch of a properties that
were always true for the `InputStateMachineEngine`, and always false for
the `OutputStateMachine` engine. To simplify the implementation, and
make things a little more efficient, I've now replaced all of those
virtual calls with a single boolean field in the `StateMachine` that is
initialised in the constructor. 

I started by adding an `isEngineForInput` parameter to the constructor
to indicate the the type of engine being passed in. But to keep things
simple for callers, and I also then added a constructor without that
parameter, which could derive the value automatically based on the type
of the engine pointer.

Then in the `StateMachine` implementation, anywhere we were previously
calling `ParseControlSequenceAfterSs3`, `FlushAtEndOfString`,
`DispatchControlCharsFromEscape`, or `DispatchIntermediatesFromEscape`,
we now just reference `_isEngineForInput`. But I've also copied across
some of the original comments from those methods, to make it clear at
the point of usage why we have a difference in behavior for input and
output.

To make sure the unit tests would catch any problems, I hardcoded the
`_isEngineForInput` field to `false`, and confirmed that it broke a
bunch of input engine tests. Then I hardcoded it to `true`, and
confirmed that it broke a bunch of state machine and output engine
tests. With the `_isEngineForInput` set correctly, everything passed.

I also manually tested the various output edge cases that would be
effected by this code - C0 controls within an escape sequence, time
delays in the middle of an escape sequence, `SCS` character set
selection which requires intermediates following an escape, and a G3
single shift select which depends on `SS3`.

Closes #12254

* Move to the 21H1 Helix pool (#12285)

The 19H1 pool is being decommissioned.

* Fix SizeOfSet and PositionInSet for 'Open JSON File' nav item (#12286)

## Summary of the Pull Request
According to https://github.com/microsoft/microsoft-ui-xaml/issues/1971, `PaneFooter` does not set the `SizeOfSet` or `PositionInSet` properties. However, `FooterMenuItems` does and works for our scenario. So we just replaced `PaneFooter` with `FooterMenuItems`.

Will handle #11154 upon verification from the accessibility team.

## Validation Steps Performed
✅ Verified using Accessibility Insights
✅ "Open Json File" button can still be invoked and keyboard navigated to as expected

* Fix a number of small issues with the SUI (#12287)

## Summary of the Pull Request
Fix various things from the recent SUI changes

- The Appearance/Advanced toggle buttons now have a max width
- We don't need `Profiles.cpp` anymore
- The `Elevate` setting is now back in the SUI
- There is no longer an alignment difference between non-expander settings and expander settings
- Expander settings no longer require hitting `Tab` twice to get to them

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist
* [ ] Closes #xxx
* [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
* [ ] Tests added/passed
* [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
* [ ] Schema updated.
* [x] I work here

* Two belling fixes (#12281)

Sorry for combining two fixes in one PR. I can separate if need be.

* [x] Closes #12276:
  - `"bellSound": null` didn't work. This one was easier, and is atomically in bcc2ca04fc14f39f37849b4bd837ad6cdb4cdaaa. Basically, we would deserialize that as an array with a single empty string in it, which we'd try to then play. I think it's more idomatic to have that deserialized as an empty array, which correctly falls back to playing the default sound.
* [x] Closes #12258: 
  - This one is the majority of the rest of the PR. If you leave the MediaPlayer open, then the media keys will _affect the Terminal_. More importantly, once the bell sounds, they'd replay the bell, which is insane. So the fix is to re-create the media player when we need it. We do this per-pane for simpler lifetime tracking. I'm not worried about the overhead of creating a mediaplayer here, since we're already throttling bells.
* Originally added in #11511
* [x] Tested manually
  - Use [`no.mp4`](https://www.youtube.com/watch?v=x2w9TyCv2gk) for this since that's like, 17s long
  - Checked that closing panes / the terminal while a bell was playing didn't crash
  - Playing a bunch of bells at once works
  - closing a pane stops the bell it's playing
  - once the bell stops, the media keys went back to working for Spotify
* [x] I work here

* Use the macros for duplicating as well (#12284)

Introduced in #11416

We weren't using these macros for duplicating as well, so I forgot to duplicate a couple settings. This PR switches duplicating over to using the macros as well, which shou;d reduce future bugs. 

Also adds notes to which properties are intentionally omitted from these macros.

* [x] closes #12265
* [x] Verified manually that #12120 still works as expected

* Code format after inbox integration

* Add a11y names to more controls (#12299)

## Summary of the Pull Request

This adds names to more of our focusable elements. This should be the rest of them that I missed in #11364

## References

* #9990: a11y megathread
* #11155: original version of this

## PR Checklist
* [x] Should take care of #11996 once confirmed
* [x] I work here


## Validation Steps Performed

Used Accessibility Insights to verify.

## Detailed Description of the Pull Request / Additional comments

There is one other weird bit. All the expanders that have content below the expander (not inline), show up as focusable, but don't have names. Even when I add names to them. I believe this is due to https://github.com/microsoft/microsoft-ui-xaml/issues/5820, which is fixed in https://github.com/microsoft/microsoft-ui-xaml/pull/6032, in https://github.com/microsoft/microsoft-ui-xaml/releases/tag/v2.8.0-prerelease.220118001. Unfortunately, we're on a 2.7 prerelease, so we don't have that fix yet. I may see how painful moving to that is, because we're gonna get another a11y ping as soon as 1.13 ships.

I pre-emptively added names to these guys in f7ba158dc, so that the new MUX should just fix this without any thinking on our part.

* Replaced the sizeof parameter of the if statement with ARRAYSIZE (#12273)

The pull request fixes the issue where "sizeof" parameter was use instead of "ARRAYSIZE".

## PR Checklist
* [x] Closes #xxx
* [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
* [x] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
* [x] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx

## Detailed Description of the Pull Request / Additional comments

This was a pretty straight forward issue, i just replace sizeof which gives the byte size with ARRAYSIZE which give the number of elements in the array.

* Make the SearchBox announce if it found results or not (#12301)

Basically, this is the same as #12266, but for the `SearchBoxControl`. Trickily, the ControlCore is the one that knows if there were search results, but the TermControl has to be the one to announce it.

* [x] Will take care of #11973 once a11y team confirms
* [x] Tested manually with Narrator
* [x] Resolves a part of #6319, which I'm repurposing just to displaying the number of results in general. 
* See also #3920

* Add PGOBuildMode to PGD merge step (#12306)

I added a condition to exclude some of the NuGet PGO stuff when there was no build mode, but appear to not have propagated any of it in the PGD merge job. This sets it to Optimize here so it'll go through.

## PR Checklist
* [x] Closes #12300
* [x] I work here.
* [x] It blends.

## Validation Steps Performed
* [x] Ran the PGO Instrument Phase
* [x] Ran the PGO Optimize Phase

* Add `experimental.useAtlasEngine` to schema (#12304)

does what it says on the can.

* [x] closes #12302

Co-authored-by: Dustin L. Howett <duhowett@microsoft.com>

* AtlasEngine: Fix support for combining diacritics (#12307)

`IDWriteTextAnalyzer::GetGlyphs` is not enough to get a
`DWRITE_SHAPING_TEXT_PROPERTIES::canBreakShapingAfter`
value that works for combining diacritical marks.
This requires an additional call to `GetGlyphPlacements`.
This commit increases CPU usage for complex text by ~10%.

## PR Checklist
* [x] Closes #11925
* [x] I work here
* [x] Tests added/passed

## Validation Steps Performed
* ``echo "[e`u{0301}`u{0301}]"`` prints an "e" with 2 accents ✅

* Set the default WSL starting directory to ~ (#12315)

The update that enables this on 20H1+, [KB5007253], went out in November
2021.

[KB5007253]: https://support.microsoft.com/en-us/topic/november-22-2021-kb5007253-os-builds-19041-1387-19042-1387-19043-1387-and-19044-1387-preview-d1847be9-46c1-49fc-bf56-1d469fc1b3af

* Make sure Terminal Stable shows up as default on 22544+ (#12320)

Since we turned this feature on in windows, and it relies on _lying
about the contents of the registry_, Terminal needs to be in on the
joke.

This will need to be reverted and serviced if we choose not to ship like
this.

Fixes #12308

* Research how often folks disable the KB warning (#12322)

* Localize and polish Profile page navigators (#12321)

## Summary of the Pull Request
Adds some polish around the navigators in the profile page (i.e. "appearance" and "advanced" button) by doing the following:
- use the localized resources for the pivot on the navigators
- simplify the navigators to be buttons instead of toggle buttons

Doing so has Narrator identify these as buttons rather than toggle buttons. So now Narrator won't say that the button is "off", which just makes more sense.

## Validation Steps Performed
✅ Narrator says "Advanced button" or "Appearance button" on the navigator
✅ The navigators look the same as before

* Update readme to account for minversion bump (#12332)

As noticed in https://github.com/microsoft/terminal/pull/12129#issuecomment-1027975112. 

Missed in #12129.

* version: bump to 1.14 on main

* Update accessible names for 'add profile' page buttons (#12324)

## Summary of the Pull Request
When using a screen reader, the buttons on the "add a new profile" page were being read weirdly:
- "New empty profile" button read as "create new button button"
- "duplicate" button read as "duplicate button button"

It's generally standard to read out the text inside the button, so I did just that by reusing the existing localized resources. This also removes the redundant "button" that is said by the screen reader.

I also removed the unused `AutomationId` and unnecessary `Button.Content` tags. 

#11156 can be closed upon validation by the accessibility team.

## Validation Steps Performed
✅ navigate to both buttons using Narrator; make sure it sounds right

* Fix more SUI and Rejuvenated UI issues (#12326)

- The add new profile page now uses a dropdown rather than radio buttons
- Subheaders, breadcrumb bar, buttons etc are now all centralized when the window is maximized (so they all align with the expanders now)
- We no longer override the titlebar colors and instead use the xaml defaults (these still aren't great but at least we will get the fix automatically when it happens upstream)
- Breadcrumb bar no longer has a negative margin, so there's no weird overlap that happens when the window becomes small
- The number boxes for launch size and font size now use the `Inline` placement mode rather than compact, allowing modification to the number with fewer clicks
- Textboxes now have a greater max width so they can occupy more space in the expander if needed

* appx: Use a different resource for the Properties DisplayName (#12337)

We have to do this so that the store sees us as one thing ("Windows
Terminal") and the Start menu sees us as another ("Terminal").

The store will reject our package if the value we use for "DisplayName"
here doesn't match the store's "reserved names".

This value is *not used* by the start menu.

* Refactor and simplify the ConGetSet API (#12247)

## Summary of the Pull Request

This PR refactors the `ConGetSet` API, eliminating some of the bloat produced by the `DoSrvPrivateXXXX` functions, simplifying the method naming to more closely match the `ITerminalApi` interface, and making better use of exceptions for error conditions in place of boolean return values.

## References

This is another small step towards merging the `AdaptDispatch` and `TerminalDispatch` classes (#3849).

## PR Checklist
* [x] Closes #12193
* [x] Closes #12194
* [x] CLA signed.
* [ ] Tests added/passed
* [ ] Documentation updated.
* [ ] Schema updated.
* [x] I've discussed this with core contributors already. Issue number where discussion took place: #3849

## Detailed Description of the Pull Request / Additional comments

There are two main parts to this. The first step was to get rid of all the `DoSrvPrivateXXX` functions, and move their implementation directly into the `ConhostInternalGetSet` class. For the most part this was just copying and pasting the code, but I also fixed a couple of bugs where we were using the wrong output buffer (the global buffer rather than the one associated with the output handle), and got rid of some unnecessary calls to `GetActiveBuffer`.

The second part was to make better use of exceptions for error conditions. Instead of catching the exceptions at the `ConGetSet` level, we now allow them to fall through all the way to the `StateMachine`. This greatly simplifies the `AdaptDispatch` implementation since it no longer needs to check a boolean return value on every `ConGetSet` call. This also enables the getter methods to return properties directly instead of having to use a reference parameter.

## Validation Steps Performed

A number of the unit tests had to be updated to match the new API. Sometimes this just required changes to method names, but in other cases error conditions that were previously detected with boolean returns now needed to be caught as exceptions. 

There were also a few direct calls to `DoSrvPrivateXXX` functions that now needed to be invoked through other means: either by generating an equivalent escape sequence, or calling a lower level API serving the same purpose.

And in the adapter tests, the mock `ConGetSet` implementation required significant refactoring to match the new interface, mostly to account for the changes in error handling.

* Adding missed MIT license in a few files (#12368)

## Summary of the Pull Request
Adding missed MIT license in a few files.

## PR Checklist
* [X] Closes #12062
* [X] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA

* Always publish the binlog (#12355)

We're investigating an issue where the build succeeded but something still got lost somewhere. If we had the binlogs, maybe we could diff and track it down faster.

* Fix toggle switches needing a negative margin (#12381)

## Summary of the Pull Request
Reducing the `MinWidth` of a toggle switch means it no longer needs a negative margin to align it correctly

## PR Checklist
* [ ] Closes #xxx
* [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
* [ ] Tests added/passed
* [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
* [ ] Schema updated.
* [x] I work here

## Validation Steps Performed
Setting a different language no longer causes the toggle switch to fall out of the expander

* Hardcode the language list for the package manifest and settings dropdown (#12375)

The `x-generate` statement seems to have fallen apart somewhere and is no longer generating the valid list of languages for display. This hardcodes the list into the manifest to restore it, which is a valid option per the documentation.

We also hardcode the limited subset of languages into the Settings application because the main application supports fewer languages than we have been translated into for the shell extensions for Windows Explorer and Start Menu integration.

## PR Checklist
* [x] Closes #12351
* [x] I work here.
* [x] Manual tests below

## Validation Steps Performed
- [x] Clean built locally with `msbuild.exe openconsole.sln /p:Configuration=Release /p:Platform=x64 /p:WindowsTerminalBranding=Release /t:Terminal\CascadiaPackage /m /bl:log4.binlog` and checked that the `appxmanifest.xml` that popped out the other side contained the same languages that it used to contain.
- [x] Built in the release pipeline
- [x] Installed release and preview branded packages. Changed my machine language to Polish (pl-PL) which is not one of the fully localized languages, but is one of the limited ones. Checked the start menu and right-click menus and saw Polish text for Terminal and Terminal Preview. Checked the Settings page in our app and saw only the limited 14 language list for the application itself.

* Fix disclaimer text not centralizing when maximized (#12374)

## Summary of the Pull Request
Fix the disclaimer text boxes in `Rendering` and `Defaults`not centralizing along with the expanders when the window is maximized

## PR Checklist
* [ ] Closes #xxx
* [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
* [ ] Tests added/passed
* [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
* [ ] Schema updated.
* [x] I work here

## Validation Steps Performed
<img width="1128" alt="defaults" src="https://user-images.githubusercontent.com/26824113/152584084-a999cb29-73bc-4970-889a-f95ea64c1b4c.png">
<img width="1128" alt="rendering" src="https://user-images.githubusercontent.com/26824113/152584099-a54519da-7bca-4ebe-b487-b68ac5cf1a37.png">

* Fix invoking the rightmost breadcrumb bringing you back to Profiles_Base (#12376)

## Summary of the Pull Request
We no longer do anything when the rightmost breadcrumb is invoked

## PR Checklist
* [x] Closes #12325 
* [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
* [ ] Tests added/passed
* [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
* [ ] Schema updated.
* [x] I work here

## Validation Steps Performed
Tested manually, cannot repro #12325 anymore

* Fix the grammar in a comment (#12386)

## Summary of the Pull Request
After 'must', the verb is used without 'to'. Correct: "must" or "have to".

## PR Checklist
* [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA

## Validation Steps Performed
Not required, only comment has been changed.

* Update Bug_Report.yml (#12404)

Added label for "Bug Report".

* Fix profile matching for paths containing unquoted whitespace (#12348)

The previous code had two bugs for:
* paths with more than 1 whitespace
  The code joins the argv array by replacing null-word terminators with
  whitespace. Unfortunately it always referred to the separator between
  `argv[0]` and `argv[1]` for this instead of continuing to join
  those between 1 and 2, etc.
* paths sharing a common prefix with another directory
  `SearchPathW` returns paths that aren't necessarily paths to files.
  A call to `GetFileAttributesW` was added, ensuring we only resolve file paths.

## PR Checklist
* [x] Closes #12345
* [x] I work here
* [ ] Tests added/passed

## Validation Steps Performed
* Paths with more than 1 whitespace resolve correctly ✅
* Paths with neighboring directories sharing a common prefix resolve correctly ✅
* Tests added ✅

* Fix a potential crash when setting up the jumplist (#12430)

I have no idea how this is even possible to hit. If this is able to be null, then we failed to load the settings in such a catastrophic way that nothing should work. However, OP's Terminal seemed to have already loaded the settings. By all accounts, doesn't make sense.

Regardless, the code here would crash if this ever is null, so we may as well catch it.

* [x] Closes #12360
* [ ] No way to verify this since it isn't even reproable on OPs machine, but it does have a lot of hits for that failure bucket (!!!)

* Fix focus box around color schemes combo box (#12439)

The focus box around the color schemes combo box was getting cut off, this change adds a small margin to the stackpanel to allow space for the focus box

## PR Checklist
* [x] Closes #12328

* XtermEngine: Explicitly emit cursor state on the first frame (#12434)

This commit fixes an issue, where we failed to emit a DECTCEM sequence to hide
the cursor if it was hidden before XtermEngine's first frame was finalized.
Even in such cases we need to emit a DECTCEM sequence
in order to ensure we're in a consistent state.

## Validation Steps Performed
* Added test✅
* Run #12401's repro steps around 30 times✅

Closes #12401

* Properly fall back to Segoe MDL2 for our icons on Win10 (#12438)

Segoe Fluent isn't available on Windows 10, and doesn't stealthily ship with WinUI. So if we manually set the font family to `"Segoe Fluent Icons"`, then that will just display boxes in Win10.

This instead uses the resource `"{ThemeResource SymbolThemeFontFamily}"` which will gracefully fall back on Win10.

See:
* https://github.com/microsoft/microsoft-ui-xaml/issues/3745, which inspired this solution.

Guess what! The backgound image icons were also manually specifying this font, so they had to get updated too. I couldn't find any other `Segoe Fluent` references in the code.

* [x] Closes #12350
* [x] Checked Windows 11 locally
* [x] Checked Win10 (screenshots incoming from other machine)

* Fix browse buttons getting cut off when the window is too narrow (#12435)

With the recent change to allow text boxes to be bigger, the `Browse` button that some of them have was getting cut off when the window was too narrow. This change puts the `Browse` button below the text box instead of next to it to prevent this issue.

## PR Checklist
* [x] Closes #12335

* Publish the symbols from our MSIX bundle to the public server (#12441)

Closes #12203

* Validate cursor position in UIA UTR ctor (#12436)

This adds some validation in the `UiaTextRange` ctor for the cursor position.

#8730 was caused by creating a `UiaTextRange` at the cursor position when it was in a delayed state (meaning it's purposefully hanging off of the right edge of the buffer). Normally, `Cursor` maintains a flag to keep track of when that occurs, but Windows Terminal isn't maintaining that properly in `Terminal::WriteBuffer`.

The _correct_ approach would be to fix `WriteBuffer` then leverage that flag for validation in `UiaTextRange`. However, messing with `WriteBuffer` is a little too risky for our comfort right now. So we'll do the second half of that by checking if the cursor position is valid. Since the cursor is really only expected to be out of bounds when it's in that delayed state, we get the same result (just maybe a tad slower than simply checking a flag).

Closes #8730 

Filed #12440 to track changes in `Terminal::_WriteBuffer` for delayed EOL wrap.

## Validation Steps Performed
While using magnifier, input/delete wrapped text in input buffer.

* Allow exceptions from ITerminalApi and TerminalDispatch (#12432)

This PR updates the `ITerminalApi` and `TerminalDispatch` classes to
allow exceptions to be thrown in case of errors instead of using boolean
return values.

## References

This brings the Terminal code into alignment with the `AdaptDispatch`
and `ConGetSet` changes made in PR #12247.

And while this isn't exactly a fix for #12378, it does at least stop the
app from crashing now.

## Detailed Description of the Pull Request / Additional comments

All the `TerminalDispatch` methods have had their `noexcept` specifiers
dropped, and any `try`/`catch` wrapping removed, so exceptions will now
fall through to the `StateMachine` class where they should be safely
caught and logged.

The same goes for the `ITerminalApi` interface and its implementation in
the `Terminal` class. And many of the methods in this interface have
also had their `bool` return values changed to `void`, since there is
usually not a need for error return values now.

## Validation Steps Performed

I've manually tested the `OSC 9;9` sequence described in #12378 and
confirmed that it no longer crashes.

* Fix defterm + elevate by default (#12442)

We absolutely cannot allow a defterm connection to
auto-elevate. Defterm doesn't work for elevated senarios in the
first place. If we try accepting the connection, the spawning an
elevated version of the Terminal with that profile... that's a
recipe for disaster. We won't ever open up a tab in this window.

* [x] Closes #12370
* [x] Tested manually, since there's not a great way to add defterm tests

* Don't ever allow `~` as a startingDirectory (#12437)

Basically, some WSL distros ship fragments that replace the `commandline` with the executable for their distro (`ubuntu.exe`, etc.). We didn't expect that when we changed the `startingDirectory` for them all to `~`. 

Unfortunately, `~` is really never a valid path for a process on windows, so those distros would now fail with

```
[error 2147942667 (0x8007010b) when launching `ubuntu1804.exe']
Could not access starting directory "~"
```

If we find that we were unable to mangle `~` into the user's WSL `commandline`, then we will re-evaluate that `startingDirectory` as `%USERPROFILE%`, which is at least something sensible, if albeit not what they wanted. 

* regressed in #12315
* [x] Closes #12353
* [x] Tested with a (`ubuntu1804.exe`, `~`) profile - launched successfully, where 1.13 in market fails.
* [x] added tests

* Eliminate the DispatchCommon class (#12389)

## Summary of the Pull Request

Other than the `s_ResizeWindow` function, the `DispatchCommon` class was
just a couple of static functions indirectly calling the `ConGetSet`
interface. So by moving the `s_ResizeWindow` implementation into the
`ConhostInternalGetSet` class, we could easily replace all usage of
`DispatchCommon` with direct calls to `ConGetSet`.

## PR Checklist
* [x] Closes #12253
* [x] CLA signed.
* [ ] Tests added/passed
* [ ] Documentation updated.
* [ ] Schema updated.
* [x] I've discussed this with core contributors already. Issue number
where discussion took place: #12253

## Validation Steps Performed

I've manually confirmed the resizing operations still work as expected.
The other functions are harder to test, but were trivial replacements.

* Eliminate the AdaptDefaults class (#12390)

## Summary of the Pull Request

The only method that was really needed in the `AdaptDefault` class was
the `PrintString` method, and that could easily be moved into the
`ConGetSet` interface. That lets us get rid of the `AdaptDefault` class
altogether, simplifying the construction of the `AdaptDispatch` class,
and brings us more in line with the `TerminalDispatch` implementation.

## PR Checklist
* [x] Closes #12318
* [x] CLA signed.
* [ ] Tests added/passed
* [ ] Documentation updated.
* [ ] Schema updated.
* [x] I've discussed this with core contributors already. Issue number
where discussion took place: #12318

## Detailed Description of the Pull Request / Additional comments

The `Execute` method was never used at all, so there was no problem with
losing that. But I also noticed there was an equivalent `ExecuteChar`
method in the `ITerminalApi` interface, which also wasn't being used, so
I've removed that too.

Then there was a `Print` method taking a single `wchar_t` parameter, but
that was ultimately implemented as a `PrintString` call anyway, so that
translation could easily be accomplished in the `AdaptDispatch` calling
code, the same way it's done in `TerminalDispatch`.

That left us with the `PrintString` method, which could simply be moved
into the `ConGetSet` interface, which would then more closely match the
`ITerminalApi` interface.

There was also a `GetResult` method, that returned the status of the
last `PrintString`, but that result was never actually checked anywhere.
What I've done now is make the `PrintString` method throw an exception
on failure, and that will be caught and logged in the `StateMachine`.

## Validation Steps Performed

I've started a bash shell in conhost to verify that it still works.
Since almost everything goes through `PrintString` in VT mode, it should
be obvious if something was broken.

* Enable the 'automatic adjustment of indistinguishable text' setting for Dev builds (#12444)

## Summary of the Pull Request
Followup from our discussion during team sync, the 'automatic adjustment of indistinguishable text' setting is going to be enabled for dev builds only.

## References
#12160 

## PR Checklist
* [ ] Closes #xxx
* [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
* [ ] Tests added/passed
* [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
* [ ] Schema updated.
* [x] I work here

## Validation Steps Performed
Setting appears on dev build and the feature works

* Automate packaged submission into Windows (#12449)

We're now building a fully provenance, compliance, and security
validated package (vpack) through our Release pipeline. This attaches
the last phase which automates the submission into the Windows product.
It will also automatically trace back the source, commit SHA, and build
to the submission here from the Windows side.

* [x] Automates a manual activity I performed a few times recently
* [x] I work here
* [x] Ran a test of it against `release-1.12` and it worked

* Add tooltips for nav items in the SUI (#12448)

## Summary of the Pull Request
Profiles with long names were having their titles cut off in the navigation view sidebar. This change adds tooltips to all nav view items so the full names can still be read.

## References
#11353 

## PR Checklist
* [ ] Closes #xxx
* [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
* [ ] Tests added/passed
* [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
* [ ] Schema updated.
* [x[ I work here

## Validation Steps Performed
<img width="261" alt="sidebartooltip" src="https://user-images.githubusercontent.com/26824113/153270004-02ec3ca7-8787-41be-a4ee-c60efa8cc5e6.png">
<img width="341" alt="sidebartooltip2" src="https://user-images.githubusercontent.com/26824113/153270033-263069f6-75ff-4215-9c83-e0a946ce9616.png">

* Fix the add/delete unfocused appearance buttons (#12451)

## Summary of the Pull Request
The add/delete unfocused appearance buttons now have text on them and are closed to the `Unfocused appearance` header

## References
#11353 

## PR Checklist
* [ ] Closes #xxx
* [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA
* [ ] Tests added/passed
* [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx
* [ ] Schema updated.
* [x] I work here

## Validation Steps Performed
<img width="548" alt="add" src="https://user-images.githubusercontent.com/26824113/153463971-de14a68b-5ed9-4768-80f8-2a5a5a21bc9f.png">
<img width="557" alt="delete" src="https://user-images.githubusercontent.com/26824113/153463993-9a7413d4-d895-4813-a6ff-1b157f1e72f4.png">

* Update the cmdpal narrator message to include the number of results. (#12429)

Updates this narrator announcement message to include the number of results it found. There are two versions:
* one for a singular result
* one for multiple results.

which should help with loc.

We're trying to get this in with the loc hotfix, so 👀 please 

* [x] will take care of the last bit of #7907

verified with narrator locally.

* Source index the public symbols too (#12450)

Now that we've figured out how to publish the public symbols to the official Microsoft download server... we may as well embed the source code linking information inside of them given that it's right here on GitHub. This attempts to run our existing source linking scripts against the public copy of the symbols. 

## PR Checklist
* [x] Closes #12443
* [x] I work here
* [x] Tested manually

## Validation Steps Performed
* [x] Build with it: https://dev.azure.com/microsoft/Dart/_build/results?buildId=44930661&view=logs&j=8f802011-b567-5b81-5fa6-bce316c020ce
* [x] Point the debugger at them and see if it can find the sources
* [x] Maybe also look at them in a hex editor or whatnot and validate I can see the source paths pointing at GitHub

* AtlasEngine: Fix leak check report for OpenConsole (#12415)

AtlasEngine enables various debug options for D2D and D3D in Debug builds.
Among those are resource leak checks, which were broken in OpenConsole
due to the unclean exit in `ServiceLocator::RundownAndExit`.
This commit fixes the issue by running the destructors
of any renderers registered in the Window class first.

## PR Checklist
* [x] Closes #12414
* [x] I work here

## Validation Steps Performed

* Set `HKEY_CURRENT_USER\Console\UseDx` to `2`
* Run `OpenConsole.exe`
* Exit
* No exceptions are thrown ✅

* Updates all our icons to use Segoe Fluent (#12469)

* use `FontFamily="{ThemeResource SymbolThemeFontFamily}"` where possible, in XAML
* use `FontFamily{ L"Segoe Fluent Icons, Segoe MDL2 Assets" }` in codebehind

Basically just a simple string replace.

* [x] This was a bullet point in #11353
* [x] Confirmed manually on my win10 PC
* see also #12438

Actually, this is the last bullet in #11353, so I'm gonna say closes #11353. 

Screenshots below.

* Enable Segoe Variable (#12462)

By adding another entry to our `maxversiontested`s.

Screenshots in https://github.com/microsoft/terminal/issues/12452#issuecomment-1035356054

* [x] Closes #12452 
* [x] I work here
* [x] Docs are fine
* [x] Tests are fine

* Fix off-by-one bug in NormalizeCommandLine (#12484)

#12348 introduced an off-by-one bug. While the `NormalizeCommandLine` loop
should exit early when there aren't at least _two_ arguments to be joined,
the final argument-append needs to happen even if just _one_ argument exists.

This commit fixes the issue and introduces changes to additionally monitor
the early loop exit, as well as the call to `ExpandEnvironmentStringsW`.

## PR Checklist
* [x] Closes #12461
* [x] I work here
* [x] Tests added/passed

## Validation Steps Performed
* All `TerminalSettingsTests` tests pass ✅

* Manually set the colors of the TabViewBackground (#12460)

This has been a saga.

Basically, any resources in `App.xaml` aren't going to be able to reference other theme-aware resources. We can't change the theme of the app at runtime, only elements within the app. So we can't use `ApplicationPageBackgroundThemeBrush` in app.xaml, because it will ALWAYS be evaluated as the OS theme version of that brush.

* regressed in #12326
* See also #10864
* #3917 CANNOT be fixed in the same way. We're lucky here that the TabView uses a `{ThemeResource TabViewBackground}` in markup to set the bg. We're not similarly lucky with the Pane one. 
* [x] closes #12356
* [x] Tested manually. You can confirm, my eyes are bleeding from the OS-wide light mode

* DON'T default-construct the `MediaPlayer` (#12463)

I believe this fixes #12383, but I can't seem to find a way to set up a N SKU VM to confirm this.

* [ ] TODO: wait till the morning to finish copying the N vhd I found off the build shares, to confirm this doesn't crash on launch.

* Fix a memory leak in onecore interactivity (#1234…
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-DefApp Issue-Bug It either shouldn't be doing this or needs an investigation. Priority-0 Bugs that we consider release-blocking/recall-class (P0) Product-Terminal The new Windows Terminal. Resolution-Fix-Committed Fix is checked in, but it might be 3-4 weeks until a release.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants