{"abstract":"Observed stale refetch.","category":"Client state","checks":60,"contract":"Client cache presence is independent of payload truthiness. Stale data remains visible during background refresh; first-load status requires absent data. Observers retain resources, and invalidation is idempotent per key. Operation observed-stale-refetch has the six explicit input/output oracles below.","evaluation_group":"s3-client-state-client-cache-view","failed_approach":"The partial repair `bool(observers)` still violates the explicit fixture contract.","family":"s3-client-state-client-cache-view-observed-stale-refetch","id":"FA-24031","implementations":{"attempt":{"sha256":"b48ddd54f14263fcf9ea4c24454d168dea452e6bce2367f9a70d91593a8a42f6","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(operation, s):\n    cache, key, stale, observers, fetching, error = s\n    if operation == 'cache-presence-not-truthiness':\n        return key in cache\n    if operation == 'stale-data-remains-visible':\n        return cache.get(key)\n    if operation == 'initial-vs-background-loading':\n        return fetching and key not in cache\n    if operation == 'observed-stale-refetch':\n        return bool(observers)\n    if operation == 'unobserved-garbage-collect':\n        return not observers and not fetching\n    if operation == 'resource-error-presence':\n        return error is not None\n    if operation == 'invalidate-one-resource':\n        return list(dict.fromkeys(stale+[key]))\n    if operation == 'evict-resource-key':\n        return {k:v for k,v in cache.items() if k!=key}\n    if operation == 'subscription-fanout-count':\n        return len(observers)\n    if operation == 'fetch-state-independent-of-data':\n        return 'fetching' if fetching else 'idle'\n    raise ValueError('unknown modeled operation')\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('cache-presence-not-truthiness scenario 1', solve('cache-presence-not-truthiness', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), True)\ncheck('cache-presence-not-truthiness scenario 2', solve('cache-presence-not-truthiness', ({'a':None},'a',[],[],False,'bad')), True)\ncheck('cache-presence-not-truthiness scenario 3', solve('cache-presence-not-truthiness', ({},'a',[],['screen'],True,None)), False)\ncheck('cache-presence-not-truthiness scenario 4', solve('cache-presence-not-truthiness', ({'a':0},'a',['a'],[],False,'')), True)\ncheck('cache-presence-not-truthiness scenario 5', solve('cache-presence-not-truthiness', ({'b':N},'b',[],['one','two'],False,None)), True)\ncheck('cache-presence-not-truthiness scenario 6', solve('cache-presence-not-truthiness', ({'a':[]},'a',['b'],[],True,None)), True)\ncheck('stale-data-remains-visible scenario 1', solve('stale-data-remains-visible', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), N)\ncheck('stale-data-remains-visible scenario 2', solve('stale-data-remains-visible', ({'a':None},'a',[],[],False,'bad')), None)\ncheck('stale-data-remains-visible scenario 3', solve('stale-data-remains-visible', ({},'a',[],['screen'],True,None)), None)\ncheck('stale-data-remains-visible scenario 4', solve('stale-data-remains-visible', ({'a':0},'a',['a'],[],False,'')), 0)\ncheck('stale-data-remains-visible scenario 5', solve('stale-data-remains-visible', ({'b':N},'b',[],['one','two'],False,None)), N)\ncheck('stale-data-remains-visible scenario 6', solve('stale-data-remains-visible', ({'a':[]},'a',['b'],[],True,None)), [])\ncheck('initial-vs-background-loading scenario 1', solve('initial-vs-background-loading', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), False)\ncheck('initial-vs-background-loading scenario 2', solve('initial-vs-background-loading', ({'a':None},'a',[],[],False,'bad')), False)\ncheck('initial-vs-background-loading scenario 3', solve('initial-vs-background-loading', ({},'a',[],['screen'],True,None)), True)\ncheck('initial-vs-background-loading scenario 4', solve('initial-vs-background-loading', ({'a':0},'a',['a'],[],False,'')), False)\ncheck('initial-vs-background-loading scenario 5', solve('initial-vs-background-loading', ({'b':N},'b',[],['one','two'],False,None)), False)\ncheck('initial-vs-background-loading scenario 6', solve('initial-vs-background-loading', ({'a':[]},'a',['b'],[],True,None)), False)\ncheck('observed-stale-refetch scenario 1', solve('observed-stale-refetch', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), True)\ncheck('observed-stale-refetch scenario 2', solve('observed-stale-refetch', ({'a':None},'a',[],[],False,'bad')), False)\ncheck('observed-stale-refetch scenario 3', solve('observed-stale-refetch', ({},'a',[],['screen'],True,None)), False)\ncheck('observed-stale-refetch scenario 4', solve('observed-stale-refetch', ({'a':0},'a',['a'],[],False,'')), False)\ncheck('observed-stale-refetch scenario 5', solve('observed-stale-refetch', ({'b':N},'b',[],['one','two'],False,None)), False)\ncheck('observed-stale-refetch scenario 6', solve('observed-stale-refetch', ({'a':[]},'a',['b'],[],True,None)), False)\ncheck('unobserved-garbage-collect scenario 1', solve('unobserved-garbage-collect', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), False)\ncheck('unobserved-garbage-collect scenario 2', solve('unobserved-garbage-collect', ({'a':None},'a',[],[],False,'bad')), True)\ncheck('unobserved-garbage-collect scenario 3', solve('unobserved-garbage-collect', ({},'a',[],['screen'],True,None)), False)\ncheck('unobserved-garbage-collect scenario 4', solve('unobserved-garbage-collect', ({'a':0},'a',['a'],[],False,'')), True)\ncheck('unobserved-garbage-collect scenario 5', solve('unobserved-garbage-collect', ({'b':N},'b',[],['one','two'],False,None)), False)\ncheck('unobserved-garbage-collect scenario 6', solve('unobserved-garbage-collect', ({'a':[]},'a',['b'],[],True,None)), False)\ncheck('resource-error-presence scenario 1', solve('resource-error-presence', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), False)\ncheck('resource-error-presence scenario 2', solve('resource-error-presence', ({'a':None},'a',[],[],False,'bad')), True)\ncheck('resource-error-presence scenario 3', solve('resource-error-presence', ({},'a',[],['screen'],True,None)), False)\ncheck('resource-error-presence scenario 4', solve('resource-error-presence', ({'a':0},'a',['a'],[],False,'')), True)\ncheck('resource-error-presence scenario 5', solve('resource-error-presence', ({'b':N},'b',[],['one','two'],False,None)), False)\ncheck('resource-error-presence scenario 6', solve('resource-error-presence', ({'a':[]},'a',['b'],[],True,None)), False)\ncheck('invalidate-one-resource scenario 1', solve('invalidate-one-resource', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), ['a'])\ncheck('invalidate-one-resource scenario 2', solve('invalidate-one-resource', ({'a':None},'a',[],[],False,'bad')), ['a'])\ncheck('invalidate-one-resource scenario 3', solve('invalidate-one-resource', ({},'a',[],['screen'],True,None)), ['a'])\ncheck('invalidate-one-resource scenario 4', solve('invalidate-one-resource', ({'a':0},'a',['a'],[],False,'')), ['a'])\ncheck('invalidate-one-resource scenario 5', solve('invalidate-one-resource', ({'b':N},'b',[],['one','two'],False,None)), ['b'])\ncheck('invalidate-one-resource scenario 6', solve('invalidate-one-resource', ({'a':[]},'a',['b'],[],True,None)), ['b','a'])\ncheck('evict-resource-key scenario 1', solve('evict-resource-key', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), {'b':0})\ncheck('evict-resource-key scenario 2', solve('evict-resource-key', ({'a':None},'a',[],[],False,'bad')), {})\ncheck('evict-resource-key scenario 3', solve('evict-resource-key', ({},'a',[],['screen'],True,None)), {})\ncheck('evict-resource-key scenario 4', solve('evict-resource-key', ({'a':0},'a',['a'],[],False,'')), {})\ncheck('evict-resource-key scenario 5', solve('evict-resource-key', ({'b':N},'b',[],['one','two'],False,None)), {})\ncheck('evict-resource-key scenario 6', solve('evict-resource-key', ({'a':[]},'a',['b'],[],True,None)), {})\ncheck('subscription-fanout-count scenario 1', solve('subscription-fanout-count', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), 1)\ncheck('subscription-fanout-count scenario 2', solve('subscription-fanout-count', ({'a':None},'a',[],[],False,'bad')), 0)\ncheck('subscription-fanout-count scenario 3', solve('subscription-fanout-count', ({},'a',[],['screen'],True,None)), 1)\ncheck('subscription-fanout-count scenario 4', solve('subscription-fanout-count', ({'a':0},'a',['a'],[],False,'')), 0)\ncheck('subscription-fanout-count scenario 5', solve('subscription-fanout-count', ({'b':N},'b',[],['one','two'],False,None)), 2)\ncheck('subscription-fanout-count scenario 6', solve('subscription-fanout-count', ({'a':[]},'a',['b'],[],True,None)), 0)\ncheck('fetch-state-independent-of-data scenario 1', solve('fetch-state-independent-of-data', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), 'fetching')\ncheck('fetch-state-independent-of-data scenario 2', solve('fetch-state-independent-of-data', ({'a':None},'a',[],[],False,'bad')), 'idle')\ncheck('fetch-state-independent-of-data scenario 3', solve('fetch-state-independent-of-data', ({},'a',[],['screen'],True,None)), 'fetching')\ncheck('fetch-state-independent-of-data scenario 4', solve('fetch-state-independent-of-data', ({'a':0},'a',['a'],[],False,'')), 'idle')\ncheck('fetch-state-independent-of-data scenario 5', solve('fetch-state-independent-of-data', ({'b':N},'b',[],['one','two'],False,None)), 'idle')\ncheck('fetch-state-independent-of-data scenario 6', solve('fetch-state-independent-of-data', ({'a':[]},'a',['b'],[],True,None)), 'fetching')\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":"d590b3b82b5e871454cefbb7c525e60e2e7b0f3c2626b6b2406edb8e04487580","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(operation, s):\n    cache, key, stale, observers, fetching, error = s\n    if operation == 'cache-presence-not-truthiness':\n        return key in cache\n    if operation == 'stale-data-remains-visible':\n        return cache.get(key)\n    if operation == 'initial-vs-background-loading':\n        return fetching and key not in cache\n    if operation == 'observed-stale-refetch':\n        return key in stale\n    if operation == 'unobserved-garbage-collect':\n        return not observers and not fetching\n    if operation == 'resource-error-presence':\n        return error is not None\n    if operation == 'invalidate-one-resource':\n        return list(dict.fromkeys(stale+[key]))\n    if operation == 'evict-resource-key':\n        return {k:v for k,v in cache.items() if k!=key}\n    if operation == 'subscription-fanout-count':\n        return len(observers)\n    if operation == 'fetch-state-independent-of-data':\n        return 'fetching' if fetching else 'idle'\n    raise ValueError('unknown modeled operation')\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('cache-presence-not-truthiness scenario 1', solve('cache-presence-not-truthiness', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), True)\ncheck('cache-presence-not-truthiness scenario 2', solve('cache-presence-not-truthiness', ({'a':None},'a',[],[],False,'bad')), True)\ncheck('cache-presence-not-truthiness scenario 3', solve('cache-presence-not-truthiness', ({},'a',[],['screen'],True,None)), False)\ncheck('cache-presence-not-truthiness scenario 4', solve('cache-presence-not-truthiness', ({'a':0},'a',['a'],[],False,'')), True)\ncheck('cache-presence-not-truthiness scenario 5', solve('cache-presence-not-truthiness', ({'b':N},'b',[],['one','two'],False,None)), True)\ncheck('cache-presence-not-truthiness scenario 6', solve('cache-presence-not-truthiness', ({'a':[]},'a',['b'],[],True,None)), True)\ncheck('stale-data-remains-visible scenario 1', solve('stale-data-remains-visible', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), N)\ncheck('stale-data-remains-visible scenario 2', solve('stale-data-remains-visible', ({'a':None},'a',[],[],False,'bad')), None)\ncheck('stale-data-remains-visible scenario 3', solve('stale-data-remains-visible', ({},'a',[],['screen'],True,None)), None)\ncheck('stale-data-remains-visible scenario 4', solve('stale-data-remains-visible', ({'a':0},'a',['a'],[],False,'')), 0)\ncheck('stale-data-remains-visible scenario 5', solve('stale-data-remains-visible', ({'b':N},'b',[],['one','two'],False,None)), N)\ncheck('stale-data-remains-visible scenario 6', solve('stale-data-remains-visible', ({'a':[]},'a',['b'],[],True,None)), [])\ncheck('initial-vs-background-loading scenario 1', solve('initial-vs-background-loading', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), False)\ncheck('initial-vs-background-loading scenario 2', solve('initial-vs-background-loading', ({'a':None},'a',[],[],False,'bad')), False)\ncheck('initial-vs-background-loading scenario 3', solve('initial-vs-background-loading', ({},'a',[],['screen'],True,None)), True)\ncheck('initial-vs-background-loading scenario 4', solve('initial-vs-background-loading', ({'a':0},'a',['a'],[],False,'')), False)\ncheck('initial-vs-background-loading scenario 5', solve('initial-vs-background-loading', ({'b':N},'b',[],['one','two'],False,None)), False)\ncheck('initial-vs-background-loading scenario 6', solve('initial-vs-background-loading', ({'a':[]},'a',['b'],[],True,None)), False)\ncheck('observed-stale-refetch scenario 1', solve('observed-stale-refetch', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), True)\ncheck('observed-stale-refetch scenario 2', solve('observed-stale-refetch', ({'a':None},'a',[],[],False,'bad')), False)\ncheck('observed-stale-refetch scenario 3', solve('observed-stale-refetch', ({},'a',[],['screen'],True,None)), False)\ncheck('observed-stale-refetch scenario 4', solve('observed-stale-refetch', ({'a':0},'a',['a'],[],False,'')), False)\ncheck('observed-stale-refetch scenario 5', solve('observed-stale-refetch', ({'b':N},'b',[],['one','two'],False,None)), False)\ncheck('observed-stale-refetch scenario 6', solve('observed-stale-refetch', ({'a':[]},'a',['b'],[],True,None)), False)\ncheck('unobserved-garbage-collect scenario 1', solve('unobserved-garbage-collect', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), False)\ncheck('unobserved-garbage-collect scenario 2', solve('unobserved-garbage-collect', ({'a':None},'a',[],[],False,'bad')), True)\ncheck('unobserved-garbage-collect scenario 3', solve('unobserved-garbage-collect', ({},'a',[],['screen'],True,None)), False)\ncheck('unobserved-garbage-collect scenario 4', solve('unobserved-garbage-collect', ({'a':0},'a',['a'],[],False,'')), True)\ncheck('unobserved-garbage-collect scenario 5', solve('unobserved-garbage-collect', ({'b':N},'b',[],['one','two'],False,None)), False)\ncheck('unobserved-garbage-collect scenario 6', solve('unobserved-garbage-collect', ({'a':[]},'a',['b'],[],True,None)), False)\ncheck('resource-error-presence scenario 1', solve('resource-error-presence', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), False)\ncheck('resource-error-presence scenario 2', solve('resource-error-presence', ({'a':None},'a',[],[],False,'bad')), True)\ncheck('resource-error-presence scenario 3', solve('resource-error-presence', ({},'a',[],['screen'],True,None)), False)\ncheck('resource-error-presence scenario 4', solve('resource-error-presence', ({'a':0},'a',['a'],[],False,'')), True)\ncheck('resource-error-presence scenario 5', solve('resource-error-presence', ({'b':N},'b',[],['one','two'],False,None)), False)\ncheck('resource-error-presence scenario 6', solve('resource-error-presence', ({'a':[]},'a',['b'],[],True,None)), False)\ncheck('invalidate-one-resource scenario 1', solve('invalidate-one-resource', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), ['a'])\ncheck('invalidate-one-resource scenario 2', solve('invalidate-one-resource', ({'a':None},'a',[],[],False,'bad')), ['a'])\ncheck('invalidate-one-resource scenario 3', solve('invalidate-one-resource', ({},'a',[],['screen'],True,None)), ['a'])\ncheck('invalidate-one-resource scenario 4', solve('invalidate-one-resource', ({'a':0},'a',['a'],[],False,'')), ['a'])\ncheck('invalidate-one-resource scenario 5', solve('invalidate-one-resource', ({'b':N},'b',[],['one','two'],False,None)), ['b'])\ncheck('invalidate-one-resource scenario 6', solve('invalidate-one-resource', ({'a':[]},'a',['b'],[],True,None)), ['b','a'])\ncheck('evict-resource-key scenario 1', solve('evict-resource-key', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), {'b':0})\ncheck('evict-resource-key scenario 2', solve('evict-resource-key', ({'a':None},'a',[],[],False,'bad')), {})\ncheck('evict-resource-key scenario 3', solve('evict-resource-key', ({},'a',[],['screen'],True,None)), {})\ncheck('evict-resource-key scenario 4', solve('evict-resource-key', ({'a':0},'a',['a'],[],False,'')), {})\ncheck('evict-resource-key scenario 5', solve('evict-resource-key', ({'b':N},'b',[],['one','two'],False,None)), {})\ncheck('evict-resource-key scenario 6', solve('evict-resource-key', ({'a':[]},'a',['b'],[],True,None)), {})\ncheck('subscription-fanout-count scenario 1', solve('subscription-fanout-count', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), 1)\ncheck('subscription-fanout-count scenario 2', solve('subscription-fanout-count', ({'a':None},'a',[],[],False,'bad')), 0)\ncheck('subscription-fanout-count scenario 3', solve('subscription-fanout-count', ({},'a',[],['screen'],True,None)), 1)\ncheck('subscription-fanout-count scenario 4', solve('subscription-fanout-count', ({'a':0},'a',['a'],[],False,'')), 0)\ncheck('subscription-fanout-count scenario 5', solve('subscription-fanout-count', ({'b':N},'b',[],['one','two'],False,None)), 2)\ncheck('subscription-fanout-count scenario 6', solve('subscription-fanout-count', ({'a':[]},'a',['b'],[],True,None)), 0)\ncheck('fetch-state-independent-of-data scenario 1', solve('fetch-state-independent-of-data', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), 'fetching')\ncheck('fetch-state-independent-of-data scenario 2', solve('fetch-state-independent-of-data', ({'a':None},'a',[],[],False,'bad')), 'idle')\ncheck('fetch-state-independent-of-data scenario 3', solve('fetch-state-independent-of-data', ({},'a',[],['screen'],True,None)), 'fetching')\ncheck('fetch-state-independent-of-data scenario 4', solve('fetch-state-independent-of-data', ({'a':0},'a',['a'],[],False,'')), 'idle')\ncheck('fetch-state-independent-of-data scenario 5', solve('fetch-state-independent-of-data', ({'b':N},'b',[],['one','two'],False,None)), 'idle')\ncheck('fetch-state-independent-of-data scenario 6', solve('fetch-state-independent-of-data', ({'a':[]},'a',['b'],[],True,None)), 'fetching')\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":"e79a3c9a981ba7a63d0965f25b8bf4d487396f28e28b977a600cf3a5ee458194","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(operation, s):\n    cache, key, stale, observers, fetching, error = s\n    if operation == 'cache-presence-not-truthiness':\n        return key in cache\n    if operation == 'stale-data-remains-visible':\n        return cache.get(key)\n    if operation == 'initial-vs-background-loading':\n        return fetching and key not in cache\n    if operation == 'observed-stale-refetch':\n        return key in stale and bool(observers)\n    if operation == 'unobserved-garbage-collect':\n        return not observers and not fetching\n    if operation == 'resource-error-presence':\n        return error is not None\n    if operation == 'invalidate-one-resource':\n        return list(dict.fromkeys(stale+[key]))\n    if operation == 'evict-resource-key':\n        return {k:v for k,v in cache.items() if k!=key}\n    if operation == 'subscription-fanout-count':\n        return len(observers)\n    if operation == 'fetch-state-independent-of-data':\n        return 'fetching' if fetching else 'idle'\n    raise ValueError('unknown modeled operation')\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('cache-presence-not-truthiness scenario 1', solve('cache-presence-not-truthiness', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), True)\ncheck('cache-presence-not-truthiness scenario 2', solve('cache-presence-not-truthiness', ({'a':None},'a',[],[],False,'bad')), True)\ncheck('cache-presence-not-truthiness scenario 3', solve('cache-presence-not-truthiness', ({},'a',[],['screen'],True,None)), False)\ncheck('cache-presence-not-truthiness scenario 4', solve('cache-presence-not-truthiness', ({'a':0},'a',['a'],[],False,'')), True)\ncheck('cache-presence-not-truthiness scenario 5', solve('cache-presence-not-truthiness', ({'b':N},'b',[],['one','two'],False,None)), True)\ncheck('cache-presence-not-truthiness scenario 6', solve('cache-presence-not-truthiness', ({'a':[]},'a',['b'],[],True,None)), True)\ncheck('stale-data-remains-visible scenario 1', solve('stale-data-remains-visible', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), N)\ncheck('stale-data-remains-visible scenario 2', solve('stale-data-remains-visible', ({'a':None},'a',[],[],False,'bad')), None)\ncheck('stale-data-remains-visible scenario 3', solve('stale-data-remains-visible', ({},'a',[],['screen'],True,None)), None)\ncheck('stale-data-remains-visible scenario 4', solve('stale-data-remains-visible', ({'a':0},'a',['a'],[],False,'')), 0)\ncheck('stale-data-remains-visible scenario 5', solve('stale-data-remains-visible', ({'b':N},'b',[],['one','two'],False,None)), N)\ncheck('stale-data-remains-visible scenario 6', solve('stale-data-remains-visible', ({'a':[]},'a',['b'],[],True,None)), [])\ncheck('initial-vs-background-loading scenario 1', solve('initial-vs-background-loading', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), False)\ncheck('initial-vs-background-loading scenario 2', solve('initial-vs-background-loading', ({'a':None},'a',[],[],False,'bad')), False)\ncheck('initial-vs-background-loading scenario 3', solve('initial-vs-background-loading', ({},'a',[],['screen'],True,None)), True)\ncheck('initial-vs-background-loading scenario 4', solve('initial-vs-background-loading', ({'a':0},'a',['a'],[],False,'')), False)\ncheck('initial-vs-background-loading scenario 5', solve('initial-vs-background-loading', ({'b':N},'b',[],['one','two'],False,None)), False)\ncheck('initial-vs-background-loading scenario 6', solve('initial-vs-background-loading', ({'a':[]},'a',['b'],[],True,None)), False)\ncheck('observed-stale-refetch scenario 1', solve('observed-stale-refetch', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), True)\ncheck('observed-stale-refetch scenario 2', solve('observed-stale-refetch', ({'a':None},'a',[],[],False,'bad')), False)\ncheck('observed-stale-refetch scenario 3', solve('observed-stale-refetch', ({},'a',[],['screen'],True,None)), False)\ncheck('observed-stale-refetch scenario 4', solve('observed-stale-refetch', ({'a':0},'a',['a'],[],False,'')), False)\ncheck('observed-stale-refetch scenario 5', solve('observed-stale-refetch', ({'b':N},'b',[],['one','two'],False,None)), False)\ncheck('observed-stale-refetch scenario 6', solve('observed-stale-refetch', ({'a':[]},'a',['b'],[],True,None)), False)\ncheck('unobserved-garbage-collect scenario 1', solve('unobserved-garbage-collect', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), False)\ncheck('unobserved-garbage-collect scenario 2', solve('unobserved-garbage-collect', ({'a':None},'a',[],[],False,'bad')), True)\ncheck('unobserved-garbage-collect scenario 3', solve('unobserved-garbage-collect', ({},'a',[],['screen'],True,None)), False)\ncheck('unobserved-garbage-collect scenario 4', solve('unobserved-garbage-collect', ({'a':0},'a',['a'],[],False,'')), True)\ncheck('unobserved-garbage-collect scenario 5', solve('unobserved-garbage-collect', ({'b':N},'b',[],['one','two'],False,None)), False)\ncheck('unobserved-garbage-collect scenario 6', solve('unobserved-garbage-collect', ({'a':[]},'a',['b'],[],True,None)), False)\ncheck('resource-error-presence scenario 1', solve('resource-error-presence', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), False)\ncheck('resource-error-presence scenario 2', solve('resource-error-presence', ({'a':None},'a',[],[],False,'bad')), True)\ncheck('resource-error-presence scenario 3', solve('resource-error-presence', ({},'a',[],['screen'],True,None)), False)\ncheck('resource-error-presence scenario 4', solve('resource-error-presence', ({'a':0},'a',['a'],[],False,'')), True)\ncheck('resource-error-presence scenario 5', solve('resource-error-presence', ({'b':N},'b',[],['one','two'],False,None)), False)\ncheck('resource-error-presence scenario 6', solve('resource-error-presence', ({'a':[]},'a',['b'],[],True,None)), False)\ncheck('invalidate-one-resource scenario 1', solve('invalidate-one-resource', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), ['a'])\ncheck('invalidate-one-resource scenario 2', solve('invalidate-one-resource', ({'a':None},'a',[],[],False,'bad')), ['a'])\ncheck('invalidate-one-resource scenario 3', solve('invalidate-one-resource', ({},'a',[],['screen'],True,None)), ['a'])\ncheck('invalidate-one-resource scenario 4', solve('invalidate-one-resource', ({'a':0},'a',['a'],[],False,'')), ['a'])\ncheck('invalidate-one-resource scenario 5', solve('invalidate-one-resource', ({'b':N},'b',[],['one','two'],False,None)), ['b'])\ncheck('invalidate-one-resource scenario 6', solve('invalidate-one-resource', ({'a':[]},'a',['b'],[],True,None)), ['b','a'])\ncheck('evict-resource-key scenario 1', solve('evict-resource-key', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), {'b':0})\ncheck('evict-resource-key scenario 2', solve('evict-resource-key', ({'a':None},'a',[],[],False,'bad')), {})\ncheck('evict-resource-key scenario 3', solve('evict-resource-key', ({},'a',[],['screen'],True,None)), {})\ncheck('evict-resource-key scenario 4', solve('evict-resource-key', ({'a':0},'a',['a'],[],False,'')), {})\ncheck('evict-resource-key scenario 5', solve('evict-resource-key', ({'b':N},'b',[],['one','two'],False,None)), {})\ncheck('evict-resource-key scenario 6', solve('evict-resource-key', ({'a':[]},'a',['b'],[],True,None)), {})\ncheck('subscription-fanout-count scenario 1', solve('subscription-fanout-count', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), 1)\ncheck('subscription-fanout-count scenario 2', solve('subscription-fanout-count', ({'a':None},'a',[],[],False,'bad')), 0)\ncheck('subscription-fanout-count scenario 3', solve('subscription-fanout-count', ({},'a',[],['screen'],True,None)), 1)\ncheck('subscription-fanout-count scenario 4', solve('subscription-fanout-count', ({'a':0},'a',['a'],[],False,'')), 0)\ncheck('subscription-fanout-count scenario 5', solve('subscription-fanout-count', ({'b':N},'b',[],['one','two'],False,None)), 2)\ncheck('subscription-fanout-count scenario 6', solve('subscription-fanout-count', ({'a':[]},'a',['b'],[],True,None)), 0)\ncheck('fetch-state-independent-of-data scenario 1', solve('fetch-state-independent-of-data', ({'a':N,'b':0},'a',['a'],['screen'],True,None)), 'fetching')\ncheck('fetch-state-independent-of-data scenario 2', solve('fetch-state-independent-of-data', ({'a':None},'a',[],[],False,'bad')), 'idle')\ncheck('fetch-state-independent-of-data scenario 3', solve('fetch-state-independent-of-data', ({},'a',[],['screen'],True,None)), 'fetching')\ncheck('fetch-state-independent-of-data scenario 4', solve('fetch-state-independent-of-data', ({'a':0},'a',['a'],[],False,'')), 'idle')\ncheck('fetch-state-independent-of-data scenario 5', solve('fetch-state-independent-of-data', ({'b':N},'b',[],['one','two'],False,None)), 'idle')\ncheck('fetch-state-independent-of-data scenario 6', solve('fetch-state-independent-of-data', ({'a':[]},'a',['b'],[],True,None)), 'fetching')\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":"Only the explicitly specified operations and finite deterministic records are modeled; no browser or framework conformance is claimed. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"s3-client-state-client-cache-view-observed-stale-refetch","generated_at":"2026-09-29T14:40:53.395257+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"An offline client lifecycle model that isolates a state-management defect without DOM rendering or network services.","repair":"Apply the modeled observed-stale-refetch rule: `key in stale and bool(observers)`.","root_cause":"The observed-stale-refetch client decision evaluates `key in stale` instead of `key in stale and bool(observers)`.","sha256":"304a4b1f42c484c17476a90a4795ec70fc0cdee842dab97f980710333342863a","title":"Observable client resource cache: Observed stale refetch · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.608,"exit_code":1,"observations":[{"actual":true,"check":"cache-presence-not-truthiness scenario 1","expected":true,"passed":true},{"actual":true,"check":"cache-presence-not-truthiness scenario 2","expected":true,"passed":true},{"actual":false,"check":"cache-presence-not-truthiness scenario 3","expected":false,"passed":true},{"actual":true,"check":"cache-presence-not-truthiness scenario 4","expected":true,"passed":true},{"actual":true,"check":"cache-presence-not-truthiness scenario 5","expected":true,"passed":true},{"actual":true,"check":"cache-presence-not-truthiness scenario 6","expected":true,"passed":true},{"actual":1,"check":"stale-data-remains-visible scenario 1","expected":1,"passed":true},{"actual":null,"check":"stale-data-remains-visible scenario 2","expected":null,"passed":true},{"actual":null,"check":"stale-data-remains-visible scenario 3","expected":null,"passed":true},{"actual":0,"check":"stale-data-remains-visible scenario 4","expected":0,"passed":true},{"actual":1,"check":"stale-data-remains-visible scenario 5","expected":1,"passed":true},{"actual":[],"check":"stale-data-remains-visible scenario 6","expected":[],"passed":true},{"actual":false,"check":"initial-vs-background-loading scenario 1","expected":false,"passed":true},{"actual":false,"check":"initial-vs-background-loading scenario 2","expected":false,"passed":true},{"actual":true,"check":"initial-vs-background-loading scenario 3","expected":true,"passed":true},{"actual":false,"check":"initial-vs-background-loading scenario 4","expected":false,"passed":true},{"actual":false,"check":"initial-vs-background-loading scenario 5","expected":false,"passed":true},{"actual":false,"check":"initial-vs-background-loading scenario 6","expected":false,"passed":true},{"actual":true,"check":"observed-stale-refetch scenario 1","expected":true,"passed":true},{"actual":false,"check":"observed-stale-refetch scenario 2","expected":false,"passed":true},{"actual":true,"check":"observed-stale-refetch scenario 3","expected":false,"passed":false},{"actual":false,"check":"observed-stale-refetch scenario 4","expected":false,"passed":true},{"actual":true,"check":"observed-stale-refetch scenario 5","expected":false,"passed":false},{"actual":false,"check":"observed-stale-refetch scenario 6","expected":false,"passed":true},{"actual":false,"check":"unobserved-garbage-collect scenario 1","expected":false,"passed":true},{"actual":true,"check":"unobserved-garbage-collect scenario 2","expected":true,"passed":true},{"actual":false,"check":"unobserved-garbage-collect scenario 3","expected":false,"passed":true},{"actual":true,"check":"unobserved-garbage-collect scenario 4","expected":true,"passed":true},{"actual":false,"check":"unobserved-garbage-collect scenario 5","expected":false,"passed":true},{"actual":false,"check":"unobserved-garbage-collect scenario 6","expected":false,"passed":true},{"actual":false,"check":"resource-error-presence scenario 1","expected":false,"passed":true},{"actual":true,"check":"resource-error-presence scenario 2","expected":true,"passed":true},{"actual":false,"check":"resource-error-presence scenario 3","expected":false,"passed":true},{"actual":true,"check":"resource-error-presence scenario 4","expected":true,"passed":true},{"actual":false,"check":"resource-error-presence scenario 5","expected":false,"passed":true},{"actual":false,"check":"resource-error-presence scenario 6","expected":false,"passed":true},{"actual":["a"],"check":"invalidate-one-resource scenario 1","expected":["a"],"passed":true},{"actual":["a"],"check":"invalidate-one-resource scenario 2","expected":["a"],"passed":true},{"actual":["a"],"check":"invalidate-one-resource scenario 3","expected":["a"],"passed":true},{"actual":["a"],"check":"invalidate-one-resource scenario 4","expected":["a"],"passed":true},{"actual":["b"],"check":"invalidate-one-resource scenario 5","expected":["b"],"passed":true},{"actual":["b","a"],"check":"invalidate-one-resource scenario 6","expected":["b","a"],"passed":true},{"actual":{"b":0},"check":"evict-resource-key scenario 1","expected":{"b":0},"passed":true},{"actual":{},"check":"evict-resource-key scenario 2","expected":{},"passed":true},{"actual":{},"check":"evict-resource-key scenario 3","expected":{},"passed":true},{"actual":{},"check":"evict-resource-key scenario 4","expected":{},"passed":true},{"actual":{},"check":"evict-resource-key scenario 5","expected":{},"passed":true},{"actual":{},"check":"evict-resource-key scenario 6","expected":{},"passed":true},{"actual":1,"check":"subscription-fanout-count scenario 1","expected":1,"passed":true},{"actual":0,"check":"subscription-fanout-count scenario 2","expected":0,"passed":true},{"actual":1,"check":"subscription-fanout-count scenario 3","expected":1,"passed":true},{"actual":0,"check":"subscription-fanout-count scenario 4","expected":0,"passed":true},{"actual":2,"check":"subscription-fanout-count scenario 5","expected":2,"passed":true},{"actual":0,"check":"subscription-fanout-count scenario 6","expected":0,"passed":true},{"actual":"fetching","check":"fetch-state-independent-of-data scenario 1","expected":"fetching","passed":true},{"actual":"idle","check":"fetch-state-independent-of-data scenario 2","expected":"idle","passed":true},{"actual":"fetching","check":"fetch-state-independent-of-data scenario 3","expected":"fetching","passed":true},{"actual":"idle","check":"fetch-state-independent-of-data scenario 4","expected":"idle","passed":true},{"actual":"idle","check":"fetch-state-independent-of-data scenario 5","expected":"idle","passed":true},{"actual":"fetching","check":"fetch-state-independent-of-data scenario 6","expected":"fetching","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"cache-presence-not-truthiness scenario 1\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"cache-presence-not-truthiness scenario 2\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"cache-presence-not-truthiness scenario 3\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"cache-presence-not-truthiness scenario 4\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"cache-presence-not-truthiness scenario 5\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"cache-presence-not-truthiness scenario 6\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"stale-data-remains-visible scenario 1\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"stale-data-remains-visible scenario 2\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"stale-data-remains-visible scenario 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"stale-data-remains-visible scenario 4\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"stale-data-remains-visible scenario 5\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"stale-data-remains-visible scenario 6\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"initial-vs-background-loading scenario 1\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"initial-vs-background-loading scenario 2\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"initial-vs-background-loading scenario 3\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"initial-vs-background-loading scenario 4\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"initial-vs-background-loading scenario 5\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"initial-vs-background-loading scenario 6\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"observed-stale-refetch scenario 1\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"observed-stale-refetch scenario 2\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"observed-stale-refetch scenario 3\", \"actual\": true, \"expected\": false, \"passed\": false}, {\"check\": \"observed-stale-refetch scenario 4\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"observed-stale-refetch scenario 5\", \"actual\": true, \"expected\": false, \"passed\": false}, {\"check\": \"observed-stale-refetch scenario 6\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"unobserved-garbage-collect scenario 1\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"unobserved-garbage-collect scenario 2\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"unobserved-garbage-collect scenario 3\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"unobserved-garbage-collect scenario 4\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"unobserved-garbage-collect scenario 5\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"unobserved-garbage-collect scenario 6\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"resource-error-presence scenario 1\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"resource-error-presence scenario 2\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"resource-error-presence scenario 3\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"resource-error-presence scenario 4\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"resource-error-presence scenario 5\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"resource-error-presence scenario 6\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"invalidate-one-resource scenario 1\", \"actual\": [\"a\"], \"expected\": [\"a\"], \"passed\": true}, {\"check\": \"invalidate-one-resource scenario 2\", \"actual\": [\"a\"], \"expected\": [\"a\"], \"passed\": true}, {\"check\": \"invalidate-one-resource scenario 3\", \"actual\": [\"a\"], \"expected\": [\"a\"], \"passed\": true}, {\"check\": \"invalidate-one-resource scenario 4\", \"actual\": [\"a\"], \"expected\": [\"a\"], \"passed\": true}, {\"check\": \"invalidate-one-resource scenario 5\", \"actual\": [\"b\"], \"expected\": [\"b\"], \"passed\": true}, {\"check\": \"invalidate-one-resource scenario 6\", \"actual\": [\"b\", \"a\"], \"expected\": [\"b\", \"a\"], \"passed\": true}, {\"check\": \"evict-resource-key scenario 1\", \"actual\": {\"b\": 0}, \"expected\": {\"b\": 0}, \"passed\": true}, {\"check\": \"evict-resource-key scenario 2\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"evict-resource-key scenario 3\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"evict-resource-key scenario 4\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"evict-resource-key scenario 5\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"evict-resource-key scenario 6\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"subscription-fanout-count scenario 1\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"subscription-fanout-count scenario 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"subscription-fanout-count scenario 3\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"subscription-fanout-count scenario 4\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"subscription-fanout-count scenario 5\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"subscription-fanout-count scenario 6\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"fetch-state-independent-of-data scenario 1\", \"actual\": \"fetching\", \"expected\": \"fetching\", \"passed\": true}, {\"check\": \"fetch-state-independent-of-data scenario 2\", \"actual\": \"idle\", \"expected\": \"idle\", \"passed\": true}, {\"check\": \"fetch-state-independent-of-data scenario 3\", \"actual\": \"fetching\", \"expected\": \"fetching\", \"passed\": true}, {\"check\": \"fetch-state-independent-of-data scenario 4\", \"actual\": \"idle\", \"expected\": \"idle\", \"passed\": true}, {\"check\": \"fetch-state-independent-of-data scenario 5\", \"actual\": \"idle\", \"expected\": \"idle\", \"passed\": true}, {\"check\": \"fetch-state-independent-of-data scenario 6\", \"actual\": \"fetching\", \"expected\": \"fetching\", \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.193,"exit_code":1,"observations":[{"actual":true,"check":"cache-presence-not-truthiness scenario 1","expected":true,"passed":true},{"actual":true,"check":"cache-presence-not-truthiness scenario 2","expected":true,"passed":true},{"actual":false,"check":"cache-presence-not-truthiness scenario 3","expected":false,"passed":true},{"actual":true,"check":"cache-presence-not-truthiness scenario 4","expected":true,"passed":true},{"actual":true,"check":"cache-presence-not-truthiness scenario 5","expected":true,"passed":true},{"actual":true,"check":"cache-presence-not-truthiness scenario 6","expected":true,"passed":true},{"actual":1,"check":"stale-data-remains-visible scenario 1","expected":1,"passed":true},{"actual":null,"check":"stale-data-remains-visible scenario 2","expected":null,"passed":true},{"actual":null,"check":"stale-data-remains-visible scenario 3","expected":null,"passed":true},{"actual":0,"check":"stale-data-remains-visible scenario 4","expected":0,"passed":true},{"actual":1,"check":"stale-data-remains-visible scenario 5","expected":1,"passed":true},{"actual":[],"check":"stale-data-remains-visible scenario 6","expected":[],"passed":true},{"actual":false,"check":"initial-vs-background-loading scenario 1","expected":false,"passed":true},{"actual":false,"check":"initial-vs-background-loading scenario 2","expected":false,"passed":true},{"actual":true,"check":"initial-vs-background-loading scenario 3","expected":true,"passed":true},{"actual":false,"check":"initial-vs-background-loading scenario 4","expected":false,"passed":true},{"actual":false,"check":"initial-vs-background-loading scenario 5","expected":false,"passed":true},{"actual":false,"check":"initial-vs-background-loading scenario 6","expected":false,"passed":true},{"actual":true,"check":"observed-stale-refetch scenario 1","expected":true,"passed":true},{"actual":false,"check":"observed-stale-refetch scenario 2","expected":false,"passed":true},{"actual":false,"check":"observed-stale-refetch scenario 3","expected":false,"passed":true},{"actual":true,"check":"observed-stale-refetch scenario 4","expected":false,"passed":false},{"actual":false,"check":"observed-stale-refetch scenario 5","expected":false,"passed":true},{"actual":false,"check":"observed-stale-refetch scenario 6","expected":false,"passed":true},{"actual":false,"check":"unobserved-garbage-collect scenario 1","expected":false,"passed":true},{"actual":true,"check":"unobserved-garbage-collect scenario 2","expected":true,"passed":true},{"actual":false,"check":"unobserved-garbage-collect scenario 3","expected":false,"passed":true},{"actual":true,"check":"unobserved-garbage-collect scenario 4","expected":true,"passed":true},{"actual":false,"check":"unobserved-garbage-collect scenario 5","expected":false,"passed":true},{"actual":false,"check":"unobserved-garbage-collect scenario 6","expected":false,"passed":true},{"actual":false,"check":"resource-error-presence scenario 1","expected":false,"passed":true},{"actual":true,"check":"resource-error-presence scenario 2","expected":true,"passed":true},{"actual":false,"check":"resource-error-presence scenario 3","expected":false,"passed":true},{"actual":true,"check":"resource-error-presence scenario 4","expected":true,"passed":true},{"actual":false,"check":"resource-error-presence scenario 5","expected":false,"passed":true},{"actual":false,"check":"resource-error-presence scenario 6","expected":false,"passed":true},{"actual":["a"],"check":"invalidate-one-resource scenario 1","expected":["a"],"passed":true},{"actual":["a"],"check":"invalidate-one-resource scenario 2","expected":["a"],"passed":true},{"actual":["a"],"check":"invalidate-one-resource scenario 3","expected":["a"],"passed":true},{"actual":["a"],"check":"invalidate-one-resource scenario 4","expected":["a"],"passed":true},{"actual":["b"],"check":"invalidate-one-resource scenario 5","expected":["b"],"passed":true},{"actual":["b","a"],"check":"invalidate-one-resource scenario 6","expected":["b","a"],"passed":true},{"actual":{"b":0},"check":"evict-resource-key scenario 1","expected":{"b":0},"passed":true},{"actual":{},"check":"evict-resource-key scenario 2","expected":{},"passed":true},{"actual":{},"check":"evict-resource-key scenario 3","expected":{},"passed":true},{"actual":{},"check":"evict-resource-key scenario 4","expected":{},"passed":true},{"actual":{},"check":"evict-resource-key scenario 5","expected":{},"passed":true},{"actual":{},"check":"evict-resource-key scenario 6","expected":{},"passed":true},{"actual":1,"check":"subscription-fanout-count scenario 1","expected":1,"passed":true},{"actual":0,"check":"subscription-fanout-count scenario 2","expected":0,"passed":true},{"actual":1,"check":"subscription-fanout-count scenario 3","expected":1,"passed":true},{"actual":0,"check":"subscription-fanout-count scenario 4","expected":0,"passed":true},{"actual":2,"check":"subscription-fanout-count scenario 5","expected":2,"passed":true},{"actual":0,"check":"subscription-fanout-count scenario 6","expected":0,"passed":true},{"actual":"fetching","check":"fetch-state-independent-of-data scenario 1","expected":"fetching","passed":true},{"actual":"idle","check":"fetch-state-independent-of-data scenario 2","expected":"idle","passed":true},{"actual":"fetching","check":"fetch-state-independent-of-data scenario 3","expected":"fetching","passed":true},{"actual":"idle","check":"fetch-state-independent-of-data scenario 4","expected":"idle","passed":true},{"actual":"idle","check":"fetch-state-independent-of-data scenario 5","expected":"idle","passed":true},{"actual":"fetching","check":"fetch-state-independent-of-data scenario 6","expected":"fetching","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"cache-presence-not-truthiness scenario 1\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"cache-presence-not-truthiness scenario 2\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"cache-presence-not-truthiness scenario 3\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"cache-presence-not-truthiness scenario 4\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"cache-presence-not-truthiness scenario 5\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"cache-presence-not-truthiness scenario 6\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"stale-data-remains-visible scenario 1\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"stale-data-remains-visible scenario 2\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"stale-data-remains-visible scenario 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"stale-data-remains-visible scenario 4\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"stale-data-remains-visible scenario 5\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"stale-data-remains-visible scenario 6\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"initial-vs-background-loading scenario 1\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"initial-vs-background-loading scenario 2\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"initial-vs-background-loading scenario 3\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"initial-vs-background-loading scenario 4\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"initial-vs-background-loading scenario 5\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"initial-vs-background-loading scenario 6\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"observed-stale-refetch scenario 1\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"observed-stale-refetch scenario 2\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"observed-stale-refetch scenario 3\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"observed-stale-refetch scenario 4\", \"actual\": true, \"expected\": false, \"passed\": false}, {\"check\": \"observed-stale-refetch scenario 5\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"observed-stale-refetch scenario 6\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"unobserved-garbage-collect scenario 1\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"unobserved-garbage-collect scenario 2\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"unobserved-garbage-collect scenario 3\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"unobserved-garbage-collect scenario 4\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"unobserved-garbage-collect scenario 5\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"unobserved-garbage-collect scenario 6\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"resource-error-presence scenario 1\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"resource-error-presence scenario 2\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"resource-error-presence scenario 3\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"resource-error-presence scenario 4\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"resource-error-presence scenario 5\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"resource-error-presence scenario 6\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"invalidate-one-resource scenario 1\", \"actual\": [\"a\"], \"expected\": [\"a\"], \"passed\": true}, {\"check\": \"invalidate-one-resource scenario 2\", \"actual\": [\"a\"], \"expected\": [\"a\"], \"passed\": true}, {\"check\": \"invalidate-one-resource scenario 3\", \"actual\": [\"a\"], \"expected\": [\"a\"], \"passed\": true}, {\"check\": \"invalidate-one-resource scenario 4\", \"actual\": [\"a\"], \"expected\": [\"a\"], \"passed\": true}, {\"check\": \"invalidate-one-resource scenario 5\", \"actual\": [\"b\"], \"expected\": [\"b\"], \"passed\": true}, {\"check\": \"invalidate-one-resource scenario 6\", \"actual\": [\"b\", \"a\"], \"expected\": [\"b\", \"a\"], \"passed\": true}, {\"check\": \"evict-resource-key scenario 1\", \"actual\": {\"b\": 0}, \"expected\": {\"b\": 0}, \"passed\": true}, {\"check\": \"evict-resource-key scenario 2\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"evict-resource-key scenario 3\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"evict-resource-key scenario 4\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"evict-resource-key scenario 5\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"evict-resource-key scenario 6\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"subscription-fanout-count scenario 1\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"subscription-fanout-count scenario 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"subscription-fanout-count scenario 3\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"subscription-fanout-count scenario 4\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"subscription-fanout-count scenario 5\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"subscription-fanout-count scenario 6\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"fetch-state-independent-of-data scenario 1\", \"actual\": \"fetching\", \"expected\": \"fetching\", \"passed\": true}, {\"check\": \"fetch-state-independent-of-data scenario 2\", \"actual\": \"idle\", \"expected\": \"idle\", \"passed\": true}, {\"check\": \"fetch-state-independent-of-data scenario 3\", \"actual\": \"fetching\", \"expected\": \"fetching\", \"passed\": true}, {\"check\": \"fetch-state-independent-of-data scenario 4\", \"actual\": \"idle\", \"expected\": \"idle\", \"passed\": true}, {\"check\": \"fetch-state-independent-of-data scenario 5\", \"actual\": \"idle\", \"expected\": \"idle\", \"passed\": true}, {\"check\": \"fetch-state-independent-of-data scenario 6\", \"actual\": \"fetching\", \"expected\": \"fetching\", \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.649,"exit_code":0,"observations":[{"actual":true,"check":"cache-presence-not-truthiness scenario 1","expected":true,"passed":true},{"actual":true,"check":"cache-presence-not-truthiness scenario 2","expected":true,"passed":true},{"actual":false,"check":"cache-presence-not-truthiness scenario 3","expected":false,"passed":true},{"actual":true,"check":"cache-presence-not-truthiness scenario 4","expected":true,"passed":true},{"actual":true,"check":"cache-presence-not-truthiness scenario 5","expected":true,"passed":true},{"actual":true,"check":"cache-presence-not-truthiness scenario 6","expected":true,"passed":true},{"actual":1,"check":"stale-data-remains-visible scenario 1","expected":1,"passed":true},{"actual":null,"check":"stale-data-remains-visible scenario 2","expected":null,"passed":true},{"actual":null,"check":"stale-data-remains-visible scenario 3","expected":null,"passed":true},{"actual":0,"check":"stale-data-remains-visible scenario 4","expected":0,"passed":true},{"actual":1,"check":"stale-data-remains-visible scenario 5","expected":1,"passed":true},{"actual":[],"check":"stale-data-remains-visible scenario 6","expected":[],"passed":true},{"actual":false,"check":"initial-vs-background-loading scenario 1","expected":false,"passed":true},{"actual":false,"check":"initial-vs-background-loading scenario 2","expected":false,"passed":true},{"actual":true,"check":"initial-vs-background-loading scenario 3","expected":true,"passed":true},{"actual":false,"check":"initial-vs-background-loading scenario 4","expected":false,"passed":true},{"actual":false,"check":"initial-vs-background-loading scenario 5","expected":false,"passed":true},{"actual":false,"check":"initial-vs-background-loading scenario 6","expected":false,"passed":true},{"actual":true,"check":"observed-stale-refetch scenario 1","expected":true,"passed":true},{"actual":false,"check":"observed-stale-refetch scenario 2","expected":false,"passed":true},{"actual":false,"check":"observed-stale-refetch scenario 3","expected":false,"passed":true},{"actual":false,"check":"observed-stale-refetch scenario 4","expected":false,"passed":true},{"actual":false,"check":"observed-stale-refetch scenario 5","expected":false,"passed":true},{"actual":false,"check":"observed-stale-refetch scenario 6","expected":false,"passed":true},{"actual":false,"check":"unobserved-garbage-collect scenario 1","expected":false,"passed":true},{"actual":true,"check":"unobserved-garbage-collect scenario 2","expected":true,"passed":true},{"actual":false,"check":"unobserved-garbage-collect scenario 3","expected":false,"passed":true},{"actual":true,"check":"unobserved-garbage-collect scenario 4","expected":true,"passed":true},{"actual":false,"check":"unobserved-garbage-collect scenario 5","expected":false,"passed":true},{"actual":false,"check":"unobserved-garbage-collect scenario 6","expected":false,"passed":true},{"actual":false,"check":"resource-error-presence scenario 1","expected":false,"passed":true},{"actual":true,"check":"resource-error-presence scenario 2","expected":true,"passed":true},{"actual":false,"check":"resource-error-presence scenario 3","expected":false,"passed":true},{"actual":true,"check":"resource-error-presence scenario 4","expected":true,"passed":true},{"actual":false,"check":"resource-error-presence scenario 5","expected":false,"passed":true},{"actual":false,"check":"resource-error-presence scenario 6","expected":false,"passed":true},{"actual":["a"],"check":"invalidate-one-resource scenario 1","expected":["a"],"passed":true},{"actual":["a"],"check":"invalidate-one-resource scenario 2","expected":["a"],"passed":true},{"actual":["a"],"check":"invalidate-one-resource scenario 3","expected":["a"],"passed":true},{"actual":["a"],"check":"invalidate-one-resource scenario 4","expected":["a"],"passed":true},{"actual":["b"],"check":"invalidate-one-resource scenario 5","expected":["b"],"passed":true},{"actual":["b","a"],"check":"invalidate-one-resource scenario 6","expected":["b","a"],"passed":true},{"actual":{"b":0},"check":"evict-resource-key scenario 1","expected":{"b":0},"passed":true},{"actual":{},"check":"evict-resource-key scenario 2","expected":{},"passed":true},{"actual":{},"check":"evict-resource-key scenario 3","expected":{},"passed":true},{"actual":{},"check":"evict-resource-key scenario 4","expected":{},"passed":true},{"actual":{},"check":"evict-resource-key scenario 5","expected":{},"passed":true},{"actual":{},"check":"evict-resource-key scenario 6","expected":{},"passed":true},{"actual":1,"check":"subscription-fanout-count scenario 1","expected":1,"passed":true},{"actual":0,"check":"subscription-fanout-count scenario 2","expected":0,"passed":true},{"actual":1,"check":"subscription-fanout-count scenario 3","expected":1,"passed":true},{"actual":0,"check":"subscription-fanout-count scenario 4","expected":0,"passed":true},{"actual":2,"check":"subscription-fanout-count scenario 5","expected":2,"passed":true},{"actual":0,"check":"subscription-fanout-count scenario 6","expected":0,"passed":true},{"actual":"fetching","check":"fetch-state-independent-of-data scenario 1","expected":"fetching","passed":true},{"actual":"idle","check":"fetch-state-independent-of-data scenario 2","expected":"idle","passed":true},{"actual":"fetching","check":"fetch-state-independent-of-data scenario 3","expected":"fetching","passed":true},{"actual":"idle","check":"fetch-state-independent-of-data scenario 4","expected":"idle","passed":true},{"actual":"idle","check":"fetch-state-independent-of-data scenario 5","expected":"idle","passed":true},{"actual":"fetching","check":"fetch-state-independent-of-data scenario 6","expected":"fetching","passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"cache-presence-not-truthiness scenario 1\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"cache-presence-not-truthiness scenario 2\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"cache-presence-not-truthiness scenario 3\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"cache-presence-not-truthiness scenario 4\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"cache-presence-not-truthiness scenario 5\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"cache-presence-not-truthiness scenario 6\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"stale-data-remains-visible scenario 1\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"stale-data-remains-visible scenario 2\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"stale-data-remains-visible scenario 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"stale-data-remains-visible scenario 4\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"stale-data-remains-visible scenario 5\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"stale-data-remains-visible scenario 6\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"initial-vs-background-loading scenario 1\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"initial-vs-background-loading scenario 2\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"initial-vs-background-loading scenario 3\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"initial-vs-background-loading scenario 4\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"initial-vs-background-loading scenario 5\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"initial-vs-background-loading scenario 6\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"observed-stale-refetch scenario 1\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"observed-stale-refetch scenario 2\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"observed-stale-refetch scenario 3\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"observed-stale-refetch scenario 4\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"observed-stale-refetch scenario 5\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"observed-stale-refetch scenario 6\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"unobserved-garbage-collect scenario 1\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"unobserved-garbage-collect scenario 2\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"unobserved-garbage-collect scenario 3\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"unobserved-garbage-collect scenario 4\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"unobserved-garbage-collect scenario 5\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"unobserved-garbage-collect scenario 6\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"resource-error-presence scenario 1\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"resource-error-presence scenario 2\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"resource-error-presence scenario 3\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"resource-error-presence scenario 4\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"resource-error-presence scenario 5\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"resource-error-presence scenario 6\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"invalidate-one-resource scenario 1\", \"actual\": [\"a\"], \"expected\": [\"a\"], \"passed\": true}, {\"check\": \"invalidate-one-resource scenario 2\", \"actual\": [\"a\"], \"expected\": [\"a\"], \"passed\": true}, {\"check\": \"invalidate-one-resource scenario 3\", \"actual\": [\"a\"], \"expected\": [\"a\"], \"passed\": true}, {\"check\": \"invalidate-one-resource scenario 4\", \"actual\": [\"a\"], \"expected\": [\"a\"], \"passed\": true}, {\"check\": \"invalidate-one-resource scenario 5\", \"actual\": [\"b\"], \"expected\": [\"b\"], \"passed\": true}, {\"check\": \"invalidate-one-resource scenario 6\", \"actual\": [\"b\", \"a\"], \"expected\": [\"b\", \"a\"], \"passed\": true}, {\"check\": \"evict-resource-key scenario 1\", \"actual\": {\"b\": 0}, \"expected\": {\"b\": 0}, \"passed\": true}, {\"check\": \"evict-resource-key scenario 2\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"evict-resource-key scenario 3\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"evict-resource-key scenario 4\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"evict-resource-key scenario 5\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"evict-resource-key scenario 6\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"subscription-fanout-count scenario 1\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"subscription-fanout-count scenario 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"subscription-fanout-count scenario 3\", \"actual\": 1, \"expected\": 1, \"passed\": true}, {\"check\": \"subscription-fanout-count scenario 4\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"subscription-fanout-count scenario 5\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"subscription-fanout-count scenario 6\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"fetch-state-independent-of-data scenario 1\", \"actual\": \"fetching\", \"expected\": \"fetching\", \"passed\": true}, {\"check\": \"fetch-state-independent-of-data scenario 2\", \"actual\": \"idle\", \"expected\": \"idle\", \"passed\": true}, {\"check\": \"fetch-state-independent-of-data scenario 3\", \"actual\": \"fetching\", \"expected\": \"fetching\", \"passed\": true}, {\"check\": \"fetch-state-independent-of-data scenario 4\", \"actual\": \"idle\", \"expected\": \"idle\", \"passed\": true}, {\"check\": \"fetch-state-independent-of-data scenario 5\", \"actual\": \"idle\", \"expected\": \"idle\", \"passed\": true}, {\"check\": \"fetch-state-independent-of-data scenario 6\", \"actual\": \"fetching\", \"expected\": \"fetching\", \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}