github nesquena/hermes-webui v0.51.21
v0.51.21 — P0 hotfix + auto-compression UI + shell HTML fallback

latest release: v0.51.22
3 hours ago

v0.51.21 — 3-PR batch (P0 hotfix + auto-compression UI + shell HTML fallback)

Single-commit release rolling up 3 PRs filed since v0.51.20 — including a P0 hotfix from @nesquena for v0.51.20 #1828's wire-protocol regression.

Constituent PRs

  • #1843 by @nesquenaP0 hotfix: avoid double-404 response when Kanban bridge already sent error. Fixes }{ JSON concatenation on the wire from v0.51.20 #1828's _kanban_unknown_endpoint wrapper double-firing on bad(...) returns. 4 call sites changed identically (GET/POST/PATCH/DELETE).
  • #1838 by @Michaelyklam — Show auto-compression running state (closes #1832). Three-layer bridge: agent lifecycle status → SSE compressing event → existing compression card with phase:'running'.
  • #1836 by @Michaelyklam — Keep shell route errors HTML (closes #1835). Defense-in-depth try/except on the / shell route returns text/html; charset=utf-8 503 instead of bubbling JSON during restart/update races.

In-stage absorb

  • api/kanban_bridge.py — Documented handle_kanban_* three-valued return contract with bool | None type annotations + docstring on handle_kanban_get (cross-references on the three siblings). After PR #1843 made the False-vs-None distinction load-bearing for the caller's _kanban_unknown_endpoint decision, the entry points were declared -> bool while actually returning True | None | False. Per Opus pre-release verdict; production behavior unchanged.

Tests

  • 4805 → 4810 collected (+5)
  • 4799 passed, 8 skipped, 1 xfailed, 2 xpassed, 0 failed in 148.5s
  • Browser API harness 11/11 endpoints green
  • JS syntax check 1/1 modified file green (node -c static/messages.js)
  • No file deletions, no merge-conflict markers

Pre-release verification

  • All 3 PRs CI-green individually
  • File overlap on api/routes.py between #1843 (Kanban routes lines 2629/3429/4607/4621) and #1836 (shell route lines 2496-2535) resolved cleanly via stage-HEAD rebase — disjoint line ranges.
  • Pre-stamp re-fetch: all 3 PR heads still match local rebases (no mid-sweep force-pushes).
  • Opus advisor: SHIP. 1 fix absorbed in-release (kanban_bridge type annotations + docstring contract). 1 deferred to follow-up issue: parametrize PR #1843's regression test across GET/POST/PATCH/DELETE for defense-in-depth (the fix at all 4 call sites is identical, so partial-regression risk is low; the test depth is a separate cleanup).

Closes #1832, #1835. Hotfix for v0.51.20 #1828 wire-protocol regression.

Don't miss a new hermes-webui release

NewReleases is sending notifications on new releases.