diff --git a/pyproject.toml b/pyproject.toml index 7bf2d63..285a351 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "coinhunter" -version = "2.0.2" +version = "2.0.3" description = "Binance-first trading CLI for balances, market data, opportunity scanning, and execution." readme = "README.md" license = {text = "MIT"} diff --git a/src/coinhunter/runtime.py b/src/coinhunter/runtime.py index 9938f5c..d2cea0a 100644 --- a/src/coinhunter/runtime.py +++ b/src/coinhunter/runtime.py @@ -328,6 +328,23 @@ def _render_tui(payload: Any) -> None: print(f" {_DIM}{metric_str}{_RESET}") return + if "command" in payload and "returncode" in payload: + rc = payload.get("returncode", 0) + stdout = payload.get("stdout", "") + stderr = payload.get("stderr", "") + if rc == 0: + print(f"\n{_GREEN}✓{_RESET} Update completed") + else: + print(f"\n{_RED}✗{_RESET} Update failed (exit code {rc})") + if stdout: + for line in stdout.strip().splitlines(): + print(f" {line}") + if rc != 0 and stderr: + print(f" {_YELLOW}Details:{_RESET}") + for line in stderr.strip().splitlines(): + print(f" {line}") + return + # Generic fallback for single-list payloads if len(payload) == 1: key, value = next(iter(payload.items())) @@ -336,9 +353,13 @@ def _render_tui(payload: Any) -> None: return # Simple key-value fallback - print(f"\n{_BOLD}{_CYAN} RESULT {_RESET}") for key, value in payload.items(): - print(f" {key}: {value}") + if isinstance(value, str) and "\n" in value: + print(f" {key}:") + for line in value.strip().splitlines(): + print(f" {line}") + else: + print(f" {key}: {value}") def print_output(payload: Any, *, agent: bool = False) -> None: