- ProviderEventLoop.stop(): close_all_sessions fan-out on the live loop before detach +
bounded pending-task drain before loop.close() (zero 'Task was destroyed' live-proven);
close_all_sessions weak-registry shutdown fan-out in browser_session_managers.
- SCEX-FR-038 independent mutation readback: browser_readback.py (same-session fresh
client_id SELECT, cleanup-aware expectation, canonical 6dp float normalization);
transport wiring adds readback_verified checkpoint; BrowserTransportReadbackMismatch ->
reconciliation_required/effect unknown/retry blocked; INV_7 kept (browser.py 395 LOC
via factory-helpers extraction).
- Live canaries: actions/mutation (readonly-canary-20260918T174659/174740/184343Z) and
native filters (filters-canary-20260918T195946Z: values/clear/replay/chart PASS; date
vector absent on stand — external prerequisite).
- Robustness fixes from live flake: pre-apply Escape (stale overlay in reused sessions)
and bounded antd dropdown settle in browser_native_filter.
- Root-cause of the 82.75/82.74 divergence: mid-step post-SELECT vs post-restore
lifecycle skew, not a cache defect.