FAILURE MAP
← Case archive

FA-24406 / Client state / Open access

Client attachment resource ownership: Submitted attachment retention · case 01

Submitted attachment retention.

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

ROOT CAUSE

The submitted-attachment-retention client decision evaluates `attachments` instead of `[x for x in attachments if x[0] in submitted]`.

THE FAILURE

The submitted-attachment-retention client decision evaluates `attachments` instead of `[x for x in attachments if x[0] in submitted]`.

Unsuccessful approach: The partial repair `[x for x in attachments if x[0] not in submitted]` 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 submitted-attachment-retention 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 [(k,name) for k,name,size in attachments]
    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 attachments
    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[['a', 'same'], ['b', 'same']][['a', 'same'], ['b', 'same']]Passed
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], ['b', 'two', 2]][['a', 'one', 1]]Failed
submitted-attachment-retention scenario 2[][]Passed
submitted-attachment-retention scenario 3[['a', 'same', 0], ['b', 'same', 3]][]Failed
submitted-attachment-retention scenario 4[['a', 'one', 2]][['a', 'one', 2]]Passed
submitted-attachment-retention scenario 5[['a', 'one', 2], ['b', 'two', 3]][['b', 'two', 3]]Failed
submitted-attachment-retention scenario 6[['a', 'one', 2], ['b', 'two', 3]][]Failed
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 / 318d3bd41a73ffb0092a57142e53e5e35e3c410f1f0857090f070e052e00ae6d

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 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] not 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[['a', 'same'], ['b', 'same']][['a', 'same'], ['b', 'same']]Passed
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[['b', 'two', 2]][['a', 'one', 1]]Failed
submitted-attachment-retention scenario 2[][]Passed
submitted-attachment-retention scenario 3[['a', 'same', 0], ['b', 'same', 3]][]Failed
submitted-attachment-retention scenario 4[][['a', 'one', 2]]Failed
submitted-attachment-retention scenario 5[['a', 'one', 2]][['b', 'two', 3]]Failed
submitted-attachment-retention scenario 6[['a', 'one', 2], ['b', 'two', 3]][]Failed
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 / 454a25d198b9ee0cab9ffafc7549a46aabe2e2bcfc8a5dadc0883c21d7ca3b4d

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 / 5fbf9bd1dcd97899b14d5cf68eedfe38e86f6689afbcafeae0749a4e00c205e7