{"abstract":"The summary-update-mounted event leaves a notification in details-visible instead of summary-visible.","category":"Notification interfaces","checks":38,"contract":"Notification burst summary interaction is a bounded visual-notification workflow with mutable policy state {'items': ['a', 'b'], 'summary_members': [], 'detail_members': [], 'mount': 3}. Its default transition relation is {('individuals-visible', 'burst-detected'): 'condensing', ('condensing', 'summary-mounted'): 'summary-visible', ('condensing', 'summary-mount-failed'): 'individuals-visible', ('summary-visible', 'inspect-burst'): 'expanding-details', ('expanding-details', 'details-mounted'): 'details-visible', ('details-visible', 'collapse-details'): 'summary-visible', ('summary-visible', 'new-burst-item'): 'summary-updating', ('summary-updating', 'summary-update-mounted'): 'summary-visible', ('expanding-details', 'close-before-mount'): 'closing-details', ('closing-details', 'late-details-mounted'): 'summary-visible'}; 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-burst-summary","failed_approach":"Showing separate cards again replays the original burst.","family":"s3-notification-interfaces-burst-summary-08","id":"FA-35226","implementations":{"attempt":{"sha256":"8445c46cdcf5c599a1c16855f030055ce1287989a5a7118c217d614f98d99673","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 = {('individuals-visible', 'burst-detected'): 'condensing', ('condensing', 'summary-mounted'): 'summary-visible', ('condensing', 'summary-mount-failed'): 'individuals-visible', ('summary-visible', 'inspect-burst'): 'expanding-details', ('expanding-details', 'details-mounted'): 'details-visible', ('details-visible', 'collapse-details'): 'summary-visible', ('summary-visible', 'new-burst-item'): 'summary-updating', ('summary-updating', 'summary-update-mounted'): 'individuals-visible', ('expanding-details', 'close-before-mount'): 'closing-details', ('closing-details', 'late-details-mounted'): 'summary-visible'}\n    data = json.loads(json.dumps({'items': ['a', 'b'], 'summary_members': [], 'detail_members': [], 'mount': 3})) if payload is None else {**json.loads(json.dumps({'items': ['a', 'b'], 'summary_members': [], 'detail_members': [], 'mount': 3})), **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 ('summary-mounted','details-mounted','late-details-mounted','summary-update-mounted') and arg.get('mount',data['mount']) != data['mount']: event = 'unknown-event'\n            if event == 'new-burst-item' and arg.get('item','c') not in data['items']: data['items'].append(arg.get('item','c'))\n            state = table.get((state, event), state)\n            if state == 'summary-visible':\n                data['summary_members'] = data['items'][:]\n                data['detail_members'] = []\n            if state == 'details-visible': data['detail_members'] = data['items'][:]\n            if state == 'empty': data['summary_members'] = []; data['detail_members'] = []\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('individuals-visible / burst-detected', solve('individuals-visible', [('burst-detected', N)], N), 'condensing')\ncheck('condensing / summary-mounted', solve('condensing', [('summary-mounted', N)], N), 'summary-visible')\ncheck('condensing / summary-mount-failed', solve('condensing', [('summary-mount-failed', N)], N), 'individuals-visible')\ncheck('summary-visible / inspect-burst', solve('summary-visible', [('inspect-burst', N)], N), 'expanding-details')\ncheck('expanding-details / details-mounted', solve('expanding-details', [('details-mounted', N)], N), 'details-visible')\ncheck('details-visible / collapse-details', solve('details-visible', [('collapse-details', N)], N), 'summary-visible')\ncheck('summary-visible / new-burst-item', solve('summary-visible', [('new-burst-item', N)], N), 'summary-updating')\ncheck('summary-updating / summary-update-mounted', solve('summary-updating', [('summary-update-mounted', N)], N), 'summary-visible')\ncheck('expanding-details / close-before-mount', solve('expanding-details', [('close-before-mount', N)], N), 'closing-details')\ncheck('closing-details / late-details-mounted', solve('closing-details', [('late-details-mounted', N)], N), 'summary-visible')\ncheck('older notification incarnation', solve('individuals-visible', [('burst-detected', N - 1)], N), 'individuals-visible')\ncheck('future notification incarnation', solve('individuals-visible', [('burst-detected', N + 1)], N), 'individuals-visible')\ncheck('unknown event is inert', solve('individuals-visible', [('unknown-event', N)], N), 'individuals-visible')\ncheck('empty delivery batch', solve('individuals-visible', [], N), 'individuals-visible')\ncheck('N stale deliveries before current delivery', solve('individuals-visible', [('burst-detected', N - 1)] * N + [('burst-detected', N)], N), 'condensing')\ncheck('trace burst-detected then summary-mounted', solve('individuals-visible', [('burst-detected', N), ('summary-mounted', N)], N), 'summary-visible')\ncheck('trace burst-detected then summary-mount-failed', solve('individuals-visible', [('burst-detected', N), ('summary-mount-failed', N)], N), 'individuals-visible')\ncheck('trace summary-mounted then inspect-burst', solve('condensing', [('summary-mounted', N), ('inspect-burst', N)], N), 'expanding-details')\ncheck('trace summary-mounted then new-burst-item', solve('condensing', [('summary-mounted', N), ('new-burst-item', N)], N), 'summary-updating')\ncheck('trace summary-mount-failed then burst-detected', solve('condensing', [('summary-mount-failed', N), ('burst-detected', N)], N), 'condensing')\ncheck('trace inspect-burst then details-mounted', solve('summary-visible', [('inspect-burst', N), ('details-mounted', N)], N), 'details-visible')\ncheck('trace inspect-burst then close-before-mount', solve('summary-visible', [('inspect-burst', N), ('close-before-mount', N)], N), 'closing-details')\ncheck('trace details-mounted then collapse-details', solve('expanding-details', [('details-mounted', N), ('collapse-details', N)], N), 'summary-visible')\ncheck('trace collapse-details then inspect-burst', solve('details-visible', [('collapse-details', N), ('inspect-burst', N)], N), 'expanding-details')\ncheck('trace collapse-details then new-burst-item', solve('details-visible', [('collapse-details', N), ('new-burst-item', N)], N), 'summary-updating')\ncheck('trace new-burst-item then summary-update-mounted', solve('summary-visible', [('new-burst-item', N), ('summary-update-mounted', N)], N), 'summary-visible')\ncheck('trace summary-update-mounted then inspect-burst', solve('summary-updating', [('summary-update-mounted', N), ('inspect-burst', N)], N), 'expanding-details')\ncheck('trace summary-update-mounted then new-burst-item', solve('summary-updating', [('summary-update-mounted', N), ('new-burst-item', N)], N), 'summary-updating')\ncheck('trace close-before-mount then late-details-mounted', solve('expanding-details', [('close-before-mount', N), ('late-details-mounted', N)], N), 'summary-visible')\ncheck('trace late-details-mounted then inspect-burst', solve('closing-details', [('late-details-mounted', N), ('inspect-burst', N)], N), 'expanding-details')\ncheck('trace late-details-mounted then new-burst-item', solve('closing-details', [('late-details-mounted', N), ('new-burst-item', N)], N), 'summary-updating')\ncheck('domain state regression 1: summary_members', solve('condensing', [('summary-mounted', N, {'mount': 2})], N, {}, 'summary_members'), {'phase': 'condensing', 'value': []})\ncheck('domain state regression 2: summary_members', solve('condensing', [('summary-mounted', N, {})], N, {}, 'summary_members'), {'phase': 'summary-visible', 'value': ['a', 'b']})\ncheck('domain state regression 3: items', solve('summary-visible', [('new-burst-item', N, {'item': 'a'})], N, {}, 'items'), {'phase': 'summary-updating', 'value': ['a', 'b']})\ncheck('domain state regression 4: items', solve('summary-visible', [('new-burst-item', N, {'item': 'c'})], N, {}, 'items'), {'phase': 'summary-updating', 'value': ['a', 'b', 'c']})\ncheck('domain state regression 5: detail_members', solve('expanding-details', [('details-mounted', N, {})], N, {}, 'detail_members'), {'phase': 'details-visible', 'value': ['a', 'b']})\ncheck('domain state regression 6: detail_members', solve('closing-details', [('late-details-mounted', N, {})], N, {'detail_members': ['a', 'b']}, 'detail_members'), {'phase': 'summary-visible', 'value': []})\ncheck('domain state regression 7: detail_members', solve('summary-visible', [('inspect-burst', N, {}), ('close-before-mount', N, {}), ('late-details-mounted', N, {})], N, {}, 'detail_members'), {'phase': 'summary-visible', 'value': []})\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":"21c1b059707f8034530707038a9001cd4aaf9648272e91d3f1e015ab9f4681fd","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 = {('individuals-visible', 'burst-detected'): 'condensing', ('condensing', 'summary-mounted'): 'summary-visible', ('condensing', 'summary-mount-failed'): 'individuals-visible', ('summary-visible', 'inspect-burst'): 'expanding-details', ('expanding-details', 'details-mounted'): 'details-visible', ('details-visible', 'collapse-details'): 'summary-visible', ('summary-visible', 'new-burst-item'): 'summary-updating', ('summary-updating', 'summary-update-mounted'): 'details-visible', ('expanding-details', 'close-before-mount'): 'closing-details', ('closing-details', 'late-details-mounted'): 'summary-visible'}\n    data = json.loads(json.dumps({'items': ['a', 'b'], 'summary_members': [], 'detail_members': [], 'mount': 3})) if payload is None else {**json.loads(json.dumps({'items': ['a', 'b'], 'summary_members': [], 'detail_members': [], 'mount': 3})), **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 ('summary-mounted','details-mounted','late-details-mounted','summary-update-mounted') and arg.get('mount',data['mount']) != data['mount']: event = 'unknown-event'\n            if event == 'new-burst-item' and arg.get('item','c') not in data['items']: data['items'].append(arg.get('item','c'))\n            state = table.get((state, event), state)\n            if state == 'summary-visible':\n                data['summary_members'] = data['items'][:]\n                data['detail_members'] = []\n            if state == 'details-visible': data['detail_members'] = data['items'][:]\n            if state == 'empty': data['summary_members'] = []; data['detail_members'] = []\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('individuals-visible / burst-detected', solve('individuals-visible', [('burst-detected', N)], N), 'condensing')\ncheck('condensing / summary-mounted', solve('condensing', [('summary-mounted', N)], N), 'summary-visible')\ncheck('condensing / summary-mount-failed', solve('condensing', [('summary-mount-failed', N)], N), 'individuals-visible')\ncheck('summary-visible / inspect-burst', solve('summary-visible', [('inspect-burst', N)], N), 'expanding-details')\ncheck('expanding-details / details-mounted', solve('expanding-details', [('details-mounted', N)], N), 'details-visible')\ncheck('details-visible / collapse-details', solve('details-visible', [('collapse-details', N)], N), 'summary-visible')\ncheck('summary-visible / new-burst-item', solve('summary-visible', [('new-burst-item', N)], N), 'summary-updating')\ncheck('summary-updating / summary-update-mounted', solve('summary-updating', [('summary-update-mounted', N)], N), 'summary-visible')\ncheck('expanding-details / close-before-mount', solve('expanding-details', [('close-before-mount', N)], N), 'closing-details')\ncheck('closing-details / late-details-mounted', solve('closing-details', [('late-details-mounted', N)], N), 'summary-visible')\ncheck('older notification incarnation', solve('individuals-visible', [('burst-detected', N - 1)], N), 'individuals-visible')\ncheck('future notification incarnation', solve('individuals-visible', [('burst-detected', N + 1)], N), 'individuals-visible')\ncheck('unknown event is inert', solve('individuals-visible', [('unknown-event', N)], N), 'individuals-visible')\ncheck('empty delivery batch', solve('individuals-visible', [], N), 'individuals-visible')\ncheck('N stale deliveries before current delivery', solve('individuals-visible', [('burst-detected', N - 1)] * N + [('burst-detected', N)], N), 'condensing')\ncheck('trace burst-detected then summary-mounted', solve('individuals-visible', [('burst-detected', N), ('summary-mounted', N)], N), 'summary-visible')\ncheck('trace burst-detected then summary-mount-failed', solve('individuals-visible', [('burst-detected', N), ('summary-mount-failed', N)], N), 'individuals-visible')\ncheck('trace summary-mounted then inspect-burst', solve('condensing', [('summary-mounted', N), ('inspect-burst', N)], N), 'expanding-details')\ncheck('trace summary-mounted then new-burst-item', solve('condensing', [('summary-mounted', N), ('new-burst-item', N)], N), 'summary-updating')\ncheck('trace summary-mount-failed then burst-detected', solve('condensing', [('summary-mount-failed', N), ('burst-detected', N)], N), 'condensing')\ncheck('trace inspect-burst then details-mounted', solve('summary-visible', [('inspect-burst', N), ('details-mounted', N)], N), 'details-visible')\ncheck('trace inspect-burst then close-before-mount', solve('summary-visible', [('inspect-burst', N), ('close-before-mount', N)], N), 'closing-details')\ncheck('trace details-mounted then collapse-details', solve('expanding-details', [('details-mounted', N), ('collapse-details', N)], N), 'summary-visible')\ncheck('trace collapse-details then inspect-burst', solve('details-visible', [('collapse-details', N), ('inspect-burst', N)], N), 'expanding-details')\ncheck('trace collapse-details then new-burst-item', solve('details-visible', [('collapse-details', N), ('new-burst-item', N)], N), 'summary-updating')\ncheck('trace new-burst-item then summary-update-mounted', solve('summary-visible', [('new-burst-item', N), ('summary-update-mounted', N)], N), 'summary-visible')\ncheck('trace summary-update-mounted then inspect-burst', solve('summary-updating', [('summary-update-mounted', N), ('inspect-burst', N)], N), 'expanding-details')\ncheck('trace summary-update-mounted then new-burst-item', solve('summary-updating', [('summary-update-mounted', N), ('new-burst-item', N)], N), 'summary-updating')\ncheck('trace close-before-mount then late-details-mounted', solve('expanding-details', [('close-before-mount', N), ('late-details-mounted', N)], N), 'summary-visible')\ncheck('trace late-details-mounted then inspect-burst', solve('closing-details', [('late-details-mounted', N), ('inspect-burst', N)], N), 'expanding-details')\ncheck('trace late-details-mounted then new-burst-item', solve('closing-details', [('late-details-mounted', N), ('new-burst-item', N)], N), 'summary-updating')\ncheck('domain state regression 1: summary_members', solve('condensing', [('summary-mounted', N, {'mount': 2})], N, {}, 'summary_members'), {'phase': 'condensing', 'value': []})\ncheck('domain state regression 2: summary_members', solve('condensing', [('summary-mounted', N, {})], N, {}, 'summary_members'), {'phase': 'summary-visible', 'value': ['a', 'b']})\ncheck('domain state regression 3: items', solve('summary-visible', [('new-burst-item', N, {'item': 'a'})], N, {}, 'items'), {'phase': 'summary-updating', 'value': ['a', 'b']})\ncheck('domain state regression 4: items', solve('summary-visible', [('new-burst-item', N, {'item': 'c'})], N, {}, 'items'), {'phase': 'summary-updating', 'value': ['a', 'b', 'c']})\ncheck('domain state regression 5: detail_members', solve('expanding-details', [('details-mounted', N, {})], N, {}, 'detail_members'), {'phase': 'details-visible', 'value': ['a', 'b']})\ncheck('domain state regression 6: detail_members', solve('closing-details', [('late-details-mounted', N, {})], N, {'detail_members': ['a', 'b']}, 'detail_members'), {'phase': 'summary-visible', 'value': []})\ncheck('domain state regression 7: detail_members', solve('summary-visible', [('inspect-burst', N, {}), ('close-before-mount', N, {}), ('late-details-mounted', N, {})], N, {}, 'detail_members'), {'phase': 'summary-visible', 'value': []})\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":"cbddf1054d0bd2f1856cf5c4fc094455dfe5182ed2397a61b0150b1180aa061f","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 = {('individuals-visible', 'burst-detected'): 'condensing', ('condensing', 'summary-mounted'): 'summary-visible', ('condensing', 'summary-mount-failed'): 'individuals-visible', ('summary-visible', 'inspect-burst'): 'expanding-details', ('expanding-details', 'details-mounted'): 'details-visible', ('details-visible', 'collapse-details'): 'summary-visible', ('summary-visible', 'new-burst-item'): 'summary-updating', ('summary-updating', 'summary-update-mounted'): 'summary-visible', ('expanding-details', 'close-before-mount'): 'closing-details', ('closing-details', 'late-details-mounted'): 'summary-visible'}\n    data = json.loads(json.dumps({'items': ['a', 'b'], 'summary_members': [], 'detail_members': [], 'mount': 3})) if payload is None else {**json.loads(json.dumps({'items': ['a', 'b'], 'summary_members': [], 'detail_members': [], 'mount': 3})), **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 ('summary-mounted','details-mounted','late-details-mounted','summary-update-mounted') and arg.get('mount',data['mount']) != data['mount']: event = 'unknown-event'\n            if event == 'new-burst-item' and arg.get('item','c') not in data['items']: data['items'].append(arg.get('item','c'))\n            state = table.get((state, event), state)\n            if state == 'summary-visible':\n                data['summary_members'] = data['items'][:]\n                data['detail_members'] = []\n            if state == 'details-visible': data['detail_members'] = data['items'][:]\n            if state == 'empty': data['summary_members'] = []; data['detail_members'] = []\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('individuals-visible / burst-detected', solve('individuals-visible', [('burst-detected', N)], N), 'condensing')\ncheck('condensing / summary-mounted', solve('condensing', [('summary-mounted', N)], N), 'summary-visible')\ncheck('condensing / summary-mount-failed', solve('condensing', [('summary-mount-failed', N)], N), 'individuals-visible')\ncheck('summary-visible / inspect-burst', solve('summary-visible', [('inspect-burst', N)], N), 'expanding-details')\ncheck('expanding-details / details-mounted', solve('expanding-details', [('details-mounted', N)], N), 'details-visible')\ncheck('details-visible / collapse-details', solve('details-visible', [('collapse-details', N)], N), 'summary-visible')\ncheck('summary-visible / new-burst-item', solve('summary-visible', [('new-burst-item', N)], N), 'summary-updating')\ncheck('summary-updating / summary-update-mounted', solve('summary-updating', [('summary-update-mounted', N)], N), 'summary-visible')\ncheck('expanding-details / close-before-mount', solve('expanding-details', [('close-before-mount', N)], N), 'closing-details')\ncheck('closing-details / late-details-mounted', solve('closing-details', [('late-details-mounted', N)], N), 'summary-visible')\ncheck('older notification incarnation', solve('individuals-visible', [('burst-detected', N - 1)], N), 'individuals-visible')\ncheck('future notification incarnation', solve('individuals-visible', [('burst-detected', N + 1)], N), 'individuals-visible')\ncheck('unknown event is inert', solve('individuals-visible', [('unknown-event', N)], N), 'individuals-visible')\ncheck('empty delivery batch', solve('individuals-visible', [], N), 'individuals-visible')\ncheck('N stale deliveries before current delivery', solve('individuals-visible', [('burst-detected', N - 1)] * N + [('burst-detected', N)], N), 'condensing')\ncheck('trace burst-detected then summary-mounted', solve('individuals-visible', [('burst-detected', N), ('summary-mounted', N)], N), 'summary-visible')\ncheck('trace burst-detected then summary-mount-failed', solve('individuals-visible', [('burst-detected', N), ('summary-mount-failed', N)], N), 'individuals-visible')\ncheck('trace summary-mounted then inspect-burst', solve('condensing', [('summary-mounted', N), ('inspect-burst', N)], N), 'expanding-details')\ncheck('trace summary-mounted then new-burst-item', solve('condensing', [('summary-mounted', N), ('new-burst-item', N)], N), 'summary-updating')\ncheck('trace summary-mount-failed then burst-detected', solve('condensing', [('summary-mount-failed', N), ('burst-detected', N)], N), 'condensing')\ncheck('trace inspect-burst then details-mounted', solve('summary-visible', [('inspect-burst', N), ('details-mounted', N)], N), 'details-visible')\ncheck('trace inspect-burst then close-before-mount', solve('summary-visible', [('inspect-burst', N), ('close-before-mount', N)], N), 'closing-details')\ncheck('trace details-mounted then collapse-details', solve('expanding-details', [('details-mounted', N), ('collapse-details', N)], N), 'summary-visible')\ncheck('trace collapse-details then inspect-burst', solve('details-visible', [('collapse-details', N), ('inspect-burst', N)], N), 'expanding-details')\ncheck('trace collapse-details then new-burst-item', solve('details-visible', [('collapse-details', N), ('new-burst-item', N)], N), 'summary-updating')\ncheck('trace new-burst-item then summary-update-mounted', solve('summary-visible', [('new-burst-item', N), ('summary-update-mounted', N)], N), 'summary-visible')\ncheck('trace summary-update-mounted then inspect-burst', solve('summary-updating', [('summary-update-mounted', N), ('inspect-burst', N)], N), 'expanding-details')\ncheck('trace summary-update-mounted then new-burst-item', solve('summary-updating', [('summary-update-mounted', N), ('new-burst-item', N)], N), 'summary-updating')\ncheck('trace close-before-mount then late-details-mounted', solve('expanding-details', [('close-before-mount', N), ('late-details-mounted', N)], N), 'summary-visible')\ncheck('trace late-details-mounted then inspect-burst', solve('closing-details', [('late-details-mounted', N), ('inspect-burst', N)], N), 'expanding-details')\ncheck('trace late-details-mounted then new-burst-item', solve('closing-details', [('late-details-mounted', N), ('new-burst-item', N)], N), 'summary-updating')\ncheck('domain state regression 1: summary_members', solve('condensing', [('summary-mounted', N, {'mount': 2})], N, {}, 'summary_members'), {'phase': 'condensing', 'value': []})\ncheck('domain state regression 2: summary_members', solve('condensing', [('summary-mounted', N, {})], N, {}, 'summary_members'), {'phase': 'summary-visible', 'value': ['a', 'b']})\ncheck('domain state regression 3: items', solve('summary-visible', [('new-burst-item', N, {'item': 'a'})], N, {}, 'items'), {'phase': 'summary-updating', 'value': ['a', 'b']})\ncheck('domain state regression 4: items', solve('summary-visible', [('new-burst-item', N, {'item': 'c'})], N, {}, 'items'), {'phase': 'summary-updating', 'value': ['a', 'b', 'c']})\ncheck('domain state regression 5: detail_members', solve('expanding-details', [('details-mounted', N, {})], N, {}, 'detail_members'), {'phase': 'details-visible', 'value': ['a', 'b']})\ncheck('domain state regression 6: detail_members', solve('closing-details', [('late-details-mounted', N, {})], N, {'detail_members': ['a', 'b']}, 'detail_members'), {'phase': 'summary-visible', 'value': []})\ncheck('domain state regression 7: detail_members', solve('summary-visible', [('inspect-burst', N, {}), ('close-before-mount', N, {}), ('late-details-mounted', N, {})], N, {}, 'detail_members'), {'phase': 'summary-visible', 'value': []})\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-burst-summary-08","generated_at":"2026-09-29T14:42:39.530627+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 summary-updating / summary-update-mounted transition to summary-visible; preserve the other explicitly stipulated transitions.","root_cause":"Updating a count unexpectedly expands the detail view.","sha256":"e66de5d3d11befafebf0d3a0157e08d20d91fa41bed6122b72a6c74ee68a1737","title":"Notification burst summary interaction: summary-update-mounted from summary-updating · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":44.404,"exit_code":1,"observations":[{"actual":"condensing","check":"individuals-visible / burst-detected","expected":"condensing","passed":true},{"actual":"summary-visible","check":"condensing / summary-mounted","expected":"summary-visible","passed":true},{"actual":"individuals-visible","check":"condensing / summary-mount-failed","expected":"individuals-visible","passed":true},{"actual":"expanding-details","check":"summary-visible / inspect-burst","expected":"expanding-details","passed":true},{"actual":"details-visible","check":"expanding-details / details-mounted","expected":"details-visible","passed":true},{"actual":"summary-visible","check":"details-visible / collapse-details","expected":"summary-visible","passed":true},{"actual":"summary-updating","check":"summary-visible / new-burst-item","expected":"summary-updating","passed":true},{"actual":"individuals-visible","check":"summary-updating / summary-update-mounted","expected":"summary-visible","passed":false},{"actual":"closing-details","check":"expanding-details / close-before-mount","expected":"closing-details","passed":true},{"actual":"summary-visible","check":"closing-details / late-details-mounted","expected":"summary-visible","passed":true},{"actual":"individuals-visible","check":"older notification incarnation","expected":"individuals-visible","passed":true},{"actual":"individuals-visible","check":"future notification incarnation","expected":"individuals-visible","passed":true},{"actual":"individuals-visible","check":"unknown event is inert","expected":"individuals-visible","passed":true},{"actual":"individuals-visible","check":"empty delivery batch","expected":"individuals-visible","passed":true},{"actual":"condensing","check":"N stale deliveries before current delivery","expected":"condensing","passed":true},{"actual":"summary-visible","check":"trace burst-detected then summary-mounted","expected":"summary-visible","passed":true},{"actual":"individuals-visible","check":"trace burst-detected then summary-mount-failed","expected":"individuals-visible","passed":true},{"actual":"expanding-details","check":"trace summary-mounted then inspect-burst","expected":"expanding-details","passed":true},{"actual":"summary-updating","check":"trace summary-mounted then new-burst-item","expected":"summary-updating","passed":true},{"actual":"condensing","check":"trace summary-mount-failed then burst-detected","expected":"condensing","passed":true},{"actual":"details-visible","check":"trace inspect-burst then details-mounted","expected":"details-visible","passed":true},{"actual":"closing-details","check":"trace inspect-burst then close-before-mount","expected":"closing-details","passed":true},{"actual":"summary-visible","check":"trace details-mounted then collapse-details","expected":"summary-visible","passed":true},{"actual":"expanding-details","check":"trace collapse-details then inspect-burst","expected":"expanding-details","passed":true},{"actual":"summary-updating","check":"trace collapse-details then new-burst-item","expected":"summary-updating","passed":true},{"actual":"individuals-visible","check":"trace new-burst-item then summary-update-mounted","expected":"summary-visible","passed":false},{"actual":"individuals-visible","check":"trace summary-update-mounted then inspect-burst","expected":"expanding-details","passed":false},{"actual":"individuals-visible","check":"trace summary-update-mounted then new-burst-item","expected":"summary-updating","passed":false},{"actual":"summary-visible","check":"trace close-before-mount then late-details-mounted","expected":"summary-visible","passed":true},{"actual":"expanding-details","check":"trace late-details-mounted then inspect-burst","expected":"expanding-details","passed":true},{"actual":"summary-updating","check":"trace late-details-mounted then new-burst-item","expected":"summary-updating","passed":true},{"actual":{"phase":"condensing","value":[]},"check":"domain state regression 1: summary_members","expected":{"phase":"condensing","value":[]},"passed":true},{"actual":{"phase":"summary-visible","value":["a","b"]},"check":"domain state regression 2: summary_members","expected":{"phase":"summary-visible","value":["a","b"]},"passed":true},{"actual":{"phase":"summary-updating","value":["a","b"]},"check":"domain state regression 3: items","expected":{"phase":"summary-updating","value":["a","b"]},"passed":true},{"actual":{"phase":"summary-updating","value":["a","b","c"]},"check":"domain state regression 4: items","expected":{"phase":"summary-updating","value":["a","b","c"]},"passed":true},{"actual":{"phase":"details-visible","value":["a","b"]},"check":"domain state regression 5: detail_members","expected":{"phase":"details-visible","value":["a","b"]},"passed":true},{"actual":{"phase":"summary-visible","value":[]},"check":"domain state regression 6: detail_members","expected":{"phase":"summary-visible","value":[]},"passed":true},{"actual":{"phase":"summary-visible","value":[]},"check":"domain state regression 7: detail_members","expected":{"phase":"summary-visible","value":[]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"individuals-visible / burst-detected\", \"actual\": \"condensing\", \"expected\": \"condensing\", \"passed\": true}, {\"check\": \"condensing / summary-mounted\", \"actual\": \"summary-visible\", \"expected\": \"summary-visible\", \"passed\": true}, {\"check\": \"condensing / summary-mount-failed\", \"actual\": \"individuals-visible\", \"expected\": \"individuals-visible\", \"passed\": true}, {\"check\": \"summary-visible / inspect-burst\", \"actual\": \"expanding-details\", \"expected\": \"expanding-details\", \"passed\": true}, {\"check\": \"expanding-details / details-mounted\", \"actual\": \"details-visible\", \"expected\": \"details-visible\", \"passed\": true}, {\"check\": \"details-visible / collapse-details\", \"actual\": \"summary-visible\", \"expected\": \"summary-visible\", \"passed\": true}, {\"check\": \"summary-visible / new-burst-item\", \"actual\": \"summary-updating\", \"expected\": \"summary-updating\", \"passed\": true}, {\"check\": \"summary-updating / summary-update-mounted\", \"actual\": \"individuals-visible\", \"expected\": \"summary-visible\", \"passed\": false}, {\"check\": \"expanding-details / close-before-mount\", \"actual\": \"closing-details\", \"expected\": \"closing-details\", \"passed\": true}, {\"check\": \"closing-details / late-details-mounted\", \"actual\": \"summary-visible\", \"expected\": \"summary-visible\", \"passed\": true}, {\"check\": \"older notification incarnation\", \"actual\": \"individuals-visible\", \"expected\": \"individuals-visible\", \"passed\": true}, {\"check\": \"future notification incarnation\", \"actual\": \"individuals-visible\", \"expected\": \"individuals-visible\", \"passed\": true}, {\"check\": \"unknown event is inert\", \"actual\": \"individuals-visible\", \"expected\": \"individuals-visible\", \"passed\": true}, {\"check\": \"empty delivery batch\", \"actual\": \"individuals-visible\", \"expected\": \"individuals-visible\", \"passed\": true}, {\"check\": \"N stale deliveries before current delivery\", \"actual\": \"condensing\", \"expected\": \"condensing\", \"passed\": true}, {\"check\": \"trace burst-detected then summary-mounted\", \"actual\": \"summary-visible\", \"expected\": \"summary-visible\", \"passed\": true}, {\"check\": \"trace burst-detected then summary-mount-failed\", \"actual\": \"individuals-visible\", \"expected\": \"individuals-visible\", \"passed\": true}, {\"check\": \"trace summary-mounted then inspect-burst\", \"actual\": \"expanding-details\", \"expected\": \"expanding-details\", \"passed\": true}, {\"check\": \"trace summary-mounted then new-burst-item\", \"actual\": \"summary-updating\", \"expected\": \"summary-updating\", \"passed\": true}, {\"check\": \"trace summary-mount-failed then burst-detected\", \"actual\": \"condensing\", \"expected\": \"condensing\", \"passed\": true}, {\"check\": \"trace inspect-burst then details-mounted\", \"actual\": \"details-visible\", \"expected\": \"details-visible\", \"passed\": true}, {\"check\": \"trace inspect-burst then close-before-mount\", \"actual\": \"closing-details\", \"expected\": \"closing-details\", \"passed\": true}, {\"check\": \"trace details-mounted then collapse-details\", \"actual\": \"summary-visible\", \"expected\": \"summary-visible\", \"passed\": true}, {\"check\": \"trace collapse-details then inspect-burst\", \"actual\": \"expanding-details\", \"expected\": \"expanding-details\", \"passed\": true}, {\"check\": \"trace collapse-details then new-burst-item\", \"actual\": \"summary-updating\", \"expected\": \"summary-updating\", \"passed\": true}, {\"check\": \"trace new-burst-item then summary-update-mounted\", \"actual\": \"individuals-visible\", \"expected\": \"summary-visible\", \"passed\": false}, {\"check\": \"trace summary-update-mounted then inspect-burst\", \"actual\": \"individuals-visible\", \"expected\": \"expanding-details\", \"passed\": false}, {\"check\": \"trace summary-update-mounted then new-burst-item\", \"actual\": \"individuals-visible\", \"expected\": \"summary-updating\", \"passed\": false}, {\"check\": \"trace close-before-mount then late-details-mounted\", \"actual\": \"summary-visible\", \"expected\": \"summary-visible\", \"passed\": true}, {\"check\": \"trace late-details-mounted then inspect-burst\", \"actual\": \"expanding-details\", \"expected\": \"expanding-details\", \"passed\": true}, {\"check\": \"trace late-details-mounted then new-burst-item\", \"actual\": \"summary-updating\", \"expected\": \"summary-updating\", \"passed\": true}, {\"check\": \"domain state regression 1: summary_members\", \"actual\": {\"phase\": \"condensing\", \"value\": []}, \"expected\": {\"phase\": \"condensing\", \"value\": []}, \"passed\": true}, {\"check\": \"domain state regression 2: summary_members\", \"actual\": {\"phase\": \"summary-visible\", \"value\": [\"a\", \"b\"]}, \"expected\": {\"phase\": \"summary-visible\", \"value\": [\"a\", \"b\"]}, \"passed\": true}, {\"check\": \"domain state regression 3: items\", \"actual\": {\"phase\": \"summary-updating\", \"value\": [\"a\", \"b\"]}, \"expected\": {\"phase\": \"summary-updating\", \"value\": [\"a\", \"b\"]}, \"passed\": true}, {\"check\": \"domain state regression 4: items\", \"actual\": {\"phase\": \"summary-updating\", \"value\": [\"a\", \"b\", \"c\"]}, \"expected\": {\"phase\": \"summary-updating\", \"value\": [\"a\", \"b\", \"c\"]}, \"passed\": true}, {\"check\": \"domain state regression 5: detail_members\", \"actual\": {\"phase\": \"details-visible\", \"value\": [\"a\", \"b\"]}, \"expected\": {\"phase\": \"details-visible\", \"value\": [\"a\", \"b\"]}, \"passed\": true}, {\"check\": \"domain state regression 6: detail_members\", \"actual\": {\"phase\": \"summary-visible\", \"value\": []}, \"expected\": {\"phase\": \"summary-visible\", \"value\": []}, \"passed\": true}, {\"check\": \"domain state regression 7: detail_members\", \"actual\": {\"phase\": \"summary-visible\", \"value\": []}, \"expected\": {\"phase\": \"summary-visible\", \"value\": []}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.995,"exit_code":1,"observations":[{"actual":"condensing","check":"individuals-visible / burst-detected","expected":"condensing","passed":true},{"actual":"summary-visible","check":"condensing / summary-mounted","expected":"summary-visible","passed":true},{"actual":"individuals-visible","check":"condensing / summary-mount-failed","expected":"individuals-visible","passed":true},{"actual":"expanding-details","check":"summary-visible / inspect-burst","expected":"expanding-details","passed":true},{"actual":"details-visible","check":"expanding-details / details-mounted","expected":"details-visible","passed":true},{"actual":"summary-visible","check":"details-visible / collapse-details","expected":"summary-visible","passed":true},{"actual":"summary-updating","check":"summary-visible / new-burst-item","expected":"summary-updating","passed":true},{"actual":"details-visible","check":"summary-updating / summary-update-mounted","expected":"summary-visible","passed":false},{"actual":"closing-details","check":"expanding-details / close-before-mount","expected":"closing-details","passed":true},{"actual":"summary-visible","check":"closing-details / late-details-mounted","expected":"summary-visible","passed":true},{"actual":"individuals-visible","check":"older notification incarnation","expected":"individuals-visible","passed":true},{"actual":"individuals-visible","check":"future notification incarnation","expected":"individuals-visible","passed":true},{"actual":"individuals-visible","check":"unknown event is inert","expected":"individuals-visible","passed":true},{"actual":"individuals-visible","check":"empty delivery batch","expected":"individuals-visible","passed":true},{"actual":"condensing","check":"N stale deliveries before current delivery","expected":"condensing","passed":true},{"actual":"summary-visible","check":"trace burst-detected then summary-mounted","expected":"summary-visible","passed":true},{"actual":"individuals-visible","check":"trace burst-detected then summary-mount-failed","expected":"individuals-visible","passed":true},{"actual":"expanding-details","check":"trace summary-mounted then inspect-burst","expected":"expanding-details","passed":true},{"actual":"summary-updating","check":"trace summary-mounted then new-burst-item","expected":"summary-updating","passed":true},{"actual":"condensing","check":"trace summary-mount-failed then burst-detected","expected":"condensing","passed":true},{"actual":"details-visible","check":"trace inspect-burst then details-mounted","expected":"details-visible","passed":true},{"actual":"closing-details","check":"trace inspect-burst then close-before-mount","expected":"closing-details","passed":true},{"actual":"summary-visible","check":"trace details-mounted then collapse-details","expected":"summary-visible","passed":true},{"actual":"expanding-details","check":"trace collapse-details then inspect-burst","expected":"expanding-details","passed":true},{"actual":"summary-updating","check":"trace collapse-details then new-burst-item","expected":"summary-updating","passed":true},{"actual":"details-visible","check":"trace new-burst-item then summary-update-mounted","expected":"summary-visible","passed":false},{"actual":"details-visible","check":"trace summary-update-mounted then inspect-burst","expected":"expanding-details","passed":false},{"actual":"details-visible","check":"trace summary-update-mounted then new-burst-item","expected":"summary-updating","passed":false},{"actual":"summary-visible","check":"trace close-before-mount then late-details-mounted","expected":"summary-visible","passed":true},{"actual":"expanding-details","check":"trace late-details-mounted then inspect-burst","expected":"expanding-details","passed":true},{"actual":"summary-updating","check":"trace late-details-mounted then new-burst-item","expected":"summary-updating","passed":true},{"actual":{"phase":"condensing","value":[]},"check":"domain state regression 1: summary_members","expected":{"phase":"condensing","value":[]},"passed":true},{"actual":{"phase":"summary-visible","value":["a","b"]},"check":"domain state regression 2: summary_members","expected":{"phase":"summary-visible","value":["a","b"]},"passed":true},{"actual":{"phase":"summary-updating","value":["a","b"]},"check":"domain state regression 3: items","expected":{"phase":"summary-updating","value":["a","b"]},"passed":true},{"actual":{"phase":"summary-updating","value":["a","b","c"]},"check":"domain state regression 4: items","expected":{"phase":"summary-updating","value":["a","b","c"]},"passed":true},{"actual":{"phase":"details-visible","value":["a","b"]},"check":"domain state regression 5: detail_members","expected":{"phase":"details-visible","value":["a","b"]},"passed":true},{"actual":{"phase":"summary-visible","value":[]},"check":"domain state regression 6: detail_members","expected":{"phase":"summary-visible","value":[]},"passed":true},{"actual":{"phase":"summary-visible","value":[]},"check":"domain state regression 7: detail_members","expected":{"phase":"summary-visible","value":[]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"individuals-visible / burst-detected\", \"actual\": \"condensing\", \"expected\": \"condensing\", \"passed\": true}, {\"check\": \"condensing / summary-mounted\", \"actual\": \"summary-visible\", \"expected\": \"summary-visible\", \"passed\": true}, {\"check\": \"condensing / summary-mount-failed\", \"actual\": \"individuals-visible\", \"expected\": \"individuals-visible\", \"passed\": true}, {\"check\": \"summary-visible / inspect-burst\", \"actual\": \"expanding-details\", \"expected\": \"expanding-details\", \"passed\": true}, {\"check\": \"expanding-details / details-mounted\", \"actual\": \"details-visible\", \"expected\": \"details-visible\", \"passed\": true}, {\"check\": \"details-visible / collapse-details\", \"actual\": \"summary-visible\", \"expected\": \"summary-visible\", \"passed\": true}, {\"check\": \"summary-visible / new-burst-item\", \"actual\": \"summary-updating\", \"expected\": \"summary-updating\", \"passed\": true}, {\"check\": \"summary-updating / summary-update-mounted\", \"actual\": \"details-visible\", \"expected\": \"summary-visible\", \"passed\": false}, {\"check\": \"expanding-details / close-before-mount\", \"actual\": \"closing-details\", \"expected\": \"closing-details\", \"passed\": true}, {\"check\": \"closing-details / late-details-mounted\", \"actual\": \"summary-visible\", \"expected\": \"summary-visible\", \"passed\": true}, {\"check\": \"older notification incarnation\", \"actual\": \"individuals-visible\", \"expected\": \"individuals-visible\", \"passed\": true}, {\"check\": \"future notification incarnation\", \"actual\": \"individuals-visible\", \"expected\": \"individuals-visible\", \"passed\": true}, {\"check\": \"unknown event is inert\", \"actual\": \"individuals-visible\", \"expected\": \"individuals-visible\", \"passed\": true}, {\"check\": \"empty delivery batch\", \"actual\": \"individuals-visible\", \"expected\": \"individuals-visible\", \"passed\": true}, {\"check\": \"N stale deliveries before current delivery\", \"actual\": \"condensing\", \"expected\": \"condensing\", \"passed\": true}, {\"check\": \"trace burst-detected then summary-mounted\", \"actual\": \"summary-visible\", \"expected\": \"summary-visible\", \"passed\": true}, {\"check\": \"trace burst-detected then summary-mount-failed\", \"actual\": \"individuals-visible\", \"expected\": \"individuals-visible\", \"passed\": true}, {\"check\": \"trace summary-mounted then inspect-burst\", \"actual\": \"expanding-details\", \"expected\": \"expanding-details\", \"passed\": true}, {\"check\": \"trace summary-mounted then new-burst-item\", \"actual\": \"summary-updating\", \"expected\": \"summary-updating\", \"passed\": true}, {\"check\": \"trace summary-mount-failed then burst-detected\", \"actual\": \"condensing\", \"expected\": \"condensing\", \"passed\": true}, {\"check\": \"trace inspect-burst then details-mounted\", \"actual\": \"details-visible\", \"expected\": \"details-visible\", \"passed\": true}, {\"check\": \"trace inspect-burst then close-before-mount\", \"actual\": \"closing-details\", \"expected\": \"closing-details\", \"passed\": true}, {\"check\": \"trace details-mounted then collapse-details\", \"actual\": \"summary-visible\", \"expected\": \"summary-visible\", \"passed\": true}, {\"check\": \"trace collapse-details then inspect-burst\", \"actual\": \"expanding-details\", \"expected\": \"expanding-details\", \"passed\": true}, {\"check\": \"trace collapse-details then new-burst-item\", \"actual\": \"summary-updating\", \"expected\": \"summary-updating\", \"passed\": true}, {\"check\": \"trace new-burst-item then summary-update-mounted\", \"actual\": \"details-visible\", \"expected\": \"summary-visible\", \"passed\": false}, {\"check\": \"trace summary-update-mounted then inspect-burst\", \"actual\": \"details-visible\", \"expected\": \"expanding-details\", \"passed\": false}, {\"check\": \"trace summary-update-mounted then new-burst-item\", \"actual\": \"details-visible\", \"expected\": \"summary-updating\", \"passed\": false}, {\"check\": \"trace close-before-mount then late-details-mounted\", \"actual\": \"summary-visible\", \"expected\": \"summary-visible\", \"passed\": true}, {\"check\": \"trace late-details-mounted then inspect-burst\", \"actual\": \"expanding-details\", \"expected\": \"expanding-details\", \"passed\": true}, {\"check\": \"trace late-details-mounted then new-burst-item\", \"actual\": \"summary-updating\", \"expected\": \"summary-updating\", \"passed\": true}, {\"check\": \"domain state regression 1: summary_members\", \"actual\": {\"phase\": \"condensing\", \"value\": []}, \"expected\": {\"phase\": \"condensing\", \"value\": []}, \"passed\": true}, {\"check\": \"domain state regression 2: summary_members\", \"actual\": {\"phase\": \"summary-visible\", \"value\": [\"a\", \"b\"]}, \"expected\": {\"phase\": \"summary-visible\", \"value\": [\"a\", \"b\"]}, \"passed\": true}, {\"check\": \"domain state regression 3: items\", \"actual\": {\"phase\": \"summary-updating\", \"value\": [\"a\", \"b\"]}, \"expected\": {\"phase\": \"summary-updating\", \"value\": [\"a\", \"b\"]}, \"passed\": true}, {\"check\": \"domain state regression 4: items\", \"actual\": {\"phase\": \"summary-updating\", \"value\": [\"a\", \"b\", \"c\"]}, \"expected\": {\"phase\": \"summary-updating\", \"value\": [\"a\", \"b\", \"c\"]}, \"passed\": true}, {\"check\": \"domain state regression 5: detail_members\", \"actual\": {\"phase\": \"details-visible\", \"value\": [\"a\", \"b\"]}, \"expected\": {\"phase\": \"details-visible\", \"value\": [\"a\", \"b\"]}, \"passed\": true}, {\"check\": \"domain state regression 6: detail_members\", \"actual\": {\"phase\": \"summary-visible\", \"value\": []}, \"expected\": {\"phase\": \"summary-visible\", \"value\": []}, \"passed\": true}, {\"check\": \"domain state regression 7: detail_members\", \"actual\": {\"phase\": \"summary-visible\", \"value\": []}, \"expected\": {\"phase\": \"summary-visible\", \"value\": []}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":45.485,"exit_code":0,"observations":[{"actual":"condensing","check":"individuals-visible / burst-detected","expected":"condensing","passed":true},{"actual":"summary-visible","check":"condensing / summary-mounted","expected":"summary-visible","passed":true},{"actual":"individuals-visible","check":"condensing / summary-mount-failed","expected":"individuals-visible","passed":true},{"actual":"expanding-details","check":"summary-visible / inspect-burst","expected":"expanding-details","passed":true},{"actual":"details-visible","check":"expanding-details / details-mounted","expected":"details-visible","passed":true},{"actual":"summary-visible","check":"details-visible / collapse-details","expected":"summary-visible","passed":true},{"actual":"summary-updating","check":"summary-visible / new-burst-item","expected":"summary-updating","passed":true},{"actual":"summary-visible","check":"summary-updating / summary-update-mounted","expected":"summary-visible","passed":true},{"actual":"closing-details","check":"expanding-details / close-before-mount","expected":"closing-details","passed":true},{"actual":"summary-visible","check":"closing-details / late-details-mounted","expected":"summary-visible","passed":true},{"actual":"individuals-visible","check":"older notification incarnation","expected":"individuals-visible","passed":true},{"actual":"individuals-visible","check":"future notification incarnation","expected":"individuals-visible","passed":true},{"actual":"individuals-visible","check":"unknown event is inert","expected":"individuals-visible","passed":true},{"actual":"individuals-visible","check":"empty delivery batch","expected":"individuals-visible","passed":true},{"actual":"condensing","check":"N stale deliveries before current delivery","expected":"condensing","passed":true},{"actual":"summary-visible","check":"trace burst-detected then summary-mounted","expected":"summary-visible","passed":true},{"actual":"individuals-visible","check":"trace burst-detected then summary-mount-failed","expected":"individuals-visible","passed":true},{"actual":"expanding-details","check":"trace summary-mounted then inspect-burst","expected":"expanding-details","passed":true},{"actual":"summary-updating","check":"trace summary-mounted then new-burst-item","expected":"summary-updating","passed":true},{"actual":"condensing","check":"trace summary-mount-failed then burst-detected","expected":"condensing","passed":true},{"actual":"details-visible","check":"trace inspect-burst then details-mounted","expected":"details-visible","passed":true},{"actual":"closing-details","check":"trace inspect-burst then close-before-mount","expected":"closing-details","passed":true},{"actual":"summary-visible","check":"trace details-mounted then collapse-details","expected":"summary-visible","passed":true},{"actual":"expanding-details","check":"trace collapse-details then inspect-burst","expected":"expanding-details","passed":true},{"actual":"summary-updating","check":"trace collapse-details then new-burst-item","expected":"summary-updating","passed":true},{"actual":"summary-visible","check":"trace new-burst-item then summary-update-mounted","expected":"summary-visible","passed":true},{"actual":"expanding-details","check":"trace summary-update-mounted then inspect-burst","expected":"expanding-details","passed":true},{"actual":"summary-updating","check":"trace summary-update-mounted then new-burst-item","expected":"summary-updating","passed":true},{"actual":"summary-visible","check":"trace close-before-mount then late-details-mounted","expected":"summary-visible","passed":true},{"actual":"expanding-details","check":"trace late-details-mounted then inspect-burst","expected":"expanding-details","passed":true},{"actual":"summary-updating","check":"trace late-details-mounted then new-burst-item","expected":"summary-updating","passed":true},{"actual":{"phase":"condensing","value":[]},"check":"domain state regression 1: summary_members","expected":{"phase":"condensing","value":[]},"passed":true},{"actual":{"phase":"summary-visible","value":["a","b"]},"check":"domain state regression 2: summary_members","expected":{"phase":"summary-visible","value":["a","b"]},"passed":true},{"actual":{"phase":"summary-updating","value":["a","b"]},"check":"domain state regression 3: items","expected":{"phase":"summary-updating","value":["a","b"]},"passed":true},{"actual":{"phase":"summary-updating","value":["a","b","c"]},"check":"domain state regression 4: items","expected":{"phase":"summary-updating","value":["a","b","c"]},"passed":true},{"actual":{"phase":"details-visible","value":["a","b"]},"check":"domain state regression 5: detail_members","expected":{"phase":"details-visible","value":["a","b"]},"passed":true},{"actual":{"phase":"summary-visible","value":[]},"check":"domain state regression 6: detail_members","expected":{"phase":"summary-visible","value":[]},"passed":true},{"actual":{"phase":"summary-visible","value":[]},"check":"domain state regression 7: detail_members","expected":{"phase":"summary-visible","value":[]},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"individuals-visible / burst-detected\", \"actual\": \"condensing\", \"expected\": \"condensing\", \"passed\": true}, {\"check\": \"condensing / summary-mounted\", \"actual\": \"summary-visible\", \"expected\": \"summary-visible\", \"passed\": true}, {\"check\": \"condensing / summary-mount-failed\", \"actual\": \"individuals-visible\", \"expected\": \"individuals-visible\", \"passed\": true}, {\"check\": \"summary-visible / inspect-burst\", \"actual\": \"expanding-details\", \"expected\": \"expanding-details\", \"passed\": true}, {\"check\": \"expanding-details / details-mounted\", \"actual\": \"details-visible\", \"expected\": \"details-visible\", \"passed\": true}, {\"check\": \"details-visible / collapse-details\", \"actual\": \"summary-visible\", \"expected\": \"summary-visible\", \"passed\": true}, {\"check\": \"summary-visible / new-burst-item\", \"actual\": \"summary-updating\", \"expected\": \"summary-updating\", \"passed\": true}, {\"check\": \"summary-updating / summary-update-mounted\", \"actual\": \"summary-visible\", \"expected\": \"summary-visible\", \"passed\": true}, {\"check\": \"expanding-details / close-before-mount\", \"actual\": \"closing-details\", \"expected\": \"closing-details\", \"passed\": true}, {\"check\": \"closing-details / late-details-mounted\", \"actual\": \"summary-visible\", \"expected\": \"summary-visible\", \"passed\": true}, {\"check\": \"older notification incarnation\", \"actual\": \"individuals-visible\", \"expected\": \"individuals-visible\", \"passed\": true}, {\"check\": \"future notification incarnation\", \"actual\": \"individuals-visible\", \"expected\": \"individuals-visible\", \"passed\": true}, {\"check\": \"unknown event is inert\", \"actual\": \"individuals-visible\", \"expected\": \"individuals-visible\", \"passed\": true}, {\"check\": \"empty delivery batch\", \"actual\": \"individuals-visible\", \"expected\": \"individuals-visible\", \"passed\": true}, {\"check\": \"N stale deliveries before current delivery\", \"actual\": \"condensing\", \"expected\": \"condensing\", \"passed\": true}, {\"check\": \"trace burst-detected then summary-mounted\", \"actual\": \"summary-visible\", \"expected\": \"summary-visible\", \"passed\": true}, {\"check\": \"trace burst-detected then summary-mount-failed\", \"actual\": \"individuals-visible\", \"expected\": \"individuals-visible\", \"passed\": true}, {\"check\": \"trace summary-mounted then inspect-burst\", \"actual\": \"expanding-details\", \"expected\": \"expanding-details\", \"passed\": true}, {\"check\": \"trace summary-mounted then new-burst-item\", \"actual\": \"summary-updating\", \"expected\": \"summary-updating\", \"passed\": true}, {\"check\": \"trace summary-mount-failed then burst-detected\", \"actual\": \"condensing\", \"expected\": \"condensing\", \"passed\": true}, {\"check\": \"trace inspect-burst then details-mounted\", \"actual\": \"details-visible\", \"expected\": \"details-visible\", \"passed\": true}, {\"check\": \"trace inspect-burst then close-before-mount\", \"actual\": \"closing-details\", \"expected\": \"closing-details\", \"passed\": true}, {\"check\": \"trace details-mounted then collapse-details\", \"actual\": \"summary-visible\", \"expected\": \"summary-visible\", \"passed\": true}, {\"check\": \"trace collapse-details then inspect-burst\", \"actual\": \"expanding-details\", \"expected\": \"expanding-details\", \"passed\": true}, {\"check\": \"trace collapse-details then new-burst-item\", \"actual\": \"summary-updating\", \"expected\": \"summary-updating\", \"passed\": true}, {\"check\": \"trace new-burst-item then summary-update-mounted\", \"actual\": \"summary-visible\", \"expected\": \"summary-visible\", \"passed\": true}, {\"check\": \"trace summary-update-mounted then inspect-burst\", \"actual\": \"expanding-details\", \"expected\": \"expanding-details\", \"passed\": true}, {\"check\": \"trace summary-update-mounted then new-burst-item\", \"actual\": \"summary-updating\", \"expected\": \"summary-updating\", \"passed\": true}, {\"check\": \"trace close-before-mount then late-details-mounted\", \"actual\": \"summary-visible\", \"expected\": \"summary-visible\", \"passed\": true}, {\"check\": \"trace late-details-mounted then inspect-burst\", \"actual\": \"expanding-details\", \"expected\": \"expanding-details\", \"passed\": true}, {\"check\": \"trace late-details-mounted then new-burst-item\", \"actual\": \"summary-updating\", \"expected\": \"summary-updating\", \"passed\": true}, {\"check\": \"domain state regression 1: summary_members\", \"actual\": {\"phase\": \"condensing\", \"value\": []}, \"expected\": {\"phase\": \"condensing\", \"value\": []}, \"passed\": true}, {\"check\": \"domain state regression 2: summary_members\", \"actual\": {\"phase\": \"summary-visible\", \"value\": [\"a\", \"b\"]}, \"expected\": {\"phase\": \"summary-visible\", \"value\": [\"a\", \"b\"]}, \"passed\": true}, {\"check\": \"domain state regression 3: items\", \"actual\": {\"phase\": \"summary-updating\", \"value\": [\"a\", \"b\"]}, \"expected\": {\"phase\": \"summary-updating\", \"value\": [\"a\", \"b\"]}, \"passed\": true}, {\"check\": \"domain state regression 4: items\", \"actual\": {\"phase\": \"summary-updating\", \"value\": [\"a\", \"b\", \"c\"]}, \"expected\": {\"phase\": \"summary-updating\", \"value\": [\"a\", \"b\", \"c\"]}, \"passed\": true}, {\"check\": \"domain state regression 5: detail_members\", \"actual\": {\"phase\": \"details-visible\", \"value\": [\"a\", \"b\"]}, \"expected\": {\"phase\": \"details-visible\", \"value\": [\"a\", \"b\"]}, \"passed\": true}, {\"check\": \"domain state regression 6: detail_members\", \"actual\": {\"phase\": \"summary-visible\", \"value\": []}, \"expected\": {\"phase\": \"summary-visible\", \"value\": []}, \"passed\": true}, {\"check\": \"domain state regression 7: detail_members\", \"actual\": {\"phase\": \"summary-visible\", \"value\": []}, \"expected\": {\"phase\": \"summary-visible\", \"value\": []}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}