From d651a867763063d711539c85fa103ab059f199ed Mon Sep 17 00:00:00 2001 From: John McCardle Date: Thu, 2 Jul 2026 20:31:47 -0400 Subject: [PATCH] Gauntlet #340: fix first-run baseline self-compare; pathfinder ramp start First full run exposed two issues: (1) write_run promotes baseline.json before the results scene loads it, so a first run compared against itself and showed '= same' instead of FIRST RUN -- detect via the _promoted_baseline flag; (2) pathfinder_rush started at 5 queries/tick, but queries burst on one 100 ms tick frame, so the very first hold window failed (p95 38.9 ms) and scored 0 -- start the ramp at 1 query/tick so the sustainable level is actually found. Co-Authored-By: Claude Fable 5 --- tests/benchmarks/gauntlet/gauntlet_main.py | 7 ++++++- tests/benchmarks/gauntlet/trials/pathfinder_rush.py | 4 +++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/tests/benchmarks/gauntlet/gauntlet_main.py b/tests/benchmarks/gauntlet/gauntlet_main.py index a943da8..a1996a3 100644 --- a/tests/benchmarks/gauntlet/gauntlet_main.py +++ b/tests/benchmarks/gauntlet/gauntlet_main.py @@ -47,7 +47,12 @@ def trial_meta(): # ------------------------------------------------------------------ results def build_results_scene(record): - baseline = baseline_io.load_baseline() + # If this run was just promoted to baseline.json, it IS the baseline -- + # show FIRST RUN rather than comparing the run against itself. + if record.get("_promoted_baseline"): + baseline = None + else: + baseline = baseline_io.load_baseline() cmp = baseline_io.compare(record, baseline) meta = trial_meta() diff --git a/tests/benchmarks/gauntlet/trials/pathfinder_rush.py b/tests/benchmarks/gauntlet/trials/pathfinder_rush.py index 04207de..fa8dea8 100644 --- a/tests/benchmarks/gauntlet/trials/pathfinder_rush.py +++ b/tests/benchmarks/gauntlet/trials/pathfinder_rush.py @@ -20,7 +20,9 @@ class PathfinderRush(Trial): unit = "queries/tick" accent = (76, 194, 110) description = "A* find_path queries across a static maze" - base_load = 5 + # Queries are issued in a burst on the 100 ms sim tick, so even a handful + # spike a single frame; start the ramp at 1 so the sustainable level is found. + base_load = 1 growth = 1.6 def setup(self, scene, ui):