Add app diagnostic report (#1728)

* feat(diagnostics): add app diagnostic report

* fix(diagnostics): guard app diagnostic runs

* fix(diagnostics): include websocket runtime metrics

* fix(diagnostics): type websocket metric snapshot

* fix(diagnostics): include daemon shell env

* fix(loop): make stop cancellation test deterministic
This commit is contained in:
Mohamed Boudra
2026-06-25 23:20:52 +08:00
committed by GitHub
parent bdd9419189
commit 26f169866f
23 changed files with 1812 additions and 36 deletions
+12
View File
@@ -67,6 +67,7 @@ import type {
ProviderUsageListResponseMessage,
DaemonGetStatusResponse,
DaemonGetPairingOfferResponse,
DiagnosticsResponse,
AgentRewindResponseMessage,
ListTerminalsResponse,
CreateTerminalResponse,
@@ -351,6 +352,7 @@ type ProviderDiagnosticPayload = ProviderDiagnosticResponseMessage["payload"];
type ProviderUsageListPayload = ProviderUsageListResponseMessage["payload"];
type DaemonStatusPayload = DaemonGetStatusResponse["payload"];
type DaemonPairingOfferPayload = DaemonGetPairingOfferResponse["payload"];
type DiagnosticsPayload = DiagnosticsResponse["payload"];
type ReadProjectConfigPayload = Extract<
SessionOutboundMessage,
{ type: "read_project_config_response" }
@@ -3755,6 +3757,16 @@ export class DaemonClient {
});
}
async collectDiagnostics(requestId?: string): Promise<DiagnosticsPayload> {
return this.sendNamespacedCorrelatedSessionRequest({
requestId,
message: {
type: "diagnostics.request",
},
timeout: 30000,
});
}
async patchDaemonConfig(
config: MutableDaemonConfigPatch,
requestId?: string,