v0.51.18 — 5-PR batch (4 contributor + 1 self-built UX polish)
🐛 Fixed
- #1783 by @Sanjays2402 — Custom provider +
:free/:beta/:thinkingsuffix mis-resolution. Closes #1776 (the v0.51.15 follow-up against PR #1762).@custom:my-key:some-model:freenow correctly resolves toprovider=custom:my-key, model=some-model:free. - #1791 by @Michaelyklam — Keep assistant-only stream deltas on current turn. Closes #1787. No more spurious new-turn promotion when only assistant content streams.
- #1790 by @Michaelyklam — Keep workspace open from preview breadcrumb. Closes #1785. New
clearPreview({keepPanelOpen:true})option preserves panel state instead of closing on every preview-clear. - #1789 by @Michaelyklam — Preserve sidebar scrolling while streaming. Closes #1784. 350ms scroll-intent window suppresses auto-scroll-to-bottom during user gestures (passive listeners, monotonic clock).
✨ Added (UX polish)
- #1794 by @nesquena-hermes — Self-built UX bundle (APPROVED by @nesquena), four fixes:
- Rail tooltip cascade fix (removed conflicting
content:nonerule) +new conversationbutton no longer clipped — new.has-tooltip--bottom-rightvariant- Context-menu hover affordance (typo fix:
var(--hover)→var(--hover-bg)) - Rename modal pre-fills the basename via
setSelectionRange(0, dot)
- Rail tooltip cascade fix (removed conflicting
🧪 Tests
4723 → 4747 collected (+24). 4733 passed, 0 failed.
✅ Pre-release verification
- All 5 PRs CI-green individually
- File overlaps (
static/style.css+static/ui.jsbetween #1789 + #1794) auto-merged cleanly - All JS/Python files syntax-clean
- Browser API sanity (11/11 endpoints): all pass
- Opus advisor: SHIP all 5, 0 MUST-FIX, 1 informational SHOULD-NOTE on test pattern divergence (acceptable)
🙏 Closes
- #1776 (custom provider + suffix mis-resolution — was filed in v0.51.15 sweep)
- #1784 (sidebar scroll stolen during streaming)
- #1785 (workspace panel closes on breadcrumb-click from preview)
- #1787 (assistant-only stream deltas creating spurious new turns)
Full Changelog: v0.51.17...v0.51.18