FAILURE MAP
← Case archive

FA-36111 / Tab interfaces / Open access

Tab hit regions: grip hit · case 01

The tab workspace reports an incorrect grip hit.

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

ROOT CAUSE

The grip hit decision uses x['pointer']>=x['width']-x['grip'] instead of x['left']+x['width']-x['grip']<=x['pointer']<x['left']+x['width'].

VERIFIED REPAIR

Use the stipulated workspace rule: x['left']+x['width']-x['grip']<=x['pointer']<x['left']+x['width'].

Unsuccessful approach: The partial repair x['pointer']>=x['left']+x['width']-x['grip'] still violates a workspace boundary or normal case.

Case contract

A tab has half-open body, close-button and resize-grip regions in local coordinates. Clip hit targets to its visible strip intersection and prioritize close over body.

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['pointer']-x['left']
    r1 = x['left']<=x['pointer']<x['left']+x['width']
    r2 = x['left']+x['close_start']<=x['pointer']<x['left']+x['close_start']+x['close_width']
    r3 = x['clip_left']<=x['pointer']<x['clip_right']
    r4 = x['pointer']>=x['width']-x['grip']
    r5 = 'close' if x['left']+x['close_start']<=x['pointer']<x['left']+x['close_start']+x['close_width'] else 'body' if x['left']<=x['pointer']<x['left']+x['width'] else 'none'
    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: [({'pointer': 85, 'left': 20, 'width': 100, 'close_start': 80, 'close_width': 20, 'clip_left': 0, 'clip_right': 200, 'grip': 5}, [65, True, False, True, False, 'body']), ({'pointer': 100, 'left': 20, 'width': 100, 'close_start': 80, 'close_width': 20, 'clip_left': 0, 'clip_right': 200, 'grip': 5}, [80, True, True, True, False, 'close']), ({'pointer': 20, 'left': 20, 'width': 100, 'close_start': 80, 'close_width': 20, 'clip_left': 0, 'clip_right': 200, 'grip': 5}, [0, True, False, True, False, 'body']), ({'pointer': 120, 'left': 20, 'width': 100, 'close_start': 80, 'close_width': 20, 'clip_left': 0, 'clip_right': 200, 'grip': 5}, [100, False, False, True, False, 'none']), ({'pointer': 95, 'left': 20, 'width': 100, 'close_start': 80, 'close_width': 20, 'clip_left': 0, 'clip_right': 90, 'grip': 5}, [75, True, False, False, False, 'body']), ({'pointer': 117, 'left': 20, 'width': 100, 'close_start': 80, 'close_width': 20, 'clip_left': 0, 'clip_right': 200, 'grip': 5}, [97, True, True, True, True, 'close']), ({'pointer': 200, 'left': 20, 'width': 100, 'close_start': 80, 'close_width': 20, 'clip_left': 0, 'clip_right': 200, 'grip': 5}, [180, False, False, False, False, 'none'])], 2: [({'pointer': 170, 'left': 40, 'width': 200, 'close_start': 160, 'close_width': 40, 'clip_left': 0, 'clip_right': 400, 'grip': 10}, [130, True, False, True, False, 'body']), ({'pointer': 200, 'left': 40, 'width': 200, 'close_start': 160, 'close_width': 40, 'clip_left': 0, 'clip_right': 400, 'grip': 10}, [160, True, True, True, False, 'close']), ({'pointer': 40, 'left': 40, 'width': 200, 'close_start': 160, 'close_width': 40, 'clip_left': 0, 'clip_right': 400, 'grip': 10}, [0, True, False, True, False, 'body']), ({'pointer': 240, 'left': 40, 'width': 200, 'close_start': 160, 'close_width': 40, 'clip_left': 0, 'clip_right': 400, 'grip': 10}, [200, False, False, True, False, 'none']), ({'pointer': 190, 'left': 40, 'width': 200, 'close_start': 160, 'close_width': 40, 'clip_left': 0, 'clip_right': 180, 'grip': 10}, [150, True, False, False, False, 'body']), ({'pointer': 234, 'left': 40, 'width': 200, 'close_start': 160, 'close_width': 40, 'clip_left': 0, 'clip_right': 400, 'grip': 10}, [194, True, True, True, True, 'close']), ({'pointer': 400, 'left': 40, 'width': 200, 'close_start': 160, 'close_width': 40, 'clip_left': 0, 'clip_right': 400, 'grip': 10}, [360, False, False, False, False, 'none'])], 3: [({'pointer': 255, 'left': 60, 'width': 300, 'close_start': 240, 'close_width': 60, 'clip_left': 0, 'clip_right': 600, 'grip': 15}, [195, True, False, True, False, 'body']), ({'pointer': 300, 'left': 60, 'width': 300, 'close_start': 240, 'close_width': 60, 'clip_left': 0, 'clip_right': 600, 'grip': 15}, [240, True, True, True, False, 'close']), ({'pointer': 60, 'left': 60, 'width': 300, 'close_start': 240, 'close_width': 60, 'clip_left': 0, 'clip_right': 600, 'grip': 15}, [0, True, False, True, False, 'body']), ({'pointer': 360, 'left': 60, 'width': 300, 'close_start': 240, 'close_width': 60, 'clip_left': 0, 'clip_right': 600, 'grip': 15}, [300, False, False, True, False, 'none']), ({'pointer': 285, 'left': 60, 'width': 300, 'close_start': 240, 'close_width': 60, 'clip_left': 0, 'clip_right': 270, 'grip': 15}, [225, True, False, False, False, 'body']), ({'pointer': 351, 'left': 60, 'width': 300, 'close_start': 240, 'close_width': 60, 'clip_left': 0, 'clip_right': 600, 'grip': 15}, [291, True, True, True, True, 'close']), ({'pointer': 600, 'left': 60, 'width': 300, 'close_start': 240, 'close_width': 60, 'clip_left': 0, 'clip_right': 600, 'grip': 15}, [540, False, False, False, False, 'none'])], 4: [({'pointer': 340, 'left': 80, 'width': 400, 'close_start': 320, 'close_width': 80, 'clip_left': 0, 'clip_right': 800, 'grip': 20}, [260, True, False, True, False, 'body']), ({'pointer': 400, 'left': 80, 'width': 400, 'close_start': 320, 'close_width': 80, 'clip_left': 0, 'clip_right': 800, 'grip': 20}, [320, True, True, True, False, 'close']), ({'pointer': 80, 'left': 80, 'width': 400, 'close_start': 320, 'close_width': 80, 'clip_left': 0, 'clip_right': 800, 'grip': 20}, [0, True, False, True, False, 'body']), ({'pointer': 480, 'left': 80, 'width': 400, 'close_start': 320, 'close_width': 80, 'clip_left': 0, 'clip_right': 800, 'grip': 20}, [400, False, False, True, False, 'none']), ({'pointer': 380, 'left': 80, 'width': 400, 'close_start': 320, 'close_width': 80, 'clip_left': 0, 'clip_right': 360, 'grip': 20}, [300, True, False, False, False, 'body']), ({'pointer': 468, 'left': 80, 'width': 400, 'close_start': 320, 'close_width': 80, 'clip_left': 0, 'clip_right': 800, 'grip': 20}, [388, True, True, True, True, 'close']), ({'pointer': 800, 'left': 80, 'width': 400, 'close_start': 320, 'close_width': 80, 'clip_left': 0, 'clip_right': 800, 'grip': 20}, [720, False, False, False, False, 'none'])], 5: [({'pointer': 425, 'left': 100, 'width': 500, 'close_start': 400, 'close_width': 100, 'clip_left': 0, 'clip_right': 1000, 'grip': 25}, [325, True, False, True, False, 'body']), ({'pointer': 500, 'left': 100, 'width': 500, 'close_start': 400, 'close_width': 100, 'clip_left': 0, 'clip_right': 1000, 'grip': 25}, [400, True, True, True, False, 'close']), ({'pointer': 100, 'left': 100, 'width': 500, 'close_start': 400, 'close_width': 100, 'clip_left': 0, 'clip_right': 1000, 'grip': 25}, [0, True, False, True, False, 'body']), ({'pointer': 600, 'left': 100, 'width': 500, 'close_start': 400, 'close_width': 100, 'clip_left': 0, 'clip_right': 1000, 'grip': 25}, [500, False, False, True, False, 'none']), ({'pointer': 475, 'left': 100, 'width': 500, 'close_start': 400, 'close_width': 100, 'clip_left': 0, 'clip_right': 450, 'grip': 25}, [375, True, False, False, False, 'body']), ({'pointer': 585, 'left': 100, 'width': 500, 'close_start': 400, 'close_width': 100, 'clip_left': 0, 'clip_right': 1000, 'grip': 25}, [485, True, True, True, True, 'close']), ({'pointer': 1000, 'left': 100, 'width': 500, 'close_start': 400, 'close_width': 100, 'clip_left': 0, 'clip_right': 1000, 'grip': 25}, [900, False, False, False, False, 'none'])]}
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[65, True, False, True, False, 'body'][65, True, False, True, False, 'body']Passed
workspace regression 1[80, True, True, True, True, 'close'][80, True, True, True, False, 'close']Failed
workspace regression 2[0, True, False, True, False, 'body'][0, True, False, True, False, 'body']Passed
workspace regression 3[100, False, False, True, True, 'none'][100, False, False, True, False, 'none']Failed
workspace regression 4[75, True, False, False, True, 'body'][75, True, False, False, False, 'body']Failed
workspace regression 5[97, True, True, True, True, 'close'][97, True, True, True, True, 'close']Passed
workspace regression 6[180, False, False, False, True, 'none'][180, False, False, False, False, 'none']Failed

