What's new
Session title auto-generation now fires for all default title states — 'Untitled', 'New Chat', and empty string. Previously, sessions with 'New Chat' as their default title (common from some external clients/forks) would never receive an auto-generated title after the first message. The fix is a single-line expansion of the condition in api/streaming.py.
Duplicate close button on mobile is gone. On viewports ≤900px wide, the desktop workspace panel collapse button (#btnCollapseWorkspacePanel) and the mobile X button (.mobile-close-btn) appeared simultaneously. CSS now hides the desktop button at mobile widths and shows only the dedicated mobile button.
Tests
11 new tests in tests/test_sprint41.py — 802 total (up from 791).