Priority: P1
Why
Windows process diagnostics can time out and become a Diagnostics failure. The current Windows query shells out to PowerShell with a 1 second timeout and performs per-process CIM lookups, which is fragile under load.
Diagnostics evidence
From C:\Users\Will\.t3\userdata\logs\server.trace.ndjson* on May 26, 2026:
- Recent failures included
runProcess with ProcessDiagnosticsError: Failed to query process diagnostics. timed out.
- The failures came from the process diagnostics path used by Settings -> Diagnostics.
apps/server/src/diagnostics/ProcessDiagnostics.ts sets PROCESS_QUERY_TIMEOUT_MS = 1_000 and readWindowsProcessRows() runs Get-CimInstance Win32_Process plus a per-process Get-CimInstance Win32_PerfFormattedData_PerfProc_Process lookup.
Acceptance criteria
Priority: P1
Why
Windows process diagnostics can time out and become a Diagnostics failure. The current Windows query shells out to PowerShell with a 1 second timeout and performs per-process CIM lookups, which is fragile under load.
Diagnostics evidence
From
C:\Users\Will\.t3\userdata\logs\server.trace.ndjson*on May 26, 2026:runProcesswithProcessDiagnosticsError: Failed to query process diagnostics. timed out.apps/server/src/diagnostics/ProcessDiagnostics.tssetsPROCESS_QUERY_TIMEOUT_MS = 1_000andreadWindowsProcessRows()runsGet-CimInstance Win32_Processplus a per-processGet-CimInstance Win32_PerfFormattedData_PerfProc_Processlookup.Acceptance criteria