FAILURE MAP
← Case archive

FA-24181 / Client state / Open access

Visibility-aware client polling: Background policy override · case 01

Background policy override.

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

ROOT CAUSE

The background-policy-override client decision evaluates `visible` instead of `visible or policy=='background'`.

VERIFIED REPAIR

Apply the modeled background-policy-override rule: `visible or policy=='background'`.

Unsuccessful approach: The partial repair `policy=='background'` still violates the explicit fixture contract.

Case contract

Only one poll may be in flight. Foreground polling pauses offline or hidden; a background policy permits hidden work. Missed ticks coalesce into one catch-up request and scheduling restarts relative to the current clock. Operation background-policy-override has the six explicit input/output oracles below.

Why this case matters

An offline client lifecycle model that isolates a state-management defect without DOM rendering or network services.

1 / The failure

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

N = 1
observations = []
def solve(operation, s):
    visible, online, interval, due, now, in_flight, queued, policy = s
    if operation == 'foreground-tick-admission':
        return online and (visible or policy=='background') and not in_flight and now>=due
    if operation == 'resume-catchup-coalescing':
        return int(queued>0)
    if operation == 'next-tick-from-now':
        return now+interval
    if operation == 'remaining-delay-clamp':
        return max(0,due-now)
    if operation == 'offline-poll-reason':
        return 'offline' if not online else ('hidden' if not visible and policy!='background' else None)
    if operation == 'inflight-reconnect-dedup':
        return online and not in_flight and queued>0
    if operation == 'hidden-backlog-cap':
        return min(queued,1) if not visible else queued
    if operation == 'background-policy-override':
        return visible
    if operation == 'timer-install-when-online':
        return interval if online and (visible or policy=='background') else None
    if operation == 'poll-transition-state':
        return 'running' if in_flight else ('waiting' if online and (visible or policy=='background') else 'paused')
    raise ValueError('unknown modeled operation')
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('foreground-tick-admission scenario 1', solve('foreground-tick-admission', (True,True,N+2,5,5,False,3,'foreground')), True)
check('foreground-tick-admission scenario 2', solve('foreground-tick-admission', (False,True,3,5,9,False,2,'foreground')), False)
check('foreground-tick-admission scenario 3', solve('foreground-tick-admission', (True,False,3,5,9,False,1,'foreground')), False)
check('foreground-tick-admission scenario 4', solve('foreground-tick-admission', (True,True,3,5,9,True,0,'foreground')), False)
check('foreground-tick-admission scenario 5', solve('foreground-tick-admission', (False,True,3,5,9,False,2,'background')), True)
check('foreground-tick-admission scenario 6', solve('foreground-tick-admission', (True,True,3,12,9,False,0,'foreground')), False)
check('resume-catchup-coalescing scenario 1', solve('resume-catchup-coalescing', (True,True,N+2,5,5,False,3,'foreground')), 1)
check('resume-catchup-coalescing scenario 2', solve('resume-catchup-coalescing', (False,True,3,5,9,False,2,'foreground')), 1)
check('resume-catchup-coalescing scenario 3', solve('resume-catchup-coalescing', (True,False,3,5,9,False,1,'foreground')), 1)
check('resume-catchup-coalescing scenario 4', solve('resume-catchup-coalescing', (True,True,3,5,9,True,0,'foreground')), 0)
check('resume-catchup-coalescing scenario 5', solve('resume-catchup-coalescing', (False,True,3,5,9,False,2,'background')), 1)
check('resume-catchup-coalescing scenario 6', solve('resume-catchup-coalescing', (True,True,3,12,9,False,0,'foreground')), 0)
check('next-tick-from-now scenario 1', solve('next-tick-from-now', (True,True,N+2,5,5,False,3,'foreground')), N+7)
check('next-tick-from-now scenario 2', solve('next-tick-from-now', (False,True,3,5,9,False,2,'foreground')), 12)
check('next-tick-from-now scenario 3', solve('next-tick-from-now', (True,False,3,5,9,False,1,'foreground')), 12)
check('next-tick-from-now scenario 4', solve('next-tick-from-now', (True,True,3,5,9,True,0,'foreground')), 12)
check('next-tick-from-now scenario 5', solve('next-tick-from-now', (False,True,3,5,9,False,2,'background')), 12)
check('next-tick-from-now scenario 6', solve('next-tick-from-now', (True,True,3,12,9,False,0,'foreground')), 12)
check('remaining-delay-clamp scenario 1', solve('remaining-delay-clamp', (True,True,N+2,5,5,False,3,'foreground')), 0)
check('remaining-delay-clamp scenario 2', solve('remaining-delay-clamp', (False,True,3,5,9,False,2,'foreground')), 0)
check('remaining-delay-clamp scenario 3', solve('remaining-delay-clamp', (True,False,3,5,9,False,1,'foreground')), 0)
check('remaining-delay-clamp scenario 4', solve('remaining-delay-clamp', (True,True,3,5,9,True,0,'foreground')), 0)
check('remaining-delay-clamp scenario 5', solve('remaining-delay-clamp', (False,True,3,5,9,False,2,'background')), 0)
check('remaining-delay-clamp scenario 6', solve('remaining-delay-clamp', (True,True,3,12,9,False,0,'foreground')), 3)
check('offline-poll-reason scenario 1', solve('offline-poll-reason', (True,True,N+2,5,5,False,3,'foreground')), None)
check('offline-poll-reason scenario 2', solve('offline-poll-reason', (False,True,3,5,9,False,2,'foreground')), 'hidden')
check('offline-poll-reason scenario 3', solve('offline-poll-reason', (True,False,3,5,9,False,1,'foreground')), 'offline')
check('offline-poll-reason scenario 4', solve('offline-poll-reason', (True,True,3,5,9,True,0,'foreground')), None)
check('offline-poll-reason scenario 5', solve('offline-poll-reason', (False,True,3,5,9,False,2,'background')), None)
check('offline-poll-reason scenario 6', solve('offline-poll-reason', (True,True,3,12,9,False,0,'foreground')), None)
check('inflight-reconnect-dedup scenario 1', solve('inflight-reconnect-dedup', (True,True,N+2,5,5,False,3,'foreground')), True)
check('inflight-reconnect-dedup scenario 2', solve('inflight-reconnect-dedup', (False,True,3,5,9,False,2,'foreground')), True)
check('inflight-reconnect-dedup scenario 3', solve('inflight-reconnect-dedup', (True,False,3,5,9,False,1,'foreground')), False)
check('inflight-reconnect-dedup scenario 4', solve('inflight-reconnect-dedup', (True,True,3,5,9,True,0,'foreground')), False)
check('inflight-reconnect-dedup scenario 5', solve('inflight-reconnect-dedup', (False,True,3,5,9,False,2,'background')), True)
check('inflight-reconnect-dedup scenario 6', solve('inflight-reconnect-dedup', (True,True,3,12,9,False,0,'foreground')), False)
check('hidden-backlog-cap scenario 1', solve('hidden-backlog-cap', (True,True,N+2,5,5,False,3,'foreground')), 3)
check('hidden-backlog-cap scenario 2', solve('hidden-backlog-cap', (False,True,3,5,9,False,2,'foreground')), 1)
check('hidden-backlog-cap scenario 3', solve('hidden-backlog-cap', (True,False,3,5,9,False,1,'foreground')), 1)
check('hidden-backlog-cap scenario 4', solve('hidden-backlog-cap', (True,True,3,5,9,True,0,'foreground')), 0)
check('hidden-backlog-cap scenario 5', solve('hidden-backlog-cap', (False,True,3,5,9,False,2,'background')), 1)
check('hidden-backlog-cap scenario 6', solve('hidden-backlog-cap', (True,True,3,12,9,False,0,'foreground')), 0)
check('background-policy-override scenario 1', solve('background-policy-override', (True,True,N+2,5,5,False,3,'foreground')), True)
check('background-policy-override scenario 2', solve('background-policy-override', (False,True,3,5,9,False,2,'foreground')), False)
check('background-policy-override scenario 3', solve('background-policy-override', (True,False,3,5,9,False,1,'foreground')), True)
check('background-policy-override scenario 4', solve('background-policy-override', (True,True,3,5,9,True,0,'foreground')), True)
check('background-policy-override scenario 5', solve('background-policy-override', (False,True,3,5,9,False,2,'background')), True)
check('background-policy-override scenario 6', solve('background-policy-override', (True,True,3,12,9,False,0,'foreground')), True)
check('timer-install-when-online scenario 1', solve('timer-install-when-online', (True,True,N+2,5,5,False,3,'foreground')), N+2)
check('timer-install-when-online scenario 2', solve('timer-install-when-online', (False,True,3,5,9,False,2,'foreground')), None)
check('timer-install-when-online scenario 3', solve('timer-install-when-online', (True,False,3,5,9,False,1,'foreground')), None)
check('timer-install-when-online scenario 4', solve('timer-install-when-online', (True,True,3,5,9,True,0,'foreground')), 3)
check('timer-install-when-online scenario 5', solve('timer-install-when-online', (False,True,3,5,9,False,2,'background')), 3)
check('timer-install-when-online scenario 6', solve('timer-install-when-online', (True,True,3,12,9,False,0,'foreground')), 3)
check('poll-transition-state scenario 1', solve('poll-transition-state', (True,True,N+2,5,5,False,3,'foreground')), 'waiting')
check('poll-transition-state scenario 2', solve('poll-transition-state', (False,True,3,5,9,False,2,'foreground')), 'paused')
check('poll-transition-state scenario 3', solve('poll-transition-state', (True,False,3,5,9,False,1,'foreground')), 'paused')
check('poll-transition-state scenario 4', solve('poll-transition-state', (True,True,3,5,9,True,0,'foreground')), 'running')
check('poll-transition-state scenario 5', solve('poll-transition-state', (False,True,3,5,9,False,2,'background')), 'waiting')
check('poll-transition-state scenario 6', solve('poll-transition-state', (True,True,3,12,9,False,0,'foreground')), 'waiting')
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
foreground-tick-admission scenario 1TrueTruePassed
foreground-tick-admission scenario 2FalseFalsePassed
foreground-tick-admission scenario 3FalseFalsePassed
foreground-tick-admission scenario 4FalseFalsePassed
foreground-tick-admission scenario 5TrueTruePassed
foreground-tick-admission scenario 6FalseFalsePassed
resume-catchup-coalescing scenario 111Passed
resume-catchup-coalescing scenario 211Passed
resume-catchup-coalescing scenario 311Passed
resume-catchup-coalescing scenario 400Passed
resume-catchup-coalescing scenario 511Passed
resume-catchup-coalescing scenario 600Passed
next-tick-from-now scenario 188Passed
next-tick-from-now scenario 21212Passed
next-tick-from-now scenario 31212Passed
next-tick-from-now scenario 41212Passed
next-tick-from-now scenario 51212Passed
next-tick-from-now scenario 61212Passed
remaining-delay-clamp scenario 100Passed
remaining-delay-clamp scenario 200Passed
remaining-delay-clamp scenario 300Passed
remaining-delay-clamp scenario 400Passed
remaining-delay-clamp scenario 500Passed
remaining-delay-clamp scenario 633Passed
offline-poll-reason scenario 1NoneNonePassed
offline-poll-reason scenario 2hiddenhiddenPassed
offline-poll-reason scenario 3offlineofflinePassed
offline-poll-reason scenario 4NoneNonePassed
offline-poll-reason scenario 5NoneNonePassed
offline-poll-reason scenario 6NoneNonePassed
inflight-reconnect-dedup scenario 1TrueTruePassed
inflight-reconnect-dedup scenario 2TrueTruePassed
inflight-reconnect-dedup scenario 3FalseFalsePassed
inflight-reconnect-dedup scenario 4FalseFalsePassed
inflight-reconnect-dedup scenario 5TrueTruePassed
inflight-reconnect-dedup scenario 6FalseFalsePassed
hidden-backlog-cap scenario 133Passed
hidden-backlog-cap scenario 211Passed
hidden-backlog-cap scenario 311Passed
hidden-backlog-cap scenario 400Passed
hidden-backlog-cap scenario 511Passed
hidden-backlog-cap scenario 600Passed
background-policy-override scenario 1TrueTruePassed
background-policy-override scenario 2FalseFalsePassed
background-policy-override scenario 3TrueTruePassed
background-policy-override scenario 4TrueTruePassed
background-policy-override scenario 5FalseTrueFailed
background-policy-override scenario 6TrueTruePassed
timer-install-when-online scenario 133Passed
timer-install-when-online scenario 2NoneNonePassed
timer-install-when-online scenario 3NoneNonePassed
timer-install-when-online scenario 433Passed
timer-install-when-online scenario 533Passed
timer-install-when-online scenario 633Passed
poll-transition-state scenario 1waitingwaitingPassed
poll-transition-state scenario 2pausedpausedPassed
poll-transition-state scenario 3pausedpausedPassed
poll-transition-state scenario 4runningrunningPassed
poll-transition-state scenario 5waitingwaitingPassed
poll-transition-state scenario 6waitingwaitingPassed

