{"abstract":"The refresh-error event leaves a notification in empty instead of load-error.","category":"Notification interfaces","checks":33,"contract":"Notification inbox initial restoration is a bounded visual-notification workflow with mutable policy state {'rows': ['cached'], 'version': 3, 'warning': False}. Its default transition relation is {('placeholder', 'cache-found'): 'cached-unverified', ('placeholder', 'cache-missing'): 'fetching', ('cached-unverified', 'refresh-start'): 'refreshing-cache', ('refreshing-cache', 'fresh-nonempty'): 'ready', ('refreshing-cache', 'fresh-empty'): 'empty', ('refreshing-cache', 'refresh-error'): 'stale-warning', ('fetching', 'fresh-nonempty'): 'ready', ('fetching', 'fresh-empty'): 'empty', ('fetching', 'refresh-error'): 'load-error', ('stale-warning', 'retry-refresh'): 'refreshing-cache'}; 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-hydration","failed_approach":"Ready styling conceals the missing initial data.","family":"s3-notification-interfaces-hydration-09","id":"FA-34581","implementations":{"attempt":{"sha256":"dde8b338359ef7a83924e411527394d8638e48c3274ac103624131310027a9c4","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 = {('placeholder', 'cache-found'): 'cached-unverified', ('placeholder', 'cache-missing'): 'fetching', ('cached-unverified', 'refresh-start'): 'refreshing-cache', ('refreshing-cache', 'fresh-nonempty'): 'ready', ('refreshing-cache', 'fresh-empty'): 'empty', ('refreshing-cache', 'refresh-error'): 'stale-warning', ('fetching', 'fresh-nonempty'): 'ready', ('fetching', 'fresh-empty'): 'empty', ('fetching', 'refresh-error'): 'ready', ('stale-warning', 'retry-refresh'): 'refreshing-cache'}\n    data = json.loads(json.dumps({'rows': ['cached'], 'version': 3, 'warning': False})) if payload is None else {**json.loads(json.dumps({'rows': ['cached'], 'version': 3, 'warning': False})), **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 ('fresh-nonempty','fresh-empty'):\n                if arg.get('version',data['version']) < data['version']: event = 'unknown-event'\n                else:\n                    data['version'] = arg.get('version',data['version'])\n                    data['rows'] = arg.get('rows',[] if event == 'fresh-empty' else ['fresh'])[:]\n            if event == 'cache-found' and 'rows' in arg: data['rows'] = arg['rows'][:]\n            state = table.get((state, event), state)\n            if state == 'stale-warning': data['warning'] = True\n            if state in ('ready','empty'): data['warning'] = False\n            if state == 'empty': data['rows'] = []\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('placeholder / cache-found', solve('placeholder', [('cache-found', N)], N), 'cached-unverified')\ncheck('placeholder / cache-missing', solve('placeholder', [('cache-missing', N)], N), 'fetching')\ncheck('cached-unverified / refresh-start', solve('cached-unverified', [('refresh-start', N)], N), 'refreshing-cache')\ncheck('refreshing-cache / fresh-nonempty', solve('refreshing-cache', [('fresh-nonempty', N)], N), 'ready')\ncheck('refreshing-cache / fresh-empty', solve('refreshing-cache', [('fresh-empty', N)], N), 'empty')\ncheck('refreshing-cache / refresh-error', solve('refreshing-cache', [('refresh-error', N)], N), 'stale-warning')\ncheck('fetching / fresh-nonempty', solve('fetching', [('fresh-nonempty', N)], N), 'ready')\ncheck('fetching / fresh-empty', solve('fetching', [('fresh-empty', N)], N), 'empty')\ncheck('fetching / refresh-error', solve('fetching', [('refresh-error', N)], N), 'load-error')\ncheck('stale-warning / retry-refresh', solve('stale-warning', [('retry-refresh', N)], N), 'refreshing-cache')\ncheck('older notification incarnation', solve('placeholder', [('cache-found', N - 1)], N), 'placeholder')\ncheck('future notification incarnation', solve('placeholder', [('cache-found', N + 1)], N), 'placeholder')\ncheck('unknown event is inert', solve('placeholder', [('unknown-event', N)], N), 'placeholder')\ncheck('empty delivery batch', solve('placeholder', [], N), 'placeholder')\ncheck('N stale deliveries before current delivery', solve('placeholder', [('cache-found', N - 1)] * N + [('cache-found', N)], N), 'cached-unverified')\ncheck('trace cache-found then refresh-start', solve('placeholder', [('cache-found', N), ('refresh-start', N)], N), 'refreshing-cache')\ncheck('trace cache-missing then fresh-nonempty', solve('placeholder', [('cache-missing', N), ('fresh-nonempty', N)], N), 'ready')\ncheck('trace cache-missing then fresh-empty', solve('placeholder', [('cache-missing', N), ('fresh-empty', N)], N), 'empty')\ncheck('trace cache-missing then refresh-error', solve('placeholder', [('cache-missing', N), ('refresh-error', N)], N), 'load-error')\ncheck('trace refresh-start then fresh-nonempty', solve('cached-unverified', [('refresh-start', N), ('fresh-nonempty', N)], N), 'ready')\ncheck('trace refresh-start then fresh-empty', solve('cached-unverified', [('refresh-start', N), ('fresh-empty', N)], N), 'empty')\ncheck('trace refresh-start then refresh-error', solve('cached-unverified', [('refresh-start', N), ('refresh-error', N)], N), 'stale-warning')\ncheck('trace refresh-error then retry-refresh', solve('refreshing-cache', [('refresh-error', N), ('retry-refresh', N)], N), 'refreshing-cache')\ncheck('trace retry-refresh then fresh-nonempty', solve('stale-warning', [('retry-refresh', N), ('fresh-nonempty', N)], N), 'ready')\ncheck('trace retry-refresh then fresh-empty', solve('stale-warning', [('retry-refresh', N), ('fresh-empty', N)], N), 'empty')\ncheck('trace retry-refresh then refresh-error', solve('stale-warning', [('retry-refresh', N), ('refresh-error', N)], N), 'stale-warning')\ncheck('domain state regression 1: rows', solve('refreshing-cache', [('fresh-nonempty', N, {'version': 2, 'rows': ['old']})], N, {}, 'rows'), {'phase': 'refreshing-cache', 'value': ['cached']})\ncheck('domain state regression 2: rows', solve('refreshing-cache', [('fresh-nonempty', N, {'version': 4, 'rows': ['new']})], N, {}, 'rows'), {'phase': 'ready', 'value': ['new']})\ncheck('domain state regression 3: rows', solve('refreshing-cache', [('refresh-error', N, {})], N, {}, 'rows'), {'phase': 'stale-warning', 'value': ['cached']})\ncheck('domain state regression 4: warning', solve('refreshing-cache', [('refresh-error', N, {})], N, {}, 'warning'), {'phase': 'stale-warning', 'value': True})\ncheck('domain state regression 5: rows', solve('refreshing-cache', [('fresh-empty', N, {})], N, {}, 'rows'), {'phase': 'empty', 'value': []})\ncheck('domain state regression 6: rows', solve('placeholder', [('cache-found', N, {'rows': ['a', 'b']})], N, {}, 'rows'), {'phase': 'cached-unverified', 'value': ['a', 'b']})\ncheck('domain state regression 7: rows', solve('placeholder', [('cache-found', N, {'rows': ['saved']}), ('refresh-start', N, {}), ('refresh-error', N, {})], N, {}, 'rows'), {'phase': 'stale-warning', 'value': ['saved']})\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":"363ede1910e467275ecc356e516b5e8c93b06d6209e42b93a5f9ac83a299e8e6","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 = {('placeholder', 'cache-found'): 'cached-unverified', ('placeholder', 'cache-missing'): 'fetching', ('cached-unverified', 'refresh-start'): 'refreshing-cache', ('refreshing-cache', 'fresh-nonempty'): 'ready', ('refreshing-cache', 'fresh-empty'): 'empty', ('refreshing-cache', 'refresh-error'): 'stale-warning', ('fetching', 'fresh-nonempty'): 'ready', ('fetching', 'fresh-empty'): 'empty', ('fetching', 'refresh-error'): 'empty', ('stale-warning', 'retry-refresh'): 'refreshing-cache'}\n    data = json.loads(json.dumps({'rows': ['cached'], 'version': 3, 'warning': False})) if payload is None else {**json.loads(json.dumps({'rows': ['cached'], 'version': 3, 'warning': False})), **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 ('fresh-nonempty','fresh-empty'):\n                if arg.get('version',data['version']) < data['version']: event = 'unknown-event'\n                else:\n                    data['version'] = arg.get('version',data['version'])\n                    data['rows'] = arg.get('rows',[] if event == 'fresh-empty' else ['fresh'])[:]\n            if event == 'cache-found' and 'rows' in arg: data['rows'] = arg['rows'][:]\n            state = table.get((state, event), state)\n            if state == 'stale-warning': data['warning'] = True\n            if state in ('ready','empty'): data['warning'] = False\n            if state == 'empty': data['rows'] = []\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('placeholder / cache-found', solve('placeholder', [('cache-found', N)], N), 'cached-unverified')\ncheck('placeholder / cache-missing', solve('placeholder', [('cache-missing', N)], N), 'fetching')\ncheck('cached-unverified / refresh-start', solve('cached-unverified', [('refresh-start', N)], N), 'refreshing-cache')\ncheck('refreshing-cache / fresh-nonempty', solve('refreshing-cache', [('fresh-nonempty', N)], N), 'ready')\ncheck('refreshing-cache / fresh-empty', solve('refreshing-cache', [('fresh-empty', N)], N), 'empty')\ncheck('refreshing-cache / refresh-error', solve('refreshing-cache', [('refresh-error', N)], N), 'stale-warning')\ncheck('fetching / fresh-nonempty', solve('fetching', [('fresh-nonempty', N)], N), 'ready')\ncheck('fetching / fresh-empty', solve('fetching', [('fresh-empty', N)], N), 'empty')\ncheck('fetching / refresh-error', solve('fetching', [('refresh-error', N)], N), 'load-error')\ncheck('stale-warning / retry-refresh', solve('stale-warning', [('retry-refresh', N)], N), 'refreshing-cache')\ncheck('older notification incarnation', solve('placeholder', [('cache-found', N - 1)], N), 'placeholder')\ncheck('future notification incarnation', solve('placeholder', [('cache-found', N + 1)], N), 'placeholder')\ncheck('unknown event is inert', solve('placeholder', [('unknown-event', N)], N), 'placeholder')\ncheck('empty delivery batch', solve('placeholder', [], N), 'placeholder')\ncheck('N stale deliveries before current delivery', solve('placeholder', [('cache-found', N - 1)] * N + [('cache-found', N)], N), 'cached-unverified')\ncheck('trace cache-found then refresh-start', solve('placeholder', [('cache-found', N), ('refresh-start', N)], N), 'refreshing-cache')\ncheck('trace cache-missing then fresh-nonempty', solve('placeholder', [('cache-missing', N), ('fresh-nonempty', N)], N), 'ready')\ncheck('trace cache-missing then fresh-empty', solve('placeholder', [('cache-missing', N), ('fresh-empty', N)], N), 'empty')\ncheck('trace cache-missing then refresh-error', solve('placeholder', [('cache-missing', N), ('refresh-error', N)], N), 'load-error')\ncheck('trace refresh-start then fresh-nonempty', solve('cached-unverified', [('refresh-start', N), ('fresh-nonempty', N)], N), 'ready')\ncheck('trace refresh-start then fresh-empty', solve('cached-unverified', [('refresh-start', N), ('fresh-empty', N)], N), 'empty')\ncheck('trace refresh-start then refresh-error', solve('cached-unverified', [('refresh-start', N), ('refresh-error', N)], N), 'stale-warning')\ncheck('trace refresh-error then retry-refresh', solve('refreshing-cache', [('refresh-error', N), ('retry-refresh', N)], N), 'refreshing-cache')\ncheck('trace retry-refresh then fresh-nonempty', solve('stale-warning', [('retry-refresh', N), ('fresh-nonempty', N)], N), 'ready')\ncheck('trace retry-refresh then fresh-empty', solve('stale-warning', [('retry-refresh', N), ('fresh-empty', N)], N), 'empty')\ncheck('trace retry-refresh then refresh-error', solve('stale-warning', [('retry-refresh', N), ('refresh-error', N)], N), 'stale-warning')\ncheck('domain state regression 1: rows', solve('refreshing-cache', [('fresh-nonempty', N, {'version': 2, 'rows': ['old']})], N, {}, 'rows'), {'phase': 'refreshing-cache', 'value': ['cached']})\ncheck('domain state regression 2: rows', solve('refreshing-cache', [('fresh-nonempty', N, {'version': 4, 'rows': ['new']})], N, {}, 'rows'), {'phase': 'ready', 'value': ['new']})\ncheck('domain state regression 3: rows', solve('refreshing-cache', [('refresh-error', N, {})], N, {}, 'rows'), {'phase': 'stale-warning', 'value': ['cached']})\ncheck('domain state regression 4: warning', solve('refreshing-cache', [('refresh-error', N, {})], N, {}, 'warning'), {'phase': 'stale-warning', 'value': True})\ncheck('domain state regression 5: rows', solve('refreshing-cache', [('fresh-empty', N, {})], N, {}, 'rows'), {'phase': 'empty', 'value': []})\ncheck('domain state regression 6: rows', solve('placeholder', [('cache-found', N, {'rows': ['a', 'b']})], N, {}, 'rows'), {'phase': 'cached-unverified', 'value': ['a', 'b']})\ncheck('domain state regression 7: rows', solve('placeholder', [('cache-found', N, {'rows': ['saved']}), ('refresh-start', N, {}), ('refresh-error', N, {})], N, {}, 'rows'), {'phase': 'stale-warning', 'value': ['saved']})\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":"0744f68ab5278d35d0f177bb966bf04459116ab6096b1f0c0bffe6a5cbf11e68","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 = {('placeholder', 'cache-found'): 'cached-unverified', ('placeholder', 'cache-missing'): 'fetching', ('cached-unverified', 'refresh-start'): 'refreshing-cache', ('refreshing-cache', 'fresh-nonempty'): 'ready', ('refreshing-cache', 'fresh-empty'): 'empty', ('refreshing-cache', 'refresh-error'): 'stale-warning', ('fetching', 'fresh-nonempty'): 'ready', ('fetching', 'fresh-empty'): 'empty', ('fetching', 'refresh-error'): 'load-error', ('stale-warning', 'retry-refresh'): 'refreshing-cache'}\n    data = json.loads(json.dumps({'rows': ['cached'], 'version': 3, 'warning': False})) if payload is None else {**json.loads(json.dumps({'rows': ['cached'], 'version': 3, 'warning': False})), **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 ('fresh-nonempty','fresh-empty'):\n                if arg.get('version',data['version']) < data['version']: event = 'unknown-event'\n                else:\n                    data['version'] = arg.get('version',data['version'])\n                    data['rows'] = arg.get('rows',[] if event == 'fresh-empty' else ['fresh'])[:]\n            if event == 'cache-found' and 'rows' in arg: data['rows'] = arg['rows'][:]\n            state = table.get((state, event), state)\n            if state == 'stale-warning': data['warning'] = True\n            if state in ('ready','empty'): data['warning'] = False\n            if state == 'empty': data['rows'] = []\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('placeholder / cache-found', solve('placeholder', [('cache-found', N)], N), 'cached-unverified')\ncheck('placeholder / cache-missing', solve('placeholder', [('cache-missing', N)], N), 'fetching')\ncheck('cached-unverified / refresh-start', solve('cached-unverified', [('refresh-start', N)], N), 'refreshing-cache')\ncheck('refreshing-cache / fresh-nonempty', solve('refreshing-cache', [('fresh-nonempty', N)], N), 'ready')\ncheck('refreshing-cache / fresh-empty', solve('refreshing-cache', [('fresh-empty', N)], N), 'empty')\ncheck('refreshing-cache / refresh-error', solve('refreshing-cache', [('refresh-error', N)], N), 'stale-warning')\ncheck('fetching / fresh-nonempty', solve('fetching', [('fresh-nonempty', N)], N), 'ready')\ncheck('fetching / fresh-empty', solve('fetching', [('fresh-empty', N)], N), 'empty')\ncheck('fetching / refresh-error', solve('fetching', [('refresh-error', N)], N), 'load-error')\ncheck('stale-warning / retry-refresh', solve('stale-warning', [('retry-refresh', N)], N), 'refreshing-cache')\ncheck('older notification incarnation', solve('placeholder', [('cache-found', N - 1)], N), 'placeholder')\ncheck('future notification incarnation', solve('placeholder', [('cache-found', N + 1)], N), 'placeholder')\ncheck('unknown event is inert', solve('placeholder', [('unknown-event', N)], N), 'placeholder')\ncheck('empty delivery batch', solve('placeholder', [], N), 'placeholder')\ncheck('N stale deliveries before current delivery', solve('placeholder', [('cache-found', N - 1)] * N + [('cache-found', N)], N), 'cached-unverified')\ncheck('trace cache-found then refresh-start', solve('placeholder', [('cache-found', N), ('refresh-start', N)], N), 'refreshing-cache')\ncheck('trace cache-missing then fresh-nonempty', solve('placeholder', [('cache-missing', N), ('fresh-nonempty', N)], N), 'ready')\ncheck('trace cache-missing then fresh-empty', solve('placeholder', [('cache-missing', N), ('fresh-empty', N)], N), 'empty')\ncheck('trace cache-missing then refresh-error', solve('placeholder', [('cache-missing', N), ('refresh-error', N)], N), 'load-error')\ncheck('trace refresh-start then fresh-nonempty', solve('cached-unverified', [('refresh-start', N), ('fresh-nonempty', N)], N), 'ready')\ncheck('trace refresh-start then fresh-empty', solve('cached-unverified', [('refresh-start', N), ('fresh-empty', N)], N), 'empty')\ncheck('trace refresh-start then refresh-error', solve('cached-unverified', [('refresh-start', N), ('refresh-error', N)], N), 'stale-warning')\ncheck('trace refresh-error then retry-refresh', solve('refreshing-cache', [('refresh-error', N), ('retry-refresh', N)], N), 'refreshing-cache')\ncheck('trace retry-refresh then fresh-nonempty', solve('stale-warning', [('retry-refresh', N), ('fresh-nonempty', N)], N), 'ready')\ncheck('trace retry-refresh then fresh-empty', solve('stale-warning', [('retry-refresh', N), ('fresh-empty', N)], N), 'empty')\ncheck('trace retry-refresh then refresh-error', solve('stale-warning', [('retry-refresh', N), ('refresh-error', N)], N), 'stale-warning')\ncheck('domain state regression 1: rows', solve('refreshing-cache', [('fresh-nonempty', N, {'version': 2, 'rows': ['old']})], N, {}, 'rows'), {'phase': 'refreshing-cache', 'value': ['cached']})\ncheck('domain state regression 2: rows', solve('refreshing-cache', [('fresh-nonempty', N, {'version': 4, 'rows': ['new']})], N, {}, 'rows'), {'phase': 'ready', 'value': ['new']})\ncheck('domain state regression 3: rows', solve('refreshing-cache', [('refresh-error', N, {})], N, {}, 'rows'), {'phase': 'stale-warning', 'value': ['cached']})\ncheck('domain state regression 4: warning', solve('refreshing-cache', [('refresh-error', N, {})], N, {}, 'warning'), {'phase': 'stale-warning', 'value': True})\ncheck('domain state regression 5: rows', solve('refreshing-cache', [('fresh-empty', N, {})], N, {}, 'rows'), {'phase': 'empty', 'value': []})\ncheck('domain state regression 6: rows', solve('placeholder', [('cache-found', N, {'rows': ['a', 'b']})], N, {}, 'rows'), {'phase': 'cached-unverified', 'value': ['a', 'b']})\ncheck('domain state regression 7: rows', solve('placeholder', [('cache-found', N, {'rows': ['saved']}), ('refresh-start', N, {}), ('refresh-error', N, {})], N, {}, 'rows'), {'phase': 'stale-warning', 'value': ['saved']})\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-hydration-09","generated_at":"2026-09-29T14:42:33.302302+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 fetching / refresh-error transition to load-error; preserve the other explicitly stipulated transitions.","root_cause":"Initial failure is represented as a valid empty inbox.","sha256":"8d2ff271a6b095c3fdd5a480a0004110ce277b0c5b18055142cd3b1345133f0a","title":"Notification inbox initial restoration: refresh-error from fetching · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.586,"exit_code":1,"observations":[{"actual":"cached-unverified","check":"placeholder / cache-found","expected":"cached-unverified","passed":true},{"actual":"fetching","check":"placeholder / cache-missing","expected":"fetching","passed":true},{"actual":"refreshing-cache","check":"cached-unverified / refresh-start","expected":"refreshing-cache","passed":true},{"actual":"ready","check":"refreshing-cache / fresh-nonempty","expected":"ready","passed":true},{"actual":"empty","check":"refreshing-cache / fresh-empty","expected":"empty","passed":true},{"actual":"stale-warning","check":"refreshing-cache / refresh-error","expected":"stale-warning","passed":true},{"actual":"ready","check":"fetching / fresh-nonempty","expected":"ready","passed":true},{"actual":"empty","check":"fetching / fresh-empty","expected":"empty","passed":true},{"actual":"ready","check":"fetching / refresh-error","expected":"load-error","passed":false},{"actual":"refreshing-cache","check":"stale-warning / retry-refresh","expected":"refreshing-cache","passed":true},{"actual":"placeholder","check":"older notification incarnation","expected":"placeholder","passed":true},{"actual":"placeholder","check":"future notification incarnation","expected":"placeholder","passed":true},{"actual":"placeholder","check":"unknown event is inert","expected":"placeholder","passed":true},{"actual":"placeholder","check":"empty delivery batch","expected":"placeholder","passed":true},{"actual":"cached-unverified","check":"N stale deliveries before current delivery","expected":"cached-unverified","passed":true},{"actual":"refreshing-cache","check":"trace cache-found then refresh-start","expected":"refreshing-cache","passed":true},{"actual":"ready","check":"trace cache-missing then fresh-nonempty","expected":"ready","passed":true},{"actual":"empty","check":"trace cache-missing then fresh-empty","expected":"empty","passed":true},{"actual":"ready","check":"trace cache-missing then refresh-error","expected":"load-error","passed":false},{"actual":"ready","check":"trace refresh-start then fresh-nonempty","expected":"ready","passed":true},{"actual":"empty","check":"trace refresh-start then fresh-empty","expected":"empty","passed":true},{"actual":"stale-warning","check":"trace refresh-start then refresh-error","expected":"stale-warning","passed":true},{"actual":"refreshing-cache","check":"trace refresh-error then retry-refresh","expected":"refreshing-cache","passed":true},{"actual":"ready","check":"trace retry-refresh then fresh-nonempty","expected":"ready","passed":true},{"actual":"empty","check":"trace retry-refresh then fresh-empty","expected":"empty","passed":true},{"actual":"stale-warning","check":"trace retry-refresh then refresh-error","expected":"stale-warning","passed":true},{"actual":{"phase":"refreshing-cache","value":["cached"]},"check":"domain state regression 1: rows","expected":{"phase":"refreshing-cache","value":["cached"]},"passed":true},{"actual":{"phase":"ready","value":["new"]},"check":"domain state regression 2: rows","expected":{"phase":"ready","value":["new"]},"passed":true},{"actual":{"phase":"stale-warning","value":["cached"]},"check":"domain state regression 3: rows","expected":{"phase":"stale-warning","value":["cached"]},"passed":true},{"actual":{"phase":"stale-warning","value":true},"check":"domain state regression 4: warning","expected":{"phase":"stale-warning","value":true},"passed":true},{"actual":{"phase":"empty","value":[]},"check":"domain state regression 5: rows","expected":{"phase":"empty","value":[]},"passed":true},{"actual":{"phase":"cached-unverified","value":["a","b"]},"check":"domain state regression 6: rows","expected":{"phase":"cached-unverified","value":["a","b"]},"passed":true},{"actual":{"phase":"stale-warning","value":["saved"]},"check":"domain state regression 7: rows","expected":{"phase":"stale-warning","value":["saved"]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"placeholder / cache-found\", \"actual\": \"cached-unverified\", \"expected\": \"cached-unverified\", \"passed\": true}, {\"check\": \"placeholder / cache-missing\", \"actual\": \"fetching\", \"expected\": \"fetching\", \"passed\": true}, {\"check\": \"cached-unverified / refresh-start\", \"actual\": \"refreshing-cache\", \"expected\": \"refreshing-cache\", \"passed\": true}, {\"check\": \"refreshing-cache / fresh-nonempty\", \"actual\": \"ready\", \"expected\": \"ready\", \"passed\": true}, {\"check\": \"refreshing-cache / fresh-empty\", \"actual\": \"empty\", \"expected\": \"empty\", \"passed\": true}, {\"check\": \"refreshing-cache / refresh-error\", \"actual\": \"stale-warning\", \"expected\": \"stale-warning\", \"passed\": true}, {\"check\": \"fetching / fresh-nonempty\", \"actual\": \"ready\", \"expected\": \"ready\", \"passed\": true}, {\"check\": \"fetching / fresh-empty\", \"actual\": \"empty\", \"expected\": \"empty\", \"passed\": true}, {\"check\": \"fetching / refresh-error\", \"actual\": \"ready\", \"expected\": \"load-error\", \"passed\": false}, {\"check\": \"stale-warning / retry-refresh\", \"actual\": \"refreshing-cache\", \"expected\": \"refreshing-cache\", \"passed\": true}, {\"check\": \"older notification incarnation\", \"actual\": \"placeholder\", \"expected\": \"placeholder\", \"passed\": true}, {\"check\": \"future notification incarnation\", \"actual\": \"placeholder\", \"expected\": \"placeholder\", \"passed\": true}, {\"check\": \"unknown event is inert\", \"actual\": \"placeholder\", \"expected\": \"placeholder\", \"passed\": true}, {\"check\": \"empty delivery batch\", \"actual\": \"placeholder\", \"expected\": \"placeholder\", \"passed\": true}, {\"check\": \"N stale deliveries before current delivery\", \"actual\": \"cached-unverified\", \"expected\": \"cached-unverified\", \"passed\": true}, {\"check\": \"trace cache-found then refresh-start\", \"actual\": \"refreshing-cache\", \"expected\": \"refreshing-cache\", \"passed\": true}, {\"check\": \"trace cache-missing then fresh-nonempty\", \"actual\": \"ready\", \"expected\": \"ready\", \"passed\": true}, {\"check\": \"trace cache-missing then fresh-empty\", \"actual\": \"empty\", \"expected\": \"empty\", \"passed\": true}, {\"check\": \"trace cache-missing then refresh-error\", \"actual\": \"ready\", \"expected\": \"load-error\", \"passed\": false}, {\"check\": \"trace refresh-start then fresh-nonempty\", \"actual\": \"ready\", \"expected\": \"ready\", \"passed\": true}, {\"check\": \"trace refresh-start then fresh-empty\", \"actual\": \"empty\", \"expected\": \"empty\", \"passed\": true}, {\"check\": \"trace refresh-start then refresh-error\", \"actual\": \"stale-warning\", \"expected\": \"stale-warning\", \"passed\": true}, {\"check\": \"trace refresh-error then retry-refresh\", \"actual\": \"refreshing-cache\", \"expected\": \"refreshing-cache\", \"passed\": true}, {\"check\": \"trace retry-refresh then fresh-nonempty\", \"actual\": \"ready\", \"expected\": \"ready\", \"passed\": true}, {\"check\": \"trace retry-refresh then fresh-empty\", \"actual\": \"empty\", \"expected\": \"empty\", \"passed\": true}, {\"check\": \"trace retry-refresh then refresh-error\", \"actual\": \"stale-warning\", \"expected\": \"stale-warning\", \"passed\": true}, {\"check\": \"domain state regression 1: rows\", \"actual\": {\"phase\": \"refreshing-cache\", \"value\": [\"cached\"]}, \"expected\": {\"phase\": \"refreshing-cache\", \"value\": [\"cached\"]}, \"passed\": true}, {\"check\": \"domain state regression 2: rows\", \"actual\": {\"phase\": \"ready\", \"value\": [\"new\"]}, \"expected\": {\"phase\": \"ready\", \"value\": [\"new\"]}, \"passed\": true}, {\"check\": \"domain state regression 3: rows\", \"actual\": {\"phase\": \"stale-warning\", \"value\": [\"cached\"]}, \"expected\": {\"phase\": \"stale-warning\", \"value\": [\"cached\"]}, \"passed\": true}, {\"check\": \"domain state regression 4: warning\", \"actual\": {\"phase\": \"stale-warning\", \"value\": true}, \"expected\": {\"phase\": \"stale-warning\", \"value\": true}, \"passed\": true}, {\"check\": \"domain state regression 5: rows\", \"actual\": {\"phase\": \"empty\", \"value\": []}, \"expected\": {\"phase\": \"empty\", \"value\": []}, \"passed\": true}, {\"check\": \"domain state regression 6: rows\", \"actual\": {\"phase\": \"cached-unverified\", \"value\": [\"a\", \"b\"]}, \"expected\": {\"phase\": \"cached-unverified\", \"value\": [\"a\", \"b\"]}, \"passed\": true}, {\"check\": \"domain state regression 7: rows\", \"actual\": {\"phase\": \"stale-warning\", \"value\": [\"saved\"]}, \"expected\": {\"phase\": \"stale-warning\", \"value\": [\"saved\"]}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.603,"exit_code":1,"observations":[{"actual":"cached-unverified","check":"placeholder / cache-found","expected":"cached-unverified","passed":true},{"actual":"fetching","check":"placeholder / cache-missing","expected":"fetching","passed":true},{"actual":"refreshing-cache","check":"cached-unverified / refresh-start","expected":"refreshing-cache","passed":true},{"actual":"ready","check":"refreshing-cache / fresh-nonempty","expected":"ready","passed":true},{"actual":"empty","check":"refreshing-cache / fresh-empty","expected":"empty","passed":true},{"actual":"stale-warning","check":"refreshing-cache / refresh-error","expected":"stale-warning","passed":true},{"actual":"ready","check":"fetching / fresh-nonempty","expected":"ready","passed":true},{"actual":"empty","check":"fetching / fresh-empty","expected":"empty","passed":true},{"actual":"empty","check":"fetching / refresh-error","expected":"load-error","passed":false},{"actual":"refreshing-cache","check":"stale-warning / retry-refresh","expected":"refreshing-cache","passed":true},{"actual":"placeholder","check":"older notification incarnation","expected":"placeholder","passed":true},{"actual":"placeholder","check":"future notification incarnation","expected":"placeholder","passed":true},{"actual":"placeholder","check":"unknown event is inert","expected":"placeholder","passed":true},{"actual":"placeholder","check":"empty delivery batch","expected":"placeholder","passed":true},{"actual":"cached-unverified","check":"N stale deliveries before current delivery","expected":"cached-unverified","passed":true},{"actual":"refreshing-cache","check":"trace cache-found then refresh-start","expected":"refreshing-cache","passed":true},{"actual":"ready","check":"trace cache-missing then fresh-nonempty","expected":"ready","passed":true},{"actual":"empty","check":"trace cache-missing then fresh-empty","expected":"empty","passed":true},{"actual":"empty","check":"trace cache-missing then refresh-error","expected":"load-error","passed":false},{"actual":"ready","check":"trace refresh-start then fresh-nonempty","expected":"ready","passed":true},{"actual":"empty","check":"trace refresh-start then fresh-empty","expected":"empty","passed":true},{"actual":"stale-warning","check":"trace refresh-start then refresh-error","expected":"stale-warning","passed":true},{"actual":"refreshing-cache","check":"trace refresh-error then retry-refresh","expected":"refreshing-cache","passed":true},{"actual":"ready","check":"trace retry-refresh then fresh-nonempty","expected":"ready","passed":true},{"actual":"empty","check":"trace retry-refresh then fresh-empty","expected":"empty","passed":true},{"actual":"stale-warning","check":"trace retry-refresh then refresh-error","expected":"stale-warning","passed":true},{"actual":{"phase":"refreshing-cache","value":["cached"]},"check":"domain state regression 1: rows","expected":{"phase":"refreshing-cache","value":["cached"]},"passed":true},{"actual":{"phase":"ready","value":["new"]},"check":"domain state regression 2: rows","expected":{"phase":"ready","value":["new"]},"passed":true},{"actual":{"phase":"stale-warning","value":["cached"]},"check":"domain state regression 3: rows","expected":{"phase":"stale-warning","value":["cached"]},"passed":true},{"actual":{"phase":"stale-warning","value":true},"check":"domain state regression 4: warning","expected":{"phase":"stale-warning","value":true},"passed":true},{"actual":{"phase":"empty","value":[]},"check":"domain state regression 5: rows","expected":{"phase":"empty","value":[]},"passed":true},{"actual":{"phase":"cached-unverified","value":["a","b"]},"check":"domain state regression 6: rows","expected":{"phase":"cached-unverified","value":["a","b"]},"passed":true},{"actual":{"phase":"stale-warning","value":["saved"]},"check":"domain state regression 7: rows","expected":{"phase":"stale-warning","value":["saved"]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"placeholder / cache-found\", \"actual\": \"cached-unverified\", \"expected\": \"cached-unverified\", \"passed\": true}, {\"check\": \"placeholder / cache-missing\", \"actual\": \"fetching\", \"expected\": \"fetching\", \"passed\": true}, {\"check\": \"cached-unverified / refresh-start\", \"actual\": \"refreshing-cache\", \"expected\": \"refreshing-cache\", \"passed\": true}, {\"check\": \"refreshing-cache / fresh-nonempty\", \"actual\": \"ready\", \"expected\": \"ready\", \"passed\": true}, {\"check\": \"refreshing-cache / fresh-empty\", \"actual\": \"empty\", \"expected\": \"empty\", \"passed\": true}, {\"check\": \"refreshing-cache / refresh-error\", \"actual\": \"stale-warning\", \"expected\": \"stale-warning\", \"passed\": true}, {\"check\": \"fetching / fresh-nonempty\", \"actual\": \"ready\", \"expected\": \"ready\", \"passed\": true}, {\"check\": \"fetching / fresh-empty\", \"actual\": \"empty\", \"expected\": \"empty\", \"passed\": true}, {\"check\": \"fetching / refresh-error\", \"actual\": \"empty\", \"expected\": \"load-error\", \"passed\": false}, {\"check\": \"stale-warning / retry-refresh\", \"actual\": \"refreshing-cache\", \"expected\": \"refreshing-cache\", \"passed\": true}, {\"check\": \"older notification incarnation\", \"actual\": \"placeholder\", \"expected\": \"placeholder\", \"passed\": true}, {\"check\": \"future notification incarnation\", \"actual\": \"placeholder\", \"expected\": \"placeholder\", \"passed\": true}, {\"check\": \"unknown event is inert\", \"actual\": \"placeholder\", \"expected\": \"placeholder\", \"passed\": true}, {\"check\": \"empty delivery batch\", \"actual\": \"placeholder\", \"expected\": \"placeholder\", \"passed\": true}, {\"check\": \"N stale deliveries before current delivery\", \"actual\": \"cached-unverified\", \"expected\": \"cached-unverified\", \"passed\": true}, {\"check\": \"trace cache-found then refresh-start\", \"actual\": \"refreshing-cache\", \"expected\": \"refreshing-cache\", \"passed\": true}, {\"check\": \"trace cache-missing then fresh-nonempty\", \"actual\": \"ready\", \"expected\": \"ready\", \"passed\": true}, {\"check\": \"trace cache-missing then fresh-empty\", \"actual\": \"empty\", \"expected\": \"empty\", \"passed\": true}, {\"check\": \"trace cache-missing then refresh-error\", \"actual\": \"empty\", \"expected\": \"load-error\", \"passed\": false}, {\"check\": \"trace refresh-start then fresh-nonempty\", \"actual\": \"ready\", \"expected\": \"ready\", \"passed\": true}, {\"check\": \"trace refresh-start then fresh-empty\", \"actual\": \"empty\", \"expected\": \"empty\", \"passed\": true}, {\"check\": \"trace refresh-start then refresh-error\", \"actual\": \"stale-warning\", \"expected\": \"stale-warning\", \"passed\": true}, {\"check\": \"trace refresh-error then retry-refresh\", \"actual\": \"refreshing-cache\", \"expected\": \"refreshing-cache\", \"passed\": true}, {\"check\": \"trace retry-refresh then fresh-nonempty\", \"actual\": \"ready\", \"expected\": \"ready\", \"passed\": true}, {\"check\": \"trace retry-refresh then fresh-empty\", \"actual\": \"empty\", \"expected\": \"empty\", \"passed\": true}, {\"check\": \"trace retry-refresh then refresh-error\", \"actual\": \"stale-warning\", \"expected\": \"stale-warning\", \"passed\": true}, {\"check\": \"domain state regression 1: rows\", \"actual\": {\"phase\": \"refreshing-cache\", \"value\": [\"cached\"]}, \"expected\": {\"phase\": \"refreshing-cache\", \"value\": [\"cached\"]}, \"passed\": true}, {\"check\": \"domain state regression 2: rows\", \"actual\": {\"phase\": \"ready\", \"value\": [\"new\"]}, \"expected\": {\"phase\": \"ready\", \"value\": [\"new\"]}, \"passed\": true}, {\"check\": \"domain state regression 3: rows\", \"actual\": {\"phase\": \"stale-warning\", \"value\": [\"cached\"]}, \"expected\": {\"phase\": \"stale-warning\", \"value\": [\"cached\"]}, \"passed\": true}, {\"check\": \"domain state regression 4: warning\", \"actual\": {\"phase\": \"stale-warning\", \"value\": true}, \"expected\": {\"phase\": \"stale-warning\", \"value\": true}, \"passed\": true}, {\"check\": \"domain state regression 5: rows\", \"actual\": {\"phase\": \"empty\", \"value\": []}, \"expected\": {\"phase\": \"empty\", \"value\": []}, \"passed\": true}, {\"check\": \"domain state regression 6: rows\", \"actual\": {\"phase\": \"cached-unverified\", \"value\": [\"a\", \"b\"]}, \"expected\": {\"phase\": \"cached-unverified\", \"value\": [\"a\", \"b\"]}, \"passed\": true}, {\"check\": \"domain state regression 7: rows\", \"actual\": {\"phase\": \"stale-warning\", \"value\": [\"saved\"]}, \"expected\": {\"phase\": \"stale-warning\", \"value\": [\"saved\"]}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":44.111,"exit_code":0,"observations":[{"actual":"cached-unverified","check":"placeholder / cache-found","expected":"cached-unverified","passed":true},{"actual":"fetching","check":"placeholder / cache-missing","expected":"fetching","passed":true},{"actual":"refreshing-cache","check":"cached-unverified / refresh-start","expected":"refreshing-cache","passed":true},{"actual":"ready","check":"refreshing-cache / fresh-nonempty","expected":"ready","passed":true},{"actual":"empty","check":"refreshing-cache / fresh-empty","expected":"empty","passed":true},{"actual":"stale-warning","check":"refreshing-cache / refresh-error","expected":"stale-warning","passed":true},{"actual":"ready","check":"fetching / fresh-nonempty","expected":"ready","passed":true},{"actual":"empty","check":"fetching / fresh-empty","expected":"empty","passed":true},{"actual":"load-error","check":"fetching / refresh-error","expected":"load-error","passed":true},{"actual":"refreshing-cache","check":"stale-warning / retry-refresh","expected":"refreshing-cache","passed":true},{"actual":"placeholder","check":"older notification incarnation","expected":"placeholder","passed":true},{"actual":"placeholder","check":"future notification incarnation","expected":"placeholder","passed":true},{"actual":"placeholder","check":"unknown event is inert","expected":"placeholder","passed":true},{"actual":"placeholder","check":"empty delivery batch","expected":"placeholder","passed":true},{"actual":"cached-unverified","check":"N stale deliveries before current delivery","expected":"cached-unverified","passed":true},{"actual":"refreshing-cache","check":"trace cache-found then refresh-start","expected":"refreshing-cache","passed":true},{"actual":"ready","check":"trace cache-missing then fresh-nonempty","expected":"ready","passed":true},{"actual":"empty","check":"trace cache-missing then fresh-empty","expected":"empty","passed":true},{"actual":"load-error","check":"trace cache-missing then refresh-error","expected":"load-error","passed":true},{"actual":"ready","check":"trace refresh-start then fresh-nonempty","expected":"ready","passed":true},{"actual":"empty","check":"trace refresh-start then fresh-empty","expected":"empty","passed":true},{"actual":"stale-warning","check":"trace refresh-start then refresh-error","expected":"stale-warning","passed":true},{"actual":"refreshing-cache","check":"trace refresh-error then retry-refresh","expected":"refreshing-cache","passed":true},{"actual":"ready","check":"trace retry-refresh then fresh-nonempty","expected":"ready","passed":true},{"actual":"empty","check":"trace retry-refresh then fresh-empty","expected":"empty","passed":true},{"actual":"stale-warning","check":"trace retry-refresh then refresh-error","expected":"stale-warning","passed":true},{"actual":{"phase":"refreshing-cache","value":["cached"]},"check":"domain state regression 1: rows","expected":{"phase":"refreshing-cache","value":["cached"]},"passed":true},{"actual":{"phase":"ready","value":["new"]},"check":"domain state regression 2: rows","expected":{"phase":"ready","value":["new"]},"passed":true},{"actual":{"phase":"stale-warning","value":["cached"]},"check":"domain state regression 3: rows","expected":{"phase":"stale-warning","value":["cached"]},"passed":true},{"actual":{"phase":"stale-warning","value":true},"check":"domain state regression 4: warning","expected":{"phase":"stale-warning","value":true},"passed":true},{"actual":{"phase":"empty","value":[]},"check":"domain state regression 5: rows","expected":{"phase":"empty","value":[]},"passed":true},{"actual":{"phase":"cached-unverified","value":["a","b"]},"check":"domain state regression 6: rows","expected":{"phase":"cached-unverified","value":["a","b"]},"passed":true},{"actual":{"phase":"stale-warning","value":["saved"]},"check":"domain state regression 7: rows","expected":{"phase":"stale-warning","value":["saved"]},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"placeholder / cache-found\", \"actual\": \"cached-unverified\", \"expected\": \"cached-unverified\", \"passed\": true}, {\"check\": \"placeholder / cache-missing\", \"actual\": \"fetching\", \"expected\": \"fetching\", \"passed\": true}, {\"check\": \"cached-unverified / refresh-start\", \"actual\": \"refreshing-cache\", \"expected\": \"refreshing-cache\", \"passed\": true}, {\"check\": \"refreshing-cache / fresh-nonempty\", \"actual\": \"ready\", \"expected\": \"ready\", \"passed\": true}, {\"check\": \"refreshing-cache / fresh-empty\", \"actual\": \"empty\", \"expected\": \"empty\", \"passed\": true}, {\"check\": \"refreshing-cache / refresh-error\", \"actual\": \"stale-warning\", \"expected\": \"stale-warning\", \"passed\": true}, {\"check\": \"fetching / fresh-nonempty\", \"actual\": \"ready\", \"expected\": \"ready\", \"passed\": true}, {\"check\": \"fetching / fresh-empty\", \"actual\": \"empty\", \"expected\": \"empty\", \"passed\": true}, {\"check\": \"fetching / refresh-error\", \"actual\": \"load-error\", \"expected\": \"load-error\", \"passed\": true}, {\"check\": \"stale-warning / retry-refresh\", \"actual\": \"refreshing-cache\", \"expected\": \"refreshing-cache\", \"passed\": true}, {\"check\": \"older notification incarnation\", \"actual\": \"placeholder\", \"expected\": \"placeholder\", \"passed\": true}, {\"check\": \"future notification incarnation\", \"actual\": \"placeholder\", \"expected\": \"placeholder\", \"passed\": true}, {\"check\": \"unknown event is inert\", \"actual\": \"placeholder\", \"expected\": \"placeholder\", \"passed\": true}, {\"check\": \"empty delivery batch\", \"actual\": \"placeholder\", \"expected\": \"placeholder\", \"passed\": true}, {\"check\": \"N stale deliveries before current delivery\", \"actual\": \"cached-unverified\", \"expected\": \"cached-unverified\", \"passed\": true}, {\"check\": \"trace cache-found then refresh-start\", \"actual\": \"refreshing-cache\", \"expected\": \"refreshing-cache\", \"passed\": true}, {\"check\": \"trace cache-missing then fresh-nonempty\", \"actual\": \"ready\", \"expected\": \"ready\", \"passed\": true}, {\"check\": \"trace cache-missing then fresh-empty\", \"actual\": \"empty\", \"expected\": \"empty\", \"passed\": true}, {\"check\": \"trace cache-missing then refresh-error\", \"actual\": \"load-error\", \"expected\": \"load-error\", \"passed\": true}, {\"check\": \"trace refresh-start then fresh-nonempty\", \"actual\": \"ready\", \"expected\": \"ready\", \"passed\": true}, {\"check\": \"trace refresh-start then fresh-empty\", \"actual\": \"empty\", \"expected\": \"empty\", \"passed\": true}, {\"check\": \"trace refresh-start then refresh-error\", \"actual\": \"stale-warning\", \"expected\": \"stale-warning\", \"passed\": true}, {\"check\": \"trace refresh-error then retry-refresh\", \"actual\": \"refreshing-cache\", \"expected\": \"refreshing-cache\", \"passed\": true}, {\"check\": \"trace retry-refresh then fresh-nonempty\", \"actual\": \"ready\", \"expected\": \"ready\", \"passed\": true}, {\"check\": \"trace retry-refresh then fresh-empty\", \"actual\": \"empty\", \"expected\": \"empty\", \"passed\": true}, {\"check\": \"trace retry-refresh then refresh-error\", \"actual\": \"stale-warning\", \"expected\": \"stale-warning\", \"passed\": true}, {\"check\": \"domain state regression 1: rows\", \"actual\": {\"phase\": \"refreshing-cache\", \"value\": [\"cached\"]}, \"expected\": {\"phase\": \"refreshing-cache\", \"value\": [\"cached\"]}, \"passed\": true}, {\"check\": \"domain state regression 2: rows\", \"actual\": {\"phase\": \"ready\", \"value\": [\"new\"]}, \"expected\": {\"phase\": \"ready\", \"value\": [\"new\"]}, \"passed\": true}, {\"check\": \"domain state regression 3: rows\", \"actual\": {\"phase\": \"stale-warning\", \"value\": [\"cached\"]}, \"expected\": {\"phase\": \"stale-warning\", \"value\": [\"cached\"]}, \"passed\": true}, {\"check\": \"domain state regression 4: warning\", \"actual\": {\"phase\": \"stale-warning\", \"value\": true}, \"expected\": {\"phase\": \"stale-warning\", \"value\": true}, \"passed\": true}, {\"check\": \"domain state regression 5: rows\", \"actual\": {\"phase\": \"empty\", \"value\": []}, \"expected\": {\"phase\": \"empty\", \"value\": []}, \"passed\": true}, {\"check\": \"domain state regression 6: rows\", \"actual\": {\"phase\": \"cached-unverified\", \"value\": [\"a\", \"b\"]}, \"expected\": {\"phase\": \"cached-unverified\", \"value\": [\"a\", \"b\"]}, \"passed\": true}, {\"check\": \"domain state regression 7: rows\", \"actual\": {\"phase\": \"stale-warning\", \"value\": [\"saved\"]}, \"expected\": {\"phase\": \"stale-warning\", \"value\": [\"saved\"]}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}