From b90fa6e8228d2fdd4e2c5700a5a56b1acd1e454c Mon Sep 17 00:00:00 2001 From: Sathyajith MC Date: Thu, 8 Oct 2026 10:52:13 +0530 Subject: [PATCH] fix(cli): show actual task output in log-tasks-outputs (#7936) * fix(cli): show actual task output in log-tasks-outputs * fix(cli): show task result instead of storage blob in log-tasks-outputs --------- Co-authored-by: Vidit Ostwal <110953813+Vidit-Ostwal@users.noreply.github.com> --- lib/cli/src/crewai_cli/cli.py | 6 ++++- lib/cli/tests/test_cli.py | 41 +++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/lib/cli/src/crewai_cli/cli.py b/lib/cli/src/crewai_cli/cli.py index c5c3d8bda..c2a6c2789 100644 --- a/lib/cli/src/crewai_cli/cli.py +++ b/lib/cli/src/crewai_cli/cli.py @@ -427,7 +427,11 @@ def log_tasks_outputs() -> None: for index, task in enumerate(tasks, 1): click.echo(f"Task {index}: {task['task_id']}") - click.echo(f"Description: {task['expected_output']}") + click.echo(f"Expected output: {task['expected_output']}") + output = task["output"] + if isinstance(output, dict): + output = output.get("raw", output) + click.echo(f"Output: {output}") click.echo("------") except Exception as e: diff --git a/lib/cli/tests/test_cli.py b/lib/cli/tests/test_cli.py index 6c71e0d08..de2103716 100644 --- a/lib/cli/tests/test_cli.py +++ b/lib/cli/tests/test_cli.py @@ -11,8 +11,10 @@ from crewai_cli.cli import ( deploy_push, deploy_remove, deply_status, + evaluate_crew, flow_add_crew, flow_run, + log_tasks_outputs, login, replay, reset_memories, @@ -482,3 +484,42 @@ def test_add_crew_to_flow_not_in_root(runner): assert "This command must be run from the root of a flow project." in str( result.output ) + + +@mock.patch("crewai_cli.task_outputs.load_task_outputs") +def test_log_tasks_outputs_shows_result_not_blob(mock_load, runner): + mock_load.return_value = [ + { + "task_id": "abc", + "expected_output": "EXP", + "output": {"raw": "REAL", "messages": [{"role": "user"}]}, + "task_index": 0, + "inputs": None, + "was_replayed": 0, + "timestamp": "t", + } + ] + result = runner.invoke(log_tasks_outputs) + + assert result.exit_code == 0 + assert "Output: REAL" in result.output + assert "messages" not in result.output + + +@mock.patch("crewai_cli.task_outputs.load_task_outputs") +def test_log_tasks_outputs_plain_output(mock_load, runner): + mock_load.return_value = [ + { + "task_id": "abc", + "expected_output": "EXP", + "output": "REAL", + "task_index": 0, + "inputs": None, + "was_replayed": 0, + "timestamp": "t", + } + ] + result = runner.invoke(log_tasks_outputs) + + assert result.exit_code == 0 + assert "Output: REAL" in result.output