From 322852917c230d3db05bc7ba1af28c6ce9bc5c73 Mon Sep 17 00:00:00 2001 From: William Valentin Date: Mon, 9 Feb 2026 21:50:43 -0800 Subject: [PATCH] fix(tui): remove stale readline close listeners to prevent memory leak warning Clean up the once('close') listener on the readline Interface when rl.question() resolves normally. Previously, each prompt loop iteration accumulated a close listener that was never removed, triggering MaxListenersExceededWarning after 11 prompts. --- src/frontends/tui/minimal.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/frontends/tui/minimal.ts b/src/frontends/tui/minimal.ts index 12a73c7..c4c89ec 100644 --- a/src/frontends/tui/minimal.ts +++ b/src/frontends/tui/minimal.ts @@ -151,8 +151,12 @@ export class MinimalTui { resolve(''); return; } - this.rl.question(promptText, resolve); - this.rl.once('close', () => resolve('')); + const onClose = () => resolve(''); + this.rl.once('close', onClose); + this.rl.question(promptText, (answer) => { + this.rl?.removeListener('close', onClose); + resolve(answer); + }); }); }