From 9aa8b8a1c69b6d7a623bb033a93176deff6a3faa Mon Sep 17 00:00:00 2001 From: Meleki Date: Mon, 23 Feb 2026 07:15:06 +0100 Subject: [PATCH] fix chain summary count: include costless user msgs, exclude invisible no-cost entries --- wwwroot/app.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/wwwroot/app.js b/wwwroot/app.js index a864a81..d0fe6dd 100644 --- a/wwwroot/app.js +++ b/wwwroot/app.js @@ -572,14 +572,17 @@ async function openModal(dataStr, clickedId, chainId) { const chain = await api(`/api/entry-chain/${encodeURIComponent(entryId)}`); // Calculate chain total - const chainCosts = chain.map(entry => { + let chainTotal = 0, chainCount = 0, visibleCount = 0; + chain.forEach(entry => { try { const d = JSON.parse(entry.data); - return d.message?.usage?.cost?.total || 0; - } catch { return 0; } + const msg = d.message; + const cost = msg?.usage?.cost?.total || 0; + if ((msg && extractContent(msg).trim()) || cost > 0) visibleCount++; + chainTotal += cost; + if (cost > 0) chainCount++; + } catch {} }); - const chainTotal = chainCosts.reduce((a, b) => a + b, 0); - const chainCount = chainCosts.filter(c => c > 0).length; // Fill raw JSON if not set (e.g. opened from chain block) if (!dataStr) { @@ -588,7 +591,7 @@ async function openModal(dataStr, clickedId, chainId) { let html = `
Kette: ${pct(chainTotal)} - ${chainCount} Einträge mit Kosten / ${chain.length} gesamt + ${chainCount} mit Kosten / ${visibleCount} gesamt
`; html += chain.map(entry => {