SHA-256 / 391c357c96a406d1cb3ed6c2dbb3b2efe7605478d09683d13cac25dd8c7eaee3

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(operation, s):
    visible, online, interval, due, now, in_flight, queued, policy = s
    if operation == 'foreground-tick-admission':
        return online and (visible or policy=='background') and not in_flight and now>=due
    if operation == 'resume-catchup-coalescing':
        return int(queued>0)
    if operation == 'next-tick-from-now':
        return now+interval
    if operation == 'remaining-delay-clamp':
        return max(0,due-now)
    if operation == 'offline-poll-reason':
        return 'offline' if not online else ('hidden' if not visible and policy!='background' else None)
    if operation == 'inflight-reconnect-dedup':
        return online and not in_flight and queued>0
    if operation == 'hidden-backlog-cap':
        return min(queued,1) if not visible else queued
    if operation == 'background-policy-override':
        return policy=='background'
    if operation == 'timer-install-when-online':
        return interval if online and (visible or policy=='background') else None
    if operation == 'poll-transition-state':
        return 'running' if in_flight else ('waiting' if online and (visible or policy=='background') else 'paused')
    raise ValueError('unknown modeled operation')
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('foreground-tick-admission scenario 1', solve('foreground-tick-admission', (True,True,N+2,5,5,False,3,'foreground')), True)
check('foreground-tick-admission scenario 2', solve('foreground-tick-admission', (False,True,3,5,9,False,2,'foreground')), False)
check('foreground-tick-admission scenario 3', solve('foreground-tick-admission', (True,False,3,5,9,False,1,'foreground')), False)
check('foreground-tick-admission scenario 4', solve('foreground-tick-admission', (True,True,3,5,9,True,0,'foreground')), False)
check('foreground-tick-admission scenario 5', solve('foreground-tick-admission', (False,True,3,5,9,False,2,'background')), True)
check('foreground-tick-admission scenario 6', solve('foreground-tick-admission', (True,True,3,12,9,False,0,'foreground')), False)
check('resume-catchup-coalescing scenario 1', solve('resume-catchup-coalescing', (True,True,N+2,5,5,False,3,'foreground')), 1)
check('resume-catchup-coalescing scenario 2', solve('resume-catchup-coalescing', (False,True,3,5,9,False,2,'foreground')), 1)
check('resume-catchup-coalescing scenario 3', solve('resume-catchup-coalescing', (True,False,3,5,9,False,1,'foreground')), 1)
check('resume-catchup-coalescing scenario 4', solve('resume-catchup-coalescing', (True,True,3,5,9,True,0,'foreground')), 0)
check('resume-catchup-coalescing scenario 5', solve('resume-catchup-coalescing', (False,True,3,5,9,False,2,'background')), 1)
check('resume-catchup-coalescing scenario 6', solve('resume-catchup-coalescing', (True,True,3,12,9,False,0,'foreground')), 0)
check('next-tick-from-now scenario 1', solve('next-tick-from-now', (True,True,N+2,5,5,False,3,'foreground')), N+7)
check('next-tick-from-now scenario 2', solve('next-tick-from-now', (False,True,3,5,9,False,2,'foreground')), 12)
check('next-tick-from-now scenario 3', solve('next-tick-from-now', (True,False,3,5,9,False,1,'foreground')), 12)
check('next-tick-from-now scenario 4', solve('next-tick-from-now', (True,True,3,5,9,True,0,'foreground')), 12)
check('next-tick-from-now scenario 5', solve('next-tick-from-now', (False,True,3,5,9,False,2,'background')), 12)
check('next-tick-from-now scenario 6', solve('next-tick-from-now', (True,True,3,12,9,False,0,'foreground')), 12)
check('remaining-delay-clamp scenario 1', solve('remaining-delay-clamp', (True,True,N+2,5,5,False,3,'foreground')), 0)
check('remaining-delay-clamp scenario 2', solve('remaining-delay-clamp', (False,True,3,5,9,False,2,'foreground')), 0)
check('remaining-delay-clamp scenario 3', solve('remaining-delay-clamp', (True,False,3,5,9,False,1,'foreground')), 0)
check('remaining-delay-clamp scenario 4', solve('remaining-delay-clamp', (True,True,3,5,9,True,0,'foreground')), 0)
check('remaining-delay-clamp scenario 5', solve('remaining-delay-clamp', (False,True,3,5,9,False,2,'background')), 0)
check('remaining-delay-clamp scenario 6', solve('remaining-delay-clamp', (True,True,3,12,9,False,0,'foreground')), 3)
check('offline-poll-reason scenario 1', solve('offline-poll-reason', (True,True,N+2,5,5,False,3,'foreground')), None)
check('offline-poll-reason scenario 2', solve('offline-poll-reason', (False,True,3,5,9,False,2,'foreground')), 'hidden')
check('offline-poll-reason scenario 3', solve('offline-poll-reason', (True,False,3,5,9,False,1,'foreground')), 'offline')
check('offline-poll-reason scenario 4', solve('offline-poll-reason', (True,True,3,5,9,True,0,'foreground')), None)
check('offline-poll-reason scenario 5', solve('offline-poll-reason', (False,True,3,5,9,False,2,'background')), None)
check('offline-poll-reason scenario 6', solve('offline-poll-reason', (True,True,3,12,9,False,0,'foreground')), None)
check('inflight-reconnect-dedup scenario 1', solve('inflight-reconnect-dedup', (True,True,N+2,5,5,False,3,'foreground')), True)
check('inflight-reconnect-dedup scenario 2', solve('inflight-reconnect-dedup', (False,True,3,5,9,False,2,'foreground')), True)
check('inflight-reconnect-dedup scenario 3', solve('inflight-reconnect-dedup', (True,False,3,5,9,False,1,'foreground')), False)
check('inflight-reconnect-dedup scenario 4', solve('inflight-reconnect-dedup', (True,True,3,5,9,True,0,'foreground')), False)
check('inflight-reconnect-dedup scenario 5', solve('inflight-reconnect-dedup', (False,True,3,5,9,False,2,'background')), True)
check('inflight-reconnect-dedup scenario 6', solve('inflight-reconnect-dedup', (True,True,3,12,9,False,0,'foreground')), False)
check('hidden-backlog-cap scenario 1', solve('hidden-backlog-cap', (True,True,N+2,5,5,False,3,'foreground')), 3)
check('hidden-backlog-cap scenario 2', solve('hidden-backlog-cap', (False,True,3,5,9,False,2,'foreground')), 1)
check('hidden-backlog-cap scenario 3', solve('hidden-backlog-cap', (True,False,3,5,9,False,1,'foreground')), 1)
check('hidden-backlog-cap scenario 4', solve('hidden-backlog-cap', (True,True,3,5,9,True,0,'foreground')), 0)
check('hidden-backlog-cap scenario 5', solve('hidden-backlog-cap', (False,True,3,5,9,False,2,'background')), 1)
check('hidden-backlog-cap scenario 6', solve('hidden-backlog-cap', (True,True,3,12,9,False,0,'foreground')), 0)
check('background-policy-override scenario 1', solve('background-policy-override', (True,True,N+2,5,5,False,3,'foreground')), True)
check('background-policy-override scenario 2', solve('background-policy-override', (False,True,3,5,9,False,2,'foreground')), False)
check('background-policy-override scenario 3', solve('background-policy-override', (True,False,3,5,9,False,1,'foreground')), True)
check('background-policy-override scenario 4', solve('background-policy-override', (True,True,3,5,9,True,0,'foreground')), True)
check('background-policy-override scenario 5', solve('background-policy-override', (False,True,3,5,9,False,2,'background')), True)
check('background-policy-override scenario 6', solve('background-policy-override', (True,True,3,12,9,False,0,'foreground')), True)
check('timer-install-when-online scenario 1', solve('timer-install-when-online', (True,True,N+2,5,5,False,3,'foreground')), N+2)
check('timer-install-when-online scenario 2', solve('timer-install-when-online', (False,True,3,5,9,False,2,'foreground')), None)
check('timer-install-when-online scenario 3', solve('timer-install-when-online', (True,False,3,5,9,False,1,'foreground')), None)
check('timer-install-when-online scenario 4', solve('timer-install-when-online', (True,True,3,5,9,True,0,'foreground')), 3)
check('timer-install-when-online scenario 5', solve('timer-install-when-online', (False,True,3,5,9,False,2,'background')), 3)
check('timer-install-when-online scenario 6', solve('timer-install-when-online', (True,True,3,12,9,False,0,'foreground')), 3)
check('poll-transition-state scenario 1', solve('poll-transition-state', (True,True,N+2,5,5,False,3,'foreground')), 'waiting')
check('poll-transition-state scenario 2', solve('poll-transition-state', (False,True,3,5,9,False,2,'foreground')), 'paused')
check('poll-transition-state scenario 3', solve('poll-transition-state', (True,False,3,5,9,False,1,'foreground')), 'paused')
check('poll-transition-state scenario 4', solve('poll-transition-state', (True,True,3,5,9,True,0,'foreground')), 'running')
check('poll-transition-state scenario 5', solve('poll-transition-state', (False,True,3,5,9,False,2,'background')), 'waiting')
check('poll-transition-state scenario 6', solve('poll-transition-state', (True,True,3,12,9,False,0,'foreground')), 'waiting')
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
foreground-tick-admission scenario 1TrueTruePassed
foreground-tick-admission scenario 2FalseFalsePassed
foreground-tick-admission scenario 3FalseFalsePassed
foreground-tick-admission scenario 4FalseFalsePassed
foreground-tick-admission scenario 5TrueTruePassed
foreground-tick-admission scenario 6FalseFalsePassed
resume-catchup-coalescing scenario 111Passed
resume-catchup-coalescing scenario 211Passed
resume-catchup-coalescing scenario 311Passed
resume-catchup-coalescing scenario 400Passed
resume-catchup-coalescing scenario 511Passed
resume-catchup-coalescing scenario 600Passed
next-tick-from-now scenario 188Passed
next-tick-from-now scenario 21212Passed
next-tick-from-now scenario 31212Passed
next-tick-from-now scenario 41212Passed
next-tick-from-now scenario 51212Passed
next-tick-from-now scenario 61212Passed
remaining-delay-clamp scenario 100Passed
remaining-delay-clamp scenario 200Passed
remaining-delay-clamp scenario 300Passed
remaining-delay-clamp scenario 400Passed
remaining-delay-clamp scenario 500Passed
remaining-delay-clamp scenario 633Passed
offline-poll-reason scenario 1NoneNonePassed
offline-poll-reason scenario 2hiddenhiddenPassed
offline-poll-reason scenario 3offlineofflinePassed
offline-poll-reason scenario 4NoneNonePassed
offline-poll-reason scenario 5NoneNonePassed
offline-poll-reason scenario 6NoneNonePassed
inflight-reconnect-dedup scenario 1TrueTruePassed
inflight-reconnect-dedup scenario 2TrueTruePassed
inflight-reconnect-dedup scenario 3FalseFalsePassed
inflight-reconnect-dedup scenario 4FalseFalsePassed
inflight-reconnect-dedup scenario 5TrueTruePassed
inflight-reconnect-dedup scenario 6FalseFalsePassed
hidden-backlog-cap scenario 133Passed
hidden-backlog-cap scenario 211Passed
hidden-backlog-cap scenario 311Passed
hidden-backlog-cap scenario 400Passed
hidden-backlog-cap scenario 511Passed
hidden-backlog-cap scenario 600Passed
background-policy-override scenario 1FalseTrueFailed
background-policy-override scenario 2FalseFalsePassed
background-policy-override scenario 3FalseTrueFailed
background-policy-override scenario 4FalseTrueFailed
background-policy-override scenario 5TrueTruePassed
background-policy-override scenario 6FalseTrueFailed
timer-install-when-online scenario 133Passed
timer-install-when-online scenario 2NoneNonePassed
timer-install-when-online scenario 3NoneNonePassed
timer-install-when-online scenario 433Passed
timer-install-when-online scenario 533Passed
timer-install-when-online scenario 633Passed
poll-transition-state scenario 1waitingwaitingPassed
poll-transition-state scenario 2pausedpausedPassed
poll-transition-state scenario 3pausedpausedPassed
poll-transition-state scenario 4runningrunningPassed
poll-transition-state scenario 5waitingwaitingPassed
poll-transition-state scenario 6waitingwaitingPassed

