Added bug report tool for QA

Signed-off-by: Shawn Yuan (from Dev Box) <shuaiyuan@microsoft.com>
This commit is contained in:
Shawn Yuan (from Dev Box)
2025-12-02 11:15:12 +08:00
parent 5fc0ae7e42
commit 0428cf45af
3 changed files with 21 additions and 3 deletions

View File

@@ -70,6 +70,7 @@ public sealed partial class LaunchPage : Page
public void ReportBugBtn_Click(object sender, RoutedEventArgs e)
{
_coordinator?.ReportBug();
}
private void UpdateInfoBar_Tapped(object sender, TappedRoutedEventArgs e)

View File

@@ -23,5 +23,7 @@ public interface IQuickAccessCoordinator
bool UpdateModuleEnabled(ModuleType moduleType, bool isEnabled);
void ReportBug();
void OnModuleLaunched(ModuleType moduleType);
}

View File

@@ -87,6 +87,14 @@ internal sealed class QuickAccessCoordinator : IQuickAccessCoordinator, IDisposa
return true;
}
public void ReportBug()
{
if (!TrySendIpcMessage("{\"bugreport\": 0 }", "bug report request"))
{
Logger.LogWarning("QuickAccessCoordinator: failed to dispatch bug report request; IPC unavailable.");
}
}
public void OnModuleLaunched(ModuleType moduleType)
{
Logger.LogInfo($"QuickAccessLauncher invoked module {moduleType}.");
@@ -136,6 +144,11 @@ internal sealed class QuickAccessCoordinator : IQuickAccessCoordinator, IDisposa
return;
}
TrySendIpcMessage(payload, "general settings update");
}
private bool TrySendIpcMessage(string payload, string operationDescription)
{
lock (_ipcLock)
{
if (_ipcManager == null)
@@ -143,19 +156,21 @@ internal sealed class QuickAccessCoordinator : IQuickAccessCoordinator, IDisposa
if (!_ipcUnavailableLogged)
{
_ipcUnavailableLogged = true;
Logger.LogWarning("QuickAccessCoordinator: unable to send settings update because IPC is not available.");
Logger.LogWarning($"QuickAccessCoordinator: unable to send {operationDescription} because IPC is not available.");
}
return;
return false;
}
try
{
_ipcManager.Send(payload);
return true;
}
catch (Exception ex)
{
Logger.LogError("QuickAccessCoordinator: failed to send general settings update to runner.", ex);
Logger.LogError($"QuickAccessCoordinator: failed to send {operationDescription}.", ex);
return false;
}
}
}