FA-24846 / Filter interfaces / Open access
Draft dirtiness ignores ordering but retains constraint identity · case 01
Draft dirtiness ignores ordering but retains constraint identity is violated by the widget projection.
ROOT CAUSE
The dirty-order decision uses `d['draft'] != d['committed']` instead of the stipulated draft-transaction projection.
VERIFIED REPAIR
Implement the declared dirty-order projection: `set(d['draft']) != set(d['committed'])`.
Unsuccessful approach: The attempted correction `len(d['draft']) != len(d['committed'])` still violates the explicit contract fixtures.
Case contract
An Apply/Cancel filter panel keeps draft and committed constraints separate; validation and revision determine whether a draft may be published. This example checks: Draft dirtiness ignores ordering but retains constraint identity.
Why this case matters
Filter-widget state and serialization must preserve user constraints while the view changes.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(d):
return {'open-copy':(list(d['committed'])), 'dirty-order':(d['draft'] != d['committed']), 'apply-gate':(d['valid'] and d['revision']==d['base']), 'cancel-target':({'draft':list(d['committed']),'errors':[],'open':False}), 'conflict-banner':(d['revision']!=d['base'] and set(d['draft'])!=set(d['committed'])), 'apply-payload':(list(d['draft']) if d['valid'] and d['revision']==d['base'] else None)}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': [], 'draft': ['b'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': [], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': [], 'draft': ['b', 'a'], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': [], 'dirty-order': True, 'apply-gate': True, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': ['b', 'a']}), ({'committed': ['a'], 'draft': [], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b', 'a'], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': True, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': ['b', 'a']}), ({'committed': ['a', 'b'], 'draft': [], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': ['b'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': ['b'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None})], 2: [({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b'], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': True, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': ['b']}), ({'committed': ['a'], 'draft': [], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': True, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': []}), ({'committed': ['a'], 'draft': ['b'], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b', 'a'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b', 'a'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': [], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': True, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': []}), ({'committed': ['a', 'b'], 'draft': ['b'], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None})], 3: [({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': True, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': ['b', 'a']}), ({'committed': ['a'], 'draft': ['b'], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b', 'a'], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': [], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': [], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': ['b'], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': True, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': ['b']}), ({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': [], 'draft': [], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': [], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': [], 'draft': [], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': [], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': [], 'draft': ['b'], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': [], 'dirty-order': True, 'apply-gate': True, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': ['b']})], 4: [({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': ['b'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': ['b'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': True, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': ['b', 'a']}), ({'committed': [], 'draft': [], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': [], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': [], 'draft': ['b'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': [], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': [], 'draft': ['b'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': [], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': [], 'draft': ['b', 'a'], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': [], 'dirty-order': True, 'apply-gate': True, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': ['b', 'a']}), ({'committed': ['a'], 'draft': [], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None})], 5: [({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': [], 'draft': [], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': [], 'dirty-order': False, 'apply-gate': True, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': []}), ({'committed': [], 'draft': ['b'], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': [], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': [], 'draft': ['b', 'a'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': [], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': [], 'draft': ['b', 'a'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': [], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a'], 'draft': [], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': True, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': []}), ({'committed': ['a'], 'draft': ['b'], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b', 'a'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None})]}
for index, (data, expected) in enumerate(fixtures[N]):
check("contract fixture " + str(index), solve(data), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| contract fixture 0 | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': True, 'open-copy': ['a', 'b']} | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': False, 'open-copy': ['a', 'b']} | Failed |
| contract fixture 1 | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': ['a']} | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': ['a']} | Passed |
| contract fixture 2 | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': []} | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': []} | Passed |
| contract fixture 3 | {'apply-gate': True, 'apply-payload': ['b', 'a'], 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': True, 'open-copy': []} | {'apply-gate': True, 'apply-payload': ['b', 'a'], 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': True, 'open-copy': []} | Passed |
| contract fixture 4 | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': ['a']} | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': ['a']} | Passed |
| contract fixture 5 | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': True, 'open-copy': ['a']} | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': True, 'open-copy': ['a']} | Passed |
| contract fixture 6 | {'apply-gate': True, 'apply-payload': ['b', 'a'], 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': True, 'open-copy': ['a']} | {'apply-gate': True, 'apply-payload': ['b', 'a'], 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': True, 'open-copy': ['a']} | Passed |
| contract fixture 7 | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': ['a', 'b']} | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': ['a', 'b']} | Passed |
| contract fixture 8 | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': True, 'open-copy': ['a', 'b']} | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': True, 'open-copy': ['a', 'b']} | Passed |
| contract fixture 9 | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': ['a', 'b']} | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': ['a', 'b']} | Passed |
SHA-256 / f2d69faf170bf9a508ec867920ef9714f002f5ea89f3bc729d8fad961504e83d
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(d):
return {'open-copy':(list(d['committed'])), 'dirty-order':(len(d['draft']) != len(d['committed'])), 'apply-gate':(d['valid'] and d['revision']==d['base']), 'cancel-target':({'draft':list(d['committed']),'errors':[],'open':False}), 'conflict-banner':(d['revision']!=d['base'] and set(d['draft'])!=set(d['committed'])), 'apply-payload':(list(d['draft']) if d['valid'] and d['revision']==d['base'] else None)}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': [], 'draft': ['b'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': [], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': [], 'draft': ['b', 'a'], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': [], 'dirty-order': True, 'apply-gate': True, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': ['b', 'a']}), ({'committed': ['a'], 'draft': [], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b', 'a'], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': True, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': ['b', 'a']}), ({'committed': ['a', 'b'], 'draft': [], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': ['b'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': ['b'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None})], 2: [({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b'], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': True, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': ['b']}), ({'committed': ['a'], 'draft': [], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': True, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': []}), ({'committed': ['a'], 'draft': ['b'], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b', 'a'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b', 'a'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': [], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': True, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': []}), ({'committed': ['a', 'b'], 'draft': ['b'], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None})], 3: [({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': True, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': ['b', 'a']}), ({'committed': ['a'], 'draft': ['b'], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b', 'a'], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': [], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': [], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': ['b'], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': True, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': ['b']}), ({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': [], 'draft': [], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': [], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': [], 'draft': [], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': [], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': [], 'draft': ['b'], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': [], 'dirty-order': True, 'apply-gate': True, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': ['b']})], 4: [({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': ['b'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': ['b'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': True, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': ['b', 'a']}), ({'committed': [], 'draft': [], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': [], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': [], 'draft': ['b'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': [], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': [], 'draft': ['b'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': [], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': [], 'draft': ['b', 'a'], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': [], 'dirty-order': True, 'apply-gate': True, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': ['b', 'a']}), ({'committed': ['a'], 'draft': [], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None})], 5: [({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': [], 'draft': [], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': [], 'dirty-order': False, 'apply-gate': True, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': []}), ({'committed': [], 'draft': ['b'], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': [], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': [], 'draft': ['b', 'a'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': [], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': [], 'draft': ['b', 'a'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': [], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a'], 'draft': [], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': True, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': []}), ({'committed': ['a'], 'draft': ['b'], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b', 'a'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None})]}
for index, (data, expected) in enumerate(fixtures[N]):
check("contract fixture " + str(index), solve(data), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| contract fixture 0 | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': False, 'open-copy': ['a', 'b']} | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': False, 'open-copy': ['a', 'b']} | Passed |
| contract fixture 1 | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': False, 'open-copy': ['a']} | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': ['a']} | Failed |
| contract fixture 2 | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': []} | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': []} | Passed |
| contract fixture 3 | {'apply-gate': True, 'apply-payload': ['b', 'a'], 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': True, 'open-copy': []} | {'apply-gate': True, 'apply-payload': ['b', 'a'], 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': True, 'open-copy': []} | Passed |
| contract fixture 4 | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': ['a']} | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': ['a']} | Passed |
| contract fixture 5 | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': False, 'open-copy': ['a']} | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': True, 'open-copy': ['a']} | Failed |
| contract fixture 6 | {'apply-gate': True, 'apply-payload': ['b', 'a'], 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': True, 'open-copy': ['a']} | {'apply-gate': True, 'apply-payload': ['b', 'a'], 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': True, 'open-copy': ['a']} | Passed |
| contract fixture 7 | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': ['a', 'b']} | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': ['a', 'b']} | Passed |
| contract fixture 8 | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': True, 'open-copy': ['a', 'b']} | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': True, 'open-copy': ['a', 'b']} | Passed |
| contract fixture 9 | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': ['a', 'b']} | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': ['a', 'b']} | Passed |
SHA-256 / 96e309811fac4d2f92cff3034bf8a97906048518cf17792873f1e214f239ec07
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(d):
return {'open-copy':(list(d['committed'])), 'dirty-order':(set(d['draft']) != set(d['committed'])), 'apply-gate':(d['valid'] and d['revision']==d['base']), 'cancel-target':({'draft':list(d['committed']),'errors':[],'open':False}), 'conflict-banner':(d['revision']!=d['base'] and set(d['draft'])!=set(d['committed'])), 'apply-payload':(list(d['draft']) if d['valid'] and d['revision']==d['base'] else None)}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': [], 'draft': ['b'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': [], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': [], 'draft': ['b', 'a'], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': [], 'dirty-order': True, 'apply-gate': True, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': ['b', 'a']}), ({'committed': ['a'], 'draft': [], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b', 'a'], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': True, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': ['b', 'a']}), ({'committed': ['a', 'b'], 'draft': [], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': ['b'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': ['b'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None})], 2: [({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b'], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': True, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': ['b']}), ({'committed': ['a'], 'draft': [], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': True, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': []}), ({'committed': ['a'], 'draft': ['b'], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b', 'a'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b', 'a'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': [], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': True, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': []}), ({'committed': ['a', 'b'], 'draft': ['b'], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None})], 3: [({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': True, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': ['b', 'a']}), ({'committed': ['a'], 'draft': ['b'], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b', 'a'], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': [], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': [], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': ['b'], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': True, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': ['b']}), ({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': [], 'draft': [], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': [], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': [], 'draft': [], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': [], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': [], 'draft': ['b'], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': [], 'dirty-order': True, 'apply-gate': True, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': ['b']})], 4: [({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': ['b'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': ['b'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': True, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': ['b', 'a']}), ({'committed': [], 'draft': [], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': [], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': [], 'draft': ['b'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': [], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': [], 'draft': ['b'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': [], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': [], 'draft': ['b', 'a'], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': [], 'dirty-order': True, 'apply-gate': True, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': ['b', 'a']}), ({'committed': ['a'], 'draft': [], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None})], 5: [({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a', 'b'], 'draft': ['b', 'a'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': ['a', 'b'], 'dirty-order': False, 'apply-gate': False, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': [], 'draft': [], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': [], 'dirty-order': False, 'apply-gate': True, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': []}), ({'committed': [], 'draft': ['b'], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': [], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': [], 'draft': ['b', 'a'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': [], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None}), ({'committed': [], 'draft': ['b', 'a'], 'valid': True, 'revision': 2, 'base': 1}, {'open-copy': [], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a'], 'draft': [], 'valid': True, 'revision': 1, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': True, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': []}), ({'committed': ['a'], 'draft': ['b'], 'valid': False, 'revision': 2, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'apply-payload': None}), ({'committed': ['a'], 'draft': ['b', 'a'], 'valid': False, 'revision': 1, 'base': 1}, {'open-copy': ['a'], 'dirty-order': True, 'apply-gate': False, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'apply-payload': None})]}
for index, (data, expected) in enumerate(fixtures[N]):
check("contract fixture " + str(index), solve(data), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| contract fixture 0 | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': False, 'open-copy': ['a', 'b']} | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': False, 'open-copy': ['a', 'b']} | Passed |
| contract fixture 1 | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': ['a']} | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': ['a']} | Passed |
| contract fixture 2 | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': []} | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': []} | Passed |
| contract fixture 3 | {'apply-gate': True, 'apply-payload': ['b', 'a'], 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': True, 'open-copy': []} | {'apply-gate': True, 'apply-payload': ['b', 'a'], 'cancel-target': {'draft': [], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': True, 'open-copy': []} | Passed |
| contract fixture 4 | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': ['a']} | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': ['a']} | Passed |
| contract fixture 5 | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': True, 'open-copy': ['a']} | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': True, 'open-copy': ['a']} | Passed |
| contract fixture 6 | {'apply-gate': True, 'apply-payload': ['b', 'a'], 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': True, 'open-copy': ['a']} | {'apply-gate': True, 'apply-payload': ['b', 'a'], 'cancel-target': {'draft': ['a'], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': True, 'open-copy': ['a']} | Passed |
| contract fixture 7 | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': ['a', 'b']} | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': ['a', 'b']} | Passed |
| contract fixture 8 | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': True, 'open-copy': ['a', 'b']} | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': False, 'dirty-order': True, 'open-copy': ['a', 'b']} | Passed |
| contract fixture 9 | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': ['a', 'b']} | {'apply-gate': False, 'apply-payload': None, 'cancel-target': {'draft': ['a', 'b'], 'errors': [], 'open': False}, 'conflict-banner': True, 'dirty-order': True, 'open-copy': ['a', 'b']} | Passed |
SHA-256 / 62bf481d77b7cfa5e1181000dcbd9f4e555b0d4fe9587cf6807df1cefe23f2fe
Verification & scope
Deterministic bounded UI-state model only; no browser, query engine, network, or production-standard conformance is claimed. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.
Observations recorded using Python 3.12.14 at 2026-09-29T14:41:01.254555+00:00.
Case digest / 6f86585c4d23a2641f6295a2005dd27fc9e3b199aa632303b40534eebe553e57