v0.50.266 — i18n parity + assistant-output readability
Four narrow polish followups from the v0.50.264 retrospective + Cygnus's Discord feedback. Each fix is independent (zero file overlap on implementation) and behind a regression test.
What's new
🌐 i18n parity (#1442)
Server-side _LOGIN_LOCALE in api/routes.py now has full parity with static/i18n.js LOCALES — ja, pt, ko users see the localized login page instead of falling back to English. Plus 13 English-leaking login-flow keys patched in static/i18n.js across ko (10), es (3), and pt (3 missing entirely). 20 regression tests enforce two parity invariants going forward.
⌨️ Safari IME composition — broader coverage (#1443)
PR #1441 (v0.50.264) widened the chat composer's IME-Enter guard for Safari. This release promotes the helper to window._isImeEnter and replaces e.isComposing at 6 other Enter inputs (session rename, project create, project rename, app dialog, message edit, workspace rename). Japanese / Chinese / Korean users on Safari composing into any of those no longer get IME-confirming Enter committed prematurely.
✏️ Glued-bold-heading lift in renderMd (#1446)
LLMs in thinking/reasoning mode emit "section headers" glued to the end of the previous paragraph: Para 1 text.**Heading**\n\nPara 2 text.. Reported by Cygnus. Single regex pre-pass in renderMd lifts the glued bold into its own paragraph. Constraints (period before **, no space, ≤80 char inner, \n\n after) keep mid-paragraph emphasis untouched. Fenced code is protected via stash placeholders.
🎨 Markdown heading visual hierarchy (#1447)
Cygnus: "Headings seem to be missing across the board... they get lost so easily in all the plaintext." Pre-fix .msg-body h3 was the same size as body (14px) and h4-h6 were smaller. New scale: 24/20/17/15/14/13px with bottom borders on h1/h2 and uppercase + letter-spacing on h5/h6 for label-style affordance. .preview-md synced to match; data-font-size small/large overrides scaled proportionally.
Stats
- 3 commits, 12 files, +1152/-42 (~150 LOC implementation + ~1000 LOC tests)
- 3692 → 3760 tests (+68 across the v0.50.265 + v0.50.266 releases)
- All four issues filed by Opus pre-release advisor or by Cygnus via Discord (relayed by @AvidFuturist)
Closes
- #1442 server-side
_LOGIN_LOCALEmissing ja/pt/ko - #1443 promote
_isImeEnterto 6 other Safari Enter guards - #1446 glued-bold-heading lift for LLM thinking-block output
- #1447 markdown heading visual hierarchy
PR: #1449
Verification
- pytest: 3760 passed, 0 failed
- run-browser-tests.sh: 20/20 + 11/11 PASS
- webui_qa_agent.sh: 23/23 PASS (desktop + mobile + SSE)
- CI matrix: 3.11 / 3.12 / 3.13 all green
- Browser-verified live at port 8789 — both Cygnus issues confirmed visually