Files
sanderling/.github/scripts/testdata/folio-ios-convicted.jsonl
T
pj 1e2cfc78b8 test(ci): pin three real folio traces from run 31902501859
ios convicted on submitCommitsOneTransactionPerAction, web on both gated
properties, android ran its full 200 steps healthy. Every step is kept;
of each step only step, violations, witnesses and residuals survive.

hierarchy is replaced by the quoted "...Screen" resource ids it held, in
order. It cannot just be dropped: it is 95% of the bytes and also the
only place the android route gate's grep can match, so dropping it flips
that leg from healthy to 'never reached'. 8.4MB to 59KB.
2026-08-16 01:40:20 +05:30

50 lines
16 KiB
JSON

{"hierarchy":{"resourceIds":["LoginScreen","LoginScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":1}
{"hierarchy":{"resourceIds":["LoginScreen","LoginScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":2}
{"hierarchy":{"resourceIds":["LoginScreen","LoginScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":3}
{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":4}
{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":5}
{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":6}
{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":7}
{"hierarchy":{"resourceIds":["AddAccountScreen","AddAccountScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":8}
{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":9}
{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":10}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":11}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":12}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":13}
{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":14}
{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":15}
{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":16}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":17}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":18}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":19}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":20}
{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":21}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":22}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":23}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":24}
{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":25}
{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":26}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":27}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":28}
{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":29}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":30}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":31}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":32}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":33}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":34}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":35}
{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":36}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":37}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":38}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":39}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":40}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":41}
{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":42}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":43}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":44}
{"hierarchy":{"resourceIds":["LedgerScreen","LedgerScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":45}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":46}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":47}
{"hierarchy":{"resourceIds":["AddTransactionScreen","AddTransactionScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"name":"p4","op":"predicate"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":48}
{"hierarchy":{"resourceIds":["HomeScreen","HomeScreen"]},"residuals":{"newAccountBalanceIsZero":{"name":"p2","op":"predicate"},"submitCommitsOneTransactionPerAction":{"op":"false"},"submitMovesBalanceByAtMostTypedAmount":{"name":"p3","op":"predicate"}},"step":49,"violations":["submitCommitsOneTransactionPerAction"],"witnesses":{"submitCommitsOneTransactionPerAction":{"detected_step":49,"extractors":{"accountBalance":null,"accountCards":[{"__sanderlingSelector":"testTag:HomeScreen > testTag:AccountCard","attrs":{"accessibilityText":"SA, Savings, $1,888.00, 7 transactions","bounds":"[20,130][382,202]","class":"Button","clickable":"true","editable":"false","enabled":"true","identifier":"AccountCard"},"bounds":{"bottom":202,"left":20,"right":382,"top":130},"checked":false,"class":"Button","clickable":true,"desc":"SA, Savings, $1,888.00, 7 transactions","editable":false,"enabled":true,"focused":false,"id":"AccountCard","selected":false,"text":"","x":201,"y":166}],"accountNameField":null,"accounts":[{"balance":188800,"name":"Savings"}],"addAccountButton":{"__sanderlingSelector":"testTag:HomeScreen > testTag:AddAccountButton","attrs":{"accessibilityText":"+ Add account","bounds":"[20,777][382,825]","class":"Button","clickable":"true","editable":"false","enabled":"true","identifier":"AddAccountButton"},"bounds":{"bottom":825,"left":20,"right":382,"top":777},"checked":false,"class":"Button","clickable":true,"desc":"+ Add account","editable":false,"enabled":true,"focused":false,"id":"AddAccountButton","selected":false,"text":"","x":201,"y":801},"addAccountSubmit":null,"addTxnButton":null,"extractor_0":0,"extractor_1":0,"homeTxnCounts":{"Savings":7},"lastAction":{"applied":true,"kind":"DoubleTap","on":"id:TxnSubmit","relaunched":null},"loggedIn":true,"loginEmailField":null,"loginPasswordField":null,"loginSubmit":null,"route":"home","submitsInWindow":6,"submitsSinceAccountBalance":1,"submitsSinceCounts":6,"totalBalance":188800,"txnAmountField":null,"txnSubmit":null},"reason":"predicate false","step":48}}}