v0.49.3 — Session title guard + breadcrumb nav + wider panel
Incorporates fixes from PRs #301 and #302.
Session title guard (closes #300)
User-renamed session titles are now preserved across conversation turns. Previously title_from() was called unconditionally after every turn, silently overwriting any user-assigned title. A if s.title == 'Untitled': guard now ensures auto-generation only happens when the session still has the default title. Fixed in both api/streaming.py (streaming path) and api/routes.py (sync path).
Clickable breadcrumb navigation (closes #292)
Workspace file preview now shows a clickable breadcrumb path bar when a file is opened. Each path segment navigates directly to that directory level. Paths with spaces and special characters are handled correctly. Closing the file preview restores the directory breadcrumb automatically.
Wider right panel
PANEL_MAX raised from 500 to 1200 — the right panel can now be dragged wider on ultrawide screens.
Responsive message width
.messages-inner scales up gracefully on large screens instead of capping at 800px everywhere: 1100px at 1400px+ viewport, 1200px at 1800px+ viewport.
Notes: The original feature-292-breadcrumb-panel-width branch contained several accidental regressions (removed app-dialog system, onboarding CSS, provider mismatch check, etc.) not part of its stated scope. These were all preserved in this release. See #310 for details.
Full changelog: CHANGELOG.md