{"abstract":"The remote-paint-failed event leaves a notification in remote-visible instead of handoff-error.","category":"Notification interfaces","checks":36,"contract":"Notification handoff to another surface is a bounded visual-notification workflow with mutable policy state {'transfer': 4, 'local': True, 'remote': False, 'remote_owner': 'tablet'}. Its default transition relation is {('local-visible', 'send-to-other-surface'): 'handoff-pending', ('handoff-pending', 'remote-accepted'): 'remote-mounting', ('remote-mounting', 'remote-painted'): 'remote-visible', ('remote-mounting', 'remote-paint-failed'): 'handoff-error', ('handoff-pending', 'remote-rejected'): 'handoff-error', ('handoff-error', 'retry-handoff'): 'handoff-pending', ('remote-visible', 'bring-back'): 'recall-pending', ('recall-pending', 'remote-released'): 'local-remounting', ('local-remounting', 'local-painted'): 'local-visible', ('handoff-pending', 'cancel-handoff'): 'cancel-pending'}; domain inputs can suppress or redirect transitions and update policy fields, as specified in solve. Different-generation events are inert. Batches apply in order. Optional observe returns the selected policy field alongside the phase.","evaluation_group":"s3-notification-interfaces-device-handoff","failed_approach":"Hiding local content too leaves no readable notification.","family":"s3-notification-interfaces-device-handoff-04","id":"FA-35306","implementations":{"attempt":{"sha256":"8f918f8c03ec43a2d75074ff4beb99d468a1c853d41922b5a9711479f0674671","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(initial, events, generation, payload=None, observe=None):\n    table = {('local-visible', 'send-to-other-surface'): 'handoff-pending', ('handoff-pending', 'remote-accepted'): 'remote-mounting', ('remote-mounting', 'remote-painted'): 'remote-visible', ('remote-mounting', 'remote-paint-failed'): 'local-hidden', ('handoff-pending', 'remote-rejected'): 'handoff-error', ('handoff-error', 'retry-handoff'): 'handoff-pending', ('remote-visible', 'bring-back'): 'recall-pending', ('recall-pending', 'remote-released'): 'local-remounting', ('local-remounting', 'local-painted'): 'local-visible', ('handoff-pending', 'cancel-handoff'): 'cancel-pending'}\n    data = json.loads(json.dumps({'transfer': 4, 'local': True, 'remote': False, 'remote_owner': 'tablet'})) if payload is None else {**json.loads(json.dumps({'transfer': 4, 'local': True, 'remote': False, 'remote_owner': 'tablet'})), **json.loads(json.dumps(payload))}\n    state = initial\n    for delivery in events:\n        event, event_generation = delivery[:2]\n        arg = delivery[2] if len(delivery) > 2 else {}\n        if event_generation == generation:\n            previous = state\n            if event in ('remote-accepted','remote-painted','remote-released','remote-rejected','remote-paint-failed'):\n                if arg.get('transfer',data['transfer']) != data['transfer'] or arg.get('owner',data['remote_owner']) != data['remote_owner']: event = 'unknown-event'\n            if event == 'remote-painted': data['remote'] = True\n            if event == 'remote-released': data['remote'] = False\n            state = table.get((state, event), state)\n            if state == 'remote-visible': data['local'] = False\n            if state in ('local-visible','handoff-error'): data['local'] = True\n            if state == 'local-hidden': data['local'] = False\n    return {'phase': state, 'value': data[observe]} if observe else state\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('local-visible / send-to-other-surface', solve('local-visible', [('send-to-other-surface', N)], N), 'handoff-pending')\ncheck('handoff-pending / remote-accepted', solve('handoff-pending', [('remote-accepted', N)], N), 'remote-mounting')\ncheck('remote-mounting / remote-painted', solve('remote-mounting', [('remote-painted', N)], N), 'remote-visible')\ncheck('remote-mounting / remote-paint-failed', solve('remote-mounting', [('remote-paint-failed', N)], N), 'handoff-error')\ncheck('handoff-pending / remote-rejected', solve('handoff-pending', [('remote-rejected', N)], N), 'handoff-error')\ncheck('handoff-error / retry-handoff', solve('handoff-error', [('retry-handoff', N)], N), 'handoff-pending')\ncheck('remote-visible / bring-back', solve('remote-visible', [('bring-back', N)], N), 'recall-pending')\ncheck('recall-pending / remote-released', solve('recall-pending', [('remote-released', N)], N), 'local-remounting')\ncheck('local-remounting / local-painted', solve('local-remounting', [('local-painted', N)], N), 'local-visible')\ncheck('handoff-pending / cancel-handoff', solve('handoff-pending', [('cancel-handoff', N)], N), 'cancel-pending')\ncheck('older notification incarnation', solve('local-visible', [('send-to-other-surface', N - 1)], N), 'local-visible')\ncheck('future notification incarnation', solve('local-visible', [('send-to-other-surface', N + 1)], N), 'local-visible')\ncheck('unknown event is inert', solve('local-visible', [('unknown-event', N)], N), 'local-visible')\ncheck('empty delivery batch', solve('local-visible', [], N), 'local-visible')\ncheck('N stale deliveries before current delivery', solve('local-visible', [('send-to-other-surface', N - 1)] * N + [('send-to-other-surface', N)], N), 'handoff-pending')\ncheck('trace send-to-other-surface then remote-accepted', solve('local-visible', [('send-to-other-surface', N), ('remote-accepted', N)], N), 'remote-mounting')\ncheck('trace send-to-other-surface then remote-rejected', solve('local-visible', [('send-to-other-surface', N), ('remote-rejected', N)], N), 'handoff-error')\ncheck('trace send-to-other-surface then cancel-handoff', solve('local-visible', [('send-to-other-surface', N), ('cancel-handoff', N)], N), 'cancel-pending')\ncheck('trace remote-accepted then remote-painted', solve('handoff-pending', [('remote-accepted', N), ('remote-painted', N)], N), 'remote-visible')\ncheck('trace remote-accepted then remote-paint-failed', solve('handoff-pending', [('remote-accepted', N), ('remote-paint-failed', N)], N), 'handoff-error')\ncheck('trace remote-painted then bring-back', solve('remote-mounting', [('remote-painted', N), ('bring-back', N)], N), 'recall-pending')\ncheck('trace remote-paint-failed then retry-handoff', solve('remote-mounting', [('remote-paint-failed', N), ('retry-handoff', N)], N), 'handoff-pending')\ncheck('trace remote-rejected then retry-handoff', solve('handoff-pending', [('remote-rejected', N), ('retry-handoff', N)], N), 'handoff-pending')\ncheck('trace retry-handoff then remote-accepted', solve('handoff-error', [('retry-handoff', N), ('remote-accepted', N)], N), 'remote-mounting')\ncheck('trace retry-handoff then remote-rejected', solve('handoff-error', [('retry-handoff', N), ('remote-rejected', N)], N), 'handoff-error')\ncheck('trace retry-handoff then cancel-handoff', solve('handoff-error', [('retry-handoff', N), ('cancel-handoff', N)], N), 'cancel-pending')\ncheck('trace bring-back then remote-released', solve('remote-visible', [('bring-back', N), ('remote-released', N)], N), 'local-remounting')\ncheck('trace remote-released then local-painted', solve('recall-pending', [('remote-released', N), ('local-painted', N)], N), 'local-visible')\ncheck('trace local-painted then send-to-other-surface', solve('local-remounting', [('local-painted', N), ('send-to-other-surface', N)], N), 'handoff-pending')\ncheck('domain state regression 1: local', solve('handoff-pending', [('remote-accepted', N, {'transfer': 3})], N, {}, 'local'), {'phase': 'handoff-pending', 'value': True})\ncheck('domain state regression 2: remote', solve('remote-mounting', [('remote-painted', N, {'owner': 'phone'})], N, {}, 'remote'), {'phase': 'remote-mounting', 'value': False})\ncheck('domain state regression 3: local', solve('remote-mounting', [('remote-painted', N, {})], N, {}, 'local'), {'phase': 'remote-visible', 'value': False})\ncheck('domain state regression 4: local', solve('remote-mounting', [('remote-paint-failed', N, {})], N, {}, 'local'), {'phase': 'handoff-error', 'value': True})\ncheck('domain state regression 5: remote', solve('recall-pending', [('remote-released', N, {})], N, {'local': False, 'remote': True}, 'remote'), {'phase': 'local-remounting', 'value': False})\ncheck('domain state regression 6: local', solve('local-remounting', [('local-painted', N, {})], N, {'local': False, 'remote': False}, 'local'), {'phase': 'local-visible', 'value': True})\ncheck('domain state regression 7: remote', solve('local-visible', [('send-to-other-surface', N, {}), ('remote-accepted', N, {}), ('remote-painted', N, {}), ('bring-back', N, {}), ('remote-released', N, {}), ('local-painted', N, {})], N, {}, 'remote'), {'phase': 'local-visible', 'value': False})\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"c278e3ea08a2b1a13bca8159830295e86e956a4e0a419a0bd31ea6ef240d4a27","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(initial, events, generation, payload=None, observe=None):\n    table = {('local-visible', 'send-to-other-surface'): 'handoff-pending', ('handoff-pending', 'remote-accepted'): 'remote-mounting', ('remote-mounting', 'remote-painted'): 'remote-visible', ('remote-mounting', 'remote-paint-failed'): 'remote-visible', ('handoff-pending', 'remote-rejected'): 'handoff-error', ('handoff-error', 'retry-handoff'): 'handoff-pending', ('remote-visible', 'bring-back'): 'recall-pending', ('recall-pending', 'remote-released'): 'local-remounting', ('local-remounting', 'local-painted'): 'local-visible', ('handoff-pending', 'cancel-handoff'): 'cancel-pending'}\n    data = json.loads(json.dumps({'transfer': 4, 'local': True, 'remote': False, 'remote_owner': 'tablet'})) if payload is None else {**json.loads(json.dumps({'transfer': 4, 'local': True, 'remote': False, 'remote_owner': 'tablet'})), **json.loads(json.dumps(payload))}\n    state = initial\n    for delivery in events:\n        event, event_generation = delivery[:2]\n        arg = delivery[2] if len(delivery) > 2 else {}\n        if event_generation == generation:\n            previous = state\n            if event in ('remote-accepted','remote-painted','remote-released','remote-rejected','remote-paint-failed'):\n                if arg.get('transfer',data['transfer']) != data['transfer'] or arg.get('owner',data['remote_owner']) != data['remote_owner']: event = 'unknown-event'\n            if event == 'remote-painted': data['remote'] = True\n            if event == 'remote-released': data['remote'] = False\n            state = table.get((state, event), state)\n            if state == 'remote-visible': data['local'] = False\n            if state in ('local-visible','handoff-error'): data['local'] = True\n            if state == 'local-hidden': data['local'] = False\n    return {'phase': state, 'value': data[observe]} if observe else state\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('local-visible / send-to-other-surface', solve('local-visible', [('send-to-other-surface', N)], N), 'handoff-pending')\ncheck('handoff-pending / remote-accepted', solve('handoff-pending', [('remote-accepted', N)], N), 'remote-mounting')\ncheck('remote-mounting / remote-painted', solve('remote-mounting', [('remote-painted', N)], N), 'remote-visible')\ncheck('remote-mounting / remote-paint-failed', solve('remote-mounting', [('remote-paint-failed', N)], N), 'handoff-error')\ncheck('handoff-pending / remote-rejected', solve('handoff-pending', [('remote-rejected', N)], N), 'handoff-error')\ncheck('handoff-error / retry-handoff', solve('handoff-error', [('retry-handoff', N)], N), 'handoff-pending')\ncheck('remote-visible / bring-back', solve('remote-visible', [('bring-back', N)], N), 'recall-pending')\ncheck('recall-pending / remote-released', solve('recall-pending', [('remote-released', N)], N), 'local-remounting')\ncheck('local-remounting / local-painted', solve('local-remounting', [('local-painted', N)], N), 'local-visible')\ncheck('handoff-pending / cancel-handoff', solve('handoff-pending', [('cancel-handoff', N)], N), 'cancel-pending')\ncheck('older notification incarnation', solve('local-visible', [('send-to-other-surface', N - 1)], N), 'local-visible')\ncheck('future notification incarnation', solve('local-visible', [('send-to-other-surface', N + 1)], N), 'local-visible')\ncheck('unknown event is inert', solve('local-visible', [('unknown-event', N)], N), 'local-visible')\ncheck('empty delivery batch', solve('local-visible', [], N), 'local-visible')\ncheck('N stale deliveries before current delivery', solve('local-visible', [('send-to-other-surface', N - 1)] * N + [('send-to-other-surface', N)], N), 'handoff-pending')\ncheck('trace send-to-other-surface then remote-accepted', solve('local-visible', [('send-to-other-surface', N), ('remote-accepted', N)], N), 'remote-mounting')\ncheck('trace send-to-other-surface then remote-rejected', solve('local-visible', [('send-to-other-surface', N), ('remote-rejected', N)], N), 'handoff-error')\ncheck('trace send-to-other-surface then cancel-handoff', solve('local-visible', [('send-to-other-surface', N), ('cancel-handoff', N)], N), 'cancel-pending')\ncheck('trace remote-accepted then remote-painted', solve('handoff-pending', [('remote-accepted', N), ('remote-painted', N)], N), 'remote-visible')\ncheck('trace remote-accepted then remote-paint-failed', solve('handoff-pending', [('remote-accepted', N), ('remote-paint-failed', N)], N), 'handoff-error')\ncheck('trace remote-painted then bring-back', solve('remote-mounting', [('remote-painted', N), ('bring-back', N)], N), 'recall-pending')\ncheck('trace remote-paint-failed then retry-handoff', solve('remote-mounting', [('remote-paint-failed', N), ('retry-handoff', N)], N), 'handoff-pending')\ncheck('trace remote-rejected then retry-handoff', solve('handoff-pending', [('remote-rejected', N), ('retry-handoff', N)], N), 'handoff-pending')\ncheck('trace retry-handoff then remote-accepted', solve('handoff-error', [('retry-handoff', N), ('remote-accepted', N)], N), 'remote-mounting')\ncheck('trace retry-handoff then remote-rejected', solve('handoff-error', [('retry-handoff', N), ('remote-rejected', N)], N), 'handoff-error')\ncheck('trace retry-handoff then cancel-handoff', solve('handoff-error', [('retry-handoff', N), ('cancel-handoff', N)], N), 'cancel-pending')\ncheck('trace bring-back then remote-released', solve('remote-visible', [('bring-back', N), ('remote-released', N)], N), 'local-remounting')\ncheck('trace remote-released then local-painted', solve('recall-pending', [('remote-released', N), ('local-painted', N)], N), 'local-visible')\ncheck('trace local-painted then send-to-other-surface', solve('local-remounting', [('local-painted', N), ('send-to-other-surface', N)], N), 'handoff-pending')\ncheck('domain state regression 1: local', solve('handoff-pending', [('remote-accepted', N, {'transfer': 3})], N, {}, 'local'), {'phase': 'handoff-pending', 'value': True})\ncheck('domain state regression 2: remote', solve('remote-mounting', [('remote-painted', N, {'owner': 'phone'})], N, {}, 'remote'), {'phase': 'remote-mounting', 'value': False})\ncheck('domain state regression 3: local', solve('remote-mounting', [('remote-painted', N, {})], N, {}, 'local'), {'phase': 'remote-visible', 'value': False})\ncheck('domain state regression 4: local', solve('remote-mounting', [('remote-paint-failed', N, {})], N, {}, 'local'), {'phase': 'handoff-error', 'value': True})\ncheck('domain state regression 5: remote', solve('recall-pending', [('remote-released', N, {})], N, {'local': False, 'remote': True}, 'remote'), {'phase': 'local-remounting', 'value': False})\ncheck('domain state regression 6: local', solve('local-remounting', [('local-painted', N, {})], N, {'local': False, 'remote': False}, 'local'), {'phase': 'local-visible', 'value': True})\ncheck('domain state regression 7: remote', solve('local-visible', [('send-to-other-surface', N, {}), ('remote-accepted', N, {}), ('remote-painted', N, {}), ('bring-back', N, {}), ('remote-released', N, {}), ('local-painted', N, {})], N, {}, 'remote'), {'phase': 'local-visible', 'value': False})\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"34d7dd52f033b0404874ff518364a4e8195337bdeae5216b4e9ac52fb7855cab","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(initial, events, generation, payload=None, observe=None):\n    table = {('local-visible', 'send-to-other-surface'): 'handoff-pending', ('handoff-pending', 'remote-accepted'): 'remote-mounting', ('remote-mounting', 'remote-painted'): 'remote-visible', ('remote-mounting', 'remote-paint-failed'): 'handoff-error', ('handoff-pending', 'remote-rejected'): 'handoff-error', ('handoff-error', 'retry-handoff'): 'handoff-pending', ('remote-visible', 'bring-back'): 'recall-pending', ('recall-pending', 'remote-released'): 'local-remounting', ('local-remounting', 'local-painted'): 'local-visible', ('handoff-pending', 'cancel-handoff'): 'cancel-pending'}\n    data = json.loads(json.dumps({'transfer': 4, 'local': True, 'remote': False, 'remote_owner': 'tablet'})) if payload is None else {**json.loads(json.dumps({'transfer': 4, 'local': True, 'remote': False, 'remote_owner': 'tablet'})), **json.loads(json.dumps(payload))}\n    state = initial\n    for delivery in events:\n        event, event_generation = delivery[:2]\n        arg = delivery[2] if len(delivery) > 2 else {}\n        if event_generation == generation:\n            previous = state\n            if event in ('remote-accepted','remote-painted','remote-released','remote-rejected','remote-paint-failed'):\n                if arg.get('transfer',data['transfer']) != data['transfer'] or arg.get('owner',data['remote_owner']) != data['remote_owner']: event = 'unknown-event'\n            if event == 'remote-painted': data['remote'] = True\n            if event == 'remote-released': data['remote'] = False\n            state = table.get((state, event), state)\n            if state == 'remote-visible': data['local'] = False\n            if state in ('local-visible','handoff-error'): data['local'] = True\n            if state == 'local-hidden': data['local'] = False\n    return {'phase': state, 'value': data[observe]} if observe else state\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('local-visible / send-to-other-surface', solve('local-visible', [('send-to-other-surface', N)], N), 'handoff-pending')\ncheck('handoff-pending / remote-accepted', solve('handoff-pending', [('remote-accepted', N)], N), 'remote-mounting')\ncheck('remote-mounting / remote-painted', solve('remote-mounting', [('remote-painted', N)], N), 'remote-visible')\ncheck('remote-mounting / remote-paint-failed', solve('remote-mounting', [('remote-paint-failed', N)], N), 'handoff-error')\ncheck('handoff-pending / remote-rejected', solve('handoff-pending', [('remote-rejected', N)], N), 'handoff-error')\ncheck('handoff-error / retry-handoff', solve('handoff-error', [('retry-handoff', N)], N), 'handoff-pending')\ncheck('remote-visible / bring-back', solve('remote-visible', [('bring-back', N)], N), 'recall-pending')\ncheck('recall-pending / remote-released', solve('recall-pending', [('remote-released', N)], N), 'local-remounting')\ncheck('local-remounting / local-painted', solve('local-remounting', [('local-painted', N)], N), 'local-visible')\ncheck('handoff-pending / cancel-handoff', solve('handoff-pending', [('cancel-handoff', N)], N), 'cancel-pending')\ncheck('older notification incarnation', solve('local-visible', [('send-to-other-surface', N - 1)], N), 'local-visible')\ncheck('future notification incarnation', solve('local-visible', [('send-to-other-surface', N + 1)], N), 'local-visible')\ncheck('unknown event is inert', solve('local-visible', [('unknown-event', N)], N), 'local-visible')\ncheck('empty delivery batch', solve('local-visible', [], N), 'local-visible')\ncheck('N stale deliveries before current delivery', solve('local-visible', [('send-to-other-surface', N - 1)] * N + [('send-to-other-surface', N)], N), 'handoff-pending')\ncheck('trace send-to-other-surface then remote-accepted', solve('local-visible', [('send-to-other-surface', N), ('remote-accepted', N)], N), 'remote-mounting')\ncheck('trace send-to-other-surface then remote-rejected', solve('local-visible', [('send-to-other-surface', N), ('remote-rejected', N)], N), 'handoff-error')\ncheck('trace send-to-other-surface then cancel-handoff', solve('local-visible', [('send-to-other-surface', N), ('cancel-handoff', N)], N), 'cancel-pending')\ncheck('trace remote-accepted then remote-painted', solve('handoff-pending', [('remote-accepted', N), ('remote-painted', N)], N), 'remote-visible')\ncheck('trace remote-accepted then remote-paint-failed', solve('handoff-pending', [('remote-accepted', N), ('remote-paint-failed', N)], N), 'handoff-error')\ncheck('trace remote-painted then bring-back', solve('remote-mounting', [('remote-painted', N), ('bring-back', N)], N), 'recall-pending')\ncheck('trace remote-paint-failed then retry-handoff', solve('remote-mounting', [('remote-paint-failed', N), ('retry-handoff', N)], N), 'handoff-pending')\ncheck('trace remote-rejected then retry-handoff', solve('handoff-pending', [('remote-rejected', N), ('retry-handoff', N)], N), 'handoff-pending')\ncheck('trace retry-handoff then remote-accepted', solve('handoff-error', [('retry-handoff', N), ('remote-accepted', N)], N), 'remote-mounting')\ncheck('trace retry-handoff then remote-rejected', solve('handoff-error', [('retry-handoff', N), ('remote-rejected', N)], N), 'handoff-error')\ncheck('trace retry-handoff then cancel-handoff', solve('handoff-error', [('retry-handoff', N), ('cancel-handoff', N)], N), 'cancel-pending')\ncheck('trace bring-back then remote-released', solve('remote-visible', [('bring-back', N), ('remote-released', N)], N), 'local-remounting')\ncheck('trace remote-released then local-painted', solve('recall-pending', [('remote-released', N), ('local-painted', N)], N), 'local-visible')\ncheck('trace local-painted then send-to-other-surface', solve('local-remounting', [('local-painted', N), ('send-to-other-surface', N)], N), 'handoff-pending')\ncheck('domain state regression 1: local', solve('handoff-pending', [('remote-accepted', N, {'transfer': 3})], N, {}, 'local'), {'phase': 'handoff-pending', 'value': True})\ncheck('domain state regression 2: remote', solve('remote-mounting', [('remote-painted', N, {'owner': 'phone'})], N, {}, 'remote'), {'phase': 'remote-mounting', 'value': False})\ncheck('domain state regression 3: local', solve('remote-mounting', [('remote-painted', N, {})], N, {}, 'local'), {'phase': 'remote-visible', 'value': False})\ncheck('domain state regression 4: local', solve('remote-mounting', [('remote-paint-failed', N, {})], N, {}, 'local'), {'phase': 'handoff-error', 'value': True})\ncheck('domain state regression 5: remote', solve('recall-pending', [('remote-released', N, {})], N, {'local': False, 'remote': True}, 'remote'), {'phase': 'local-remounting', 'value': False})\ncheck('domain state regression 6: local', solve('local-remounting', [('local-painted', N, {})], N, {'local': False, 'remote': False}, 'local'), {'phase': 'local-visible', 'value': True})\ncheck('domain state regression 7: remote', solve('local-visible', [('send-to-other-surface', N, {}), ('remote-accepted', N, {}), ('remote-painted', N, {}), ('bring-back', N, {}), ('remote-released', N, {}), ('local-painted', N, {})], N, {}, 'remote'), {'phase': 'local-visible', 'value': False})\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"Stipulated single-notification state and policy model only. Event delivery and acknowledgements are explicit test inputs. No DOM, accessibility announcements, live timers, networking, actual rendering, or production-platform conformance is simulated. 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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"s3-notification-interfaces-device-handoff-04","generated_at":"2026-09-29T14:42:40.249099+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Visual notification lifecycle ordering can leave an inbox or toast showing the wrong actionable state even when transport succeeds.","repair":"Commit the remote-mounting / remote-paint-failed transition to handoff-error; preserve the other explicitly stipulated transitions.","root_cause":"A failed remote mount is shown as a completed handoff.","sha256":"6c4c6d4e464b2d8ff2103d6876cf24e0420e4b83aa194f151a7259fccbb343df","title":"Notification handoff to another surface: remote-paint-failed from remote-mounting · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.558,"exit_code":1,"observations":[{"actual":"handoff-pending","check":"local-visible / send-to-other-surface","expected":"handoff-pending","passed":true},{"actual":"remote-mounting","check":"handoff-pending / remote-accepted","expected":"remote-mounting","passed":true},{"actual":"remote-visible","check":"remote-mounting / remote-painted","expected":"remote-visible","passed":true},{"actual":"local-hidden","check":"remote-mounting / remote-paint-failed","expected":"handoff-error","passed":false},{"actual":"handoff-error","check":"handoff-pending / remote-rejected","expected":"handoff-error","passed":true},{"actual":"handoff-pending","check":"handoff-error / retry-handoff","expected":"handoff-pending","passed":true},{"actual":"recall-pending","check":"remote-visible / bring-back","expected":"recall-pending","passed":true},{"actual":"local-remounting","check":"recall-pending / remote-released","expected":"local-remounting","passed":true},{"actual":"local-visible","check":"local-remounting / local-painted","expected":"local-visible","passed":true},{"actual":"cancel-pending","check":"handoff-pending / cancel-handoff","expected":"cancel-pending","passed":true},{"actual":"local-visible","check":"older notification incarnation","expected":"local-visible","passed":true},{"actual":"local-visible","check":"future notification incarnation","expected":"local-visible","passed":true},{"actual":"local-visible","check":"unknown event is inert","expected":"local-visible","passed":true},{"actual":"local-visible","check":"empty delivery batch","expected":"local-visible","passed":true},{"actual":"handoff-pending","check":"N stale deliveries before current delivery","expected":"handoff-pending","passed":true},{"actual":"remote-mounting","check":"trace send-to-other-surface then remote-accepted","expected":"remote-mounting","passed":true},{"actual":"handoff-error","check":"trace send-to-other-surface then remote-rejected","expected":"handoff-error","passed":true},{"actual":"cancel-pending","check":"trace send-to-other-surface then cancel-handoff","expected":"cancel-pending","passed":true},{"actual":"remote-visible","check":"trace remote-accepted then remote-painted","expected":"remote-visible","passed":true},{"actual":"local-hidden","check":"trace remote-accepted then remote-paint-failed","expected":"handoff-error","passed":false},{"actual":"recall-pending","check":"trace remote-painted then bring-back","expected":"recall-pending","passed":true},{"actual":"local-hidden","check":"trace remote-paint-failed then retry-handoff","expected":"handoff-pending","passed":false},{"actual":"handoff-pending","check":"trace remote-rejected then retry-handoff","expected":"handoff-pending","passed":true},{"actual":"remote-mounting","check":"trace retry-handoff then remote-accepted","expected":"remote-mounting","passed":true},{"actual":"handoff-error","check":"trace retry-handoff then remote-rejected","expected":"handoff-error","passed":true},{"actual":"cancel-pending","check":"trace retry-handoff then cancel-handoff","expected":"cancel-pending","passed":true},{"actual":"local-remounting","check":"trace bring-back then remote-released","expected":"local-remounting","passed":true},{"actual":"local-visible","check":"trace remote-released then local-painted","expected":"local-visible","passed":true},{"actual":"handoff-pending","check":"trace local-painted then send-to-other-surface","expected":"handoff-pending","passed":true},{"actual":{"phase":"handoff-pending","value":true},"check":"domain state regression 1: local","expected":{"phase":"handoff-pending","value":true},"passed":true},{"actual":{"phase":"remote-mounting","value":false},"check":"domain state regression 2: remote","expected":{"phase":"remote-mounting","value":false},"passed":true},{"actual":{"phase":"remote-visible","value":false},"check":"domain state regression 3: local","expected":{"phase":"remote-visible","value":false},"passed":true},{"actual":{"phase":"local-hidden","value":false},"check":"domain state regression 4: local","expected":{"phase":"handoff-error","value":true},"passed":false},{"actual":{"phase":"local-remounting","value":false},"check":"domain state regression 5: remote","expected":{"phase":"local-remounting","value":false},"passed":true},{"actual":{"phase":"local-visible","value":true},"check":"domain state regression 6: local","expected":{"phase":"local-visible","value":true},"passed":true},{"actual":{"phase":"local-visible","value":false},"check":"domain state regression 7: remote","expected":{"phase":"local-visible","value":false},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"local-visible / send-to-other-surface\", \"actual\": \"handoff-pending\", \"expected\": \"handoff-pending\", \"passed\": true}, {\"check\": \"handoff-pending / remote-accepted\", \"actual\": \"remote-mounting\", \"expected\": \"remote-mounting\", \"passed\": true}, {\"check\": \"remote-mounting / remote-painted\", \"actual\": \"remote-visible\", \"expected\": \"remote-visible\", \"passed\": true}, {\"check\": \"remote-mounting / remote-paint-failed\", \"actual\": \"local-hidden\", \"expected\": \"handoff-error\", \"passed\": false}, {\"check\": \"handoff-pending / remote-rejected\", \"actual\": \"handoff-error\", \"expected\": \"handoff-error\", \"passed\": true}, {\"check\": \"handoff-error / retry-handoff\", \"actual\": \"handoff-pending\", \"expected\": \"handoff-pending\", \"passed\": true}, {\"check\": \"remote-visible / bring-back\", \"actual\": \"recall-pending\", \"expected\": \"recall-pending\", \"passed\": true}, {\"check\": \"recall-pending / remote-released\", \"actual\": \"local-remounting\", \"expected\": \"local-remounting\", \"passed\": true}, {\"check\": \"local-remounting / local-painted\", \"actual\": \"local-visible\", \"expected\": \"local-visible\", \"passed\": true}, {\"check\": \"handoff-pending / cancel-handoff\", \"actual\": \"cancel-pending\", \"expected\": \"cancel-pending\", \"passed\": true}, {\"check\": \"older notification incarnation\", \"actual\": \"local-visible\", \"expected\": \"local-visible\", \"passed\": true}, {\"check\": \"future notification incarnation\", \"actual\": \"local-visible\", \"expected\": \"local-visible\", \"passed\": true}, {\"check\": \"unknown event is inert\", \"actual\": \"local-visible\", \"expected\": \"local-visible\", \"passed\": true}, {\"check\": \"empty delivery batch\", \"actual\": \"local-visible\", \"expected\": \"local-visible\", \"passed\": true}, {\"check\": \"N stale deliveries before current delivery\", \"actual\": \"handoff-pending\", \"expected\": \"handoff-pending\", \"passed\": true}, {\"check\": \"trace send-to-other-surface then remote-accepted\", \"actual\": \"remote-mounting\", \"expected\": \"remote-mounting\", \"passed\": true}, {\"check\": \"trace send-to-other-surface then remote-rejected\", \"actual\": \"handoff-error\", \"expected\": \"handoff-error\", \"passed\": true}, {\"check\": \"trace send-to-other-surface then cancel-handoff\", \"actual\": \"cancel-pending\", \"expected\": \"cancel-pending\", \"passed\": true}, {\"check\": \"trace remote-accepted then remote-painted\", \"actual\": \"remote-visible\", \"expected\": \"remote-visible\", \"passed\": true}, {\"check\": \"trace remote-accepted then remote-paint-failed\", \"actual\": \"local-hidden\", \"expected\": \"handoff-error\", \"passed\": false}, {\"check\": \"trace remote-painted then bring-back\", \"actual\": \"recall-pending\", \"expected\": \"recall-pending\", \"passed\": true}, {\"check\": \"trace remote-paint-failed then retry-handoff\", \"actual\": \"local-hidden\", \"expected\": \"handoff-pending\", \"passed\": false}, {\"check\": \"trace remote-rejected then retry-handoff\", \"actual\": \"handoff-pending\", \"expected\": \"handoff-pending\", \"passed\": true}, {\"check\": \"trace retry-handoff then remote-accepted\", \"actual\": \"remote-mounting\", \"expected\": \"remote-mounting\", \"passed\": true}, {\"check\": \"trace retry-handoff then remote-rejected\", \"actual\": \"handoff-error\", \"expected\": \"handoff-error\", \"passed\": true}, {\"check\": \"trace retry-handoff then cancel-handoff\", \"actual\": \"cancel-pending\", \"expected\": \"cancel-pending\", \"passed\": true}, {\"check\": \"trace bring-back then remote-released\", \"actual\": \"local-remounting\", \"expected\": \"local-remounting\", \"passed\": true}, {\"check\": \"trace remote-released then local-painted\", \"actual\": \"local-visible\", \"expected\": \"local-visible\", \"passed\": true}, {\"check\": \"trace local-painted then send-to-other-surface\", \"actual\": \"handoff-pending\", \"expected\": \"handoff-pending\", \"passed\": true}, {\"check\": \"domain state regression 1: local\", \"actual\": {\"phase\": \"handoff-pending\", \"value\": true}, \"expected\": {\"phase\": \"handoff-pending\", \"value\": true}, \"passed\": true}, {\"check\": \"domain state regression 2: remote\", \"actual\": {\"phase\": \"remote-mounting\", \"value\": false}, \"expected\": {\"phase\": \"remote-mounting\", \"value\": false}, \"passed\": true}, {\"check\": \"domain state regression 3: local\", \"actual\": {\"phase\": \"remote-visible\", \"value\": false}, \"expected\": {\"phase\": \"remote-visible\", \"value\": false}, \"passed\": true}, {\"check\": \"domain state regression 4: local\", \"actual\": {\"phase\": \"local-hidden\", \"value\": false}, \"expected\": {\"phase\": \"handoff-error\", \"value\": true}, \"passed\": false}, {\"check\": \"domain state regression 5: remote\", \"actual\": {\"phase\": \"local-remounting\", \"value\": false}, \"expected\": {\"phase\": \"local-remounting\", \"value\": false}, \"passed\": true}, {\"check\": \"domain state regression 6: local\", \"actual\": {\"phase\": \"local-visible\", \"value\": true}, \"expected\": {\"phase\": \"local-visible\", \"value\": true}, \"passed\": true}, {\"check\": \"domain state regression 7: remote\", \"actual\": {\"phase\": \"local-visible\", \"value\": false}, \"expected\": {\"phase\": \"local-visible\", \"value\": false}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.198,"exit_code":1,"observations":[{"actual":"handoff-pending","check":"local-visible / send-to-other-surface","expected":"handoff-pending","passed":true},{"actual":"remote-mounting","check":"handoff-pending / remote-accepted","expected":"remote-mounting","passed":true},{"actual":"remote-visible","check":"remote-mounting / remote-painted","expected":"remote-visible","passed":true},{"actual":"remote-visible","check":"remote-mounting / remote-paint-failed","expected":"handoff-error","passed":false},{"actual":"handoff-error","check":"handoff-pending / remote-rejected","expected":"handoff-error","passed":true},{"actual":"handoff-pending","check":"handoff-error / retry-handoff","expected":"handoff-pending","passed":true},{"actual":"recall-pending","check":"remote-visible / bring-back","expected":"recall-pending","passed":true},{"actual":"local-remounting","check":"recall-pending / remote-released","expected":"local-remounting","passed":true},{"actual":"local-visible","check":"local-remounting / local-painted","expected":"local-visible","passed":true},{"actual":"cancel-pending","check":"handoff-pending / cancel-handoff","expected":"cancel-pending","passed":true},{"actual":"local-visible","check":"older notification incarnation","expected":"local-visible","passed":true},{"actual":"local-visible","check":"future notification incarnation","expected":"local-visible","passed":true},{"actual":"local-visible","check":"unknown event is inert","expected":"local-visible","passed":true},{"actual":"local-visible","check":"empty delivery batch","expected":"local-visible","passed":true},{"actual":"handoff-pending","check":"N stale deliveries before current delivery","expected":"handoff-pending","passed":true},{"actual":"remote-mounting","check":"trace send-to-other-surface then remote-accepted","expected":"remote-mounting","passed":true},{"actual":"handoff-error","check":"trace send-to-other-surface then remote-rejected","expected":"handoff-error","passed":true},{"actual":"cancel-pending","check":"trace send-to-other-surface then cancel-handoff","expected":"cancel-pending","passed":true},{"actual":"remote-visible","check":"trace remote-accepted then remote-painted","expected":"remote-visible","passed":true},{"actual":"remote-visible","check":"trace remote-accepted then remote-paint-failed","expected":"handoff-error","passed":false},{"actual":"recall-pending","check":"trace remote-painted then bring-back","expected":"recall-pending","passed":true},{"actual":"remote-visible","check":"trace remote-paint-failed then retry-handoff","expected":"handoff-pending","passed":false},{"actual":"handoff-pending","check":"trace remote-rejected then retry-handoff","expected":"handoff-pending","passed":true},{"actual":"remote-mounting","check":"trace retry-handoff then remote-accepted","expected":"remote-mounting","passed":true},{"actual":"handoff-error","check":"trace retry-handoff then remote-rejected","expected":"handoff-error","passed":true},{"actual":"cancel-pending","check":"trace retry-handoff then cancel-handoff","expected":"cancel-pending","passed":true},{"actual":"local-remounting","check":"trace bring-back then remote-released","expected":"local-remounting","passed":true},{"actual":"local-visible","check":"trace remote-released then local-painted","expected":"local-visible","passed":true},{"actual":"handoff-pending","check":"trace local-painted then send-to-other-surface","expected":"handoff-pending","passed":true},{"actual":{"phase":"handoff-pending","value":true},"check":"domain state regression 1: local","expected":{"phase":"handoff-pending","value":true},"passed":true},{"actual":{"phase":"remote-mounting","value":false},"check":"domain state regression 2: remote","expected":{"phase":"remote-mounting","value":false},"passed":true},{"actual":{"phase":"remote-visible","value":false},"check":"domain state regression 3: local","expected":{"phase":"remote-visible","value":false},"passed":true},{"actual":{"phase":"remote-visible","value":false},"check":"domain state regression 4: local","expected":{"phase":"handoff-error","value":true},"passed":false},{"actual":{"phase":"local-remounting","value":false},"check":"domain state regression 5: remote","expected":{"phase":"local-remounting","value":false},"passed":true},{"actual":{"phase":"local-visible","value":true},"check":"domain state regression 6: local","expected":{"phase":"local-visible","value":true},"passed":true},{"actual":{"phase":"local-visible","value":false},"check":"domain state regression 7: remote","expected":{"phase":"local-visible","value":false},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"local-visible / send-to-other-surface\", \"actual\": \"handoff-pending\", \"expected\": \"handoff-pending\", \"passed\": true}, {\"check\": \"handoff-pending / remote-accepted\", \"actual\": \"remote-mounting\", \"expected\": \"remote-mounting\", \"passed\": true}, {\"check\": \"remote-mounting / remote-painted\", \"actual\": \"remote-visible\", \"expected\": \"remote-visible\", \"passed\": true}, {\"check\": \"remote-mounting / remote-paint-failed\", \"actual\": \"remote-visible\", \"expected\": \"handoff-error\", \"passed\": false}, {\"check\": \"handoff-pending / remote-rejected\", \"actual\": \"handoff-error\", \"expected\": \"handoff-error\", \"passed\": true}, {\"check\": \"handoff-error / retry-handoff\", \"actual\": \"handoff-pending\", \"expected\": \"handoff-pending\", \"passed\": true}, {\"check\": \"remote-visible / bring-back\", \"actual\": \"recall-pending\", \"expected\": \"recall-pending\", \"passed\": true}, {\"check\": \"recall-pending / remote-released\", \"actual\": \"local-remounting\", \"expected\": \"local-remounting\", \"passed\": true}, {\"check\": \"local-remounting / local-painted\", \"actual\": \"local-visible\", \"expected\": \"local-visible\", \"passed\": true}, {\"check\": \"handoff-pending / cancel-handoff\", \"actual\": \"cancel-pending\", \"expected\": \"cancel-pending\", \"passed\": true}, {\"check\": \"older notification incarnation\", \"actual\": \"local-visible\", \"expected\": \"local-visible\", \"passed\": true}, {\"check\": \"future notification incarnation\", \"actual\": \"local-visible\", \"expected\": \"local-visible\", \"passed\": true}, {\"check\": \"unknown event is inert\", \"actual\": \"local-visible\", \"expected\": \"local-visible\", \"passed\": true}, {\"check\": \"empty delivery batch\", \"actual\": \"local-visible\", \"expected\": \"local-visible\", \"passed\": true}, {\"check\": \"N stale deliveries before current delivery\", \"actual\": \"handoff-pending\", \"expected\": \"handoff-pending\", \"passed\": true}, {\"check\": \"trace send-to-other-surface then remote-accepted\", \"actual\": \"remote-mounting\", \"expected\": \"remote-mounting\", \"passed\": true}, {\"check\": \"trace send-to-other-surface then remote-rejected\", \"actual\": \"handoff-error\", \"expected\": \"handoff-error\", \"passed\": true}, {\"check\": \"trace send-to-other-surface then cancel-handoff\", \"actual\": \"cancel-pending\", \"expected\": \"cancel-pending\", \"passed\": true}, {\"check\": \"trace remote-accepted then remote-painted\", \"actual\": \"remote-visible\", \"expected\": \"remote-visible\", \"passed\": true}, {\"check\": \"trace remote-accepted then remote-paint-failed\", \"actual\": \"remote-visible\", \"expected\": \"handoff-error\", \"passed\": false}, {\"check\": \"trace remote-painted then bring-back\", \"actual\": \"recall-pending\", \"expected\": \"recall-pending\", \"passed\": true}, {\"check\": \"trace remote-paint-failed then retry-handoff\", \"actual\": \"remote-visible\", \"expected\": \"handoff-pending\", \"passed\": false}, {\"check\": \"trace remote-rejected then retry-handoff\", \"actual\": \"handoff-pending\", \"expected\": \"handoff-pending\", \"passed\": true}, {\"check\": \"trace retry-handoff then remote-accepted\", \"actual\": \"remote-mounting\", \"expected\": \"remote-mounting\", \"passed\": true}, {\"check\": \"trace retry-handoff then remote-rejected\", \"actual\": \"handoff-error\", \"expected\": \"handoff-error\", \"passed\": true}, {\"check\": \"trace retry-handoff then cancel-handoff\", \"actual\": \"cancel-pending\", \"expected\": \"cancel-pending\", \"passed\": true}, {\"check\": \"trace bring-back then remote-released\", \"actual\": \"local-remounting\", \"expected\": \"local-remounting\", \"passed\": true}, {\"check\": \"trace remote-released then local-painted\", \"actual\": \"local-visible\", \"expected\": \"local-visible\", \"passed\": true}, {\"check\": \"trace local-painted then send-to-other-surface\", \"actual\": \"handoff-pending\", \"expected\": \"handoff-pending\", \"passed\": true}, {\"check\": \"domain state regression 1: local\", \"actual\": {\"phase\": \"handoff-pending\", \"value\": true}, \"expected\": {\"phase\": \"handoff-pending\", \"value\": true}, \"passed\": true}, {\"check\": \"domain state regression 2: remote\", \"actual\": {\"phase\": \"remote-mounting\", \"value\": false}, \"expected\": {\"phase\": \"remote-mounting\", \"value\": false}, \"passed\": true}, {\"check\": \"domain state regression 3: local\", \"actual\": {\"phase\": \"remote-visible\", \"value\": false}, \"expected\": {\"phase\": \"remote-visible\", \"value\": false}, \"passed\": true}, {\"check\": \"domain state regression 4: local\", \"actual\": {\"phase\": \"remote-visible\", \"value\": false}, \"expected\": {\"phase\": \"handoff-error\", \"value\": true}, \"passed\": false}, {\"check\": \"domain state regression 5: remote\", \"actual\": {\"phase\": \"local-remounting\", \"value\": false}, \"expected\": {\"phase\": \"local-remounting\", \"value\": false}, \"passed\": true}, {\"check\": \"domain state regression 6: local\", \"actual\": {\"phase\": \"local-visible\", \"value\": true}, \"expected\": {\"phase\": \"local-visible\", \"value\": true}, \"passed\": true}, {\"check\": \"domain state regression 7: remote\", \"actual\": {\"phase\": \"local-visible\", \"value\": false}, \"expected\": {\"phase\": \"local-visible\", \"value\": false}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.313,"exit_code":0,"observations":[{"actual":"handoff-pending","check":"local-visible / send-to-other-surface","expected":"handoff-pending","passed":true},{"actual":"remote-mounting","check":"handoff-pending / remote-accepted","expected":"remote-mounting","passed":true},{"actual":"remote-visible","check":"remote-mounting / remote-painted","expected":"remote-visible","passed":true},{"actual":"handoff-error","check":"remote-mounting / remote-paint-failed","expected":"handoff-error","passed":true},{"actual":"handoff-error","check":"handoff-pending / remote-rejected","expected":"handoff-error","passed":true},{"actual":"handoff-pending","check":"handoff-error / retry-handoff","expected":"handoff-pending","passed":true},{"actual":"recall-pending","check":"remote-visible / bring-back","expected":"recall-pending","passed":true},{"actual":"local-remounting","check":"recall-pending / remote-released","expected":"local-remounting","passed":true},{"actual":"local-visible","check":"local-remounting / local-painted","expected":"local-visible","passed":true},{"actual":"cancel-pending","check":"handoff-pending / cancel-handoff","expected":"cancel-pending","passed":true},{"actual":"local-visible","check":"older notification incarnation","expected":"local-visible","passed":true},{"actual":"local-visible","check":"future notification incarnation","expected":"local-visible","passed":true},{"actual":"local-visible","check":"unknown event is inert","expected":"local-visible","passed":true},{"actual":"local-visible","check":"empty delivery batch","expected":"local-visible","passed":true},{"actual":"handoff-pending","check":"N stale deliveries before current delivery","expected":"handoff-pending","passed":true},{"actual":"remote-mounting","check":"trace send-to-other-surface then remote-accepted","expected":"remote-mounting","passed":true},{"actual":"handoff-error","check":"trace send-to-other-surface then remote-rejected","expected":"handoff-error","passed":true},{"actual":"cancel-pending","check":"trace send-to-other-surface then cancel-handoff","expected":"cancel-pending","passed":true},{"actual":"remote-visible","check":"trace remote-accepted then remote-painted","expected":"remote-visible","passed":true},{"actual":"handoff-error","check":"trace remote-accepted then remote-paint-failed","expected":"handoff-error","passed":true},{"actual":"recall-pending","check":"trace remote-painted then bring-back","expected":"recall-pending","passed":true},{"actual":"handoff-pending","check":"trace remote-paint-failed then retry-handoff","expected":"handoff-pending","passed":true},{"actual":"handoff-pending","check":"trace remote-rejected then retry-handoff","expected":"handoff-pending","passed":true},{"actual":"remote-mounting","check":"trace retry-handoff then remote-accepted","expected":"remote-mounting","passed":true},{"actual":"handoff-error","check":"trace retry-handoff then remote-rejected","expected":"handoff-error","passed":true},{"actual":"cancel-pending","check":"trace retry-handoff then cancel-handoff","expected":"cancel-pending","passed":true},{"actual":"local-remounting","check":"trace bring-back then remote-released","expected":"local-remounting","passed":true},{"actual":"local-visible","check":"trace remote-released then local-painted","expected":"local-visible","passed":true},{"actual":"handoff-pending","check":"trace local-painted then send-to-other-surface","expected":"handoff-pending","passed":true},{"actual":{"phase":"handoff-pending","value":true},"check":"domain state regression 1: local","expected":{"phase":"handoff-pending","value":true},"passed":true},{"actual":{"phase":"remote-mounting","value":false},"check":"domain state regression 2: remote","expected":{"phase":"remote-mounting","value":false},"passed":true},{"actual":{"phase":"remote-visible","value":false},"check":"domain state regression 3: local","expected":{"phase":"remote-visible","value":false},"passed":true},{"actual":{"phase":"handoff-error","value":true},"check":"domain state regression 4: local","expected":{"phase":"handoff-error","value":true},"passed":true},{"actual":{"phase":"local-remounting","value":false},"check":"domain state regression 5: remote","expected":{"phase":"local-remounting","value":false},"passed":true},{"actual":{"phase":"local-visible","value":true},"check":"domain state regression 6: local","expected":{"phase":"local-visible","value":true},"passed":true},{"actual":{"phase":"local-visible","value":false},"check":"domain state regression 7: remote","expected":{"phase":"local-visible","value":false},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"local-visible / send-to-other-surface\", \"actual\": \"handoff-pending\", \"expected\": \"handoff-pending\", \"passed\": true}, {\"check\": \"handoff-pending / remote-accepted\", \"actual\": \"remote-mounting\", \"expected\": \"remote-mounting\", \"passed\": true}, {\"check\": \"remote-mounting / remote-painted\", \"actual\": \"remote-visible\", \"expected\": \"remote-visible\", \"passed\": true}, {\"check\": \"remote-mounting / remote-paint-failed\", \"actual\": \"handoff-error\", \"expected\": \"handoff-error\", \"passed\": true}, {\"check\": \"handoff-pending / remote-rejected\", \"actual\": \"handoff-error\", \"expected\": \"handoff-error\", \"passed\": true}, {\"check\": \"handoff-error / retry-handoff\", \"actual\": \"handoff-pending\", \"expected\": \"handoff-pending\", \"passed\": true}, {\"check\": \"remote-visible / bring-back\", \"actual\": \"recall-pending\", \"expected\": \"recall-pending\", \"passed\": true}, {\"check\": \"recall-pending / remote-released\", \"actual\": \"local-remounting\", \"expected\": \"local-remounting\", \"passed\": true}, {\"check\": \"local-remounting / local-painted\", \"actual\": \"local-visible\", \"expected\": \"local-visible\", \"passed\": true}, {\"check\": \"handoff-pending / cancel-handoff\", \"actual\": \"cancel-pending\", \"expected\": \"cancel-pending\", \"passed\": true}, {\"check\": \"older notification incarnation\", \"actual\": \"local-visible\", \"expected\": \"local-visible\", \"passed\": true}, {\"check\": \"future notification incarnation\", \"actual\": \"local-visible\", \"expected\": \"local-visible\", \"passed\": true}, {\"check\": \"unknown event is inert\", \"actual\": \"local-visible\", \"expected\": \"local-visible\", \"passed\": true}, {\"check\": \"empty delivery batch\", \"actual\": \"local-visible\", \"expected\": \"local-visible\", \"passed\": true}, {\"check\": \"N stale deliveries before current delivery\", \"actual\": \"handoff-pending\", \"expected\": \"handoff-pending\", \"passed\": true}, {\"check\": \"trace send-to-other-surface then remote-accepted\", \"actual\": \"remote-mounting\", \"expected\": \"remote-mounting\", \"passed\": true}, {\"check\": \"trace send-to-other-surface then remote-rejected\", \"actual\": \"handoff-error\", \"expected\": \"handoff-error\", \"passed\": true}, {\"check\": \"trace send-to-other-surface then cancel-handoff\", \"actual\": \"cancel-pending\", \"expected\": \"cancel-pending\", \"passed\": true}, {\"check\": \"trace remote-accepted then remote-painted\", \"actual\": \"remote-visible\", \"expected\": \"remote-visible\", \"passed\": true}, {\"check\": \"trace remote-accepted then remote-paint-failed\", \"actual\": \"handoff-error\", \"expected\": \"handoff-error\", \"passed\": true}, {\"check\": \"trace remote-painted then bring-back\", \"actual\": \"recall-pending\", \"expected\": \"recall-pending\", \"passed\": true}, {\"check\": \"trace remote-paint-failed then retry-handoff\", \"actual\": \"handoff-pending\", \"expected\": \"handoff-pending\", \"passed\": true}, {\"check\": \"trace remote-rejected then retry-handoff\", \"actual\": \"handoff-pending\", \"expected\": \"handoff-pending\", \"passed\": true}, {\"check\": \"trace retry-handoff then remote-accepted\", \"actual\": \"remote-mounting\", \"expected\": \"remote-mounting\", \"passed\": true}, {\"check\": \"trace retry-handoff then remote-rejected\", \"actual\": \"handoff-error\", \"expected\": \"handoff-error\", \"passed\": true}, {\"check\": \"trace retry-handoff then cancel-handoff\", \"actual\": \"cancel-pending\", \"expected\": \"cancel-pending\", \"passed\": true}, {\"check\": \"trace bring-back then remote-released\", \"actual\": \"local-remounting\", \"expected\": \"local-remounting\", \"passed\": true}, {\"check\": \"trace remote-released then local-painted\", \"actual\": \"local-visible\", \"expected\": \"local-visible\", \"passed\": true}, {\"check\": \"trace local-painted then send-to-other-surface\", \"actual\": \"handoff-pending\", \"expected\": \"handoff-pending\", \"passed\": true}, {\"check\": \"domain state regression 1: local\", \"actual\": {\"phase\": \"handoff-pending\", \"value\": true}, \"expected\": {\"phase\": \"handoff-pending\", \"value\": true}, \"passed\": true}, {\"check\": \"domain state regression 2: remote\", \"actual\": {\"phase\": \"remote-mounting\", \"value\": false}, \"expected\": {\"phase\": \"remote-mounting\", \"value\": false}, \"passed\": true}, {\"check\": \"domain state regression 3: local\", \"actual\": {\"phase\": \"remote-visible\", \"value\": false}, \"expected\": {\"phase\": \"remote-visible\", \"value\": false}, \"passed\": true}, {\"check\": \"domain state regression 4: local\", \"actual\": {\"phase\": \"handoff-error\", \"value\": true}, \"expected\": {\"phase\": \"handoff-error\", \"value\": true}, \"passed\": true}, {\"check\": \"domain state regression 5: remote\", \"actual\": {\"phase\": \"local-remounting\", \"value\": false}, \"expected\": {\"phase\": \"local-remounting\", \"value\": false}, \"passed\": true}, {\"check\": \"domain state regression 6: local\", \"actual\": {\"phase\": \"local-visible\", \"value\": true}, \"expected\": {\"phase\": \"local-visible\", \"value\": true}, \"passed\": true}, {\"check\": \"domain state regression 7: remote\", \"actual\": {\"phase\": \"local-visible\", \"value\": false}, \"expected\": {\"phase\": \"local-visible\", \"value\": false}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}