# LA StressLab 1.1.50 — 2026-07-22

## Resumo
**P3** popup (PASS não vira FALHOU por soft) + **P4** suite; harden do **auto-update** (R2 403 sem UA) + regra de release (Telegram / não regressar).

## Correções

### Auto-update
- `_http_get_json` / download: UA obrigatório + retry com UA browser em HTTP 403 (R2 público)
- Auto-check falho deixa breadcrumb no log de eventos (não some em silêncio)

### P3 — Popup / diagnostics
- Throttle térmico sem abort → **warning** (não critical)
- `graphics_warn` / soft GPU com MATS limpo → **warning**
- Banner PASS→FAIL só com critical em allowlist dura (verify, RAM, SMART, MATS, TDR, limite térmico)

### P4 — Regressão
- `tools/test_p3_p4_popup.py` (popup + matrix Completo + UA retry)

## Arquivos principais
`update_check.py` · `app.py` · `diagnostics.py` · `result_popup.py` · `.cursor/rules/release-invariants.mdc`

## Testes
- `tools/test_p3_p4_popup.py`
- regressão: `test_p0_verdict` · `test_p1_p2_verdict` · `test_telegram_survive_update`

## Notes (latest.json)
```
1.1.50 — Popup não FAIL por throttle/soft GPU; auto-update endurecido (R2 UA); suite P3/P4
```
