Speakeasy 0.2.2
Speakeasy 0.2.2 reduces rendering memory, improves recording and setup responsiveness, and fixes native window resource and scheduling defects.
-
Settings uses embedded SVG diamonds, and all three renderers allocate path surfaces only when needed. Paired native Windows measurements showed 38.5–39.0% lower GPU committed memory and 23.4–25.3% lower process private commitment with Settings open. After 12 resizes, reductions were 73.2% and 69.2%. Windows RSS stayed essentially flat. Linux software rendering used about 31 MiB less resident memory at 2× scale. The pill retains its animated paths and antialiasing quality; complete Windows Settings images differed only at 66 diamond-edge pixels.
-
macOS window hide/show retains one owned frame source and subscribes it to a shared display link. This backports an upstream fix for native resources retained on each stop/start cycle. Portable lifecycle tests cover repeated visibility, display changes, failed starts, and window destruction; native macOS memory savings remain unmeasured.
-
Finishing or cancelling capture wakes its owned consumer immediately. Paired component measurements reduced the polling delay from about 2.9 ms to 0.02 ms median on native Windows, and from 2.6 ms to 0.06 ms on Linux. The p95 delay fell from about 5.1 ms to 0.03 ms on Windows and from 4.8 ms to 0.09 ms on Linux. This shared Windows/macOS/Linux change preserves callback work and recording cadence; native microphone teardown and full dictation latency are separate measurements.
-
Verifying resumed or completed model downloads uses bounded 1 MiB asynchronous reads. The same 714 MB public model verified in 340 ms versus 881 ms on Linux and 371 ms versus 505 ms in a native Windows component probe. Cancellation still yields between chunks and preserves partial data for retry. These are verification timings, not download or inference gains.
-
Linux GUI startup no longer reaches GPUI's unimplemented X11 native-handle methods.
-
The idle Linux pill starts unmapped, with its nonactivating and click-through configuration applied before it appears.
-
Buffered XCB startup events start frame scheduling without needing another desktop event. This fixes a reproduced black Settings window in an isolated desktop.
-
Buffered events are also drained after foreground tasks, so windows opened after launch render reliably. A disconnected X server terminates the event loop even with every window hidden, avoiding a reproduced one-core CPU loop.
-
Windows refresh timing preserves fractional clock precision. Valid reduced refresh-rate ratios no longer divide by zero in the fallback calculation; invalid intervals use the existing default. The arithmetic failure is reproduced; the native trigger has not been observed.
-
Release checks exercise SVG/path rendering, resize, and repeated show/hide on owned windows. Linux checks inspect actual rendered pixels and packaged GUIs on a private virtual display. Windows checks also exercise hidden paint acknowledgement; native demo and tray acceptance passed locally.
The native fixes use a documented patch to the pinned GPUI source. Recognition, recording limits, display pacing, and local-only behavior are preserved. Native microphone, clipboard, GNOME/KDE compositor, Windows display-power, and macOS interaction acceptance remain separate. Detailed evidence and measurement limits are in docs/performance.md.