SHA-256 / c9c53a73fc3be2dbe5f68ead9ebcb500ebc668a091dbe1086dd6df7cce5af127

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(x):
    r0 = x['pointer']-x['left']
    r1 = x['left']<=x['pointer']<x['left']+x['width']
    r2 = x['left']+x['close_start']<=x['pointer']<x['left']+x['close_start']+x['close_width']
    r3 = x['clip_left']<=x['pointer']<x['clip_right']
    r4 = x['pointer']>=x['left']+x['width']-x['grip']
    r5 = 'close' if x['left']+x['close_start']<=x['pointer']<x['left']+x['close_start']+x['close_width'] else 'body' if x['left']<=x['pointer']<x['left']+x['width'] else 'none'
    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: [({'pointer': 85, 'left': 20, 'width': 100, 'close_start': 80, 'close_width': 20, 'clip_left': 0, 'clip_right': 200, 'grip': 5}, [65, True, False, True, False, 'body']), ({'pointer': 100, 'left': 20, 'width': 100, 'close_start': 80, 'close_width': 20, 'clip_left': 0, 'clip_right': 200, 'grip': 5}, [80, True, True, True, False, 'close']), ({'pointer': 20, 'left': 20, 'width': 100, 'close_start': 80, 'close_width': 20, 'clip_left': 0, 'clip_right': 200, 'grip': 5}, [0, True, False, True, False, 'body']), ({'pointer': 120, 'left': 20, 'width': 100, 'close_start': 80, 'close_width': 20, 'clip_left': 0, 'clip_right': 200, 'grip': 5}, [100, False, False, True, False, 'none']), ({'pointer': 95, 'left': 20, 'width': 100, 'close_start': 80, 'close_width': 20, 'clip_left': 0, 'clip_right': 90, 'grip': 5}, [75, True, False, False, False, 'body']), ({'pointer': 117, 'left': 20, 'width': 100, 'close_start': 80, 'close_width': 20, 'clip_left': 0, 'clip_right': 200, 'grip': 5}, [97, True, True, True, True, 'close']), ({'pointer': 200, 'left': 20, 'width': 100, 'close_start': 80, 'close_width': 20, 'clip_left': 0, 'clip_right': 200, 'grip': 5}, [180, False, False, False, False, 'none'])], 2: [({'pointer': 170, 'left': 40, 'width': 200, 'close_start': 160, 'close_width': 40, 'clip_left': 0, 'clip_right': 400, 'grip': 10}, [130, True, False, True, False, 'body']), ({'pointer': 200, 'left': 40, 'width': 200, 'close_start': 160, 'close_width': 40, 'clip_left': 0, 'clip_right': 400, 'grip': 10}, [160, True, True, True, False, 'close']), ({'pointer': 40, 'left': 40, 'width': 200, 'close_start': 160, 'close_width': 40, 'clip_left': 0, 'clip_right': 400, 'grip': 10}, [0, True, False, True, False, 'body']), ({'pointer': 240, 'left': 40, 'width': 200, 'close_start': 160, 'close_width': 40, 'clip_left': 0, 'clip_right': 400, 'grip': 10}, [200, False, False, True, False, 'none']), ({'pointer': 190, 'left': 40, 'width': 200, 'close_start': 160, 'close_width': 40, 'clip_left': 0, 'clip_right': 180, 'grip': 10}, [150, True, False, False, False, 'body']), ({'pointer': 234, 'left': 40, 'width': 200, 'close_start': 160, 'close_width': 40, 'clip_left': 0, 'clip_right': 400, 'grip': 10}, [194, True, True, True, True, 'close']), ({'pointer': 400, 'left': 40, 'width': 200, 'close_start': 160, 'close_width': 40, 'clip_left': 0, 'clip_right': 400, 'grip': 10}, [360, False, False, False, False, 'none'])], 3: [({'pointer': 255, 'left': 60, 'width': 300, 'close_start': 240, 'close_width': 60, 'clip_left': 0, 'clip_right': 600, 'grip': 15}, [195, True, False, True, False, 'body']), ({'pointer': 300, 'left': 60, 'width': 300, 'close_start': 240, 'close_width': 60, 'clip_left': 0, 'clip_right': 600, 'grip': 15}, [240, True, True, True, False, 'close']), ({'pointer': 60, 'left': 60, 'width': 300, 'close_start': 240, 'close_width': 60, 'clip_left': 0, 'clip_right': 600, 'grip': 15}, [0, True, False, True, False, 'body']), ({'pointer': 360, 'left': 60, 'width': 300, 'close_start': 240, 'close_width': 60, 'clip_left': 0, 'clip_right': 600, 'grip': 15}, [300, False, False, True, False, 'none']), ({'pointer': 285, 'left': 60, 'width': 300, 'close_start': 240, 'close_width': 60, 'clip_left': 0, 'clip_right': 270, 'grip': 15}, [225, True, False, False, False, 'body']), ({'pointer': 351, 'left': 60, 'width': 300, 'close_start': 240, 'close_width': 60, 'clip_left': 0, 'clip_right': 600, 'grip': 15}, [291, True, True, True, True, 'close']), ({'pointer': 600, 'left': 60, 'width': 300, 'close_start': 240, 'close_width': 60, 'clip_left': 0, 'clip_right': 600, 'grip': 15}, [540, False, False, False, False, 'none'])], 4: [({'pointer': 340, 'left': 80, 'width': 400, 'close_start': 320, 'close_width': 80, 'clip_left': 0, 'clip_right': 800, 'grip': 20}, [260, True, False, True, False, 'body']), ({'pointer': 400, 'left': 80, 'width': 400, 'close_start': 320, 'close_width': 80, 'clip_left': 0, 'clip_right': 800, 'grip': 20}, [320, True, True, True, False, 'close']), ({'pointer': 80, 'left': 80, 'width': 400, 'close_start': 320, 'close_width': 80, 'clip_left': 0, 'clip_right': 800, 'grip': 20}, [0, True, False, True, False, 'body']), ({'pointer': 480, 'left': 80, 'width': 400, 'close_start': 320, 'close_width': 80, 'clip_left': 0, 'clip_right': 800, 'grip': 20}, [400, False, False, True, False, 'none']), ({'pointer': 380, 'left': 80, 'width': 400, 'close_start': 320, 'close_width': 80, 'clip_left': 0, 'clip_right': 360, 'grip': 20}, [300, True, False, False, False, 'body']), ({'pointer': 468, 'left': 80, 'width': 400, 'close_start': 320, 'close_width': 80, 'clip_left': 0, 'clip_right': 800, 'grip': 20}, [388, True, True, True, True, 'close']), ({'pointer': 800, 'left': 80, 'width': 400, 'close_start': 320, 'close_width': 80, 'clip_left': 0, 'clip_right': 800, 'grip': 20}, [720, False, False, False, False, 'none'])], 5: [({'pointer': 425, 'left': 100, 'width': 500, 'close_start': 400, 'close_width': 100, 'clip_left': 0, 'clip_right': 1000, 'grip': 25}, [325, True, False, True, False, 'body']), ({'pointer': 500, 'left': 100, 'width': 500, 'close_start': 400, 'close_width': 100, 'clip_left': 0, 'clip_right': 1000, 'grip': 25}, [400, True, True, True, False, 'close']), ({'pointer': 100, 'left': 100, 'width': 500, 'close_start': 400, 'close_width': 100, 'clip_left': 0, 'clip_right': 1000, 'grip': 25}, [0, True, False, True, False, 'body']), ({'pointer': 600, 'left': 100, 'width': 500, 'close_start': 400, 'close_width': 100, 'clip_left': 0, 'clip_right': 1000, 'grip': 25}, [500, False, False, True, False, 'none']), ({'pointer': 475, 'left': 100, 'width': 500, 'close_start': 400, 'close_width': 100, 'clip_left': 0, 'clip_right': 450, 'grip': 25}, [375, True, False, False, False, 'body']), ({'pointer': 585, 'left': 100, 'width': 500, 'close_start': 400, 'close_width': 100, 'clip_left': 0, 'clip_right': 1000, 'grip': 25}, [485, True, True, True, True, 'close']), ({'pointer': 1000, 'left': 100, 'width': 500, 'close_start': 400, 'close_width': 100, 'clip_left': 0, 'clip_right': 1000, 'grip': 25}, [900, False, False, False, False, 'none'])]}
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[65, True, False, True, False, 'body'][65, True, False, True, False, 'body']Passed
workspace regression 1[80, True, True, True, False, 'close'][80, True, True, True, False, 'close']Passed
workspace regression 2[0, True, False, True, False, 'body'][0, True, False, True, False, 'body']Passed
workspace regression 3[100, False, False, True, True, 'none'][100, False, False, True, False, 'none']Failed
workspace regression 4[75, True, False, False, False, 'body'][75, True, False, False, False, 'body']Passed
workspace regression 5[97, True, True, True, True, 'close'][97, True, True, True, True, 'close']Passed
workspace regression 6[180, False, False, False, True, 'none'][180, False, False, False, False, 'none']Failed

