SIGN IN SIGN UP

docs: fix accumulated staleness in architecture docs, README, and website

A full audit turned up drift across the technical reference docs, mostly
predating this week's work:

- docs/architecture.md and CLAUDE.md described a rigstats-backend::monitor.rs
  module (normalize_profile, pick_target_monitor, normalize_visible_panels)
  that doesn't exist — that responsibility moved to geometry.rs a while ago.
  Same for a few lhm_process.rs functions (get_lhm_task_details and friends)
  and a diagnostics.rs module — diagnostics collection actually lives in
  windows/status.rs. Removed the fictional module/function references,
  documented what's actually there instead.
- docs/architecture.md's Dashboard Panels table was missing the `power`
  panel entirely, inconsistent with its own other tables. Added.
- Both files were missing lock_ext.rs (the LockSafe poison-tolerant mutex
  helper used throughout windows/*.rs) and win32_behind.rs from their module
  lists. Added.
- windows/CLAUDE.md (the dialog design contract) had drifted the most:
  dialog_btn_secondary shown with a stale 2-arg signature (now takes
  `dc: &DialogColors`), three frame-constructor functions documented that
  don't exist (actual pattern is one dialog_frame(dc) reused with per-call
  .inner_margin() overrides), a colour table presenting dark-mode-only
  values as fixed constants with no mention of DialogColors/light mode, a
  mutex example using raw .lock().unwrap() instead of the .lock_safe()
  used everywhere now, and no mention of dialog_btn_secondary_compact.
  Rewrote against the current code.
- "Reliability and correctness" in docs/architecture.md described
  Tauri/JS-era behavior (isValidStatsPayload, isTicking, TempThresholdPayload)
  that has no equivalent in the current Rust/egui code, and claimed a
  last-known-good LHM sample is kept across ticks — it isn't. Rewrote to
  match reality, including that threshold alert notifications don't
  currently fire at all (tracked as a bug, see #179).
- README.md: RAM speed labeled MHz (actual unit is MT/s), GPU core clock
  labeled MHz (actually shown in GHz), GPU memory clock listed as if
  displayed when it's collected but never rendered.
- website's separate diagnostics-ZIP table (in the Support section) had
  drifted from the real ZIP contents — referenced a nonexistent
  sidecar-parsed.json and was missing 5 real files. Replaced with the same
  13-file list as README's (correct) table.
- Fixed a stray code comment in stats.rs referencing prune_old_logs, which
  was renamed to prune_old_sessions when the session model shipped.

Also includes the not-yet-committed Rust toolchain pinning documentation
(README/CONTRIBUTING/docs/setup.md prerequisites, docs/release.md rationale)
from the previous round of doc work.
D
Daniel Valfridsson committed
30924e3b84c9556ca9e18e84ba54eff741d99853
Parent: 29edf3f