FAILURE MAP
← Case archive

FA-36551 / Tab interfaces / Open access

Tearoff commit receipt: source commit removal · case 01

The tab workspace reports an incorrect source commit removal.

Verified by executionVariant 1 · 6 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

The source commit removal decision uses [t for t in x['source'] if t!=x['moving']] instead of [t for t in x['source'] if t!=x['moving']] if x['status']=='accepted' and x['transfer']==x['ack'] and not x['already_committed'] else x['source'].

VERIFIED REPAIR

Use the stipulated workspace rule: [t for t in x['source'] if t!=x['moving']] if x['status']=='accepted' and x['transfer']==x['ack'] and not x['already_committed'] else x['source'].

Unsuccessful approach: The partial repair [t for t in x['source'] if t!=x['moving']] if x['status']=='accepted' else x['source'] still violates a workspace boundary or normal case.

Case contract

A tab tearoff retains the source until the destination acknowledges the exact transfer. Failure restores source placement; duplicate acknowledgements do not remove another tab.

Why this case matters

Offline tab/panel workspace behavior; no browser or desktop framework is emulated.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    r0 = x['transfer']==x['ack']
    r1 = x['status']=='accepted'
    r2 = [t for t in x['source'] if t!=x['moving']]
    r3 = x['already_committed']
    r4 = x['status']=='failed' and not x['already_committed']
    r5 = x['status']=='pending' and not x['already_committed']
    return [r0,r1,r2,r3,r4,r5]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'transfer': 7, 'ack': 7, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, True, ['a', 'c'], False, False, False]), ({'transfer': 7, 'ack': 6, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [False, True, ['a', 'b', 'c'], False, False, False]), ({'transfer': 7, 'ack': 7, 'status': 'failed', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, True, False]), ({'transfer': 7, 'ack': 7, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': True}, [True, True, ['a', 'b', 'c'], True, False, False]), ({'transfer': 7, 'ack': 7, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'a', 'destination': ['d'], 'already_committed': False}, [True, True, ['b', 'c'], False, False, False]), ({'transfer': 7, 'ack': 7, 'status': 'pending', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, False, True])], 2: [({'transfer': 14, 'ack': 14, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, True, ['a', 'c'], False, False, False]), ({'transfer': 14, 'ack': 12, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [False, True, ['a', 'b', 'c'], False, False, False]), ({'transfer': 14, 'ack': 14, 'status': 'failed', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, True, False]), ({'transfer': 14, 'ack': 14, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': True}, [True, True, ['a', 'b', 'c'], True, False, False]), ({'transfer': 14, 'ack': 14, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'a', 'destination': ['d'], 'already_committed': False}, [True, True, ['b', 'c'], False, False, False]), ({'transfer': 14, 'ack': 14, 'status': 'pending', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, False, True])], 3: [({'transfer': 21, 'ack': 21, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, True, ['a', 'c'], False, False, False]), ({'transfer': 21, 'ack': 18, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [False, True, ['a', 'b', 'c'], False, False, False]), ({'transfer': 21, 'ack': 21, 'status': 'failed', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, True, False]), ({'transfer': 21, 'ack': 21, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': True}, [True, True, ['a', 'b', 'c'], True, False, False]), ({'transfer': 21, 'ack': 21, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'a', 'destination': ['d'], 'already_committed': False}, [True, True, ['b', 'c'], False, False, False]), ({'transfer': 21, 'ack': 21, 'status': 'pending', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, False, True])], 4: [({'transfer': 28, 'ack': 28, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, True, ['a', 'c'], False, False, False]), ({'transfer': 28, 'ack': 24, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [False, True, ['a', 'b', 'c'], False, False, False]), ({'transfer': 28, 'ack': 28, 'status': 'failed', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, True, False]), ({'transfer': 28, 'ack': 28, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': True}, [True, True, ['a', 'b', 'c'], True, False, False]), ({'transfer': 28, 'ack': 28, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'a', 'destination': ['d'], 'already_committed': False}, [True, True, ['b', 'c'], False, False, False]), ({'transfer': 28, 'ack': 28, 'status': 'pending', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, False, True])], 5: [({'transfer': 35, 'ack': 35, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, True, ['a', 'c'], False, False, False]), ({'transfer': 35, 'ack': 30, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [False, True, ['a', 'b', 'c'], False, False, False]), ({'transfer': 35, 'ack': 35, 'status': 'failed', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, True, False]), ({'transfer': 35, 'ack': 35, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': True}, [True, True, ['a', 'b', 'c'], True, False, False]), ({'transfer': 35, 'ack': 35, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'a', 'destination': ['d'], 'already_committed': False}, [True, True, ['b', 'c'], False, False, False]), ({'transfer': 35, 'ack': 35, 'status': 'pending', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, False, True])]}
for i, (inputs, expected) in enumerate(fixtures[N]):
    check("workspace regression "+str(i), solve(inputs), 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 fixtureActualExpectedOutcome
workspace regression 0[True, True, ['a', 'c'], False, False, False][True, True, ['a', 'c'], False, False, False]Passed
workspace regression 1[False, True, ['a', 'c'], False, False, False][False, True, ['a', 'b', 'c'], False, False, False]Failed
workspace regression 2[True, False, ['a', 'c'], False, True, False][True, False, ['a', 'b', 'c'], False, True, False]Failed
workspace regression 3[True, True, ['a', 'c'], True, False, False][True, True, ['a', 'b', 'c'], True, False, False]Failed
workspace regression 4[True, True, ['b', 'c'], False, False, False][True, True, ['b', 'c'], False, False, False]Passed
workspace regression 5[True, False, ['a', 'c'], False, False, True][True, False, ['a', 'b', 'c'], False, False, True]Failed

SHA-256 / 307bf5ffbf0cf817ca590f9ecf1109117a18a54a34d272a7bdaafaf4da171c3d

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    r0 = x['transfer']==x['ack']
    r1 = x['status']=='accepted'
    r2 = [t for t in x['source'] if t!=x['moving']] if x['status']=='accepted' else x['source']
    r3 = x['already_committed']
    r4 = x['status']=='failed' and not x['already_committed']
    r5 = x['status']=='pending' and not x['already_committed']
    return [r0,r1,r2,r3,r4,r5]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'transfer': 7, 'ack': 7, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, True, ['a', 'c'], False, False, False]), ({'transfer': 7, 'ack': 6, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [False, True, ['a', 'b', 'c'], False, False, False]), ({'transfer': 7, 'ack': 7, 'status': 'failed', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, True, False]), ({'transfer': 7, 'ack': 7, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': True}, [True, True, ['a', 'b', 'c'], True, False, False]), ({'transfer': 7, 'ack': 7, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'a', 'destination': ['d'], 'already_committed': False}, [True, True, ['b', 'c'], False, False, False]), ({'transfer': 7, 'ack': 7, 'status': 'pending', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, False, True])], 2: [({'transfer': 14, 'ack': 14, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, True, ['a', 'c'], False, False, False]), ({'transfer': 14, 'ack': 12, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [False, True, ['a', 'b', 'c'], False, False, False]), ({'transfer': 14, 'ack': 14, 'status': 'failed', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, True, False]), ({'transfer': 14, 'ack': 14, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': True}, [True, True, ['a', 'b', 'c'], True, False, False]), ({'transfer': 14, 'ack': 14, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'a', 'destination': ['d'], 'already_committed': False}, [True, True, ['b', 'c'], False, False, False]), ({'transfer': 14, 'ack': 14, 'status': 'pending', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, False, True])], 3: [({'transfer': 21, 'ack': 21, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, True, ['a', 'c'], False, False, False]), ({'transfer': 21, 'ack': 18, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [False, True, ['a', 'b', 'c'], False, False, False]), ({'transfer': 21, 'ack': 21, 'status': 'failed', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, True, False]), ({'transfer': 21, 'ack': 21, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': True}, [True, True, ['a', 'b', 'c'], True, False, False]), ({'transfer': 21, 'ack': 21, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'a', 'destination': ['d'], 'already_committed': False}, [True, True, ['b', 'c'], False, False, False]), ({'transfer': 21, 'ack': 21, 'status': 'pending', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, False, True])], 4: [({'transfer': 28, 'ack': 28, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, True, ['a', 'c'], False, False, False]), ({'transfer': 28, 'ack': 24, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [False, True, ['a', 'b', 'c'], False, False, False]), ({'transfer': 28, 'ack': 28, 'status': 'failed', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, True, False]), ({'transfer': 28, 'ack': 28, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': True}, [True, True, ['a', 'b', 'c'], True, False, False]), ({'transfer': 28, 'ack': 28, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'a', 'destination': ['d'], 'already_committed': False}, [True, True, ['b', 'c'], False, False, False]), ({'transfer': 28, 'ack': 28, 'status': 'pending', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, False, True])], 5: [({'transfer': 35, 'ack': 35, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, True, ['a', 'c'], False, False, False]), ({'transfer': 35, 'ack': 30, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [False, True, ['a', 'b', 'c'], False, False, False]), ({'transfer': 35, 'ack': 35, 'status': 'failed', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, True, False]), ({'transfer': 35, 'ack': 35, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': True}, [True, True, ['a', 'b', 'c'], True, False, False]), ({'transfer': 35, 'ack': 35, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'a', 'destination': ['d'], 'already_committed': False}, [True, True, ['b', 'c'], False, False, False]), ({'transfer': 35, 'ack': 35, 'status': 'pending', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, False, True])]}
for i, (inputs, expected) in enumerate(fixtures[N]):
    check("workspace regression "+str(i), solve(inputs), 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 fixtureActualExpectedOutcome
workspace regression 0[True, True, ['a', 'c'], False, False, False][True, True, ['a', 'c'], False, False, False]Passed
workspace regression 1[False, True, ['a', 'c'], False, False, False][False, True, ['a', 'b', 'c'], False, False, False]Failed
workspace regression 2[True, False, ['a', 'b', 'c'], False, True, False][True, False, ['a', 'b', 'c'], False, True, False]Passed
workspace regression 3[True, True, ['a', 'c'], True, False, False][True, True, ['a', 'b', 'c'], True, False, False]Failed
workspace regression 4[True, True, ['b', 'c'], False, False, False][True, True, ['b', 'c'], False, False, False]Passed
workspace regression 5[True, False, ['a', 'b', 'c'], False, False, True][True, False, ['a', 'b', 'c'], False, False, True]Passed

SHA-256 / f5e461b6a62ef338fbde31d59e5491b719cc92fcee552b0d6783da46c16dda0b

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    r0 = x['transfer']==x['ack']
    r1 = x['status']=='accepted'
    r2 = [t for t in x['source'] if t!=x['moving']] if x['status']=='accepted' and x['transfer']==x['ack'] and not x['already_committed'] else x['source']
    r3 = x['already_committed']
    r4 = x['status']=='failed' and not x['already_committed']
    r5 = x['status']=='pending' and not x['already_committed']
    return [r0,r1,r2,r3,r4,r5]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'transfer': 7, 'ack': 7, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, True, ['a', 'c'], False, False, False]), ({'transfer': 7, 'ack': 6, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [False, True, ['a', 'b', 'c'], False, False, False]), ({'transfer': 7, 'ack': 7, 'status': 'failed', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, True, False]), ({'transfer': 7, 'ack': 7, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': True}, [True, True, ['a', 'b', 'c'], True, False, False]), ({'transfer': 7, 'ack': 7, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'a', 'destination': ['d'], 'already_committed': False}, [True, True, ['b', 'c'], False, False, False]), ({'transfer': 7, 'ack': 7, 'status': 'pending', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, False, True])], 2: [({'transfer': 14, 'ack': 14, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, True, ['a', 'c'], False, False, False]), ({'transfer': 14, 'ack': 12, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [False, True, ['a', 'b', 'c'], False, False, False]), ({'transfer': 14, 'ack': 14, 'status': 'failed', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, True, False]), ({'transfer': 14, 'ack': 14, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': True}, [True, True, ['a', 'b', 'c'], True, False, False]), ({'transfer': 14, 'ack': 14, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'a', 'destination': ['d'], 'already_committed': False}, [True, True, ['b', 'c'], False, False, False]), ({'transfer': 14, 'ack': 14, 'status': 'pending', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, False, True])], 3: [({'transfer': 21, 'ack': 21, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, True, ['a', 'c'], False, False, False]), ({'transfer': 21, 'ack': 18, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [False, True, ['a', 'b', 'c'], False, False, False]), ({'transfer': 21, 'ack': 21, 'status': 'failed', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, True, False]), ({'transfer': 21, 'ack': 21, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': True}, [True, True, ['a', 'b', 'c'], True, False, False]), ({'transfer': 21, 'ack': 21, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'a', 'destination': ['d'], 'already_committed': False}, [True, True, ['b', 'c'], False, False, False]), ({'transfer': 21, 'ack': 21, 'status': 'pending', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, False, True])], 4: [({'transfer': 28, 'ack': 28, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, True, ['a', 'c'], False, False, False]), ({'transfer': 28, 'ack': 24, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [False, True, ['a', 'b', 'c'], False, False, False]), ({'transfer': 28, 'ack': 28, 'status': 'failed', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, True, False]), ({'transfer': 28, 'ack': 28, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': True}, [True, True, ['a', 'b', 'c'], True, False, False]), ({'transfer': 28, 'ack': 28, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'a', 'destination': ['d'], 'already_committed': False}, [True, True, ['b', 'c'], False, False, False]), ({'transfer': 28, 'ack': 28, 'status': 'pending', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, False, True])], 5: [({'transfer': 35, 'ack': 35, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, True, ['a', 'c'], False, False, False]), ({'transfer': 35, 'ack': 30, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [False, True, ['a', 'b', 'c'], False, False, False]), ({'transfer': 35, 'ack': 35, 'status': 'failed', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, True, False]), ({'transfer': 35, 'ack': 35, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': True}, [True, True, ['a', 'b', 'c'], True, False, False]), ({'transfer': 35, 'ack': 35, 'status': 'accepted', 'source': ['a', 'b', 'c'], 'moving': 'a', 'destination': ['d'], 'already_committed': False}, [True, True, ['b', 'c'], False, False, False]), ({'transfer': 35, 'ack': 35, 'status': 'pending', 'source': ['a', 'b', 'c'], 'moving': 'b', 'destination': ['d'], 'already_committed': False}, [True, False, ['a', 'b', 'c'], False, False, True])]}
for i, (inputs, expected) in enumerate(fixtures[N]):
    check("workspace regression "+str(i), solve(inputs), 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 fixtureActualExpectedOutcome
workspace regression 0[True, True, ['a', 'c'], False, False, False][True, True, ['a', 'c'], False, False, False]Passed
workspace regression 1[False, True, ['a', 'b', 'c'], False, False, False][False, True, ['a', 'b', 'c'], False, False, False]Passed
workspace regression 2[True, False, ['a', 'b', 'c'], False, True, False][True, False, ['a', 'b', 'c'], False, True, False]Passed
workspace regression 3[True, True, ['a', 'b', 'c'], True, False, False][True, True, ['a', 'b', 'c'], True, False, False]Passed
workspace regression 4[True, True, ['b', 'c'], False, False, False][True, True, ['b', 'c'], False, False, False]Passed
workspace regression 5[True, False, ['a', 'b', 'c'], False, False, True][True, False, ['a', 'b', 'c'], False, False, True]Passed

SHA-256 / 6c70ddc0cfce416f1d17f3f1fc2dcbb13f45edd154200bbbb1eec7f3a2bd4b93

Verification & scope

Finite stipulated workspace snapshots only. Independent result fields describe observable obligations, not a full UI runtime. 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:42:52.514332+00:00.

Case digest / 312a64f14820c2d33fe24d38afde1be8db4d6a7570488fb0f2e4041aecba391f