What's Changed
- fix(search): cap concurrent ffmpeg frame extractions in include_frames searches by @louis030195 in #4788
- fix(audio): ignore disabled transcription backlog in health by @louis030195 in #4789
- fix side-channel support papercuts by @louis030195 in #4787
- fix(chat): don't mark the previous answer as live during the pre-token gap by @louis030195 in #4786
- fix(db): partial index for snapshot compaction to stop false audio-stall notifications by @Anshgrover23 in #4770
- feat(app): add useEffect cleanup infra — shared hooks, TanStack Query, lint guardrail by @Anshgrover23 in #4790
- fix(screen): drain SCK window enumeration autorelease objects by @louis030195 in #4793
- [codex] relocate bundled bun before Linux AppImage execution by @louis030195 in #4752
- docs(design): add design system docs and component previews by @EzraEllette in #4805
Full Changelog: app-v2.5.88...app-v2.5.89