SHA-256 / 194b23842e76745551b48964734740f020b6a314ed811ccb4160f3c998c82a6f

3 / The verified repair

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

N = 1
observations = []
def solve(x):
    r0 = x['pointer']-x['left']
    r1 = x['left']<=x['pointer']<x['left']+x['width']
    r2 = x['left']+x['close_start']<=x['pointer']<x['left']+x['close_start']+x['close_width']
    r3 = x['clip_left']<=x['pointer']<x['clip_right']
    r4 = x['left']+x['width']-x['grip']<=x['pointer']<x['left']+x['width']
    r5 = 'close' if x['left']+x['close_start']<=x['pointer']<x['left']+x['close_start']+x['close_width'] else 'body' if x['left']<=x['pointer']<x['left']+x['width'] else 'none'
    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: [({'pointer': 85, 'left': 20, 'width': 100, 'close_start': 80, 'close_width': 20, 'clip_left': 0, 'clip_right': 200, 'grip': 5}, [65, True, False, True, False, 'body']), ({'pointer': 100, 'left': 20, 'width': 100, 'close_start': 80, 'close_width': 20, 'clip_left': 0, 'clip_right': 200, 'grip': 5}, [80, True, True, True, False, 'close']), ({'pointer': 20, 'left': 20, 'width': 100, 'close_start': 80, 'close_width': 20, 'clip_left': 0, 'clip_right': 200, 'grip': 5}, [0, True, False, True, False, 'body']), ({'pointer': 120, 'left': 20, 'width': 100, 'close_start': 80, 'close_width': 20, 'clip_left': 0, 'clip_right': 200, 'grip': 5}, [100, False, False, True, False, 'none']), ({'pointer': 95, 'left': 20, 'width': 100, 'close_start': 80, 'close_width': 20, 'clip_left': 0, 'clip_right': 90, 'grip': 5}, [75, True, False, False, False, 'body']), ({'pointer': 117, 'left': 20, 'width': 100, 'close_start': 80, 'close_width': 20, 'clip_left': 0, 'clip_right': 200, 'grip': 5}, [97, True, True, True, True, 'close']), ({'pointer': 200, 'left': 20, 'width': 100, 'close_start': 80, 'close_width': 20, 'clip_left': 0, 'clip_right': 200, 'grip': 5}, [180, False, False, False, False, 'none'])], 2: [({'pointer': 170, 'left': 40, 'width': 200, 'close_start': 160, 'close_width': 40, 'clip_left': 0, 'clip_right': 400, 'grip': 10}, [130, True, False, True, False, 'body']), ({'pointer': 200, 'left': 40, 'width': 200, 'close_start': 160, 'close_width': 40, 'clip_left': 0, 'clip_right': 400, 'grip': 10}, [160, True, True, True, False, 'close']), ({'pointer': 40, 'left': 40, 'width': 200, 'close_start': 160, 'close_width': 40, 'clip_left': 0, 'clip_right': 400, 'grip': 10}, [0, True, False, True, False, 'body']), ({'pointer': 240, 'left': 40, 'width': 200, 'close_start': 160, 'close_width': 40, 'clip_left': 0, 'clip_right': 400, 'grip': 10}, [200, False, False, True, False, 'none']), ({'pointer': 190, 'left': 40, 'width': 200, 'close_start': 160, 'close_width': 40, 'clip_left': 0, 'clip_right': 180, 'grip': 10}, [150, True, False, False, False, 'body']), ({'pointer': 234, 'left': 40, 'width': 200, 'close_start': 160, 'close_width': 40, 'clip_left': 0, 'clip_right': 400, 'grip': 10}, [194, True, True, True, True, 'close']), ({'pointer': 400, 'left': 40, 'width': 200, 'close_start': 160, 'close_width': 40, 'clip_left': 0, 'clip_right': 400, 'grip': 10}, [360, False, False, False, False, 'none'])], 3: [({'pointer': 255, 'left': 60, 'width': 300, 'close_start': 240, 'close_width': 60, 'clip_left': 0, 'clip_right': 600, 'grip': 15}, [195, True, False, True, False, 'body']), ({'pointer': 300, 'left': 60, 'width': 300, 'close_start': 240, 'close_width': 60, 'clip_left': 0, 'clip_right': 600, 'grip': 15}, [240, True, True, True, False, 'close']), ({'pointer': 60, 'left': 60, 'width': 300, 'close_start': 240, 'close_width': 60, 'clip_left': 0, 'clip_right': 600, 'grip': 15}, [0, True, False, True, False, 'body']), ({'pointer': 360, 'left': 60, 'width': 300, 'close_start': 240, 'close_width': 60, 'clip_left': 0, 'clip_right': 600, 'grip': 15}, [300, False, False, True, False, 'none']), ({'pointer': 285, 'left': 60, 'width': 300, 'close_start': 240, 'close_width': 60, 'clip_left': 0, 'clip_right': 270, 'grip': 15}, [225, True, False, False, False, 'body']), ({'pointer': 351, 'left': 60, 'width': 300, 'close_start': 240, 'close_width': 60, 'clip_left': 0, 'clip_right': 600, 'grip': 15}, [291, True, True, True, True, 'close']), ({'pointer': 600, 'left': 60, 'width': 300, 'close_start': 240, 'close_width': 60, 'clip_left': 0, 'clip_right': 600, 'grip': 15}, [540, False, False, False, False, 'none'])], 4: [({'pointer': 340, 'left': 80, 'width': 400, 'close_start': 320, 'close_width': 80, 'clip_left': 0, 'clip_right': 800, 'grip': 20}, [260, True, False, True, False, 'body']), ({'pointer': 400, 'left': 80, 'width': 400, 'close_start': 320, 'close_width': 80, 'clip_left': 0, 'clip_right': 800, 'grip': 20}, [320, True, True, True, False, 'close']), ({'pointer': 80, 'left': 80, 'width': 400, 'close_start': 320, 'close_width': 80, 'clip_left': 0, 'clip_right': 800, 'grip': 20}, [0, True, False, True, False, 'body']), ({'pointer': 480, 'left': 80, 'width': 400, 'close_start': 320, 'close_width': 80, 'clip_left': 0, 'clip_right': 800, 'grip': 20}, [400, False, False, True, False, 'none']), ({'pointer': 380, 'left': 80, 'width': 400, 'close_start': 320, 'close_width': 80, 'clip_left': 0, 'clip_right': 360, 'grip': 20}, [300, True, False, False, False, 'body']), ({'pointer': 468, 'left': 80, 'width': 400, 'close_start': 320, 'close_width': 80, 'clip_left': 0, 'clip_right': 800, 'grip': 20}, [388, True, True, True, True, 'close']), ({'pointer': 800, 'left': 80, 'width': 400, 'close_start': 320, 'close_width': 80, 'clip_left': 0, 'clip_right': 800, 'grip': 20}, [720, False, False, False, False, 'none'])], 5: [({'pointer': 425, 'left': 100, 'width': 500, 'close_start': 400, 'close_width': 100, 'clip_left': 0, 'clip_right': 1000, 'grip': 25}, [325, True, False, True, False, 'body']), ({'pointer': 500, 'left': 100, 'width': 500, 'close_start': 400, 'close_width': 100, 'clip_left': 0, 'clip_right': 1000, 'grip': 25}, [400, True, True, True, False, 'close']), ({'pointer': 100, 'left': 100, 'width': 500, 'close_start': 400, 'close_width': 100, 'clip_left': 0, 'clip_right': 1000, 'grip': 25}, [0, True, False, True, False, 'body']), ({'pointer': 600, 'left': 100, 'width': 500, 'close_start': 400, 'close_width': 100, 'clip_left': 0, 'clip_right': 1000, 'grip': 25}, [500, False, False, True, False, 'none']), ({'pointer': 475, 'left': 100, 'width': 500, 'close_start': 400, 'close_width': 100, 'clip_left': 0, 'clip_right': 450, 'grip': 25}, [375, True, False, False, False, 'body']), ({'pointer': 585, 'left': 100, 'width': 500, 'close_start': 400, 'close_width': 100, 'clip_left': 0, 'clip_right': 1000, 'grip': 25}, [485, True, True, True, True, 'close']), ({'pointer': 1000, 'left': 100, 'width': 500, 'close_start': 400, 'close_width': 100, 'clip_left': 0, 'clip_right': 1000, 'grip': 25}, [900, False, False, False, False, 'none'])]}
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[65, True, False, True, False, 'body'][65, True, False, True, False, 'body']Passed
workspace regression 1[80, True, True, True, False, 'close'][80, True, True, True, False, 'close']Passed
workspace regression 2[0, True, False, True, False, 'body'][0, True, False, True, False, 'body']Passed
workspace regression 3[100, False, False, True, False, 'none'][100, False, False, True, False, 'none']Passed
workspace regression 4[75, True, False, False, False, 'body'][75, True, False, False, False, 'body']Passed
workspace regression 5[97, True, True, True, True, 'close'][97, True, True, True, True, 'close']Passed
workspace regression 6[180, False, False, False, False, 'none'][180, False, False, False, False, 'none']Passed

SHA-256 / ea54c7b96a27843470ed3db5244d28ba43da860a0c8f3611e483871a7715c1f6

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

Case digest / 913758448cb9250c1e59667e52fc9d3977b92f91690156d46d8b26261d13db68