FAILURE MAP
← Case archive

FA-36651 / Tab interfaces / Open access

Panel background tasks: resumable job ownership · case 01

The tab workspace reports an incorrect resumable job ownership.

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

ROOT CAUSE

The resumable job ownership decision uses x['mounted'] instead of sorted(set(j[0] for j in x['jobs'] if j[0] in x['mounted'] and j[0] not in x['visible'] and j[1]=='render')).

VERIFIED REPAIR

Use the stipulated workspace rule: sorted(set(j[0] for j in x['jobs'] if j[0] in x['mounted'] and j[0] not in x['visible'] and j[1]=='render')).

Unsuccessful approach: The partial repair x['visible'] still violates a workspace boundary or normal case.

Case contract

Tab panel jobs are classified into visible rendering, background-safe work and paused work. Hidden panes pause render-only jobs but retain explicit background-safe tasks.

Why this case matters

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

1 / The failure

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

N = 1
observations = []
def solve(x):
    r0 = [j for j in x['jobs'] if j[0] in x['visible'] and j[1]=='render']
    r1 = [j for j in x['jobs'] if j[0] in x['mounted'] and j[0] not in x['visible'] and j[1]=='render']
    r2 = [j for j in x['jobs'] if j[0] in x['mounted'] and j[1]=='index']
    r3 = [j for j in x['jobs'] if j[0] in x['closed']]
    r4 = x['mounted']
    r5 = [j for j in x['jobs'] if j[0] in x['mounted'] and (j[1]=='index' or j[0] in x['visible'])]
    return [r0,r1,r2,r3,r4,r5]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': ['a'], 'mounted': ['a', 'b'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': ['b'], 'mounted': ['a', 'b'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': ['a', 'b'], 'mounted': ['a', 'b'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': ['a'], 'mounted': ['a', 'b', 'c'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': [], 'mounted': ['a', 'b'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render']], 'visible': ['a'], 'mounted': ['a', 'b'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index']], [], ['b'], [['a', 'index']]])], 2: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': ['b'], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': ['a', 'b'], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'c', 'extra0'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': [], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render'], ['extra0', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index'], ['extra0', 'index']], [], ['b'], [['a', 'index'], ['extra0', 'index']]])], 3: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['b'], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['a', 'b'], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'c', 'extra0', 'extra1'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': [], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index']], [], ['b'], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index']]])], 4: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['b'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['a', 'b'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'c', 'extra0', 'extra1', 'extra2'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': [], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [], ['b'], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]])], 5: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['b'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['a', 'b'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'c', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': [], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [], ['b'], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]])]}
for i, (inputs, expected) in enumerate(fixtures[N]):
    check("workspace regression "+str(i), solve(inputs), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
workspace regression 0[[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'render'], ['a', 'index'], ['b', 'index']]][[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index']]]Failed
workspace regression 1[[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'render'], ['b', 'index']]][[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index']]]Failed
workspace regression 2[[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index']]][[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index']]]Failed
workspace regression 3[[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index']], [], ['a', 'b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index']]][[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index']]]Failed
workspace regression 4[[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index']]][[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index']]]Passed
workspace regression 5[[], [['b', 'render']], [['a', 'index']], [], ['a', 'b'], [['a', 'index']]][[], [['b', 'render']], [['a', 'index']], [], ['b'], [['a', 'index']]]Failed

SHA-256 / 8369fbf7793cd643bbb46245f1f9bdd300ce728d2049751e714a4d1638d55eb5

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(x):
    r0 = [j for j in x['jobs'] if j[0] in x['visible'] and j[1]=='render']
    r1 = [j for j in x['jobs'] if j[0] in x['mounted'] and j[0] not in x['visible'] and j[1]=='render']
    r2 = [j for j in x['jobs'] if j[0] in x['mounted'] and j[1]=='index']
    r3 = [j for j in x['jobs'] if j[0] in x['closed']]
    r4 = x['visible']
    r5 = [j for j in x['jobs'] if j[0] in x['mounted'] and (j[1]=='index' or j[0] in x['visible'])]
    return [r0,r1,r2,r3,r4,r5]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': ['a'], 'mounted': ['a', 'b'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': ['b'], 'mounted': ['a', 'b'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': ['a', 'b'], 'mounted': ['a', 'b'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': ['a'], 'mounted': ['a', 'b', 'c'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': [], 'mounted': ['a', 'b'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render']], 'visible': ['a'], 'mounted': ['a', 'b'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index']], [], ['b'], [['a', 'index']]])], 2: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': ['b'], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': ['a', 'b'], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'c', 'extra0'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': [], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render'], ['extra0', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index'], ['extra0', 'index']], [], ['b'], [['a', 'index'], ['extra0', 'index']]])], 3: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['b'], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['a', 'b'], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'c', 'extra0', 'extra1'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': [], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index']], [], ['b'], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index']]])], 4: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['b'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['a', 'b'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'c', 'extra0', 'extra1', 'extra2'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': [], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [], ['b'], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]])], 5: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['b'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['a', 'b'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'c', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': [], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [], ['b'], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]])]}
for i, (inputs, expected) in enumerate(fixtures[N]):
    check("workspace regression "+str(i), solve(inputs), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
workspace regression 0[[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a'], [['a', 'render'], ['a', 'index'], ['b', 'index']]][[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index']]]Failed
workspace regression 1[[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['b'], [['a', 'index'], ['b', 'render'], ['b', 'index']]][[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index']]]Failed
workspace regression 2[[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index']]][[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index']]]Failed
workspace regression 3[[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index']], [], ['a'], [['a', 'render'], ['a', 'index'], ['b', 'index']]][[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index']]]Failed
workspace regression 4[[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], [], [['a', 'index'], ['b', 'index']]][[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index']]]Failed
workspace regression 5[[], [['b', 'render']], [['a', 'index']], [], ['a'], [['a', 'index']]][[], [['b', 'render']], [['a', 'index']], [], ['b'], [['a', 'index']]]Failed

SHA-256 / 070e885193a6730ccd0677a939b8a21167b6f7d1162b1d149c197b44293590ef

3 / The verified repair

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

N = 1
observations = []
def solve(x):
    r0 = [j for j in x['jobs'] if j[0] in x['visible'] and j[1]=='render']
    r1 = [j for j in x['jobs'] if j[0] in x['mounted'] and j[0] not in x['visible'] and j[1]=='render']
    r2 = [j for j in x['jobs'] if j[0] in x['mounted'] and j[1]=='index']
    r3 = [j for j in x['jobs'] if j[0] in x['closed']]
    r4 = sorted(set(j[0] for j in x['jobs'] if j[0] in x['mounted'] and j[0] not in x['visible'] and j[1]=='render'))
    r5 = [j for j in x['jobs'] if j[0] in x['mounted'] and (j[1]=='index' or j[0] in x['visible'])]
    return [r0,r1,r2,r3,r4,r5]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': ['a'], 'mounted': ['a', 'b'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': ['b'], 'mounted': ['a', 'b'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': ['a', 'b'], 'mounted': ['a', 'b'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': ['a'], 'mounted': ['a', 'b', 'c'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': [], 'mounted': ['a', 'b'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render']], 'visible': ['a'], 'mounted': ['a', 'b'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index']], [], ['b'], [['a', 'index']]])], 2: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': ['b'], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': ['a', 'b'], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'c', 'extra0'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': [], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render'], ['extra0', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index'], ['extra0', 'index']], [], ['b'], [['a', 'index'], ['extra0', 'index']]])], 3: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['b'], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['a', 'b'], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'c', 'extra0', 'extra1'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': [], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index']], [], ['b'], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index']]])], 4: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['b'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['a', 'b'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'c', 'extra0', 'extra1', 'extra2'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': [], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [], ['b'], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]])], 5: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['b'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['a', 'b'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'c', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': [], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [], ['b'], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]])]}
for i, (inputs, expected) in enumerate(fixtures[N]):
    check("workspace regression "+str(i), solve(inputs), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
workspace regression 0[[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index']]][[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index']]]Passed
workspace regression 1[[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index']]][[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index']]]Passed
workspace regression 2[[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index']]][[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index']]]Passed
workspace regression 3[[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index']]][[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index']]]Passed
workspace regression 4[[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index']]][[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index']]]Passed
workspace regression 5[[], [['b', 'render']], [['a', 'index']], [], ['b'], [['a', 'index']]][[], [['b', 'render']], [['a', 'index']], [], ['b'], [['a', 'index']]]Passed

SHA-256 / d42c2db7bbb6a2309365a6cec6a2fe5a9c524366515fc5428012ff33625577e4

Verification & scope

Finite stipulated workspace snapshots only. Independent result fields describe observable obligations, not a full UI runtime. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.

Observations recorded using Python 3.12.14 at 2026-09-29T14:42:53.463503+00:00.

Case digest / a1254a27536f72d412a98f80bad229c54b4dbd909358e979767aee7dba208b36