mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-09-23 19:30:45 +00:00
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>
18 lines
559 B
Python
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
|