github nesquena/hermes-webui v0.50.266
v0.50.266 — i18n parity + assistant-output readability

2 hours ago

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_LOCALE missing ja/pt/ko
  • #1443 promote _isImeEnter to 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

Don't miss a new hermes-webui release

NewReleases is sending notifications on new releases.