SHA-256 / a1d46edb34b075ad7679eb143f46bbfa0d7b48cee38a1cdba9861f9da8e1c79a

3 / The verified repair

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

N = 1
observations = []
def solve(operation, s):
    visible, online, interval, due, now, in_flight, queued, policy = s
    if operation == 'foreground-tick-admission':
        return online and (visible or policy=='background') and not in_flight and now>=due
    if operation == 'resume-catchup-coalescing':
        return int(queued>0)
    if operation == 'next-tick-from-now':
        return now+interval
    if operation == 'remaining-delay-clamp':
        return max(0,due-now)
    if operation == 'offline-poll-reason':
        return 'offline' if not online else ('hidden' if not visible and policy!='background' else None)
    if operation == 'inflight-reconnect-dedup':
        return online and not in_flight and queued>0
    if operation == 'hidden-backlog-cap':
        return min(queued,1) if not visible else queued
    if operation == 'background-policy-override':
        return visible or policy=='background'
    if operation == 'timer-install-when-online':
        return interval if online and (visible or policy=='background') else None
    if operation == 'poll-transition-state':
        return 'running' if in_flight else ('waiting' if online and (visible or policy=='background') else 'paused')
    raise ValueError('unknown modeled operation')
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('foreground-tick-admission scenario 1', solve('foreground-tick-admission', (True,True,N+2,5,5,False,3,'foreground')), True)
check('foreground-tick-admission scenario 2', solve('foreground-tick-admission', (False,True,3,5,9,False,2,'foreground')), False)
check('foreground-tick-admission scenario 3', solve('foreground-tick-admission', (True,False,3,5,9,False,1,'foreground')), False)
check('foreground-tick-admission scenario 4', solve('foreground-tick-admission', (True,True,3,5,9,True,0,'foreground')), False)
check('foreground-tick-admission scenario 5', solve('foreground-tick-admission', (False,True,3,5,9,False,2,'background')), True)
check('foreground-tick-admission scenario 6', solve('foreground-tick-admission', (True,True,3,12,9,False,0,'foreground')), False)
check('resume-catchup-coalescing scenario 1', solve('resume-catchup-coalescing', (True,True,N+2,5,5,False,3,'foreground')), 1)
check('resume-catchup-coalescing scenario 2', solve('resume-catchup-coalescing', (False,True,3,5,9,False,2,'foreground')), 1)
check('resume-catchup-coalescing scenario 3', solve('resume-catchup-coalescing', (True,False,3,5,9,False,1,'foreground')), 1)
check('resume-catchup-coalescing scenario 4', solve('resume-catchup-coalescing', (True,True,3,5,9,True,0,'foreground')), 0)
check('resume-catchup-coalescing scenario 5', solve('resume-catchup-coalescing', (False,True,3,5,9,False,2,'background')), 1)
check('resume-catchup-coalescing scenario 6', solve('resume-catchup-coalescing', (True,True,3,12,9,False,0,'foreground')), 0)
check('next-tick-from-now scenario 1', solve('next-tick-from-now', (True,True,N+2,5,5,False,3,'foreground')), N+7)
check('next-tick-from-now scenario 2', solve('next-tick-from-now', (False,True,3,5,9,False,2,'foreground')), 12)
check('next-tick-from-now scenario 3', solve('next-tick-from-now', (True,False,3,5,9,False,1,'foreground')), 12)
check('next-tick-from-now scenario 4', solve('next-tick-from-now', (True,True,3,5,9,True,0,'foreground')), 12)
check('next-tick-from-now scenario 5', solve('next-tick-from-now', (False,True,3,5,9,False,2,'background')), 12)
check('next-tick-from-now scenario 6', solve('next-tick-from-now', (True,True,3,12,9,False,0,'foreground')), 12)
check('remaining-delay-clamp scenario 1', solve('remaining-delay-clamp', (True,True,N+2,5,5,False,3,'foreground')), 0)
check('remaining-delay-clamp scenario 2', solve('remaining-delay-clamp', (False,True,3,5,9,False,2,'foreground')), 0)
check('remaining-delay-clamp scenario 3', solve('remaining-delay-clamp', (True,False,3,5,9,False,1,'foreground')), 0)
check('remaining-delay-clamp scenario 4', solve('remaining-delay-clamp', (True,True,3,5,9,True,0,'foreground')), 0)
check('remaining-delay-clamp scenario 5', solve('remaining-delay-clamp', (False,True,3,5,9,False,2,'background')), 0)
check('remaining-delay-clamp scenario 6', solve('remaining-delay-clamp', (True,True,3,12,9,False,0,'foreground')), 3)
check('offline-poll-reason scenario 1', solve('offline-poll-reason', (True,True,N+2,5,5,False,3,'foreground')), None)
check('offline-poll-reason scenario 2', solve('offline-poll-reason', (False,True,3,5,9,False,2,'foreground')), 'hidden')
check('offline-poll-reason scenario 3', solve('offline-poll-reason', (True,False,3,5,9,False,1,'foreground')), 'offline')
check('offline-poll-reason scenario 4', solve('offline-poll-reason', (True,True,3,5,9,True,0,'foreground')), None)
check('offline-poll-reason scenario 5', solve('offline-poll-reason', (False,True,3,5,9,False,2,'background')), None)
check('offline-poll-reason scenario 6', solve('offline-poll-reason', (True,True,3,12,9,False,0,'foreground')), None)
check('inflight-reconnect-dedup scenario 1', solve('inflight-reconnect-dedup', (True,True,N+2,5,5,False,3,'foreground')), True)
check('inflight-reconnect-dedup scenario 2', solve('inflight-reconnect-dedup', (False,True,3,5,9,False,2,'foreground')), True)
check('inflight-reconnect-dedup scenario 3', solve('inflight-reconnect-dedup', (True,False,3,5,9,False,1,'foreground')), False)
check('inflight-reconnect-dedup scenario 4', solve('inflight-reconnect-dedup', (True,True,3,5,9,True,0,'foreground')), False)
check('inflight-reconnect-dedup scenario 5', solve('inflight-reconnect-dedup', (False,True,3,5,9,False,2,'background')), True)
check('inflight-reconnect-dedup scenario 6', solve('inflight-reconnect-dedup', (True,True,3,12,9,False,0,'foreground')), False)
check('hidden-backlog-cap scenario 1', solve('hidden-backlog-cap', (True,True,N+2,5,5,False,3,'foreground')), 3)
check('hidden-backlog-cap scenario 2', solve('hidden-backlog-cap', (False,True,3,5,9,False,2,'foreground')), 1)
check('hidden-backlog-cap scenario 3', solve('hidden-backlog-cap', (True,False,3,5,9,False,1,'foreground')), 1)
check('hidden-backlog-cap scenario 4', solve('hidden-backlog-cap', (True,True,3,5,9,True,0,'foreground')), 0)
check('hidden-backlog-cap scenario 5', solve('hidden-backlog-cap', (False,True,3,5,9,False,2,'background')), 1)
check('hidden-backlog-cap scenario 6', solve('hidden-backlog-cap', (True,True,3,12,9,False,0,'foreground')), 0)
check('background-policy-override scenario 1', solve('background-policy-override', (True,True,N+2,5,5,False,3,'foreground')), True)
check('background-policy-override scenario 2', solve('background-policy-override', (False,True,3,5,9,False,2,'foreground')), False)
check('background-policy-override scenario 3', solve('background-policy-override', (True,False,3,5,9,False,1,'foreground')), True)
check('background-policy-override scenario 4', solve('background-policy-override', (True,True,3,5,9,True,0,'foreground')), True)
check('background-policy-override scenario 5', solve('background-policy-override', (False,True,3,5,9,False,2,'background')), True)
check('background-policy-override scenario 6', solve('background-policy-override', (True,True,3,12,9,False,0,'foreground')), True)
check('timer-install-when-online scenario 1', solve('timer-install-when-online', (True,True,N+2,5,5,False,3,'foreground')), N+2)
check('timer-install-when-online scenario 2', solve('timer-install-when-online', (False,True,3,5,9,False,2,'foreground')), None)
check('timer-install-when-online scenario 3', solve('timer-install-when-online', (True,False,3,5,9,False,1,'foreground')), None)
check('timer-install-when-online scenario 4', solve('timer-install-when-online', (True,True,3,5,9,True,0,'foreground')), 3)
check('timer-install-when-online scenario 5', solve('timer-install-when-online', (False,True,3,5,9,False,2,'background')), 3)
check('timer-install-when-online scenario 6', solve('timer-install-when-online', (True,True,3,12,9,False,0,'foreground')), 3)
check('poll-transition-state scenario 1', solve('poll-transition-state', (True,True,N+2,5,5,False,3,'foreground')), 'waiting')
check('poll-transition-state scenario 2', solve('poll-transition-state', (False,True,3,5,9,False,2,'foreground')), 'paused')
check('poll-transition-state scenario 3', solve('poll-transition-state', (True,False,3,5,9,False,1,'foreground')), 'paused')
check('poll-transition-state scenario 4', solve('poll-transition-state', (True,True,3,5,9,True,0,'foreground')), 'running')
check('poll-transition-state scenario 5', solve('poll-transition-state', (False,True,3,5,9,False,2,'background')), 'waiting')
check('poll-transition-state scenario 6', solve('poll-transition-state', (True,True,3,12,9,False,0,'foreground')), 'waiting')
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
foreground-tick-admission scenario 1TrueTruePassed
foreground-tick-admission scenario 2FalseFalsePassed
foreground-tick-admission scenario 3FalseFalsePassed
foreground-tick-admission scenario 4FalseFalsePassed
foreground-tick-admission scenario 5TrueTruePassed
foreground-tick-admission scenario 6FalseFalsePassed
resume-catchup-coalescing scenario 111Passed
resume-catchup-coalescing scenario 211Passed
resume-catchup-coalescing scenario 311Passed
resume-catchup-coalescing scenario 400Passed
resume-catchup-coalescing scenario 511Passed
resume-catchup-coalescing scenario 600Passed
next-tick-from-now scenario 188Passed
next-tick-from-now scenario 21212Passed
next-tick-from-now scenario 31212Passed
next-tick-from-now scenario 41212Passed
next-tick-from-now scenario 51212Passed
next-tick-from-now scenario 61212Passed
remaining-delay-clamp scenario 100Passed
remaining-delay-clamp scenario 200Passed
remaining-delay-clamp scenario 300Passed
remaining-delay-clamp scenario 400Passed
remaining-delay-clamp scenario 500Passed
remaining-delay-clamp scenario 633Passed
offline-poll-reason scenario 1NoneNonePassed
offline-poll-reason scenario 2hiddenhiddenPassed
offline-poll-reason scenario 3offlineofflinePassed
offline-poll-reason scenario 4NoneNonePassed
offline-poll-reason scenario 5NoneNonePassed
offline-poll-reason scenario 6NoneNonePassed
inflight-reconnect-dedup scenario 1TrueTruePassed
inflight-reconnect-dedup scenario 2TrueTruePassed
inflight-reconnect-dedup scenario 3FalseFalsePassed
inflight-reconnect-dedup scenario 4FalseFalsePassed
inflight-reconnect-dedup scenario 5TrueTruePassed
inflight-reconnect-dedup scenario 6FalseFalsePassed
hidden-backlog-cap scenario 133Passed
hidden-backlog-cap scenario 211Passed
hidden-backlog-cap scenario 311Passed
hidden-backlog-cap scenario 400Passed
hidden-backlog-cap scenario 511Passed
hidden-backlog-cap scenario 600Passed
background-policy-override scenario 1TrueTruePassed
background-policy-override scenario 2FalseFalsePassed
background-policy-override scenario 3TrueTruePassed
background-policy-override scenario 4TrueTruePassed
background-policy-override scenario 5TrueTruePassed
background-policy-override scenario 6TrueTruePassed
timer-install-when-online scenario 133Passed
timer-install-when-online scenario 2NoneNonePassed
timer-install-when-online scenario 3NoneNonePassed
timer-install-when-online scenario 433Passed
timer-install-when-online scenario 533Passed
timer-install-when-online scenario 633Passed
poll-transition-state scenario 1waitingwaitingPassed
poll-transition-state scenario 2pausedpausedPassed
poll-transition-state scenario 3pausedpausedPassed
poll-transition-state scenario 4runningrunningPassed
poll-transition-state scenario 5waitingwaitingPassed
poll-transition-state scenario 6waitingwaitingPassed

SHA-256 / ba9d5f3d70d9da61e2b87133d4b4679650e5176bf30106c112706a2cc6175fe2

Verification & scope

Only the explicitly specified operations and finite deterministic records are modeled; no browser or framework conformance is claimed. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.

Observations recorded using Python 3.12.14 at 2026-09-29T14:40:54.864770+00:00.

Case digest / 365f73516f3d4098c8505a4c7644ef8fbf44fc91e539662c739b958131839389