FAILURE MAP
← Case archive

FA-36631 / Tab interfaces / Open access

Panel background tasks: visible render jobs · case 01

The tab workspace reports an incorrect visible render jobs.

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

ROOT CAUSE

The visible render jobs decision uses [j for j in x['jobs'] if j[1]=='render'] instead of [j for j in x['jobs'] if j[0] in x['visible'] and j[1]=='render'].

VERIFIED REPAIR

Use the stipulated workspace rule: [j for j in x['jobs'] if j[0] in x['visible'] and j[1]=='render'].

Unsuccessful approach: The partial repair [j for j in x['jobs'] if j[0] in 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[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'], ['c', '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']]]Failed
workspace regression 1[[['a', 'render'], ['b', 'render'], ['c', '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']]]Failed
workspace regression 2[[['a', 'render'], ['b', 'render'], ['c', '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']]]Failed
workspace regression 3[[['a', 'render'], ['b', 'render'], ['c', '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']]]Failed
workspace regression 4[[['a', 'render'], ['b', 'render'], ['c', 'render']], [['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']]]Failed
workspace regression 5[[['b', 'render']], [['b', 'render']], [['a', 'index']], [], ['b'], [['a', 'index']]][[], [['b', 'render']], [['a', 'index']], [], ['b'], [['a', 'index']]]Failed

SHA-256 / 2f06f66182cce2d815ff73d3bda6d8d7f11a8afbc07127e33d9bb316acf72c0b

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']]
    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'], ['a', 'index']], [['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']]]Failed
workspace regression 1[[['b', 'render'], ['b', 'index']], [['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']]]Failed
workspace regression 2[[['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index']], [], [['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']]]Failed
workspace regression 3[[['a', 'render'], ['a', 'index']], [['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']]]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[[['a', 'index']], [['b', 'render']], [['a', 'index']], [], ['b'], [['a', 'index']]][[], [['b', 'render']], [['a', 'index']], [], ['b'], [['a', 'index']]]Failed

SHA-256 / 7bfbe7937c55118589642c2bf4b1eb2462ee0da31dea6e866eac626be91607ac

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.221303+00:00.

Case digest / 5dafa88d0a6415bd7d41c38a8dc71884d89af89d00263a9eb89647293419391b