- StressTestScreen: use MinMaxLTTB LOD (caps output <= pixelWidth,
~half the vertices vs MinMax's ~2x) and move the sample generator
loop to Dispatchers.Default so it stops contending with the UI thread.
- SignalGenerator: run the shared producer loop off the main thread.
- Add a release buildType (R8 + resource shrink, debuggable=false,
debug-signed for on-device profiling); proguard-rules.pro needs no
keeps (no kotlinx.serialization; Compose/coroutines ship consumer rules).
- minSdk 26 -> 24.
Off-main producer un-starves the feed (280 -> ~1300 push/s); release
build (AOT+R8) vs debug at matched load: CPU -12%, fps +48%.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>