HERMES-GIELIE/static
nesquena-hermes 52c962cf7d
Release: Transparent Stream multi-segment prefix dedupe (#6189, @ai-ag2026) (#6217)
* fix(transparent-stream): drop stale final-answer prefix row in multi-segment settle (#5749 follow-up)

A turn with interim assistant messages (prose interleaved with tool calls)
could show the beginning of the final answer TWICE after watching it stream:
once as a settled anchor-scene prose row (the live-token accumulator's last
throttled snapshot) and once as the real assistant segment. The duplicate
persisted until reload.

Root cause: #5758 suppresses the accumulator row only when it sits "after the
last tool row", but _completeSettledAnchorSceneForTurn appends the settled
per-message tool rows AFTER the projected live rows — those re-list tools that
ran EARLIER in the turn, pushing the boundary past the final segment's
accumulator so the guard never fired. The stale prefix snapshot then survived
into the persisted scene and rendered above the settled answer.

Fix: judge final-segment eligibility against the LIVE projection's own
chronology — a live-prose row belongs to the final segment iff no PROJECTED
tool row follows it. Pre-tool narration that happens to prefix the final
answer stays protected (existing #5758 regression tests still pass), and a
new regression test pins the multi-segment shape.

Verified end-to-end by replaying the captured run journal of an affected
session through the real SSE live handlers in headless Chromium: duplicate
before (answer prefix visible twice after settle), gone after; fresh-reload
rendering unchanged.

Rollback: revert this commit; behavior returns to pre-fix (duplicate prefix
row after live-settle of multi-segment turns).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* CHANGELOG: transparent-stream multi-segment prefix dedupe (#6189, @ai-ag2026)

---------

Co-authored-by: ai-ag2026 <m.fuechtenkoetter@posteo.de>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: nesquena-hermes <agent@nesquena-hermes>
2026-07-17 21:51:22 -07:00
..
vendor
apple-touch-icon.png Swap brand to new cyan caduceus: favicon family, titlebar + empty-state logo (theme-safe navy badge), remove per-skin titlebar fill overrides 2026-06-28 07:44:16 +00:00
assistant_turn_anchors.js docs(rfc): reconcile Live-to-Final assistant-reply contracts with shipped behavior (#6144) (#6147) 2026-07-16 08:19:43 -07:00
boot.js fix(#6105): close the drawer-over-picker stacking class via z-index, not per-site guards 2026-07-16 01:15:11 +00:00
commands.js fix(sessions): guard all auto-mint paths + strict config/body parsing (gate review) 2026-07-14 04:35:06 +00:00
extension_settings.js fix(extensions): prune malformed browser overrides (#5094) 2026-06-28 18:31:43 -04:00
favicon-32.png Swap brand to new cyan caduceus: favicon family, titlebar + empty-state logo (theme-safe navy badge), remove per-skin titlebar fill overrides 2026-06-28 07:44:16 +00:00
favicon-192.png Swap brand to new cyan caduceus: favicon family, titlebar + empty-state logo (theme-safe navy badge), remove per-skin titlebar fill overrides 2026-06-28 07:44:16 +00:00
favicon-512.png Swap brand to new cyan caduceus: favicon family, titlebar + empty-state logo (theme-safe navy badge), remove per-skin titlebar fill overrides 2026-06-28 07:44:16 +00:00
favicon-512.svg Swap brand to new cyan caduceus: favicon family, titlebar + empty-state logo (theme-safe navy badge), remove per-skin titlebar fill overrides 2026-06-28 07:44:16 +00:00
favicon.ico Swap brand to new cyan caduceus: favicon family, titlebar + empty-state logo (theme-safe navy badge), remove per-skin titlebar fill overrides 2026-06-28 07:44:16 +00:00
favicon.svg Swap brand to new cyan caduceus: favicon family, titlebar + empty-state logo (theme-safe navy badge), remove per-skin titlebar fill overrides 2026-06-28 07:44:16 +00:00
i18n.js refine(#2147): drop confusing Binding row, keep localization + Example 2026-07-14 04:04:39 +00:00
icons.js
index.html fix(webui): stop password managers autofilling the search box, and keep unsaved sessions startable 2026-07-15 10:06:41 +02:00
login.js Fix login connectivity retry cleanup: clearInterval not clearTimeout 2026-07-09 03:41:42 +00:00
manifest.json
messages.js Release: Transparent Stream multi-segment prefix dedupe (#6189, @ai-ag2026) (#6217) 2026-07-17 21:51:22 -07:00
onboarding.js fix(webui): give the onboarding password inputs a form owner too 2026-07-15 10:41:16 +02:00
outline.js Release: msg_limit ceiling + row-loss-safe pagination (#6152 + #6154, @rh-id) (#6213) 2026-07-17 20:15:40 -07:00
panels.js fix(sessions): guard all auto-mint paths + strict config/body parsing (gate review) 2026-07-14 04:35:06 +00:00
pwa-startup.js
sessions.js Release: msg_limit ceiling metadata decoupling (#6214, @webtecnica) (#6216) 2026-07-17 21:21:52 -07:00
share.html Rebase #5337 (public read-only conversation sharing) onto master 2026-07-11 01:39:42 +00:00
share.js Rebase #5337 (public read-only conversation sharing) onto master 2026-07-11 01:39:42 +00:00
style.css fix(#6105): close the drawer-over-picker stacking class via z-index, not per-site guards 2026-07-16 01:15:11 +00:00
sw.js
terminal.js Handle terminal output EventSource transport errors 2026-07-09 02:26:20 +00:00
ui.js fix(models): preserve provider-aware duplicate selections 2026-07-16 20:05:58 +08:00
workspace.js Release: fix workspace image previews + downloads under subpath mounts (#5830) (#5856) 2026-07-09 14:38:53 -07:00