FA-24391 / Client state / Open access
Client attachment resource ownership: Duplicate filenames kept · case 01
Duplicate filenames kept.
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| 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 1 | blob:a | blob:a | Passed |
| removed-preview-release scenario 2 | None | None | Passed |
| removed-preview-release scenario 3 | None | None | Passed |
| removed-preview-release scenario 4 | blob:x | blob:x | Passed |
| removed-preview-release scenario 5 | blob:a | blob:a | Passed |
| removed-preview-release scenario 6 | None | None | Passed |
| 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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| 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 1 | blob:a | blob:a | Passed |
| removed-preview-release scenario 2 | None | None | Passed |
| removed-preview-release scenario 3 | None | None | Passed |
| removed-preview-release scenario 4 | blob:x | blob:x | Passed |
| removed-preview-release scenario 5 | blob:a | blob:a | Passed |
| removed-preview-release scenario 6 | None | None | Passed |
| 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