fix(mobile): treat the recorded lockfile hash as provenance, not an oracle

Every golden pinned `lockfileSha256`, so any dependency bump on main failed all
61 comparisons on the merge commit while the traces were identical. A dependency
that changes behaviour changes the trace itself; one that does not must not fail
a candidate. `platform` already had this exemption — `lockfileSha256` joins it.

Recording still refuses to run unless the lockfile matches the pinned baseline,
so goldens are still produced under frozen conditions.

Verified against main's lockfile: 85 passed, previously 61 failed. The declared
mutation set still reports every mutant killed.

Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
This commit is contained in:
Jinwoo-H
2026-09-10 14:12:39 -04:00
parent ba045e693d
commit 01345d2fec
64 changed files with 80 additions and 65 deletions
+1 -1
View File
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
+1 -1
View File
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
+1 -1
View File
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -5,7 +5,7 @@
"runnerVersion": 1,
"baseline": "aac38d698ff75ac4c8658addab48ef5a83617619",
"lockfileSha256": "7bcb20be34e3665506cb46b00c50e986be6c671b32d1a303e2e5d12cd7ab4cdf",
"recorderSha256": "e9bab6406449d7d377eda35cac1ae8ef86994c941de9cec71abe6b58ac84bdcb",
"recorderSha256": "40845de177c8cc0d91f865761cdd3aa3541b808c49c9063473ba7da2e1368238",
"platform": "darwin",
"scenarioVersion": 1,
"projectionVersion": 2,
@@ -57,9 +57,11 @@ visible, it does not make the reduction itself observable.
## Golden schema
Each file pins `runnerVersion`, `baseline`, `lockfileSha256` (mobile's lockfile),
Each file records `runnerVersion`, `baseline`, `lockfileSha256` (mobile's lockfile),
`recorderSha256`, `platform`, `scenarioVersion`, `projectionVersion`, `goldenFormatVersion`,
`operation`, `family`, and `namedDeltas`. `recorderSha256` covers every non-markdown file under
`operation`, `family`, and `namedDeltas`. `platform` and `lockfileSha256` are provenance and are
not compared: a dependency or OS that changes behaviour changes the trace itself, so comparing
them would only fail candidates on unrelated bumps. The rest are pinned. `recorderSha256` covers every non-markdown file under
this directory plus `pilot-scenarios.json`, so the runner that produced a golden is as pinned as
the product baseline: editing an adapter projection, a fixture or a scenario fails candidate mode
on the header and forces a deliberate re-record. Checkpoints
@@ -102,8 +102,9 @@ function goldenPath(directory: string, id: string): string {
}
export function compareGolden(expected: GoldenRecording, actual: GoldenRecording): void {
const scenario = actual.recording.scenario
// Platform is provenance; cross-platform candidates still compare the complete behavioral trace.
const pinned = { ...expected, platform: actual.platform }
// Platform and lockfile are provenance: a dependency that changes behaviour changes the trace
// below, and one that does not must not fail the compare on every unrelated bump.
const pinned = { ...expected, platform: actual.platform, lockfileSha256: actual.lockfileSha256 }
const { recording: _expectedRecording, ...expectedHeader } = pinned
const { recording: _actualRecording, ...actualHeader } = actual
for (const [key, value] of Object.entries(expectedHeader)) {
@@ -170,6 +170,18 @@ describe('recording boundaries', () => {
)
})
it('accepts a dependency bump but still refuses a different baseline', () => {
const expected = sampleGolden('provenance')
const bumped = sampleGolden('provenance')
bumped.lockfileSha256 = 'd'.repeat(64)
expect(() => compareGolden(expected, bumped)).not.toThrow()
const rebased = sampleGolden('provenance')
rebased.baseline = 'e'.repeat(40)
expect(() => compareGolden(expected, rebased)).toThrow(
/Recording differs: provenance header baseline/
)
})
it('records a shared prefix once and refuses a variant that already diverged', () => {
const base: RecordingScenario = {
id: 'family',