fix: guard panel-default smoke null derefs, restore loading fallback (#159)

* fix: guard panel-default smoke null derefs, restore loading fallback

- Capture.qml: null-guard compactPanelItem before reading
  showPrimaryIdentity/implicitWidth (inner Loader loads async)
- Capture.qml: null-guard selectedCompactProvider() before .title
- main.qml compactText(): restore Loading/CodexBar fallback before
  the PanelRules text gate so a restrictive rule cannot blank the
  loading indicator

* fix: fail panel-default capture when usage reloads mid-scenario

scenarioReady() polled the panel-default branch without the
providers===panelUsageSnapshot reload guard the other panel
branches use, so a usage refresh between verify and settle could
be captured silently. Assert the snapshot before reporting ready.

* fix: address Codex review on panel-default smoke guards

- main.qml compactText(): keep the Loading/CodexBar fallback behind
  the PanelRules text gate (revert of earlier reorder). The whole-
  panel-text condition intentionally gates all text, loading
  included; verifyEmptyPanelRules() asserts exactly that.
- Capture.qml Timer: wait for compactPanelItem (inner Loader) before
  calling verifyPanelDefaults(), instead of failing mid-verify on a
  mutated config. The in-verify guards stay as a safety net.
8a064eaf92Simone committed on 9/8/2026, 2:22:53 AM· committed by GitHubparent5269cbf
1 file changedLine totals unavailable