From 2fc941c1df66ad3930c92c6bd95f71c9391c8030 Mon Sep 17 00:00:00 2001 From: Tat Dat Duong Date: Wed, 16 Apr 2025 21:25:21 +0200 Subject: [PATCH] fix(cli): only render progress when in TTY Prevents logging terminal clear commands in non-TTY environments (LangSmith / CI) --- libs/cli/langgraph_cli/progress.py | 37 +++++++++++++++++++----------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/libs/cli/langgraph_cli/progress.py b/libs/cli/langgraph_cli/progress.py index 38154f1b9..252abd009 100644 --- a/libs/cli/langgraph_cli/progress.py +++ b/libs/cli/langgraph_cli/progress.py @@ -44,21 +44,30 @@ class Progress: sys.stdout.flush() def __enter__(self) -> Callable[[str], None]: - self.thread = threading.Thread(target=self.spinner_task) - self.thread.start() + if not sys.stdout.isatty(): + self.thread = threading.Thread(target=self.spinner_task) + self.thread.start() - def set_message(message): - self.message = message - if not message: - self.thread.join() + def set_message(message): + self.message = message + if not message: + self.thread.join() - return set_message + return set_message + else: + + def set_message(message): + sys.stderr.write(message + "\n") + sys.stderr.flush() + + return set_message def __exit__(self, exception, value, tb): - self.message = "" - try: - self.thread.join() - finally: - del self.thread - if exception is not None: - return False + if sys.stdout.isatty(): + self.message = "" + try: + self.thread.join() + finally: + del self.thread + if exception is not None: + return False