perf: debounce rerender calls with queueMicrotask to coalesce rapid updates

This commit is contained in:
2026-05-03 21:16:22 -04:00
parent 576f31b13a
commit 9c88e0a003

View File

@@ -124,10 +124,19 @@ export default function piStatusbarExtension(pi: ExtensionAPI) {
}
}
let rerenderScheduled = false;
function rerender(ctx: any) {
latestCtx = ctx;
requestRender?.();
if (ctx.hasUI) ctx.ui.setStatus("pi-statusbar", undefined);
if (rerenderScheduled) return;
rerenderScheduled = true;
// Debounce Render - Coalesce rapid rerender calls into a single pass.
queueMicrotask(() => {
rerenderScheduled = false;
requestRender?.();
const current = latestCtx;
if (current?.hasUI) current.ui.setStatus("pi-statusbar", undefined);
});
}
function installFooter(ctx: any) {