FA-24406 / Client state / Open access
Client attachment resource ownership: Submitted attachment retention · case 01
Submitted attachment retention.
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 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 | [['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 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], ['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 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 | [['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 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 | [['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