github nesquena/hermes-webui v0.51.77
v0.51.77 — Release BA

latest releases: v0.51.80, v0.51.79, v0.51.78...
4 hours ago

v0.51.77 — Release BA

Stage-370: 1-PR follow-up release.

Composition

Fixed

  • PR #2390 by @franksong2702 (refs #2376, #2344, #2347, #2377) — Live progress Activity grouping no longer degrades consecutive tool calls into repeated Activity: 1 tool rows. Splits the previously-shared reset helper into two operations:
    • tool events only reset the next-text-segment anchor (no group close)
    • interim_assistant events close the current Activity group (the actual timeline boundary)
  • Adds a WebUI-only ephemeral progress contract in api/streaming.py injected via agent.ephemeral_system_prompt. Asks multi-step tool-heavy turns to emit concise visible progress notes in the user's language. Explicitly forbids exposure of hidden reasoning, chain-of-thought, scratchpads, secrets, raw logs, or long tool output. Any selected personality prompt is preserved (composed first).

This is the deferred superset of #2347 (shipped in v0.51.76 / stage-369). Per stacked-PR rule, the subset shipped first; this superset shipped second after a clean rebase against the new master.

Verification

  • pytest: 5767 passed, 10 skipped, 1 xfailed, 2 xpassed in 115.89s. EXIT=0. Single [100%] line (os.execv guard holding).
  • Opus advisor: SHIP verdict. All 3 risk areas verified clean:
    • A: interim_assistant correctly THE single boundary signal; no other event paths should close.
    • B: All 6 security forbiddances present in progress contract; personality-first composition correct.
    • C: appendLiveCompressionCard is orthogonal to activity-grouping path; no regression of v0.51.76 timeline-restore behavior.
  • Agent self-verify (unmocked, against production code): 6 invariants on _webui_ephemeral_system_prompt — None/empty personality, personality-first ordering, whitespace stripping, all 6 security clauses present in contract text.

DEFER (follow-up, not blocking)

  1. Mid-turn auto-compression edge case. If compressing/compressed fires between two tool bursts with no intervening interim_assistant, the post-compression tool will attach to the pre-compression Activity row. ~3 LOC fix in appendLiveCompressionCard to call the activity-close helper. Pre-existing behavior; not a regression.
  2. Contract phrasing. "why the next tool call is needed" could be tightened to "what you intend to do next" if any model is observed leaking rationale. Not currently observed.

What's Changed

Full Changelog: v0.51.76...v0.51.77

Don't miss a new hermes-webui release

NewReleases is sending notifications on new releases.