fixes #161: disable theme watcher in print mode

The theme file watcher was keeping the Node.js process alive indefinitely
even in print mode where hot-reload is unnecessary. This fix adds an
enableWatcher parameter to initTheme() and setTheme() functions, and only
enables watchers in interactive mode.

- Modified initTheme() to accept enableWatcher parameter (default: false)
- Modified setTheme() to accept enableWatcher parameter (default: false)
- Updated main.ts to only enable watchers in interactive mode
- Updated InteractiveMode to enable watchers when changing themes
This commit is contained in:
Mario Zechner 2025-12-10 20:41:45 +01:00
parent 76312ea7e8
commit 9516424cae
3 changed files with 14 additions and 8 deletions

View file

@ -167,10 +167,13 @@ export async function main(args: string[]) {
// Process @file arguments
const { initialMessage, initialAttachments } = prepareInitialMessage(parsed);
// Determine if we're in interactive mode (needed for theme watcher)
const isInteractive = !parsed.print && parsed.mode === undefined;
// Initialize theme (before any TUI rendering)
const settingsManager = new SettingsManager();
const themeName = settingsManager.getTheme();
initTheme(themeName);
initTheme(themeName, isInteractive);
// Setup session manager
const sessionManager = new SessionManager(parsed.continue && !parsed.resume, parsed.session);
@ -196,7 +199,6 @@ export async function main(args: string[]) {
}
// Determine mode and output behavior
const isInteractive = !parsed.print && parsed.mode === undefined;
const mode = parsed.mode || "text";
const shouldPrintMessages = isInteractive;