- Improved OpenWebUI/OpenAI streaming reliability, including split SSE frame handling, structured done events, usage capture, source updates, and selected-model metadata.
- Reduced chat streaming UI churn with adaptive buffering, duplicate status/follow-up suppression, and cheaper rendering for long plain-text streams.
- Added incremental markdown compilation for streaming messages so completed markdown blocks are reused instead of recompiling the whole response.
- Hardened markdown background isolates with better crash/exit handling and cleanup for pending requests.
- Improved code block rendering with cached syntax highlighting and lighter previews for very large JSON blocks.
- Enhanced native iOS sheets with richer source/status rows, favicons, query chips, links, snippets, and pending-state display.
- Improved source display in chat, including better native-sheet source metadata and favicon support.
- Made conversation loading/parsing more resilient and faster by parsing large payloads from bytes and offloading heavier work.
- Fixed serialization for chat status history, code executions, code execution results, and conversation messages.
- Improved drawer edge-swipe behavior so horizontal scrollable content is less likely to accidentally open the drawer.
- Updated SVG rendering support by adding jovial_svg and a shared JovialSvgImage widget.
- Improved TTS handling by preparing speech text on demand and avoiding unnecessary work while messages stream.
- Fixed iOS project settings, including the debug app icon configuration and iOS deployment target.
- Expanded tests across streaming, conversation parsing, serialization, worker management, markdown rendering, follow-up suggestions, drawer gestures, and source/status UI.
Full Changelog: v3.1.1...v3.1.2