FAILURE MAP
← Case archive

FA-24391 / Client state / Open access

Client attachment resource ownership: Duplicate filenames kept · case 01

Duplicate filenames kept.

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

ROOT CAUSE

The duplicate-filenames-kept client decision evaluates `list({name:(k,name) for k,name,size in attachments}.values())` instead of `[(k,name) for k,name,size in attachments]`.

THE FAILURE

The duplicate-filenames-kept client decision evaluates `list({name:(k,name) for k,name,size in attachments}.values())` instead of `[(k,name) for k,name,size in attachments]`.

Unsuccessful approach: The partial repair `[(k,name) for k,name,size in attachments if size]` still violates the explicit fixture contract.

Case contract

Attachment identity differs from file name and byte count. Zero-byte and same-name files remain separate. Preview URLs and selected IDs are cleaned by attachment identity; submitted files and read-only commands have separate lifetimes. Operation duplicate-filenames-kept has the six explicit input/output oracles below.

Why this case matters

An offline client lifecycle model that isolates a state-management defect without DOM rendering or network services.

1 / The failure

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

N = 1
observations = []
def solve(operation, s):
    attachments, removed, previews, selected, submitted, readonly = s
    if operation == 'remove-by-file-identity':
        return [x for x in attachments if x[0]!=removed]
    if operation == 'duplicate-filenames-kept':
        return list({name:(k,name) for k,name,size in attachments}.values())
    if operation == 'removed-preview-release':
        return previews.get(removed)
    if operation == 'other-previews-preserved':
        return {k:v for k,v in previews.items() if k!=removed}
    if operation == 'submitted-attachment-retention':
        return [x for x in attachments if x[0] in submitted]
    if operation == 'new-attachment-dirty-set':
        return [k for k,name,size in attachments if k not in submitted]
    if operation == 'selected-id-deduplication':
        return list(dict.fromkeys(selected))
    if operation == 'readonly-remove-command':
        return [] if readonly else [removed]
    if operation == 'selection-removal-propagation':
        return [k for k in selected if k!=removed]
    if operation == 'orphan-preview-cleanup':
        return [v for k,v in previews.items() if k not in {x[0] for x in attachments}]
    raise ValueError('unknown modeled operation')
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('remove-by-file-identity scenario 1', solve('remove-by-file-identity', ([('a','one',N),('b','two',2)],'a',{'a':'blob:a','b':'blob:b'},['a','b'],['a'],False)), [('b','two',2)])
check('remove-by-file-identity scenario 2', solve('remove-by-file-identity', ([], 'x',{},[],[],False)), [])
check('remove-by-file-identity scenario 3', solve('remove-by-file-identity', ([('a','same',0),('b','same',3)],'b',{'a':'blob:a'},['b'],[],False)), [('a','same',0)])
check('remove-by-file-identity scenario 4', solve('remove-by-file-identity', ([('a','one',2)],'x',{'x':'blob:x'},['a'],['a'],True)), [('a','one',2)])
check('remove-by-file-identity scenario 5', solve('remove-by-file-identity', ([('a','one',2),('b','two',3)],'a',{'a':'blob:a'},[],['b'],True)), [('b','two',3)])
check('remove-by-file-identity scenario 6', solve('remove-by-file-identity', ([('a','one',2),('b','two',3)],'b',{},['a','a'],[],False)), [('a','one',2)])
check('duplicate-filenames-kept scenario 1', solve('duplicate-filenames-kept', ([('a','one',N),('b','two',2)],'a',{'a':'blob:a','b':'blob:b'},['a','b'],['a'],False)), [('a','one'),('b','two')])
check('duplicate-filenames-kept scenario 2', solve('duplicate-filenames-kept', ([], 'x',{},[],[],False)), [])
check('duplicate-filenames-kept scenario 3', solve('duplicate-filenames-kept', ([('a','same',0),('b','same',3)],'b',{'a':'blob:a'},['b'],[],False)), [('a','same'),('b','same')])
check('duplicate-filenames-kept scenario 4', solve('duplicate-filenames-kept', ([('a','one',2)],'x',{'x':'blob:x'},['a'],['a'],True)), [('a','one')])
check('duplicate-filenames-kept scenario 5', solve('duplicate-filenames-kept', ([('a','one',2),('b','two',3)],'a',{'a':'blob:a'},[],['b'],True)), [('a','one'),('b','two')])
check('duplicate-filenames-kept scenario 6', solve('duplicate-filenames-kept', ([('a','one',2),('b','two',3)],'b',{},['a','a'],[],False)), [('a','one'),('b','two')])
check('removed-preview-release scenario 1', solve('removed-preview-release', ([('a','one',N),('b','two',2)],'a',{'a':'blob:a','b':'blob:b'},['a','b'],['a'],False)), 'blob:a')
check('removed-preview-release scenario 2', solve('removed-preview-release', ([], 'x',{},[],[],False)), None)
check('removed-preview-release scenario 3', solve('removed-preview-release', ([('a','same',0),('b','same',3)],'b',{'a':'blob:a'},['b'],[],False)), None)
check('removed-preview-release scenario 4', solve('removed-preview-release', ([('a','one',2)],'x',{'x':'blob:x'},['a'],['a'],True)), 'blob:x')
check('removed-preview-release scenario 5', solve('removed-preview-release', ([('a','one',2),('b','two',3)],'a',{'a':'blob:a'},[],['b'],True)), 'blob:a')
check('removed-preview-release scenario 6', solve('removed-preview-release', ([('a','one',2),('b','two',3)],'b',{},['a','a'],[],False)), None)
check('other-previews-preserved scenario 1', solve('other-previews-preserved', ([('a','one',N),('b','two',2)],'a',{'a':'blob:a','b':'blob:b'},['a','b'],['a'],False)), {'b':'blob:b'})
check('other-previews-preserved scenario 2', solve('other-previews-preserved', ([], 'x',{},[],[],False)), {})
check('other-previews-preserved scenario 3', solve('other-previews-preserved', ([('a','same',0),('b','same',3)],'b',{'a':'blob:a'},['b'],[],False)), {'a':'blob:a'})
check('other-previews-preserved scenario 4', solve('other-previews-preserved', ([('a','one',2)],'x',{'x':'blob:x'},['a'],['a'],True)), {})
check('other-previews-preserved scenario 5', solve('other-previews-preserved', ([('a','one',2),('b','two',3)],'a',{'a':'blob:a'},[],['b'],True)), {})
check('other-previews-preserved scenario 6', solve('other-previews-preserved', ([('a','one',2),('b','two',3)],'b',{},['a','a'],[],False)), {})
check('submitted-attachment-retention scenario 1', solve('submitted-attachment-retention', ([('a','one',N),('b','two',2)],'a',{'a':'blob:a','b':'blob:b'},['a','b'],['a'],False)), [('a','one',N)])
check('submitted-attachment-retention scenario 2', solve('submitted-attachment-retention', ([], 'x',{},[],[],False)), [])
check('submitted-attachment-retention scenario 3', solve('submitted-attachment-retention', ([('a','same',0),('b','same',3)],'b',{'a':'blob:a'},['b'],[],False)), [])
check('submitted-attachment-retention scenario 4', solve('submitted-attachment-retention', ([('a','one',2)],'x',{'x':'blob:x'},['a'],['a'],True)), [('a','one',2)])
check('submitted-attachment-retention scenario 5', solve('submitted-attachment-retention', ([('a','one',2),('b','two',3)],'a',{'a':'blob:a'},[],['b'],True)), [('b','two',3)])
check('submitted-attachment-retention scenario 6', solve('submitted-attachment-retention', ([('a','one',2),('b','two',3)],'b',{},['a','a'],[],False)), [])
check('new-attachment-dirty-set scenario 1', solve('new-attachment-dirty-set', ([('a','one',N),('b','two',2)],'a',{'a':'blob:a','b':'blob:b'},['a','b'],['a'],False)), ['b'])
check('new-attachment-dirty-set scenario 2', solve('new-attachment-dirty-set', ([], 'x',{},[],[],False)), [])
check('new-attachment-dirty-set scenario 3', solve('new-attachment-dirty-set', ([('a','same',0),('b','same',3)],'b',{'a':'blob:a'},['b'],[],False)), ['a','b'])
check('new-attachment-dirty-set scenario 4', solve('new-attachment-dirty-set', ([('a','one',2)],'x',{'x':'blob:x'},['a'],['a'],True)), [])
check('new-attachment-dirty-set scenario 5', solve('new-attachment-dirty-set', ([('a','one',2),('b','two',3)],'a',{'a':'blob:a'},[],['b'],True)), ['a'])
check('new-attachment-dirty-set scenario 6', solve('new-attachment-dirty-set', ([('a','one',2),('b','two',3)],'b',{},['a','a'],[],False)), ['a','b'])
check('selected-id-deduplication scenario 1', solve('selected-id-deduplication', ([('a','one',N),('b','two',2)],'a',{'a':'blob:a','b':'blob:b'},['a','b'],['a'],False)), ['a','b'])
check('selected-id-deduplication scenario 2', solve('selected-id-deduplication', ([], 'x',{},[],[],False)), [])
check('selected-id-deduplication scenario 3', solve('selected-id-deduplication', ([('a','same',0),('b','same',3)],'b',{'a':'blob:a'},['b'],[],False)), ['b'])
check('selected-id-deduplication scenario 4', solve('selected-id-deduplication', ([('a','one',2)],'x',{'x':'blob:x'},['a'],['a'],True)), ['a'])
check('selected-id-deduplication scenario 5', solve('selected-id-deduplication', ([('a','one',2),('b','two',3)],'a',{'a':'blob:a'},[],['b'],True)), [])
check('selected-id-deduplication scenario 6', solve('selected-id-deduplication', ([('a','one',2),('b','two',3)],'b',{},['a','a'],[],False)), ['a'])
check('readonly-remove-command scenario 1', solve('readonly-remove-command', ([('a','one',N),('b','two',2)],'a',{'a':'blob:a','b':'blob:b'},['a','b'],['a'],False)), ['a'])
check('readonly-remove-command scenario 2', solve('readonly-remove-command', ([], 'x',{},[],[],False)), ['x'])
check('readonly-remove-command scenario 3', solve('readonly-remove-command', ([('a','same',0),('b','same',3)],'b',{'a':'blob:a'},['b'],[],False)), ['b'])
check('readonly-remove-command scenario 4', solve('readonly-remove-command', ([('a','one',2)],'x',{'x':'blob:x'},['a'],['a'],True)), [])
check('readonly-remove-command scenario 5', solve('readonly-remove-command', ([('a','one',2),('b','two',3)],'a',{'a':'blob:a'},[],['b'],True)), [])
check('readonly-remove-command scenario 6', solve('readonly-remove-command', ([('a','one',2),('b','two',3)],'b',{},['a','a'],[],False)), ['b'])
check('selection-removal-propagation scenario 1', solve('selection-removal-propagation', ([('a','one',N),('b','two',2)],'a',{'a':'blob:a','b':'blob:b'},['a','b'],['a'],False)), ['b'])
check('selection-removal-propagation scenario 2', solve('selection-removal-propagation', ([], 'x',{},[],[],False)), [])
check('selection-removal-propagation scenario 3', solve('selection-removal-propagation', ([('a','same',0),('b','same',3)],'b',{'a':'blob:a'},['b'],[],False)), [])
check('selection-removal-propagation scenario 4', solve('selection-removal-propagation', ([('a','one',2)],'x',{'x':'blob:x'},['a'],['a'],True)), ['a'])
check('selection-removal-propagation scenario 5', solve('selection-removal-propagation', ([('a','one',2),('b','two',3)],'a',{'a':'blob:a'},[],['b'],True)), [])
check('selection-removal-propagation scenario 6', solve('selection-removal-propagation', ([('a','one',2),('b','two',3)],'b',{},['a','a'],[],False)), ['a','a'])
check('orphan-preview-cleanup scenario 1', solve('orphan-preview-cleanup', ([('a','one',N),('b','two',2)],'a',{'a':'blob:a','b':'blob:b'},['a','b'],['a'],False)), [])
check('orphan-preview-cleanup scenario 2', solve('orphan-preview-cleanup', ([], 'x',{},[],[],False)), [])
check('orphan-preview-cleanup scenario 3', solve('orphan-preview-cleanup', ([('a','same',0),('b','same',3)],'b',{'a':'blob:a'},['b'],[],False)), [])
check('orphan-preview-cleanup scenario 4', solve('orphan-preview-cleanup', ([('a','one',2)],'x',{'x':'blob:x'},['a'],['a'],True)), ['blob:x'])
check('orphan-preview-cleanup scenario 5', solve('orphan-preview-cleanup', ([('a','one',2),('b','two',3)],'a',{'a':'blob:a'},[],['b'],True)), [])
check('orphan-preview-cleanup scenario 6', solve('orphan-preview-cleanup', ([('a','one',2),('b','two',3)],'b',{},['a','a'],[],False)), [])
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
remove-by-file-identity scenario 1[['b', 'two', 2]][['b', 'two', 2]]Passed
remove-by-file-identity scenario 2[][]Passed
remove-by-file-identity scenario 3[['a', 'same', 0]][['a', 'same', 0]]Passed
remove-by-file-identity scenario 4[['a', 'one', 2]][['a', 'one', 2]]Passed
remove-by-file-identity scenario 5[['b', 'two', 3]][['b', 'two', 3]]Passed
remove-by-file-identity scenario 6[['a', 'one', 2]][['a', 'one', 2]]Passed
duplicate-filenames-kept scenario 1[['a', 'one'], ['b', 'two']][['a', 'one'], ['b', 'two']]Passed
duplicate-filenames-kept scenario 2[][]Passed
duplicate-filenames-kept scenario 3[['b', 'same']][['a', 'same'], ['b', 'same']]Failed
duplicate-filenames-kept scenario 4[['a', 'one']][['a', 'one']]Passed
duplicate-filenames-kept scenario 5[['a', 'one'], ['b', 'two']][['a', 'one'], ['b', 'two']]Passed
duplicate-filenames-kept scenario 6[['a', 'one'], ['b', 'two']][['a', 'one'], ['b', 'two']]Passed
removed-preview-release scenario 1blob:ablob:aPassed
removed-preview-release scenario 2NoneNonePassed
removed-preview-release scenario 3NoneNonePassed
removed-preview-release scenario 4blob:xblob:xPassed
removed-preview-release scenario 5blob:ablob:aPassed
removed-preview-release scenario 6NoneNonePassed
other-previews-preserved scenario 1{'b': 'blob:b'}{'b': 'blob:b'}Passed
other-previews-preserved scenario 2{}{}Passed
other-previews-preserved scenario 3{'a': 'blob:a'}{'a': 'blob:a'}Passed
other-previews-preserved scenario 4{}{}Passed
other-previews-preserved scenario 5{}{}Passed
other-previews-preserved scenario 6{}{}Passed
submitted-attachment-retention scenario 1[['a', 'one', 1]][['a', 'one', 1]]Passed
submitted-attachment-retention scenario 2[][]Passed
submitted-attachment-retention scenario 3[][]Passed
submitted-attachment-retention scenario 4[['a', 'one', 2]][['a', 'one', 2]]Passed
submitted-attachment-retention scenario 5[['b', 'two', 3]][['b', 'two', 3]]Passed
submitted-attachment-retention scenario 6[][]Passed
new-attachment-dirty-set scenario 1['b']['b']Passed
new-attachment-dirty-set scenario 2[][]Passed
new-attachment-dirty-set scenario 3['a', 'b']['a', 'b']Passed
new-attachment-dirty-set scenario 4[][]Passed
new-attachment-dirty-set scenario 5['a']['a']Passed
new-attachment-dirty-set scenario 6['a', 'b']['a', 'b']Passed
selected-id-deduplication scenario 1['a', 'b']['a', 'b']Passed
selected-id-deduplication scenario 2[][]Passed
selected-id-deduplication scenario 3['b']['b']Passed
selected-id-deduplication scenario 4['a']['a']Passed
selected-id-deduplication scenario 5[][]Passed
selected-id-deduplication scenario 6['a']['a']Passed
readonly-remove-command scenario 1['a']['a']Passed
readonly-remove-command scenario 2['x']['x']Passed
readonly-remove-command scenario 3['b']['b']Passed
readonly-remove-command scenario 4[][]Passed
readonly-remove-command scenario 5[][]Passed
readonly-remove-command scenario 6['b']['b']Passed
selection-removal-propagation scenario 1['b']['b']Passed
selection-removal-propagation scenario 2[][]Passed
selection-removal-propagation scenario 3[][]Passed
selection-removal-propagation scenario 4['a']['a']Passed
selection-removal-propagation scenario 5[][]Passed
selection-removal-propagation scenario 6['a', 'a']['a', 'a']Passed
orphan-preview-cleanup scenario 1[][]Passed
orphan-preview-cleanup scenario 2[][]Passed
orphan-preview-cleanup scenario 3[][]Passed
orphan-preview-cleanup scenario 4['blob:x']['blob:x']Passed
orphan-preview-cleanup scenario 5[][]Passed
orphan-preview-cleanup scenario 6[][]Passed

