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 toolrows. Splits the previously-shared reset helper into two operations:toolevents only reset the next-text-segment anchor (no group close)interim_assistantevents close the current Activity group (the actual timeline boundary)
- Adds a WebUI-only ephemeral progress contract in
api/streaming.pyinjected viaagent.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_assistantcorrectly THE single boundary signal; no other event paths should close. - B: All 6 security forbiddances present in progress contract; personality-first composition correct.
- C:
appendLiveCompressionCardis orthogonal to activity-grouping path; no regression of v0.51.76 timeline-restore behavior.
- A:
- 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)
- Mid-turn auto-compression edge case. If
compressing/compressedfires between two tool bursts with no interveninginterim_assistant, the post-compression tool will attach to the pre-compression Activity row. ~3 LOC fix inappendLiveCompressionCardto call the activity-close helper. Pre-existing behavior; not a regression. - 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
- v0.51.77 — Release BA (stage-370: PR #2390 live Activity grouping fix) by @nesquena-hermes in #2401
- Fix live progress Activity grouping by @franksong2702 in #2390
Full Changelog: v0.51.76...v0.51.77