Two runs on one axis of turns, and two eval scores Top: three sessions on an axis of turns 0 to 4, one cell per model reply. Sessions -1 and -2 are two replays of files.yaml and match on every turn: list_directory, an answer naming one file, a shell call with wc -l that was rejected, read_file of README.md, and an answer of one line. Session -3 is the restricted run of guarded.yaml and calls shell with echo m101-ok at turn 0, the first divergence; its later turns are not compared. sessions diff reports identical behaviour for -1 against -2 and exits 1 with fail-on-divergence for -1 against -3. Bottom: the eval of files.yaml. Count the lines of README.md expected and got one shell call, F1 1.0, relevance 1/1, size S. List the files in the working directory expected list_directory and got list_directory and shell, F1 0.67, relevance 1/1, size S. SESSIONS DIFF, 21-SESSIONS-DIFF.TXT turn 0 turn 1 turn 2 turn 3 turn 4 -1 files.yaml list_directory path . answer 1 file shell wc -l rejected read_file README.md answer 1 line -2 files.yaml list_directory path . answer 1 file shell wc -l rejected read_file README.md answer 1 line -3 guarded shell echo m101-ok turns 1 to 5 are not compared downstream of the divergence first divergence at turn 0: list_directory against shell -1 against -2: Identical behaviour across all 5 turns, exit 0 -1 against -3: sessions diverged, exit 1 with --fail-on-divergence EVAL OF FILES.YAML, 22-EVAL-CONTAINER-ENV.TXT eval session tool calls F1 relevance size Count the lines of README.md expected: shell actual: shell 1.0 1/1 S List the files in the working directory expected: list_directory actual: list_directory, shell 0.67 1/1 S Tool Calls: 83.3% avg F1 (2 evals). Sizes 2/2 and relevance 2/2 passed.