From cba6ac8184175d3270dd87205fdf2eb0f9107b19 Mon Sep 17 00:00:00 2001 From: jelveh Date: Fri, 17 Jul 2026 14:14:50 -0700 Subject: [PATCH] Clamp and normalize window progress values --- src/gui/src/UI/UIWindowProgress.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/gui/src/UI/UIWindowProgress.js b/src/gui/src/UI/UIWindowProgress.js index 1450604ef..f207f01ed 100644 --- a/src/gui/src/UI/UIWindowProgress.js +++ b/src/gui/src/UI/UIWindowProgress.js @@ -137,8 +137,16 @@ async function UIWindowProgress ({ el_window.querySelector('.progress-msg').innerHTML = text; }, set_progress: (percent) => { - el_window.querySelector('.progress-bar').style.width = `${percent}%`; - el_window.querySelector('.progress-percent').innerText = `${percent}%`; + // Normalize to a clamped integer percentage. Callers pass a mix of + // numbers and strings, some produced by Number.toPrecision() which + // renders values >= 100 in scientific notation (e.g. + // (100).toPrecision(2) === "1.0e+2"). Coercing here keeps the label + // readable and the CSS width valid for every caller. + let pct = Math.round(Number(percent)); + if ( ! Number.isFinite(pct) ) pct = 0; + pct = Math.min(100, Math.max(0, pct)); + el_window.querySelector('.progress-bar').style.width = `${pct}%`; + el_window.querySelector('.progress-percent').innerText = `${pct}%`; }, close: () => { $(el_window).close();