SHA-256 / a8587cacadceccd0747a33e184aec1eaf6a3a533b7858b715b5d3018a5e08b31

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(operation, s):
    attachments, removed, previews, selected, submitted, readonly = s
    if operation == 'remove-by-file-identity':
        return [x for x in attachments if x[0]!=removed]
    if operation == 'duplicate-filenames-kept':
        return [(k,name) for k,name,size in attachments if size]
    if operation == 'removed-preview-release':
        return previews.get(removed)
    if operation == 'other-previews-preserved':
        return {k:v for k,v in previews.items() if k!=removed}
    if operation == 'submitted-attachment-retention':
        return [x for x in attachments if x[0] in submitted]
    if operation == 'new-attachment-dirty-set':
        return [k for k,name,size in attachments if k not in submitted]
    if operation == 'selected-id-deduplication':
        return list(dict.fromkeys(selected))
    if operation == 'readonly-remove-command':
        return [] if readonly else [removed]
    if operation == 'selection-removal-propagation':
        return [k for k in selected if k!=removed]
    if operation == 'orphan-preview-cleanup':
        return [v for k,v in previews.items() if k not in {x[0] for x in attachments}]
    raise ValueError('unknown modeled operation')
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('remove-by-file-identity scenario 1', solve('remove-by-file-identity', ([('a','one',N),('b','two',2)],'a',{'a':'blob:a','b':'blob:b'},['a','b'],['a'],False)), [('b','two',2)])
check('remove-by-file-identity scenario 2', solve('remove-by-file-identity', ([], 'x',{},[],[],False)), [])
check('remove-by-file-identity scenario 3', solve('remove-by-file-identity', ([('a','same',0),('b','same',3)],'b',{'a':'blob:a'},['b'],[],False)), [('a','same',0)])
check('remove-by-file-identity scenario 4', solve('remove-by-file-identity', ([('a','one',2)],'x',{'x':'blob:x'},['a'],['a'],True)), [('a','one',2)])
check('remove-by-file-identity scenario 5', solve('remove-by-file-identity', ([('a','one',2),('b','two',3)],'a',{'a':'blob:a'},[],['b'],True)), [('b','two',3)])
check('remove-by-file-identity scenario 6', solve('remove-by-file-identity', ([('a','one',2),('b','two',3)],'b',{},['a','a'],[],False)), [('a','one',2)])
check('duplicate-filenames-kept scenario 1', solve('duplicate-filenames-kept', ([('a','one',N),('b','two',2)],'a',{'a':'blob:a','b':'blob:b'},['a','b'],['a'],False)), [('a','one'),('b','two')])
check('duplicate-filenames-kept scenario 2', solve('duplicate-filenames-kept', ([], 'x',{},[],[],False)), [])
check('duplicate-filenames-kept scenario 3', solve('duplicate-filenames-kept', ([('a','same',0),('b','same',3)],'b',{'a':'blob:a'},['b'],[],False)), [('a','same'),('b','same')])
check('duplicate-filenames-kept scenario 4', solve('duplicate-filenames-kept', ([('a','one',2)],'x',{'x':'blob:x'},['a'],['a'],True)), [('a','one')])
check('duplicate-filenames-kept scenario 5', solve('duplicate-filenames-kept', ([('a','one',2),('b','two',3)],'a',{'a':'blob:a'},[],['b'],True)), [('a','one'),('b','two')])
check('duplicate-filenames-kept scenario 6', solve('duplicate-filenames-kept', ([('a','one',2),('b','two',3)],'b',{},['a','a'],[],False)), [('a','one'),('b','two')])
check('removed-preview-release scenario 1', solve('removed-preview-release', ([('a','one',N),('b','two',2)],'a',{'a':'blob:a','b':'blob:b'},['a','b'],['a'],False)), 'blob:a')
check('removed-preview-release scenario 2', solve('removed-preview-release', ([], 'x',{},[],[],False)), None)
check('removed-preview-release scenario 3', solve('removed-preview-release', ([('a','same',0),('b','same',3)],'b',{'a':'blob:a'},['b'],[],False)), None)
check('removed-preview-release scenario 4', solve('removed-preview-release', ([('a','one',2)],'x',{'x':'blob:x'},['a'],['a'],True)), 'blob:x')
check('removed-preview-release scenario 5', solve('removed-preview-release', ([('a','one',2),('b','two',3)],'a',{'a':'blob:a'},[],['b'],True)), 'blob:a')
check('removed-preview-release scenario 6', solve('removed-preview-release', ([('a','one',2),('b','two',3)],'b',{},['a','a'],[],False)), None)
check('other-previews-preserved scenario 1', solve('other-previews-preserved', ([('a','one',N),('b','two',2)],'a',{'a':'blob:a','b':'blob:b'},['a','b'],['a'],False)), {'b':'blob:b'})
check('other-previews-preserved scenario 2', solve('other-previews-preserved', ([], 'x',{},[],[],False)), {})
check('other-previews-preserved scenario 3', solve('other-previews-preserved', ([('a','same',0),('b','same',3)],'b',{'a':'blob:a'},['b'],[],False)), {'a':'blob:a'})
check('other-previews-preserved scenario 4', solve('other-previews-preserved', ([('a','one',2)],'x',{'x':'blob:x'},['a'],['a'],True)), {})
check('other-previews-preserved scenario 5', solve('other-previews-preserved', ([('a','one',2),('b','two',3)],'a',{'a':'blob:a'},[],['b'],True)), {})
check('other-previews-preserved scenario 6', solve('other-previews-preserved', ([('a','one',2),('b','two',3)],'b',{},['a','a'],[],False)), {})
check('submitted-attachment-retention scenario 1', solve('submitted-attachment-retention', ([('a','one',N),('b','two',2)],'a',{'a':'blob:a','b':'blob:b'},['a','b'],['a'],False)), [('a','one',N)])
check('submitted-attachment-retention scenario 2', solve('submitted-attachment-retention', ([], 'x',{},[],[],False)), [])
check('submitted-attachment-retention scenario 3', solve('submitted-attachment-retention', ([('a','same',0),('b','same',3)],'b',{'a':'blob:a'},['b'],[],False)), [])
check('submitted-attachment-retention scenario 4', solve('submitted-attachment-retention', ([('a','one',2)],'x',{'x':'blob:x'},['a'],['a'],True)), [('a','one',2)])
check('submitted-attachment-retention scenario 5', solve('submitted-attachment-retention', ([('a','one',2),('b','two',3)],'a',{'a':'blob:a'},[],['b'],True)), [('b','two',3)])
check('submitted-attachment-retention scenario 6', solve('submitted-attachment-retention', ([('a','one',2),('b','two',3)],'b',{},['a','a'],[],False)), [])
check('new-attachment-dirty-set scenario 1', solve('new-attachment-dirty-set', ([('a','one',N),('b','two',2)],'a',{'a':'blob:a','b':'blob:b'},['a','b'],['a'],False)), ['b'])
check('new-attachment-dirty-set scenario 2', solve('new-attachment-dirty-set', ([], 'x',{},[],[],False)), [])
check('new-attachment-dirty-set scenario 3', solve('new-attachment-dirty-set', ([('a','same',0),('b','same',3)],'b',{'a':'blob:a'},['b'],[],False)), ['a','b'])
check('new-attachment-dirty-set scenario 4', solve('new-attachment-dirty-set', ([('a','one',2)],'x',{'x':'blob:x'},['a'],['a'],True)), [])
check('new-attachment-dirty-set scenario 5', solve('new-attachment-dirty-set', ([('a','one',2),('b','two',3)],'a',{'a':'blob:a'},[],['b'],True)), ['a'])
check('new-attachment-dirty-set scenario 6', solve('new-attachment-dirty-set', ([('a','one',2),('b','two',3)],'b',{},['a','a'],[],False)), ['a','b'])
check('selected-id-deduplication scenario 1', solve('selected-id-deduplication', ([('a','one',N),('b','two',2)],'a',{'a':'blob:a','b':'blob:b'},['a','b'],['a'],False)), ['a','b'])
check('selected-id-deduplication scenario 2', solve('selected-id-deduplication', ([], 'x',{},[],[],False)), [])
check('selected-id-deduplication scenario 3', solve('selected-id-deduplication', ([('a','same',0),('b','same',3)],'b',{'a':'blob:a'},['b'],[],False)), ['b'])
check('selected-id-deduplication scenario 4', solve('selected-id-deduplication', ([('a','one',2)],'x',{'x':'blob:x'},['a'],['a'],True)), ['a'])
check('selected-id-deduplication scenario 5', solve('selected-id-deduplication', ([('a','one',2),('b','two',3)],'a',{'a':'blob:a'},[],['b'],True)), [])
check('selected-id-deduplication scenario 6', solve('selected-id-deduplication', ([('a','one',2),('b','two',3)],'b',{},['a','a'],[],False)), ['a'])
check('readonly-remove-command scenario 1', solve('readonly-remove-command', ([('a','one',N),('b','two',2)],'a',{'a':'blob:a','b':'blob:b'},['a','b'],['a'],False)), ['a'])
check('readonly-remove-command scenario 2', solve('readonly-remove-command', ([], 'x',{},[],[],False)), ['x'])
check('readonly-remove-command scenario 3', solve('readonly-remove-command', ([('a','same',0),('b','same',3)],'b',{'a':'blob:a'},['b'],[],False)), ['b'])
check('readonly-remove-command scenario 4', solve('readonly-remove-command', ([('a','one',2)],'x',{'x':'blob:x'},['a'],['a'],True)), [])
check('readonly-remove-command scenario 5', solve('readonly-remove-command', ([('a','one',2),('b','two',3)],'a',{'a':'blob:a'},[],['b'],True)), [])
check('readonly-remove-command scenario 6', solve('readonly-remove-command', ([('a','one',2),('b','two',3)],'b',{},['a','a'],[],False)), ['b'])
check('selection-removal-propagation scenario 1', solve('selection-removal-propagation', ([('a','one',N),('b','two',2)],'a',{'a':'blob:a','b':'blob:b'},['a','b'],['a'],False)), ['b'])
check('selection-removal-propagation scenario 2', solve('selection-removal-propagation', ([], 'x',{},[],[],False)), [])
check('selection-removal-propagation scenario 3', solve('selection-removal-propagation', ([('a','same',0),('b','same',3)],'b',{'a':'blob:a'},['b'],[],False)), [])
check('selection-removal-propagation scenario 4', solve('selection-removal-propagation', ([('a','one',2)],'x',{'x':'blob:x'},['a'],['a'],True)), ['a'])
check('selection-removal-propagation scenario 5', solve('selection-removal-propagation', ([('a','one',2),('b','two',3)],'a',{'a':'blob:a'},[],['b'],True)), [])
check('selection-removal-propagation scenario 6', solve('selection-removal-propagation', ([('a','one',2),('b','two',3)],'b',{},['a','a'],[],False)), ['a','a'])
check('orphan-preview-cleanup scenario 1', solve('orphan-preview-cleanup', ([('a','one',N),('b','two',2)],'a',{'a':'blob:a','b':'blob:b'},['a','b'],['a'],False)), [])
check('orphan-preview-cleanup scenario 2', solve('orphan-preview-cleanup', ([], 'x',{},[],[],False)), [])
check('orphan-preview-cleanup scenario 3', solve('orphan-preview-cleanup', ([('a','same',0),('b','same',3)],'b',{'a':'blob:a'},['b'],[],False)), [])
check('orphan-preview-cleanup scenario 4', solve('orphan-preview-cleanup', ([('a','one',2)],'x',{'x':'blob:x'},['a'],['a'],True)), ['blob:x'])
check('orphan-preview-cleanup scenario 5', solve('orphan-preview-cleanup', ([('a','one',2),('b','two',3)],'a',{'a':'blob:a'},[],['b'],True)), [])
check('orphan-preview-cleanup scenario 6', solve('orphan-preview-cleanup', ([('a','one',2),('b','two',3)],'b',{},['a','a'],[],False)), [])
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
remove-by-file-identity scenario 1[['b', 'two', 2]][['b', 'two', 2]]Passed
remove-by-file-identity scenario 2[][]Passed
remove-by-file-identity scenario 3[['a', 'same', 0]][['a', 'same', 0]]Passed
remove-by-file-identity scenario 4[['a', 'one', 2]][['a', 'one', 2]]Passed
remove-by-file-identity scenario 5[['b', 'two', 3]][['b', 'two', 3]]Passed
remove-by-file-identity scenario 6[['a', 'one', 2]][['a', 'one', 2]]Passed
duplicate-filenames-kept scenario 1[['a', 'one'], ['b', 'two']][['a', 'one'], ['b', 'two']]Passed
duplicate-filenames-kept scenario 2[][]Passed
duplicate-filenames-kept scenario 3[['b', 'same']][['a', 'same'], ['b', 'same']]Failed
duplicate-filenames-kept scenario 4[['a', 'one']][['a', 'one']]Passed
duplicate-filenames-kept scenario 5[['a', 'one'], ['b', 'two']][['a', 'one'], ['b', 'two']]Passed
duplicate-filenames-kept scenario 6[['a', 'one'], ['b', 'two']][['a', 'one'], ['b', 'two']]Passed
removed-preview-release scenario 1blob:ablob:aPassed
removed-preview-release scenario 2NoneNonePassed
removed-preview-release scenario 3NoneNonePassed
removed-preview-release scenario 4blob:xblob:xPassed
removed-preview-release scenario 5blob:ablob:aPassed
removed-preview-release scenario 6NoneNonePassed
other-previews-preserved scenario 1{'b': 'blob:b'}{'b': 'blob:b'}Passed
other-previews-preserved scenario 2{}{}Passed
other-previews-preserved scenario 3{'a': 'blob:a'}{'a': 'blob:a'}Passed
other-previews-preserved scenario 4{}{}Passed
other-previews-preserved scenario 5{}{}Passed
other-previews-preserved scenario 6{}{}Passed
submitted-attachment-retention scenario 1[['a', 'one', 1]][['a', 'one', 1]]Passed
submitted-attachment-retention scenario 2[][]Passed
submitted-attachment-retention scenario 3[][]Passed
submitted-attachment-retention scenario 4[['a', 'one', 2]][['a', 'one', 2]]Passed
submitted-attachment-retention scenario 5[['b', 'two', 3]][['b', 'two', 3]]Passed
submitted-attachment-retention scenario 6[][]Passed
new-attachment-dirty-set scenario 1['b']['b']Passed
new-attachment-dirty-set scenario 2[][]Passed
new-attachment-dirty-set scenario 3['a', 'b']['a', 'b']Passed
new-attachment-dirty-set scenario 4[][]Passed
new-attachment-dirty-set scenario 5['a']['a']Passed
new-attachment-dirty-set scenario 6['a', 'b']['a', 'b']Passed
selected-id-deduplication scenario 1['a', 'b']['a', 'b']Passed
selected-id-deduplication scenario 2[][]Passed
selected-id-deduplication scenario 3['b']['b']Passed
selected-id-deduplication scenario 4['a']['a']Passed
selected-id-deduplication scenario 5[][]Passed
selected-id-deduplication scenario 6['a']['a']Passed
readonly-remove-command scenario 1['a']['a']Passed
readonly-remove-command scenario 2['x']['x']Passed
readonly-remove-command scenario 3['b']['b']Passed
readonly-remove-command scenario 4[][]Passed
readonly-remove-command scenario 5[][]Passed
readonly-remove-command scenario 6['b']['b']Passed
selection-removal-propagation scenario 1['b']['b']Passed
selection-removal-propagation scenario 2[][]Passed
selection-removal-propagation scenario 3[][]Passed
selection-removal-propagation scenario 4['a']['a']Passed
selection-removal-propagation scenario 5[][]Passed
selection-removal-propagation scenario 6['a', 'a']['a', 'a']Passed
orphan-preview-cleanup scenario 1[][]Passed
orphan-preview-cleanup scenario 2[][]Passed
orphan-preview-cleanup scenario 3[][]Passed
orphan-preview-cleanup scenario 4['blob:x']['blob:x']Passed
orphan-preview-cleanup scenario 5[][]Passed
orphan-preview-cleanup scenario 6[][]Passed

SHA-256 / 237cf009949963f8e9039a12e706897d1c53e30ce5dfe76560f50fc65f8a5089

HELD IN THE MEMBER ARCHIVE

The verified repair and its recorded checks are member-only.

This mechanism has 60 recorded checks per implementation. The open-access tier publishes the failure and the unsuccessful fix; the repaired source that passes every check, and the observations that prove it, are available to members.

Every case sharing this mechanism uses the same contract and the same repair, so this one record is held back for all of them.

Member access is invitation-based. Sign in with your invited account to inspect the repair.

Sign in to the archive ↗

Verification & scope

Only the explicitly specified operations and finite deterministic records are modeled; no browser or framework 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:40:57.279978+00:00.

Case digest / b735ecc9f5f929f93e82376e5a3b6bf7756255c57f6d4cc3f7faf71d47b340d9