Files
crewAI/lib/cli/tests/test_scaffold_gitignore.py
Joao Moura 96d91872c0 feat(tracing): record the last traced run for crewai eval instead of printing it
After a traced run, crewAI printed a panel with the execution id and a
viewer link. The id is internal, and the panel exposed it for no purpose a
user has. Nothing is printed now. Instead, once the run's spans have
reached Wharf, crewAI writes `.crewai/last_run.json` in the project: the
execution id, when the run started and ended, whether it was traced
anonymously or under an account, and the AMP base url. `crewai eval` reads
it back, so the user evaluates their last run without pasting anything.

GrantSpanExporter.record_export replaces show_trace_summary at the two
finish points (an authenticated run's shutdown, an anonymous run's share).
Only a run whose every export succeeded is recorded — a partial export
would name a run the grader could not read whole. Recording is silent in
the TUI and under message suppression too, off under the test suite, and
inert inside a deployment, where the platform binds the execution before
crewAI's own tracing starts. The record is written atomically and a write
failure never fails the run.

The crew, flow and json_crew scaffolds now ignore `.crewai/` like the
declarative flow scaffold already did.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-20 00:48:05 -07:00

18 lines
559 B
Python

"""Every runnable scaffold ignores `.crewai/`, where crewAI records the last run."""
from __future__ import annotations
from pathlib import Path
import pytest
TEMPLATES = Path(__file__).resolve().parents[1] / "src" / "crewai_cli" / "templates"
@pytest.mark.parametrize("template", ["crew", "flow", "json_crew", "declarative_flow"])
def test_the_scaffold_gitignore_covers_the_crewai_directory(template):
lines = (TEMPLATES / template / ".gitignore").read_text(encoding="utf-8").splitlines()
assert ".crewai/" in lines
assert ".env" in lines