github nesquena/hermes-webui v0.51.127
v0.51.127 — Release CY (7-PR low-risk batch)

latest release: v0.51.128
one hour ago

Release CY — v0.51.127 (stage-batch9, 7-PR low-risk batch)

What's in this batch

Seven PRs landing as one low-risk release:

Brick-class fixes (every-user severity)

  • #2854 by @nesquena-hermes — Embedded terminal opens then immediately closes with [terminal closed] on every Linux install (#2853). PR_SET_PDEATHSIG is per-thread, not per-process, and ThreadingHTTPServer worker threads die after each request — so the PTY shell got SIGTERM'd within ~10ms of spawning. Fix: drop the preexec_fn entirely. macOS users were unaffected (libc.prctl doesn't exist there). Closes #2853.

  • #2855 by @nesquena-hermes — "Update Now" loops for every user past the latest agent tag (#2846). The check side correctly fell through to branch comparison post-#2758, but the apply side still returned tags[0]git pull --ff-only v2026.5.16 no-op'd, server bounced, banner reappeared. apply_force_update had the same bug except worse (would have git reset --hard'd backwards 254 commits). Fix: extract _head_is_past_latest_tag and have both check + apply paths consult it. Opus pre-release review caught a "case D" parameter-asymmetry drift and patched the apply-side predicate to mirror the check side exactly. Closes #2846.

Bug fixes

  • #2852 by @ai-ag2026 — Chat stream_end now settles from the persisted session when done wasn't received, instead of leaving the active pane projecting live Thinking / assistant DOM state indefinitely. Duplicate done events are idempotent. Opus pre-release review added a post-await race guard inside _restoreSettledSession for the case where a late done arrives during the settlement network roundtrip.

  • #2811 by @Koraji95-coder — Native-Windows startup E2E CI workflow now self-tests on PR push, closing the post-#2783 gap where Windows-only regressions (WOW64 ProgramFiles redirect, etc.) could only be caught after release. Reworked per maintainer feedback to use a stub hermes_cli/__init__.py rather than pip install hermes-agent (not on PyPI).

Visible UX change

  • #2812 by @Koraji95-coder — Composer max-width is now responsive on wide displays: clamp(780px, 60vw, 1100px). The 780px floor preserves byte-identical layout at 1280px (Aron's laptop reference); 1440p gains ~84px; 1920p gains ~320px (composer chips stop squeezing). Mobile responsive logic untouched. Single CSS rule change. Telegram-approved at 1280/1440/1920/mobile viewports.

New features

  • #2772 by @vaur94 — Complete Turkish (tr) locale (~1,182 keys + login page strings + tr-TR speech recognition). Stage build absorbed sibling-PR i18n collision with #2776 by adding Turkish translations for 9 missing keys. Closes #2537 as superseded.

  • #2776 by @roryford — New PATCH /api/mcp/servers/{name} endpoint with enable/disable toggle UI. Also fixes a pre-existing bug: _handle_mcp_server_delete and _handle_mcp_server_update were defined but never wired into the HTTP router. DELETE wired into handle_delete, PUT wired via new handle_put/do_PUT. CORS allow-methods updated to include PUT (Opus pre-release nit). 5 i18n keys added to all 11 locales. 7 new tests.

In-stage fixes (agent-applied during build)

  • i18n parity — 9 Turkish translations added for the sibling-PR collision between #2772 (Turkish baseline) and #2776 (new MCP keys) + already-shipped en-only additions (open_in_vscode, settings_*_ignore_agent_updates).
  • Brittle locale-counter test bumptest_2735_open_in_vscode.py expected exactly 10 entries; Turkish locale brought it to 11.
  • Opus pre-release fixes — 1 MUST-FIX (committing the test-counter bump) + 3 SHOULD-FIX (case-D drift in _select_apply_compare_ref, _restoreSettledSession post-await race guard, CORS allow-methods PUT). Net +69/-9 across 5 files.

Verification

  • ✅ Full pytest: 6,424 passed / 6 skipped / 3 xpassed / 8 subtests passed in 2m34s on stage HEAD
  • ✅ JS syntax: node -c clean on all touched files
  • ✅ Python syntax: ast.parse clean on all touched files
  • ✅ Merge-marker grep: clean
  • ✅ CHANGELOG conflict resolution: in-rebase --ours auto-resolver for sibling-PR CHANGELOG collisions
  • ✅ Vision-verified UX evidence for #2812 at 4 viewports (1280/1440/1920/mobile via agent-browser CDP)
  • ✅ Telegram-approved by maintainer (msg IDs 2845-2848)
  • ✅ Opus pre-release advisor reviewed all 5 risk areas — all addressed inline

Follow-up issues to file

  • pdeathsig-on-supervisor-thread hardening (#2854 Option B — non-trivial design, not blocking ship)
  • French locale open_in_vscode parity gap (predates this batch; Opus advisor flagged during review)

Closes

  • #2853 (Linux terminal close — brick-class)
  • #2846 (Update Now loop — brick-class)
  • #2537 (superseded Turkish locale)

🤖 Generated and reviewed end-to-end by the agent pipeline (Phase 0 fit-screen → stage build → pytest gate → Opus pre-release advisor → UX evidence → Telegram approval).

What's Changed

  • Release CY — v0.51.127 (stage-batch9, 7-PR low-risk batch: brick-class Linux + brick-class update + composer wide-screen + Turkish + MCP toggle + SSE + Windows CI) by @nesquena-hermes in #2860

Full Changelog: v0.51.126...v0.51.127

Don't miss a new hermes-webui release

NewReleases is sending notifications on new releases.