From c45adb910afaae8134ca253209e899753192ceef Mon Sep 17 00:00:00 2001 From: nesquena-hermes Date: Sat, 13 Jun 2026 01:53:11 +0000 Subject: [PATCH] fix(#4024): wire dormant recency-fade to live turn + include Interrupted in progress-bar completed set (Opus final-gate observations) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - _applyTransparentRowFading was only called from the settled loop (which the fn skips), so live-turn recency fade never applied — now called from _syncTransparentEventControls (internally live-gated, no-ops on settled). - _attachProgressBar isCompleted now includes Interrupted so an interrupted row's bar fills 100% instead of rendering empty. --- static/ui.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/static/ui.js b/static/ui.js index 20e7e525..4c23865c 100644 --- a/static/ui.js +++ b/static/ui.js @@ -6839,6 +6839,11 @@ function _syncTransparentEventControls(turn){ bar.setAttribute('data-tool-count',String(toolCount)); // Wire the Hermes chat name tag toggle for the live turn. _wireTransparentTurnToggle(turn); + // Apply recency fade so the newest activity stands out while streaming. The + // fade helper is internally gated to the live turn, so this no-ops on settled + // turns — without this call the fade feature stayed dormant (only ever cleared + // from the settled render loop). (Trifecta r2 follow-up.) + _applyTransparentRowFading(turn); } function _rehydrateTransparentStreamDom(root){ if(!root||!isTransparentStream()) return; @@ -7008,7 +7013,7 @@ function _attachProgressBar(row, opts){ // Set the running state from opts or current status. const status=String(opts.status||(row.getAttribute('data-event-status')||'')); const isRunning=(status==='Running'||status==='running'); - const isCompleted=(status==='Completed'||status==='completed'||status==='Failed'||status==='failed'); + const isCompleted=(status==='Completed'||status==='completed'||status==='Failed'||status==='failed'||status==='Interrupted'||status==='interrupted'); if(isRunning) bar.setAttribute('data-progress-running','1'); else bar.removeAttribute('data-progress-running'); if(isCompleted){