FAILURE MAP
← Case archive

FA-35551 / Tab interfaces / Open access

Reorder drop: dragged identity · case 01

The tab workspace reports an incorrect dragged identity.

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

ROOT CAUSE

The dragged identity decision uses x['tabs'][0] instead of x['tabs'][x['index']].

VERIFIED REPAIR

Use the stipulated workspace rule: x['tabs'][x['index']].

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

Case contract

A strip drag uses pre-removal boundary indices: remove the dragged view, decrement later boundaries, clamp and insert while retaining active identity.

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 = x['tabs'][0]
    r1 = x['tabs'][:x['index']]+x['tabs'][x['index']+1:]
    r2 = x['boundary']-(x['boundary']>x['index'])
    r3 = x['boundary'] in (x['index'],x['index']+1)
    r4 = abs(x['boundary']-(x['boundary']>x['index'])-x['index'])
    r5 = x['active']
    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: [({'tabs': ['a', 'b', 'c', 'd'], 'index': 1, 'boundary': 4, 'active': 'c'}, ['b', ['a', 'c', 'd'], 3, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd'], 'index': 1, 'boundary': 0, 'active': 'c'}, ['b', ['a', 'c', 'd'], 0, False, 1, 'c']), ({'tabs': ['a', 'b', 'c', 'd'], 'index': 1, 'boundary': 2, 'active': 'c'}, ['b', ['a', 'c', 'd'], 1, True, 0, 'c']), ({'tabs': ['a', 'b', 'c', 'd'], 'index': 0, 'boundary': 3, 'active': 'c'}, ['a', ['b', 'c', 'd'], 2, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd'], 'index': 3, 'boundary': 1, 'active': 'c'}, ['d', ['a', 'b', 'c'], 1, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd'], 'index': 1, 'boundary': 4, 'active': 'b'}, ['b', ['a', 'c', 'd'], 3, False, 2, 'b'])], 2: [({'tabs': ['a', 'b', 'c', 'd', 'background0'], 'index': 1, 'boundary': 4, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0'], 3, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0'], 'index': 1, 'boundary': 0, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0'], 0, False, 1, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0'], 'index': 1, 'boundary': 2, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0'], 1, True, 0, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0'], 'index': 0, 'boundary': 3, 'active': 'c'}, ['a', ['b', 'c', 'd', 'background0'], 2, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0'], 'index': 3, 'boundary': 1, 'active': 'c'}, ['d', ['a', 'b', 'c', 'background0'], 1, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0'], 'index': 1, 'boundary': 4, 'active': 'b'}, ['b', ['a', 'c', 'd', 'background0'], 3, False, 2, 'b'])], 3: [({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1'], 'index': 1, 'boundary': 4, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0', 'background1'], 3, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1'], 'index': 1, 'boundary': 0, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0', 'background1'], 0, False, 1, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1'], 'index': 1, 'boundary': 2, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0', 'background1'], 1, True, 0, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1'], 'index': 0, 'boundary': 3, 'active': 'c'}, ['a', ['b', 'c', 'd', 'background0', 'background1'], 2, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1'], 'index': 3, 'boundary': 1, 'active': 'c'}, ['d', ['a', 'b', 'c', 'background0', 'background1'], 1, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1'], 'index': 1, 'boundary': 4, 'active': 'b'}, ['b', ['a', 'c', 'd', 'background0', 'background1'], 3, False, 2, 'b'])], 4: [({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2'], 'index': 1, 'boundary': 4, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0', 'background1', 'background2'], 3, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2'], 'index': 1, 'boundary': 0, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0', 'background1', 'background2'], 0, False, 1, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2'], 'index': 1, 'boundary': 2, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0', 'background1', 'background2'], 1, True, 0, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2'], 'index': 0, 'boundary': 3, 'active': 'c'}, ['a', ['b', 'c', 'd', 'background0', 'background1', 'background2'], 2, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2'], 'index': 3, 'boundary': 1, 'active': 'c'}, ['d', ['a', 'b', 'c', 'background0', 'background1', 'background2'], 1, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2'], 'index': 1, 'boundary': 4, 'active': 'b'}, ['b', ['a', 'c', 'd', 'background0', 'background1', 'background2'], 3, False, 2, 'b'])], 5: [({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 'index': 1, 'boundary': 4, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 3, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 'index': 1, 'boundary': 0, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 0, False, 1, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 'index': 1, 'boundary': 2, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 1, True, 0, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 'index': 0, 'boundary': 3, 'active': 'c'}, ['a', ['b', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 2, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 'index': 3, 'boundary': 1, 'active': 'c'}, ['d', ['a', 'b', 'c', 'background0', 'background1', 'background2', 'background3'], 1, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 'index': 1, 'boundary': 4, 'active': 'b'}, ['b', ['a', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 3, False, 2, 'b'])]}
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', ['a', 'c', 'd'], 3, False, 2, 'c']['b', ['a', 'c', 'd'], 3, False, 2, 'c']Failed
workspace regression 1['a', ['a', 'c', 'd'], 0, False, 1, 'c']['b', ['a', 'c', 'd'], 0, False, 1, 'c']Failed
workspace regression 2['a', ['a', 'c', 'd'], 1, True, 0, 'c']['b', ['a', 'c', 'd'], 1, True, 0, 'c']Failed
workspace regression 3['a', ['b', 'c', 'd'], 2, False, 2, 'c']['a', ['b', 'c', 'd'], 2, False, 2, 'c']Passed
workspace regression 4['a', ['a', 'b', 'c'], 1, False, 2, 'c']['d', ['a', 'b', 'c'], 1, False, 2, 'c']Failed
workspace regression 5['a', ['a', 'c', 'd'], 3, False, 2, 'b']['b', ['a', 'c', 'd'], 3, False, 2, 'b']Failed

SHA-256 / 848ed74a805af2485d16b7859e8d29b2babd7716a0ce13b09a3b205224f6894c

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(x):
    r0 = x['tabs'][-1]
    r1 = x['tabs'][:x['index']]+x['tabs'][x['index']+1:]
    r2 = x['boundary']-(x['boundary']>x['index'])
    r3 = x['boundary'] in (x['index'],x['index']+1)
    r4 = abs(x['boundary']-(x['boundary']>x['index'])-x['index'])
    r5 = x['active']
    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: [({'tabs': ['a', 'b', 'c', 'd'], 'index': 1, 'boundary': 4, 'active': 'c'}, ['b', ['a', 'c', 'd'], 3, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd'], 'index': 1, 'boundary': 0, 'active': 'c'}, ['b', ['a', 'c', 'd'], 0, False, 1, 'c']), ({'tabs': ['a', 'b', 'c', 'd'], 'index': 1, 'boundary': 2, 'active': 'c'}, ['b', ['a', 'c', 'd'], 1, True, 0, 'c']), ({'tabs': ['a', 'b', 'c', 'd'], 'index': 0, 'boundary': 3, 'active': 'c'}, ['a', ['b', 'c', 'd'], 2, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd'], 'index': 3, 'boundary': 1, 'active': 'c'}, ['d', ['a', 'b', 'c'], 1, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd'], 'index': 1, 'boundary': 4, 'active': 'b'}, ['b', ['a', 'c', 'd'], 3, False, 2, 'b'])], 2: [({'tabs': ['a', 'b', 'c', 'd', 'background0'], 'index': 1, 'boundary': 4, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0'], 3, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0'], 'index': 1, 'boundary': 0, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0'], 0, False, 1, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0'], 'index': 1, 'boundary': 2, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0'], 1, True, 0, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0'], 'index': 0, 'boundary': 3, 'active': 'c'}, ['a', ['b', 'c', 'd', 'background0'], 2, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0'], 'index': 3, 'boundary': 1, 'active': 'c'}, ['d', ['a', 'b', 'c', 'background0'], 1, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0'], 'index': 1, 'boundary': 4, 'active': 'b'}, ['b', ['a', 'c', 'd', 'background0'], 3, False, 2, 'b'])], 3: [({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1'], 'index': 1, 'boundary': 4, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0', 'background1'], 3, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1'], 'index': 1, 'boundary': 0, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0', 'background1'], 0, False, 1, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1'], 'index': 1, 'boundary': 2, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0', 'background1'], 1, True, 0, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1'], 'index': 0, 'boundary': 3, 'active': 'c'}, ['a', ['b', 'c', 'd', 'background0', 'background1'], 2, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1'], 'index': 3, 'boundary': 1, 'active': 'c'}, ['d', ['a', 'b', 'c', 'background0', 'background1'], 1, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1'], 'index': 1, 'boundary': 4, 'active': 'b'}, ['b', ['a', 'c', 'd', 'background0', 'background1'], 3, False, 2, 'b'])], 4: [({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2'], 'index': 1, 'boundary': 4, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0', 'background1', 'background2'], 3, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2'], 'index': 1, 'boundary': 0, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0', 'background1', 'background2'], 0, False, 1, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2'], 'index': 1, 'boundary': 2, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0', 'background1', 'background2'], 1, True, 0, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2'], 'index': 0, 'boundary': 3, 'active': 'c'}, ['a', ['b', 'c', 'd', 'background0', 'background1', 'background2'], 2, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2'], 'index': 3, 'boundary': 1, 'active': 'c'}, ['d', ['a', 'b', 'c', 'background0', 'background1', 'background2'], 1, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2'], 'index': 1, 'boundary': 4, 'active': 'b'}, ['b', ['a', 'c', 'd', 'background0', 'background1', 'background2'], 3, False, 2, 'b'])], 5: [({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 'index': 1, 'boundary': 4, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 3, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 'index': 1, 'boundary': 0, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 0, False, 1, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 'index': 1, 'boundary': 2, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 1, True, 0, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 'index': 0, 'boundary': 3, 'active': 'c'}, ['a', ['b', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 2, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 'index': 3, 'boundary': 1, 'active': 'c'}, ['d', ['a', 'b', 'c', 'background0', 'background1', 'background2', 'background3'], 1, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 'index': 1, 'boundary': 4, 'active': 'b'}, ['b', ['a', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 3, False, 2, 'b'])]}
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['d', ['a', 'c', 'd'], 3, False, 2, 'c']['b', ['a', 'c', 'd'], 3, False, 2, 'c']Failed
workspace regression 1['d', ['a', 'c', 'd'], 0, False, 1, 'c']['b', ['a', 'c', 'd'], 0, False, 1, 'c']Failed
workspace regression 2['d', ['a', 'c', 'd'], 1, True, 0, 'c']['b', ['a', 'c', 'd'], 1, True, 0, 'c']Failed
workspace regression 3['d', ['b', 'c', 'd'], 2, False, 2, 'c']['a', ['b', 'c', 'd'], 2, False, 2, 'c']Failed
workspace regression 4['d', ['a', 'b', 'c'], 1, False, 2, 'c']['d', ['a', 'b', 'c'], 1, False, 2, 'c']Passed
workspace regression 5['d', ['a', 'c', 'd'], 3, False, 2, 'b']['b', ['a', 'c', 'd'], 3, False, 2, 'b']Failed

SHA-256 / 4ba4c31ba5aa4a78ee2b7f8d8c3448ed5881ada6b195eb38001849232a3f6bc5

3 / The verified repair

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

N = 1
observations = []
def solve(x):
    r0 = x['tabs'][x['index']]
    r1 = x['tabs'][:x['index']]+x['tabs'][x['index']+1:]
    r2 = x['boundary']-(x['boundary']>x['index'])
    r3 = x['boundary'] in (x['index'],x['index']+1)
    r4 = abs(x['boundary']-(x['boundary']>x['index'])-x['index'])
    r5 = x['active']
    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: [({'tabs': ['a', 'b', 'c', 'd'], 'index': 1, 'boundary': 4, 'active': 'c'}, ['b', ['a', 'c', 'd'], 3, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd'], 'index': 1, 'boundary': 0, 'active': 'c'}, ['b', ['a', 'c', 'd'], 0, False, 1, 'c']), ({'tabs': ['a', 'b', 'c', 'd'], 'index': 1, 'boundary': 2, 'active': 'c'}, ['b', ['a', 'c', 'd'], 1, True, 0, 'c']), ({'tabs': ['a', 'b', 'c', 'd'], 'index': 0, 'boundary': 3, 'active': 'c'}, ['a', ['b', 'c', 'd'], 2, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd'], 'index': 3, 'boundary': 1, 'active': 'c'}, ['d', ['a', 'b', 'c'], 1, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd'], 'index': 1, 'boundary': 4, 'active': 'b'}, ['b', ['a', 'c', 'd'], 3, False, 2, 'b'])], 2: [({'tabs': ['a', 'b', 'c', 'd', 'background0'], 'index': 1, 'boundary': 4, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0'], 3, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0'], 'index': 1, 'boundary': 0, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0'], 0, False, 1, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0'], 'index': 1, 'boundary': 2, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0'], 1, True, 0, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0'], 'index': 0, 'boundary': 3, 'active': 'c'}, ['a', ['b', 'c', 'd', 'background0'], 2, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0'], 'index': 3, 'boundary': 1, 'active': 'c'}, ['d', ['a', 'b', 'c', 'background0'], 1, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0'], 'index': 1, 'boundary': 4, 'active': 'b'}, ['b', ['a', 'c', 'd', 'background0'], 3, False, 2, 'b'])], 3: [({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1'], 'index': 1, 'boundary': 4, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0', 'background1'], 3, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1'], 'index': 1, 'boundary': 0, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0', 'background1'], 0, False, 1, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1'], 'index': 1, 'boundary': 2, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0', 'background1'], 1, True, 0, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1'], 'index': 0, 'boundary': 3, 'active': 'c'}, ['a', ['b', 'c', 'd', 'background0', 'background1'], 2, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1'], 'index': 3, 'boundary': 1, 'active': 'c'}, ['d', ['a', 'b', 'c', 'background0', 'background1'], 1, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1'], 'index': 1, 'boundary': 4, 'active': 'b'}, ['b', ['a', 'c', 'd', 'background0', 'background1'], 3, False, 2, 'b'])], 4: [({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2'], 'index': 1, 'boundary': 4, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0', 'background1', 'background2'], 3, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2'], 'index': 1, 'boundary': 0, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0', 'background1', 'background2'], 0, False, 1, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2'], 'index': 1, 'boundary': 2, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0', 'background1', 'background2'], 1, True, 0, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2'], 'index': 0, 'boundary': 3, 'active': 'c'}, ['a', ['b', 'c', 'd', 'background0', 'background1', 'background2'], 2, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2'], 'index': 3, 'boundary': 1, 'active': 'c'}, ['d', ['a', 'b', 'c', 'background0', 'background1', 'background2'], 1, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2'], 'index': 1, 'boundary': 4, 'active': 'b'}, ['b', ['a', 'c', 'd', 'background0', 'background1', 'background2'], 3, False, 2, 'b'])], 5: [({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 'index': 1, 'boundary': 4, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 3, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 'index': 1, 'boundary': 0, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 0, False, 1, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 'index': 1, 'boundary': 2, 'active': 'c'}, ['b', ['a', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 1, True, 0, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 'index': 0, 'boundary': 3, 'active': 'c'}, ['a', ['b', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 2, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 'index': 3, 'boundary': 1, 'active': 'c'}, ['d', ['a', 'b', 'c', 'background0', 'background1', 'background2', 'background3'], 1, False, 2, 'c']), ({'tabs': ['a', 'b', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 'index': 1, 'boundary': 4, 'active': 'b'}, ['b', ['a', 'c', 'd', 'background0', 'background1', 'background2', 'background3'], 3, False, 2, 'b'])]}
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['b', ['a', 'c', 'd'], 3, False, 2, 'c']['b', ['a', 'c', 'd'], 3, False, 2, 'c']Passed
workspace regression 1['b', ['a', 'c', 'd'], 0, False, 1, 'c']['b', ['a', 'c', 'd'], 0, False, 1, 'c']Passed
workspace regression 2['b', ['a', 'c', 'd'], 1, True, 0, 'c']['b', ['a', 'c', 'd'], 1, True, 0, 'c']Passed
workspace regression 3['a', ['b', 'c', 'd'], 2, False, 2, 'c']['a', ['b', 'c', 'd'], 2, False, 2, 'c']Passed
workspace regression 4['d', ['a', 'b', 'c'], 1, False, 2, 'c']['d', ['a', 'b', 'c'], 1, False, 2, 'c']Passed
workspace regression 5['b', ['a', 'c', 'd'], 3, False, 2, 'b']['b', ['a', 'c', 'd'], 3, False, 2, 'b']Passed

SHA-256 / 81dde98bc703caa1fe7b9ec79a1c2afa8cb607368520ab450691eca9c245e565

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

Case digest / 7c75698f2df380d880438a3b7a6d486a6a983b0c91fc4f8d6dd9c663fbb4f679