bcd9fb9a4c
The report view re-renders the member blocks on every poll while a suite runs (innerHTML replacement), so an expanded Run log collapsed within 500 ms. The <details> now carries the stable member index (data-member) and testRenderReport carries the open state across the re-render; the log content keeps updating in place. - frontend/tests/testsuites.test.js: the wiring pin (data-member emitted, the open state read and restored). - sw cache simple-v400 (index.html changed); style.css rebuilt. Tests: 837 frontend + 795 Python.