feat: detect a hard-crashed diagnostic + analyze the crash boot — 0.15.0 #10

Merged
jessey merged 1 commits from feat/m6-steam-detection into main 2026-05-22 06:53:14 +00:00
Owner

A focused capture that ends without a clean stop (no session-stop, no live
recorder) is treated as a likely hard freeze.

  • core/diagnostic.py: pending_crash() detects the unterminated session;
    acknowledge_crash() dismisses it; analyze_crash() combines the captured window
    (final readings + GPU-lost) with a focused scan of the PREVIOUS (crashed) boot
    • SMART/driver/persistence/temps.
  • health.check_previous_boot() scans journalctl -k -b -1; run_health_checks
    gained include_journal to avoid double-scanning for the crash path.
  • GUI: Games page shows a warning banner on launch for an interrupted diagnostic
    with Analyze crash / Dismiss → results dialog.
  • Tests for crash detection / clean-stop / acknowledge / in-progress.

Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com

A focused capture that ends without a clean stop (no session-stop, no live recorder) is treated as a likely hard freeze. - core/diagnostic.py: pending_crash() detects the unterminated session; acknowledge_crash() dismisses it; analyze_crash() combines the captured window (final readings + GPU-lost) with a focused scan of the PREVIOUS (crashed) boot + SMART/driver/persistence/temps. - health.check_previous_boot() scans `journalctl -k -b -1`; run_health_checks gained include_journal to avoid double-scanning for the crash path. - GUI: Games page shows a warning banner on launch for an interrupted diagnostic with Analyze crash / Dismiss → results dialog. - Tests for crash detection / clean-stop / acknowledge / in-progress. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
jessey added 1 commit 2026-05-22 06:53:08 +00:00
A focused capture that ends without a clean stop (no session-stop, no live
recorder) is treated as a likely hard freeze.

- core/diagnostic.py: pending_crash() detects the unterminated session;
  acknowledge_crash() dismisses it; analyze_crash() combines the captured window
  (final readings + GPU-lost) with a focused scan of the PREVIOUS (crashed) boot
  + SMART/driver/persistence/temps.
- health.check_previous_boot() scans `journalctl -k -b -1`; run_health_checks
  gained include_journal to avoid double-scanning for the crash path.
- GUI: Games page shows a warning banner on launch for an interrupted diagnostic
  with Analyze crash / Dismiss → results dialog.
- Tests for crash detection / clean-stop / acknowledge / in-progress.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
jessey merged commit ab89dda0b4 into main 2026-05-22 06:53:14 +00:00
jessey deleted branch feat/m6-steam-detection 2026-05-22 06:53:14 +00:00
Sign in to join this conversation.