v0.50.264 — ja locale, IME Safari fix, fence regex anchoring
Three contributor PRs ship this release:
🇯🇵 Japanese locale (#1439)
@snuffxxx added Japanese (ja) as the 8th built-in UI locale. 825 keys translated to natural, concise Japanese — kanji + hiragana + katakana mix, technical terms in their commonly-used Japanese form (Cronジョブ, MCPサーバー, APIキー, トークン), terse 体言止め style matching the brevity of the English originals (設定, 保存, キャンセル).
Full key parity with English (zero missing, zero extra), all ${var}/{0}-style placeholders preserved, all 26 arrow-function values mirrored with parameter names intact. Settings → Language picker auto-discovers via Object.entries(LOCALES).
🛠 IME composition Enter on Safari (#1441)
@ryan-remeo fixed Japanese/Chinese/Korean users on Safari being unable to compose into the message field. The existing e.isComposing guard worked on Chrome/Firefox but failed on Safari, where the committing keydown for IME confirmation fires AFTER compositionend with isComposing=false. New _isImeEnter(e) helper combines three guards (e.isComposing, e.keyCode===229, manual _imeComposing flag) and is used in both the autocomplete-dropdown Enter path and the send-Enter path. No behavior change for non-IME users.
📝 Markdown renderer fence anchoring (#1440, fixes #1438)
Reported by Cygnus (Discord, May 1) via @AvidFuturist. Triple backticks inside a code block's content (regex with ``` in lookbehind, scripts that document fences, embedded markdown-in-markdown) terminated the outer fence at the wrong place, leaking content into bold/italic passes that ate * characters and produced literal </strong> tags in the output.
Fix anchors all 4 fence regex sites per CommonMark §4.5 — opening fence must start a line (with up to 3 spaces of indent), closing fence must also start a line.
Pre-release Opus advisor follow-up
_imeComposingblur reset — Opus caught a recoverable footgun in PR #1441's manual flag: if focus is lost mid-composition (window blur or older Safari WebKit IME quirk),compositionendmay never fire and the flag stays stuck attrueuntil page reload. Added ablurlistener on#msgthat also resets the flag.
Two follow-up issues filed for separate PRs:
- #1442 — Server-side
_LOGIN_LOCALEparity forja,pt,ko(login page falls back to English) - #1443 — Promote
_isImeEnterhelper to 6 other Safari-affected Enter guards
Tests
3692 passing (+14 new from this batch + 20 from #1440). Browser sanity: 20 + 11 API checks green.
Contributors
- @snuffxxx (#1439 — Japanese locale)
- @ryan-remeo (#1441 — IME Safari fix)
- @nesquena-hermes (#1440 — fence regex)
Reported by Cygnus (Discord, fixed via #1440 → closes #1438).
Full diff: v0.50.263...v0.50.264