{"abstract":"Messages between the retention horizon and the first received message are never backfilled.","category":"Chat ordering and read receipts","checks":7,"contract":"have lists received seqs (unsorted, duplicates possible); horizon is the oldest seq the server still retains; head is the newest known seq. Every seq in [horizon, head] not received is missing; missing seqs are merged into inclusive [start, end] ranges, returned newest first and limited to max_ranges. complete is true only when nothing is missing.","evaluation_group":"w2-chat_ordering_and_read_receipts-gap-backfill","failed_approach":"Clamping to the horizon still starts scanning at the first received message. The attempted `lo = max(horizon, min(got)) if got else horizon` still disagrees with a fixture.","family":"w2-chat_ordering_and_read_receipts-gap-backfill-horizon-floor","id":"FA-76031","implementations":{"attempt":{"sha256":"2a85cd149054c11cadd1b50b1236988c1d2bd748467ae44ea731681495914c82","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(have, horizon, head, max_ranges):\n    got = set(have)\n    lo = max(horizon, min(got)) if got else horizon\n    hi = head\n    ranges = []\n    start = None\n    for s in range(lo, hi + 1):\n        if s not in got:\n            if start is None:\n                start = s\n        elif start is not None:\n            ranges.append([start, s - 1])\n            start = None\n    if start is not None:\n        ranges.append([start, hi])\n    ranges.reverse()\n    return {'fetch': ranges[:max_ranges], 'complete': not ranges}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\n_CASES = {1: [('gap before first received', ([6, 7, 10], 3, 10, 5), {'complete': False, 'fetch': [[8, 9], [3, 5]]}), ('head not yet received', ([1, 2, 3], 1, 5, 3), {'complete': False, 'fetch': [[4, 5]]}), ('single missing seqs', ([1, 3, 5, 7], 1, 7, 10), {'complete': False, 'fetch': [[6, 6], [4, 4], [2, 2]]}), ('several gaps limited', ([1, 4, 7, 11], 1, 11, 2), {'complete': False, 'fetch': [[8, 10], [5, 6]]}), ('nothing missing', ([3, 4, 5, 5], 3, 5, 0), {'complete': True, 'fetch': []}), ('limit zero with gaps', ([1, 3], 1, 4, 0), {'complete': False, 'fetch': []}), ('uneven gaps newest first', ([1, 2, 8], 1, 9, 5), {'complete': False, 'fetch': [[9, 9], [3, 7]]})], 2: [('gap before first received', ([7, 8, 11], 4, 11, 5), {'complete': False, 'fetch': [[9, 10], [4, 6]]}), ('head not yet received', ([1, 2, 3], 1, 6, 3), {'complete': False, 'fetch': [[4, 6]]}), ('single missing seqs', ([1, 3, 5, 7], 1, 7, 10), {'complete': False, 'fetch': [[6, 6], [4, 4], [2, 2]]}), ('several gaps limited', ([1, 4, 7, 12], 1, 12, 2), {'complete': False, 'fetch': [[8, 11], [5, 6]]}), ('nothing missing', ([3, 4, 5, 5], 3, 5, 0), {'complete': True, 'fetch': []}), ('limit zero with gaps', ([1, 3], 1, 5, 0), {'complete': False, 'fetch': []}), ('uneven gaps newest first', ([1, 2, 8], 1, 10, 5), {'complete': False, 'fetch': [[9, 10], [3, 7]]})], 3: [('gap before first received', ([8, 9, 12], 5, 12, 5), {'complete': False, 'fetch': [[10, 11], [5, 7]]}), ('head not yet received', ([1, 2, 3], 1, 7, 3), {'complete': False, 'fetch': [[4, 7]]}), ('single missing seqs', ([1, 3, 5, 7], 1, 7, 10), {'complete': False, 'fetch': [[6, 6], [4, 4], [2, 2]]}), ('several gaps limited', ([1, 4, 7, 13], 1, 13, 2), {'complete': False, 'fetch': [[8, 12], [5, 6]]}), ('nothing missing', ([3, 4, 5, 5], 3, 5, 0), {'complete': True, 'fetch': []}), ('limit zero with gaps', ([1, 3], 1, 6, 0), {'complete': False, 'fetch': []}), ('uneven gaps newest first', ([1, 2, 8], 1, 11, 5), {'complete': False, 'fetch': [[9, 11], [3, 7]]})], 4: [('gap before first received', ([9, 10, 13], 6, 13, 5), {'complete': False, 'fetch': [[11, 12], [6, 8]]}), ('head not yet received', ([1, 2, 3], 1, 8, 3), {'complete': False, 'fetch': [[4, 8]]}), ('single missing seqs', ([1, 3, 5, 7], 1, 7, 10), {'complete': False, 'fetch': [[6, 6], [4, 4], [2, 2]]}), ('several gaps limited', ([1, 4, 7, 14], 1, 14, 2), {'complete': False, 'fetch': [[8, 13], [5, 6]]}), ('nothing missing', ([3, 4, 5, 5], 3, 5, 0), {'complete': True, 'fetch': []}), ('limit zero with gaps', ([1, 3], 1, 7, 0), {'complete': False, 'fetch': []}), ('uneven gaps newest first', ([1, 2, 8], 1, 12, 5), {'complete': False, 'fetch': [[9, 12], [3, 7]]})], 5: [('gap before first received', ([10, 11, 14], 7, 14, 5), {'complete': False, 'fetch': [[12, 13], [7, 9]]}), ('head not yet received', ([1, 2, 3], 1, 9, 3), {'complete': False, 'fetch': [[4, 9]]}), ('single missing seqs', ([1, 3, 5, 7], 1, 7, 10), {'complete': False, 'fetch': [[6, 6], [4, 4], [2, 2]]}), ('several gaps limited', ([1, 4, 7, 15], 1, 15, 2), {'complete': False, 'fetch': [[8, 14], [5, 6]]}), ('nothing missing', ([3, 4, 5, 5], 3, 5, 0), {'complete': True, 'fetch': []}), ('limit zero with gaps', ([1, 3], 1, 8, 0), {'complete': False, 'fetch': []}), ('uneven gaps newest first', ([1, 2, 8], 1, 13, 5), {'complete': False, 'fetch': [[9, 13], [3, 7]]})]}\nfor _label, _args, _expected in _CASES[N]:\n    check(_label, solve(*_args), _expected)\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":"b1c16d6f4208a73b96a4b09e90f2b4d2ae0d5203916b9ddac90bed5ffd7613b6","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(have, horizon, head, max_ranges):\n    got = set(have)\n    lo = min(got) if got else horizon\n    hi = head\n    ranges = []\n    start = None\n    for s in range(lo, hi + 1):\n        if s not in got:\n            if start is None:\n                start = s\n        elif start is not None:\n            ranges.append([start, s - 1])\n            start = None\n    if start is not None:\n        ranges.append([start, hi])\n    ranges.reverse()\n    return {'fetch': ranges[:max_ranges], 'complete': not ranges}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\n_CASES = {1: [('gap before first received', ([6, 7, 10], 3, 10, 5), {'complete': False, 'fetch': [[8, 9], [3, 5]]}), ('head not yet received', ([1, 2, 3], 1, 5, 3), {'complete': False, 'fetch': [[4, 5]]}), ('single missing seqs', ([1, 3, 5, 7], 1, 7, 10), {'complete': False, 'fetch': [[6, 6], [4, 4], [2, 2]]}), ('several gaps limited', ([1, 4, 7, 11], 1, 11, 2), {'complete': False, 'fetch': [[8, 10], [5, 6]]}), ('nothing missing', ([3, 4, 5, 5], 3, 5, 0), {'complete': True, 'fetch': []}), ('limit zero with gaps', ([1, 3], 1, 4, 0), {'complete': False, 'fetch': []}), ('uneven gaps newest first', ([1, 2, 8], 1, 9, 5), {'complete': False, 'fetch': [[9, 9], [3, 7]]})], 2: [('gap before first received', ([7, 8, 11], 4, 11, 5), {'complete': False, 'fetch': [[9, 10], [4, 6]]}), ('head not yet received', ([1, 2, 3], 1, 6, 3), {'complete': False, 'fetch': [[4, 6]]}), ('single missing seqs', ([1, 3, 5, 7], 1, 7, 10), {'complete': False, 'fetch': [[6, 6], [4, 4], [2, 2]]}), ('several gaps limited', ([1, 4, 7, 12], 1, 12, 2), {'complete': False, 'fetch': [[8, 11], [5, 6]]}), ('nothing missing', ([3, 4, 5, 5], 3, 5, 0), {'complete': True, 'fetch': []}), ('limit zero with gaps', ([1, 3], 1, 5, 0), {'complete': False, 'fetch': []}), ('uneven gaps newest first', ([1, 2, 8], 1, 10, 5), {'complete': False, 'fetch': [[9, 10], [3, 7]]})], 3: [('gap before first received', ([8, 9, 12], 5, 12, 5), {'complete': False, 'fetch': [[10, 11], [5, 7]]}), ('head not yet received', ([1, 2, 3], 1, 7, 3), {'complete': False, 'fetch': [[4, 7]]}), ('single missing seqs', ([1, 3, 5, 7], 1, 7, 10), {'complete': False, 'fetch': [[6, 6], [4, 4], [2, 2]]}), ('several gaps limited', ([1, 4, 7, 13], 1, 13, 2), {'complete': False, 'fetch': [[8, 12], [5, 6]]}), ('nothing missing', ([3, 4, 5, 5], 3, 5, 0), {'complete': True, 'fetch': []}), ('limit zero with gaps', ([1, 3], 1, 6, 0), {'complete': False, 'fetch': []}), ('uneven gaps newest first', ([1, 2, 8], 1, 11, 5), {'complete': False, 'fetch': [[9, 11], [3, 7]]})], 4: [('gap before first received', ([9, 10, 13], 6, 13, 5), {'complete': False, 'fetch': [[11, 12], [6, 8]]}), ('head not yet received', ([1, 2, 3], 1, 8, 3), {'complete': False, 'fetch': [[4, 8]]}), ('single missing seqs', ([1, 3, 5, 7], 1, 7, 10), {'complete': False, 'fetch': [[6, 6], [4, 4], [2, 2]]}), ('several gaps limited', ([1, 4, 7, 14], 1, 14, 2), {'complete': False, 'fetch': [[8, 13], [5, 6]]}), ('nothing missing', ([3, 4, 5, 5], 3, 5, 0), {'complete': True, 'fetch': []}), ('limit zero with gaps', ([1, 3], 1, 7, 0), {'complete': False, 'fetch': []}), ('uneven gaps newest first', ([1, 2, 8], 1, 12, 5), {'complete': False, 'fetch': [[9, 12], [3, 7]]})], 5: [('gap before first received', ([10, 11, 14], 7, 14, 5), {'complete': False, 'fetch': [[12, 13], [7, 9]]}), ('head not yet received', ([1, 2, 3], 1, 9, 3), {'complete': False, 'fetch': [[4, 9]]}), ('single missing seqs', ([1, 3, 5, 7], 1, 7, 10), {'complete': False, 'fetch': [[6, 6], [4, 4], [2, 2]]}), ('several gaps limited', ([1, 4, 7, 15], 1, 15, 2), {'complete': False, 'fetch': [[8, 14], [5, 6]]}), ('nothing missing', ([3, 4, 5, 5], 3, 5, 0), {'complete': True, 'fetch': []}), ('limit zero with gaps', ([1, 3], 1, 8, 0), {'complete': False, 'fetch': []}), ('uneven gaps newest first', ([1, 2, 8], 1, 13, 5), {'complete': False, 'fetch': [[9, 13], [3, 7]]})]}\nfor _label, _args, _expected in _CASES[N]:\n    check(_label, solve(*_args), _expected)\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":"a624374b2c66ba3fc7efc0b86c51a62e48841f499ba502b93d7b0fd06f55a8dd","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(have, horizon, head, max_ranges):\n    got = set(have)\n    lo = horizon\n    hi = head\n    ranges = []\n    start = None\n    for s in range(lo, hi + 1):\n        if s not in got:\n            if start is None:\n                start = s\n        elif start is not None:\n            ranges.append([start, s - 1])\n            start = None\n    if start is not None:\n        ranges.append([start, hi])\n    ranges.reverse()\n    return {'fetch': ranges[:max_ranges], 'complete': not ranges}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\n_CASES = {1: [('gap before first received', ([6, 7, 10], 3, 10, 5), {'complete': False, 'fetch': [[8, 9], [3, 5]]}), ('head not yet received', ([1, 2, 3], 1, 5, 3), {'complete': False, 'fetch': [[4, 5]]}), ('single missing seqs', ([1, 3, 5, 7], 1, 7, 10), {'complete': False, 'fetch': [[6, 6], [4, 4], [2, 2]]}), ('several gaps limited', ([1, 4, 7, 11], 1, 11, 2), {'complete': False, 'fetch': [[8, 10], [5, 6]]}), ('nothing missing', ([3, 4, 5, 5], 3, 5, 0), {'complete': True, 'fetch': []}), ('limit zero with gaps', ([1, 3], 1, 4, 0), {'complete': False, 'fetch': []}), ('uneven gaps newest first', ([1, 2, 8], 1, 9, 5), {'complete': False, 'fetch': [[9, 9], [3, 7]]})], 2: [('gap before first received', ([7, 8, 11], 4, 11, 5), {'complete': False, 'fetch': [[9, 10], [4, 6]]}), ('head not yet received', ([1, 2, 3], 1, 6, 3), {'complete': False, 'fetch': [[4, 6]]}), ('single missing seqs', ([1, 3, 5, 7], 1, 7, 10), {'complete': False, 'fetch': [[6, 6], [4, 4], [2, 2]]}), ('several gaps limited', ([1, 4, 7, 12], 1, 12, 2), {'complete': False, 'fetch': [[8, 11], [5, 6]]}), ('nothing missing', ([3, 4, 5, 5], 3, 5, 0), {'complete': True, 'fetch': []}), ('limit zero with gaps', ([1, 3], 1, 5, 0), {'complete': False, 'fetch': []}), ('uneven gaps newest first', ([1, 2, 8], 1, 10, 5), {'complete': False, 'fetch': [[9, 10], [3, 7]]})], 3: [('gap before first received', ([8, 9, 12], 5, 12, 5), {'complete': False, 'fetch': [[10, 11], [5, 7]]}), ('head not yet received', ([1, 2, 3], 1, 7, 3), {'complete': False, 'fetch': [[4, 7]]}), ('single missing seqs', ([1, 3, 5, 7], 1, 7, 10), {'complete': False, 'fetch': [[6, 6], [4, 4], [2, 2]]}), ('several gaps limited', ([1, 4, 7, 13], 1, 13, 2), {'complete': False, 'fetch': [[8, 12], [5, 6]]}), ('nothing missing', ([3, 4, 5, 5], 3, 5, 0), {'complete': True, 'fetch': []}), ('limit zero with gaps', ([1, 3], 1, 6, 0), {'complete': False, 'fetch': []}), ('uneven gaps newest first', ([1, 2, 8], 1, 11, 5), {'complete': False, 'fetch': [[9, 11], [3, 7]]})], 4: [('gap before first received', ([9, 10, 13], 6, 13, 5), {'complete': False, 'fetch': [[11, 12], [6, 8]]}), ('head not yet received', ([1, 2, 3], 1, 8, 3), {'complete': False, 'fetch': [[4, 8]]}), ('single missing seqs', ([1, 3, 5, 7], 1, 7, 10), {'complete': False, 'fetch': [[6, 6], [4, 4], [2, 2]]}), ('several gaps limited', ([1, 4, 7, 14], 1, 14, 2), {'complete': False, 'fetch': [[8, 13], [5, 6]]}), ('nothing missing', ([3, 4, 5, 5], 3, 5, 0), {'complete': True, 'fetch': []}), ('limit zero with gaps', ([1, 3], 1, 7, 0), {'complete': False, 'fetch': []}), ('uneven gaps newest first', ([1, 2, 8], 1, 12, 5), {'complete': False, 'fetch': [[9, 12], [3, 7]]})], 5: [('gap before first received', ([10, 11, 14], 7, 14, 5), {'complete': False, 'fetch': [[12, 13], [7, 9]]}), ('head not yet received', ([1, 2, 3], 1, 9, 3), {'complete': False, 'fetch': [[4, 9]]}), ('single missing seqs', ([1, 3, 5, 7], 1, 7, 10), {'complete': False, 'fetch': [[6, 6], [4, 4], [2, 2]]}), ('several gaps limited', ([1, 4, 7, 15], 1, 15, 2), {'complete': False, 'fetch': [[8, 14], [5, 6]]}), ('nothing missing', ([3, 4, 5, 5], 3, 5, 0), {'complete': True, 'fetch': []}), ('limit zero with gaps', ([1, 3], 1, 8, 0), {'complete': False, 'fetch': []}), ('uneven gaps newest first', ([1, 2, 8], 1, 13, 5), {'complete': False, 'fetch': [[9, 13], [3, 7]]})]}\nfor _label, _args, _expected in _CASES[N]:\n    check(_label, solve(*_args), _expected)\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 offline chat model; not a complete messaging protocol, client or server implementation. 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":"w2-chat_ordering_and_read_receipts-gap-backfill-horizon-floor","generated_at":"2026-09-29T14:49:12.578643+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Chat clients repair gaps after reconnecting; wrong ranges refetch too much or leave holes in the timeline.","repair":"Use `lo = horizon` for the horizon floor decision and keep every other rule of the model unchanged.","root_cause":"The horizon floor decision evaluates `lo = min(got) if got else horizon` where the contract requires `lo = horizon`.","sha256":"de30e03369b7a8a93cb48be9273b73d010c9502105fc3adedb95b92ab375b649","title":"Plan history backfill requests for missing sequences: horizon floor · case 01","variant":1,"variant_policy":"N selects a different enumerated fixture set (shifted clocks, identifiers and sizes); boundary fixtures recur across variants.","verification":{"attempt":{"elapsed_ms":41.42,"exit_code":1,"observations":[{"actual":{"complete":false,"fetch":[[8,9]]},"check":"gap before first received","expected":{"complete":false,"fetch":[[8,9],[3,5]]},"passed":false},{"actual":{"complete":false,"fetch":[[4,5]]},"check":"head not yet received","expected":{"complete":false,"fetch":[[4,5]]},"passed":true},{"actual":{"complete":false,"fetch":[[6,6],[4,4],[2,2]]},"check":"single missing seqs","expected":{"complete":false,"fetch":[[6,6],[4,4],[2,2]]},"passed":true},{"actual":{"complete":false,"fetch":[[8,10],[5,6]]},"check":"several gaps limited","expected":{"complete":false,"fetch":[[8,10],[5,6]]},"passed":true},{"actual":{"complete":true,"fetch":[]},"check":"nothing missing","expected":{"complete":true,"fetch":[]},"passed":true},{"actual":{"complete":false,"fetch":[]},"check":"limit zero with gaps","expected":{"complete":false,"fetch":[]},"passed":true},{"actual":{"complete":false,"fetch":[[9,9],[3,7]]},"check":"uneven gaps newest first","expected":{"complete":false,"fetch":[[9,9],[3,7]]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"gap before first received\", \"actual\": {\"fetch\": [[8, 9]], \"complete\": false}, \"expected\": {\"complete\": false, \"fetch\": [[8, 9], [3, 5]]}, \"passed\": false}, {\"check\": \"head not yet received\", \"actual\": {\"fetch\": [[4, 5]], \"complete\": false}, \"expected\": {\"complete\": false, \"fetch\": [[4, 5]]}, \"passed\": true}, {\"check\": \"single missing seqs\", \"actual\": {\"fetch\": [[6, 6], [4, 4], [2, 2]], \"complete\": false}, \"expected\": {\"complete\": false, \"fetch\": [[6, 6], [4, 4], [2, 2]]}, \"passed\": true}, {\"check\": \"several gaps limited\", \"actual\": {\"fetch\": [[8, 10], [5, 6]], \"complete\": false}, \"expected\": {\"complete\": false, \"fetch\": [[8, 10], [5, 6]]}, \"passed\": true}, {\"check\": \"nothing missing\", \"actual\": {\"fetch\": [], \"complete\": true}, \"expected\": {\"complete\": true, \"fetch\": []}, \"passed\": true}, {\"check\": \"limit zero with gaps\", \"actual\": {\"fetch\": [], \"complete\": false}, \"expected\": {\"complete\": false, \"fetch\": []}, \"passed\": true}, {\"check\": \"uneven gaps newest first\", \"actual\": {\"fetch\": [[9, 9], [3, 7]], \"complete\": false}, \"expected\": {\"complete\": false, \"fetch\": [[9, 9], [3, 7]]}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":44.077,"exit_code":1,"observations":[{"actual":{"complete":false,"fetch":[[8,9]]},"check":"gap before first received","expected":{"complete":false,"fetch":[[8,9],[3,5]]},"passed":false},{"actual":{"complete":false,"fetch":[[4,5]]},"check":"head not yet received","expected":{"complete":false,"fetch":[[4,5]]},"passed":true},{"actual":{"complete":false,"fetch":[[6,6],[4,4],[2,2]]},"check":"single missing seqs","expected":{"complete":false,"fetch":[[6,6],[4,4],[2,2]]},"passed":true},{"actual":{"complete":false,"fetch":[[8,10],[5,6]]},"check":"several gaps limited","expected":{"complete":false,"fetch":[[8,10],[5,6]]},"passed":true},{"actual":{"complete":true,"fetch":[]},"check":"nothing missing","expected":{"complete":true,"fetch":[]},"passed":true},{"actual":{"complete":false,"fetch":[]},"check":"limit zero with gaps","expected":{"complete":false,"fetch":[]},"passed":true},{"actual":{"complete":false,"fetch":[[9,9],[3,7]]},"check":"uneven gaps newest first","expected":{"complete":false,"fetch":[[9,9],[3,7]]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"gap before first received\", \"actual\": {\"fetch\": [[8, 9]], \"complete\": false}, \"expected\": {\"complete\": false, \"fetch\": [[8, 9], [3, 5]]}, \"passed\": false}, {\"check\": \"head not yet received\", \"actual\": {\"fetch\": [[4, 5]], \"complete\": false}, \"expected\": {\"complete\": false, \"fetch\": [[4, 5]]}, \"passed\": true}, {\"check\": \"single missing seqs\", \"actual\": {\"fetch\": [[6, 6], [4, 4], [2, 2]], \"complete\": false}, \"expected\": {\"complete\": false, \"fetch\": [[6, 6], [4, 4], [2, 2]]}, \"passed\": true}, {\"check\": \"several gaps limited\", \"actual\": {\"fetch\": [[8, 10], [5, 6]], \"complete\": false}, \"expected\": {\"complete\": false, \"fetch\": [[8, 10], [5, 6]]}, \"passed\": true}, {\"check\": \"nothing missing\", \"actual\": {\"fetch\": [], \"complete\": true}, \"expected\": {\"complete\": true, \"fetch\": []}, \"passed\": true}, {\"check\": \"limit zero with gaps\", \"actual\": {\"fetch\": [], \"complete\": false}, \"expected\": {\"complete\": false, \"fetch\": []}, \"passed\": true}, {\"check\": \"uneven gaps newest first\", \"actual\": {\"fetch\": [[9, 9], [3, 7]], \"complete\": false}, \"expected\": {\"complete\": false, \"fetch\": [[9, 9], [3, 7]]}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.624,"exit_code":0,"observations":[{"actual":{"complete":false,"fetch":[[8,9],[3,5]]},"check":"gap before first received","expected":{"complete":false,"fetch":[[8,9],[3,5]]},"passed":true},{"actual":{"complete":false,"fetch":[[4,5]]},"check":"head not yet received","expected":{"complete":false,"fetch":[[4,5]]},"passed":true},{"actual":{"complete":false,"fetch":[[6,6],[4,4],[2,2]]},"check":"single missing seqs","expected":{"complete":false,"fetch":[[6,6],[4,4],[2,2]]},"passed":true},{"actual":{"complete":false,"fetch":[[8,10],[5,6]]},"check":"several gaps limited","expected":{"complete":false,"fetch":[[8,10],[5,6]]},"passed":true},{"actual":{"complete":true,"fetch":[]},"check":"nothing missing","expected":{"complete":true,"fetch":[]},"passed":true},{"actual":{"complete":false,"fetch":[]},"check":"limit zero with gaps","expected":{"complete":false,"fetch":[]},"passed":true},{"actual":{"complete":false,"fetch":[[9,9],[3,7]]},"check":"uneven gaps newest first","expected":{"complete":false,"fetch":[[9,9],[3,7]]},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"gap before first received\", \"actual\": {\"fetch\": [[8, 9], [3, 5]], \"complete\": false}, \"expected\": {\"complete\": false, \"fetch\": [[8, 9], [3, 5]]}, \"passed\": true}, {\"check\": \"head not yet received\", \"actual\": {\"fetch\": [[4, 5]], \"complete\": false}, \"expected\": {\"complete\": false, \"fetch\": [[4, 5]]}, \"passed\": true}, {\"check\": \"single missing seqs\", \"actual\": {\"fetch\": [[6, 6], [4, 4], [2, 2]], \"complete\": false}, \"expected\": {\"complete\": false, \"fetch\": [[6, 6], [4, 4], [2, 2]]}, \"passed\": true}, {\"check\": \"several gaps limited\", \"actual\": {\"fetch\": [[8, 10], [5, 6]], \"complete\": false}, \"expected\": {\"complete\": false, \"fetch\": [[8, 10], [5, 6]]}, \"passed\": true}, {\"check\": \"nothing missing\", \"actual\": {\"fetch\": [], \"complete\": true}, \"expected\": {\"complete\": true, \"fetch\": []}, \"passed\": true}, {\"check\": \"limit zero with gaps\", \"actual\": {\"fetch\": [], \"complete\": false}, \"expected\": {\"complete\": false, \"fetch\": []}, \"passed\": true}, {\"check\": \"uneven gaps newest first\", \"actual\": {\"fetch\": [[9, 9], [3, 7]], \"complete\": false}, \"expected\": {\"complete\": false, \"fetch\": [[9, 9], [3, 7]]}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}