{"abstract":"A user re-bucketed to another variant within the window has no exposure logged for the new variant.","category":"Feature flag rollout bucketing","checks":8,"contract":"events are [t, user, flag, variant] processed in timestamp order (stable for ties). An exposure is emitted unless the same (user, flag, variant) was emitted less than window seconds earlier; suppressed events do not move the window. Return emitted indices in processing order.","evaluation_group":"w2-feature-flag-rollout-bucketing-exposure-dedupe","failed_approach":"Keying on (user, variant) merges exposures of different flags.","family":"w2-feature-flag-rollout-bucketing-exposure-dedupe-dedupe-key","id":"FA-74176","implementations":{"attempt":{"sha256":"6b1f131f1efcdd60bf9a082d9f1bfffa528af916c8a12f03ec407c4a80267b40","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(events, window):\n    last = {}\n    out = []\n    for i in sorted(range(len(events)), key=lambda j: events[j][0]):\n        t, user, flag, variant = events[i]\n        k = (user, variant)\n        if k in last and t - last[k] < window:\n            continue\n        last[k] = t\n        out.append(i)\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('variant change emits immediately', [[[0, 'a', 'f', 'on'], [1, 'a', 'f', 'off']], 10], [0, 1]),\n  ('different flags are tracked separately', [[[0, 'a', 'f', 'on'], [1, 'a', 'g', 'on']], 10], [0, 1]),\n  ('suppressed events do not extend the window',\n   [[[0, 'a', 'f', 'on'], [8, 'a', 'f', 'on'], [12, 'a', 'f', 'on']], 10],\n   [0, 2]),\n  ('duplicate inside a re-anchored window is suppressed',\n   [[[0, 'a', 'f', 'on'], [12, 'a', 'f', 'on'], [15, 'a', 'f', 'on'], [25, 'a', 'f', 'on']], 10],\n   [0, 1, 3]),\n  ('one second before the window closes is suppressed',\n   [[[0, 'b', 'g', 'off'], [9, 'b', 'g', 'off']], 10],\n   [0]),\n  ('exposure stream sample 1',\n   [[[2, 'a', 'f', 'on'],\n     [2, 'b', 'g', 'on'],\n     [9, 'a', 'g', 'on'],\n     [14, 'b', 'g', 'off'],\n     [18, 'a', 'g', 'off'],\n     [21, 'b', 'f', 'off'],\n     [21, 'b', 'f', 'on'],\n     [24, 'a', 'f', 'off']],\n    5],\n   [0, 1, 2, 3, 4, 5, 6, 7]),\n  ('exposure stream sample 2',\n   [[[21, 'a', 'f', 'off'],\n     [8, 'a', 'g', 'off'],\n     [3, 'a', 'f', 'off'],\n     [9, 'b', 'f', 'on'],\n     [21, 'a', 'g', 'on'],\n     [24, 'b', 'g', 'off'],\n     [20, 'b', 'f', 'on']],\n    0],\n   [2, 1, 3, 6, 0, 4, 5]),\n  ('exposure stream sample 3',\n   [[[2, 'b', 'f', 'on'], [6, 'b', 'f', 'on'], [21, 'b', 'f', 'off'], [24, 'a', 'g', 'on']], 10],\n   [0, 2, 3])],\n [('variant change emits immediately', [[[0, 'a', 'f', 'on'], [1, 'a', 'f', 'off']], 10], [0, 1]),\n  ('different flags are tracked separately', [[[0, 'a', 'f', 'on'], [1, 'a', 'g', 'on']], 10], [0, 1]),\n  ('suppressed events do not extend the window',\n   [[[0, 'a', 'f', 'on'], [8, 'a', 'f', 'on'], [12, 'a', 'f', 'on']], 10],\n   [0, 2]),\n  ('duplicate inside a re-anchored window is suppressed',\n   [[[0, 'a', 'f', 'on'], [12, 'a', 'f', 'on'], [15, 'a', 'f', 'on'], [25, 'a', 'f', 'on']], 10],\n   [0, 1, 3]),\n  ('one second before the window closes is suppressed',\n   [[[0, 'b', 'g', 'off'], [9, 'b', 'g', 'off']], 10],\n   [0]),\n  ('exactly one window later emits again', [[[0, 'a', 'f', 'on'], [10, 'a', 'f', 'on']], 10], [0, 1]),\n  ('exposure stream sample 23',\n   [[[1, 'a', 'g', 'on'],\n     [6, 'a', 'g', 'on'],\n     [9, 'b', 'f', 'on'],\n     [12, 'a', 'f', 'on'],\n     [13, 'a', 'f', 'off'],\n     [16, 'a', 'g', 'off'],\n     [20, 'b', 'f', 'off']],\n    10],\n   [0, 2, 3, 4, 5, 6]),\n  ('exposure stream sample 30',\n   [[[1, 'a', 'f', 'off'],\n     [5, 'a', 'g', 'on'],\n     [13, 'a', 'f', 'off'],\n     [7, 'a', 'f', 'on'],\n     [20, 'a', 'f', 'on']],\n    5],\n   [0, 1, 3, 2, 4])],\n [('suppressed events do not extend the window',\n   [[[0, 'a', 'f', 'on'], [8, 'a', 'f', 'on'], [12, 'a', 'f', 'on']], 10],\n   [0, 2]),\n  ('duplicate inside a re-anchored window is suppressed',\n   [[[0, 'a', 'f', 'on'], [12, 'a', 'f', 'on'], [15, 'a', 'f', 'on'], [25, 'a', 'f', 'on']], 10],\n   [0, 1, 3]),\n  ('one second before the window closes is suppressed',\n   [[[0, 'b', 'g', 'off'], [9, 'b', 'g', 'off']], 10],\n   [0]),\n  ('exactly one window later emits again', [[[0, 'a', 'f', 'on'], [10, 'a', 'f', 'on']], 10], [0, 1]),\n  ('events are processed in time order',\n   [[[12, 'a', 'f', 'on'], [0, 'a', 'f', 'on'], [5, 'b', 'f', 'on']], 10],\n   [1, 2, 0]),\n  ('exposure stream sample 11',\n   [[[10, 'b', 'g', 'on'], [19, 'b', 'g', 'off'], [9, 'b', 'f', 'on'], [16, 'a', 'f', 'on']], 10],\n   [2, 0, 3, 1]),\n  ('exposure stream sample 44',\n   [[[2, 'b', 'f', 'on'],\n     [5, 'b', 'g', 'off'],\n     [7, 'b', 'g', 'on'],\n     [10, 'a', 'g', 'off'],\n     [10, 'a', 'g', 'on']],\n    10],\n   [0, 1, 2, 3, 4]),\n  ('exposure stream sample 51',\n   [[[2, 'a', 'f', 'on'],\n     [10, 'a', 'g', 'off'],\n     [15, 'a', 'f', 'off'],\n     [19, 'b', 'f', 'off'],\n     [22, 'b', 'f', 'on'],\n     [24, 'a', 'f', 'off']],\n    10],\n   [0, 1, 2, 3, 4])],\n [('duplicate inside a re-anchored window is suppressed',\n   [[[0, 'a', 'f', 'on'], [12, 'a', 'f', 'on'], [15, 'a', 'f', 'on'], [25, 'a', 'f', 'on']], 10],\n   [0, 1, 3]),\n  ('one second before the window closes is suppressed',\n   [[[0, 'b', 'g', 'off'], [9, 'b', 'g', 'off']], 10],\n   [0]),\n  ('exactly one window later emits again', [[[0, 'a', 'f', 'on'], [10, 'a', 'f', 'on']], 10], [0, 1]),\n  ('events are processed in time order',\n   [[[12, 'a', 'f', 'on'], [0, 'a', 'f', 'on'], [5, 'b', 'f', 'on']], 10],\n   [1, 2, 0]),\n  ('zero window never suppresses', [[[0, 'a', 'f', 'on'], [0, 'a', 'f', 'on']], 0], [0, 1]),\n  ('exposure stream sample 1',\n   [[[2, 'a', 'f', 'on'],\n     [2, 'b', 'g', 'on'],\n     [9, 'a', 'g', 'on'],\n     [14, 'b', 'g', 'off'],\n     [18, 'a', 'g', 'off'],\n     [21, 'b', 'f', 'off'],\n     [21, 'b', 'f', 'on'],\n     [24, 'a', 'f', 'off']],\n    5],\n   [0, 1, 2, 3, 4, 5, 6, 7]),\n  ('exposure stream sample 12',\n   [[[7, 'a', 'f', 'off'],\n     [13, 'a', 'g', 'off'],\n     [3, 'a', 'g', 'off'],\n     [4, 'a', 'f', 'on'],\n     [3, 'a', 'g', 'off']],\n    10],\n   [2, 3, 0, 1]),\n  ('exposure stream sample 16',\n   [[[4, 'a', 'g', 'off'],\n     [21, 'a', 'g', 'off'],\n     [20, 'a', 'g', 'off'],\n     [23, 'b', 'g', 'on'],\n     [19, 'b', 'f', 'on'],\n     [22, 'b', 'f', 'on'],\n     [10, 'b', 'f', 'on']],\n    0],\n   [0, 6, 4, 2, 1, 5, 3])],\n [('one second before the window closes is suppressed',\n   [[[0, 'b', 'g', 'off'], [9, 'b', 'g', 'off']], 10],\n   [0]),\n  ('exactly one window later emits again', [[[0, 'a', 'f', 'on'], [10, 'a', 'f', 'on']], 10], [0, 1]),\n  ('events are processed in time order',\n   [[[12, 'a', 'f', 'on'], [0, 'a', 'f', 'on'], [5, 'b', 'f', 'on']], 10],\n   [1, 2, 0]),\n  ('zero window never suppresses', [[[0, 'a', 'f', 'on'], [0, 'a', 'f', 'on']], 0], [0, 1]),\n  ('users are tracked separately',\n   [[[0, 'a', 'f', 'on'], [1, 'b', 'f', 'on'], [2, 'a', 'f', 'on']], 5],\n   [0, 1]),\n  ('exposure stream sample 21',\n   [[[4, 'a', 'g', 'on'],\n     [5, 'a', 'g', 'on'],\n     [22, 'a', 'f', 'off'],\n     [4, 'a', 'g', 'on'],\n     [19, 'a', 'f', 'off'],\n     [8, 'a', 'g', 'on'],\n     [11, 'a', 'f', 'off']],\n    5],\n   [0, 6, 4]),\n  ('exposure stream sample 24',\n   [[[13, 'b', 'g', 'on'],\n     [22, 'a', 'g', 'off'],\n     [7, 'a', 'f', 'on'],\n     [8, 'b', 'f', 'off'],\n     [5, 'a', 'f', 'off'],\n     [17, 'b', 'f', 'off'],\n     [5, 'a', 'g', 'off'],\n     [9, 'a', 'g', 'on']],\n    5],\n   [4, 6, 2, 3, 7, 0, 5, 1]),\n  ('exposure stream sample 40',\n   [[[5, 'b', 'g', 'on'],\n     [22, 'a', 'g', 'on'],\n     [20, 'b', 'g', 'off'],\n     [1, 'b', 'g', 'off'],\n     [22, 'a', 'f', 'off'],\n     [9, 'b', 'f', 'on'],\n     [15, 'a', 'f', 'on'],\n     [5, 'b', 'f', 'off']],\n    10],\n   [3, 0, 7, 5, 6, 2, 1, 4])]]\nfor label, args, expected in fixtures[N - 1]:\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":"c69684ebea119550c6f45cfd39455697000dfd0e35709825bf962aaf55e6e070","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(events, window):\n    last = {}\n    out = []\n    for i in sorted(range(len(events)), key=lambda j: events[j][0]):\n        t, user, flag, variant = events[i]\n        k = (user, flag)\n        if k in last and t - last[k] < window:\n            continue\n        last[k] = t\n        out.append(i)\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('variant change emits immediately', [[[0, 'a', 'f', 'on'], [1, 'a', 'f', 'off']], 10], [0, 1]),\n  ('different flags are tracked separately', [[[0, 'a', 'f', 'on'], [1, 'a', 'g', 'on']], 10], [0, 1]),\n  ('suppressed events do not extend the window',\n   [[[0, 'a', 'f', 'on'], [8, 'a', 'f', 'on'], [12, 'a', 'f', 'on']], 10],\n   [0, 2]),\n  ('duplicate inside a re-anchored window is suppressed',\n   [[[0, 'a', 'f', 'on'], [12, 'a', 'f', 'on'], [15, 'a', 'f', 'on'], [25, 'a', 'f', 'on']], 10],\n   [0, 1, 3]),\n  ('one second before the window closes is suppressed',\n   [[[0, 'b', 'g', 'off'], [9, 'b', 'g', 'off']], 10],\n   [0]),\n  ('exposure stream sample 1',\n   [[[2, 'a', 'f', 'on'],\n     [2, 'b', 'g', 'on'],\n     [9, 'a', 'g', 'on'],\n     [14, 'b', 'g', 'off'],\n     [18, 'a', 'g', 'off'],\n     [21, 'b', 'f', 'off'],\n     [21, 'b', 'f', 'on'],\n     [24, 'a', 'f', 'off']],\n    5],\n   [0, 1, 2, 3, 4, 5, 6, 7]),\n  ('exposure stream sample 2',\n   [[[21, 'a', 'f', 'off'],\n     [8, 'a', 'g', 'off'],\n     [3, 'a', 'f', 'off'],\n     [9, 'b', 'f', 'on'],\n     [21, 'a', 'g', 'on'],\n     [24, 'b', 'g', 'off'],\n     [20, 'b', 'f', 'on']],\n    0],\n   [2, 1, 3, 6, 0, 4, 5]),\n  ('exposure stream sample 3',\n   [[[2, 'b', 'f', 'on'], [6, 'b', 'f', 'on'], [21, 'b', 'f', 'off'], [24, 'a', 'g', 'on']], 10],\n   [0, 2, 3])],\n [('variant change emits immediately', [[[0, 'a', 'f', 'on'], [1, 'a', 'f', 'off']], 10], [0, 1]),\n  ('different flags are tracked separately', [[[0, 'a', 'f', 'on'], [1, 'a', 'g', 'on']], 10], [0, 1]),\n  ('suppressed events do not extend the window',\n   [[[0, 'a', 'f', 'on'], [8, 'a', 'f', 'on'], [12, 'a', 'f', 'on']], 10],\n   [0, 2]),\n  ('duplicate inside a re-anchored window is suppressed',\n   [[[0, 'a', 'f', 'on'], [12, 'a', 'f', 'on'], [15, 'a', 'f', 'on'], [25, 'a', 'f', 'on']], 10],\n   [0, 1, 3]),\n  ('one second before the window closes is suppressed',\n   [[[0, 'b', 'g', 'off'], [9, 'b', 'g', 'off']], 10],\n   [0]),\n  ('exactly one window later emits again', [[[0, 'a', 'f', 'on'], [10, 'a', 'f', 'on']], 10], [0, 1]),\n  ('exposure stream sample 23',\n   [[[1, 'a', 'g', 'on'],\n     [6, 'a', 'g', 'on'],\n     [9, 'b', 'f', 'on'],\n     [12, 'a', 'f', 'on'],\n     [13, 'a', 'f', 'off'],\n     [16, 'a', 'g', 'off'],\n     [20, 'b', 'f', 'off']],\n    10],\n   [0, 2, 3, 4, 5, 6]),\n  ('exposure stream sample 30',\n   [[[1, 'a', 'f', 'off'],\n     [5, 'a', 'g', 'on'],\n     [13, 'a', 'f', 'off'],\n     [7, 'a', 'f', 'on'],\n     [20, 'a', 'f', 'on']],\n    5],\n   [0, 1, 3, 2, 4])],\n [('suppressed events do not extend the window',\n   [[[0, 'a', 'f', 'on'], [8, 'a', 'f', 'on'], [12, 'a', 'f', 'on']], 10],\n   [0, 2]),\n  ('duplicate inside a re-anchored window is suppressed',\n   [[[0, 'a', 'f', 'on'], [12, 'a', 'f', 'on'], [15, 'a', 'f', 'on'], [25, 'a', 'f', 'on']], 10],\n   [0, 1, 3]),\n  ('one second before the window closes is suppressed',\n   [[[0, 'b', 'g', 'off'], [9, 'b', 'g', 'off']], 10],\n   [0]),\n  ('exactly one window later emits again', [[[0, 'a', 'f', 'on'], [10, 'a', 'f', 'on']], 10], [0, 1]),\n  ('events are processed in time order',\n   [[[12, 'a', 'f', 'on'], [0, 'a', 'f', 'on'], [5, 'b', 'f', 'on']], 10],\n   [1, 2, 0]),\n  ('exposure stream sample 11',\n   [[[10, 'b', 'g', 'on'], [19, 'b', 'g', 'off'], [9, 'b', 'f', 'on'], [16, 'a', 'f', 'on']], 10],\n   [2, 0, 3, 1]),\n  ('exposure stream sample 44',\n   [[[2, 'b', 'f', 'on'],\n     [5, 'b', 'g', 'off'],\n     [7, 'b', 'g', 'on'],\n     [10, 'a', 'g', 'off'],\n     [10, 'a', 'g', 'on']],\n    10],\n   [0, 1, 2, 3, 4]),\n  ('exposure stream sample 51',\n   [[[2, 'a', 'f', 'on'],\n     [10, 'a', 'g', 'off'],\n     [15, 'a', 'f', 'off'],\n     [19, 'b', 'f', 'off'],\n     [22, 'b', 'f', 'on'],\n     [24, 'a', 'f', 'off']],\n    10],\n   [0, 1, 2, 3, 4])],\n [('duplicate inside a re-anchored window is suppressed',\n   [[[0, 'a', 'f', 'on'], [12, 'a', 'f', 'on'], [15, 'a', 'f', 'on'], [25, 'a', 'f', 'on']], 10],\n   [0, 1, 3]),\n  ('one second before the window closes is suppressed',\n   [[[0, 'b', 'g', 'off'], [9, 'b', 'g', 'off']], 10],\n   [0]),\n  ('exactly one window later emits again', [[[0, 'a', 'f', 'on'], [10, 'a', 'f', 'on']], 10], [0, 1]),\n  ('events are processed in time order',\n   [[[12, 'a', 'f', 'on'], [0, 'a', 'f', 'on'], [5, 'b', 'f', 'on']], 10],\n   [1, 2, 0]),\n  ('zero window never suppresses', [[[0, 'a', 'f', 'on'], [0, 'a', 'f', 'on']], 0], [0, 1]),\n  ('exposure stream sample 1',\n   [[[2, 'a', 'f', 'on'],\n     [2, 'b', 'g', 'on'],\n     [9, 'a', 'g', 'on'],\n     [14, 'b', 'g', 'off'],\n     [18, 'a', 'g', 'off'],\n     [21, 'b', 'f', 'off'],\n     [21, 'b', 'f', 'on'],\n     [24, 'a', 'f', 'off']],\n    5],\n   [0, 1, 2, 3, 4, 5, 6, 7]),\n  ('exposure stream sample 12',\n   [[[7, 'a', 'f', 'off'],\n     [13, 'a', 'g', 'off'],\n     [3, 'a', 'g', 'off'],\n     [4, 'a', 'f', 'on'],\n     [3, 'a', 'g', 'off']],\n    10],\n   [2, 3, 0, 1]),\n  ('exposure stream sample 16',\n   [[[4, 'a', 'g', 'off'],\n     [21, 'a', 'g', 'off'],\n     [20, 'a', 'g', 'off'],\n     [23, 'b', 'g', 'on'],\n     [19, 'b', 'f', 'on'],\n     [22, 'b', 'f', 'on'],\n     [10, 'b', 'f', 'on']],\n    0],\n   [0, 6, 4, 2, 1, 5, 3])],\n [('one second before the window closes is suppressed',\n   [[[0, 'b', 'g', 'off'], [9, 'b', 'g', 'off']], 10],\n   [0]),\n  ('exactly one window later emits again', [[[0, 'a', 'f', 'on'], [10, 'a', 'f', 'on']], 10], [0, 1]),\n  ('events are processed in time order',\n   [[[12, 'a', 'f', 'on'], [0, 'a', 'f', 'on'], [5, 'b', 'f', 'on']], 10],\n   [1, 2, 0]),\n  ('zero window never suppresses', [[[0, 'a', 'f', 'on'], [0, 'a', 'f', 'on']], 0], [0, 1]),\n  ('users are tracked separately',\n   [[[0, 'a', 'f', 'on'], [1, 'b', 'f', 'on'], [2, 'a', 'f', 'on']], 5],\n   [0, 1]),\n  ('exposure stream sample 21',\n   [[[4, 'a', 'g', 'on'],\n     [5, 'a', 'g', 'on'],\n     [22, 'a', 'f', 'off'],\n     [4, 'a', 'g', 'on'],\n     [19, 'a', 'f', 'off'],\n     [8, 'a', 'g', 'on'],\n     [11, 'a', 'f', 'off']],\n    5],\n   [0, 6, 4]),\n  ('exposure stream sample 24',\n   [[[13, 'b', 'g', 'on'],\n     [22, 'a', 'g', 'off'],\n     [7, 'a', 'f', 'on'],\n     [8, 'b', 'f', 'off'],\n     [5, 'a', 'f', 'off'],\n     [17, 'b', 'f', 'off'],\n     [5, 'a', 'g', 'off'],\n     [9, 'a', 'g', 'on']],\n    5],\n   [4, 6, 2, 3, 7, 0, 5, 1]),\n  ('exposure stream sample 40',\n   [[[5, 'b', 'g', 'on'],\n     [22, 'a', 'g', 'on'],\n     [20, 'b', 'g', 'off'],\n     [1, 'b', 'g', 'off'],\n     [22, 'a', 'f', 'off'],\n     [9, 'b', 'f', 'on'],\n     [15, 'a', 'f', 'on'],\n     [5, 'b', 'f', 'off']],\n    10],\n   [3, 0, 7, 5, 6, 2, 1, 4])]]\nfor label, args, expected in fixtures[N - 1]:\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":"ae70fee24af5e8dbd1df7ed963b6dd70e007a363e8f0958d5fc16e8c0e70afd1","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(events, window):\n    last = {}\n    out = []\n    for i in sorted(range(len(events)), key=lambda j: events[j][0]):\n        t, user, flag, variant = events[i]\n        k = (user, flag, variant)\n        if k in last and t - last[k] < window:\n            continue\n        last[k] = t\n        out.append(i)\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('variant change emits immediately', [[[0, 'a', 'f', 'on'], [1, 'a', 'f', 'off']], 10], [0, 1]),\n  ('different flags are tracked separately', [[[0, 'a', 'f', 'on'], [1, 'a', 'g', 'on']], 10], [0, 1]),\n  ('suppressed events do not extend the window',\n   [[[0, 'a', 'f', 'on'], [8, 'a', 'f', 'on'], [12, 'a', 'f', 'on']], 10],\n   [0, 2]),\n  ('duplicate inside a re-anchored window is suppressed',\n   [[[0, 'a', 'f', 'on'], [12, 'a', 'f', 'on'], [15, 'a', 'f', 'on'], [25, 'a', 'f', 'on']], 10],\n   [0, 1, 3]),\n  ('one second before the window closes is suppressed',\n   [[[0, 'b', 'g', 'off'], [9, 'b', 'g', 'off']], 10],\n   [0]),\n  ('exposure stream sample 1',\n   [[[2, 'a', 'f', 'on'],\n     [2, 'b', 'g', 'on'],\n     [9, 'a', 'g', 'on'],\n     [14, 'b', 'g', 'off'],\n     [18, 'a', 'g', 'off'],\n     [21, 'b', 'f', 'off'],\n     [21, 'b', 'f', 'on'],\n     [24, 'a', 'f', 'off']],\n    5],\n   [0, 1, 2, 3, 4, 5, 6, 7]),\n  ('exposure stream sample 2',\n   [[[21, 'a', 'f', 'off'],\n     [8, 'a', 'g', 'off'],\n     [3, 'a', 'f', 'off'],\n     [9, 'b', 'f', 'on'],\n     [21, 'a', 'g', 'on'],\n     [24, 'b', 'g', 'off'],\n     [20, 'b', 'f', 'on']],\n    0],\n   [2, 1, 3, 6, 0, 4, 5]),\n  ('exposure stream sample 3',\n   [[[2, 'b', 'f', 'on'], [6, 'b', 'f', 'on'], [21, 'b', 'f', 'off'], [24, 'a', 'g', 'on']], 10],\n   [0, 2, 3])],\n [('variant change emits immediately', [[[0, 'a', 'f', 'on'], [1, 'a', 'f', 'off']], 10], [0, 1]),\n  ('different flags are tracked separately', [[[0, 'a', 'f', 'on'], [1, 'a', 'g', 'on']], 10], [0, 1]),\n  ('suppressed events do not extend the window',\n   [[[0, 'a', 'f', 'on'], [8, 'a', 'f', 'on'], [12, 'a', 'f', 'on']], 10],\n   [0, 2]),\n  ('duplicate inside a re-anchored window is suppressed',\n   [[[0, 'a', 'f', 'on'], [12, 'a', 'f', 'on'], [15, 'a', 'f', 'on'], [25, 'a', 'f', 'on']], 10],\n   [0, 1, 3]),\n  ('one second before the window closes is suppressed',\n   [[[0, 'b', 'g', 'off'], [9, 'b', 'g', 'off']], 10],\n   [0]),\n  ('exactly one window later emits again', [[[0, 'a', 'f', 'on'], [10, 'a', 'f', 'on']], 10], [0, 1]),\n  ('exposure stream sample 23',\n   [[[1, 'a', 'g', 'on'],\n     [6, 'a', 'g', 'on'],\n     [9, 'b', 'f', 'on'],\n     [12, 'a', 'f', 'on'],\n     [13, 'a', 'f', 'off'],\n     [16, 'a', 'g', 'off'],\n     [20, 'b', 'f', 'off']],\n    10],\n   [0, 2, 3, 4, 5, 6]),\n  ('exposure stream sample 30',\n   [[[1, 'a', 'f', 'off'],\n     [5, 'a', 'g', 'on'],\n     [13, 'a', 'f', 'off'],\n     [7, 'a', 'f', 'on'],\n     [20, 'a', 'f', 'on']],\n    5],\n   [0, 1, 3, 2, 4])],\n [('suppressed events do not extend the window',\n   [[[0, 'a', 'f', 'on'], [8, 'a', 'f', 'on'], [12, 'a', 'f', 'on']], 10],\n   [0, 2]),\n  ('duplicate inside a re-anchored window is suppressed',\n   [[[0, 'a', 'f', 'on'], [12, 'a', 'f', 'on'], [15, 'a', 'f', 'on'], [25, 'a', 'f', 'on']], 10],\n   [0, 1, 3]),\n  ('one second before the window closes is suppressed',\n   [[[0, 'b', 'g', 'off'], [9, 'b', 'g', 'off']], 10],\n   [0]),\n  ('exactly one window later emits again', [[[0, 'a', 'f', 'on'], [10, 'a', 'f', 'on']], 10], [0, 1]),\n  ('events are processed in time order',\n   [[[12, 'a', 'f', 'on'], [0, 'a', 'f', 'on'], [5, 'b', 'f', 'on']], 10],\n   [1, 2, 0]),\n  ('exposure stream sample 11',\n   [[[10, 'b', 'g', 'on'], [19, 'b', 'g', 'off'], [9, 'b', 'f', 'on'], [16, 'a', 'f', 'on']], 10],\n   [2, 0, 3, 1]),\n  ('exposure stream sample 44',\n   [[[2, 'b', 'f', 'on'],\n     [5, 'b', 'g', 'off'],\n     [7, 'b', 'g', 'on'],\n     [10, 'a', 'g', 'off'],\n     [10, 'a', 'g', 'on']],\n    10],\n   [0, 1, 2, 3, 4]),\n  ('exposure stream sample 51',\n   [[[2, 'a', 'f', 'on'],\n     [10, 'a', 'g', 'off'],\n     [15, 'a', 'f', 'off'],\n     [19, 'b', 'f', 'off'],\n     [22, 'b', 'f', 'on'],\n     [24, 'a', 'f', 'off']],\n    10],\n   [0, 1, 2, 3, 4])],\n [('duplicate inside a re-anchored window is suppressed',\n   [[[0, 'a', 'f', 'on'], [12, 'a', 'f', 'on'], [15, 'a', 'f', 'on'], [25, 'a', 'f', 'on']], 10],\n   [0, 1, 3]),\n  ('one second before the window closes is suppressed',\n   [[[0, 'b', 'g', 'off'], [9, 'b', 'g', 'off']], 10],\n   [0]),\n  ('exactly one window later emits again', [[[0, 'a', 'f', 'on'], [10, 'a', 'f', 'on']], 10], [0, 1]),\n  ('events are processed in time order',\n   [[[12, 'a', 'f', 'on'], [0, 'a', 'f', 'on'], [5, 'b', 'f', 'on']], 10],\n   [1, 2, 0]),\n  ('zero window never suppresses', [[[0, 'a', 'f', 'on'], [0, 'a', 'f', 'on']], 0], [0, 1]),\n  ('exposure stream sample 1',\n   [[[2, 'a', 'f', 'on'],\n     [2, 'b', 'g', 'on'],\n     [9, 'a', 'g', 'on'],\n     [14, 'b', 'g', 'off'],\n     [18, 'a', 'g', 'off'],\n     [21, 'b', 'f', 'off'],\n     [21, 'b', 'f', 'on'],\n     [24, 'a', 'f', 'off']],\n    5],\n   [0, 1, 2, 3, 4, 5, 6, 7]),\n  ('exposure stream sample 12',\n   [[[7, 'a', 'f', 'off'],\n     [13, 'a', 'g', 'off'],\n     [3, 'a', 'g', 'off'],\n     [4, 'a', 'f', 'on'],\n     [3, 'a', 'g', 'off']],\n    10],\n   [2, 3, 0, 1]),\n  ('exposure stream sample 16',\n   [[[4, 'a', 'g', 'off'],\n     [21, 'a', 'g', 'off'],\n     [20, 'a', 'g', 'off'],\n     [23, 'b', 'g', 'on'],\n     [19, 'b', 'f', 'on'],\n     [22, 'b', 'f', 'on'],\n     [10, 'b', 'f', 'on']],\n    0],\n   [0, 6, 4, 2, 1, 5, 3])],\n [('one second before the window closes is suppressed',\n   [[[0, 'b', 'g', 'off'], [9, 'b', 'g', 'off']], 10],\n   [0]),\n  ('exactly one window later emits again', [[[0, 'a', 'f', 'on'], [10, 'a', 'f', 'on']], 10], [0, 1]),\n  ('events are processed in time order',\n   [[[12, 'a', 'f', 'on'], [0, 'a', 'f', 'on'], [5, 'b', 'f', 'on']], 10],\n   [1, 2, 0]),\n  ('zero window never suppresses', [[[0, 'a', 'f', 'on'], [0, 'a', 'f', 'on']], 0], [0, 1]),\n  ('users are tracked separately',\n   [[[0, 'a', 'f', 'on'], [1, 'b', 'f', 'on'], [2, 'a', 'f', 'on']], 5],\n   [0, 1]),\n  ('exposure stream sample 21',\n   [[[4, 'a', 'g', 'on'],\n     [5, 'a', 'g', 'on'],\n     [22, 'a', 'f', 'off'],\n     [4, 'a', 'g', 'on'],\n     [19, 'a', 'f', 'off'],\n     [8, 'a', 'g', 'on'],\n     [11, 'a', 'f', 'off']],\n    5],\n   [0, 6, 4]),\n  ('exposure stream sample 24',\n   [[[13, 'b', 'g', 'on'],\n     [22, 'a', 'g', 'off'],\n     [7, 'a', 'f', 'on'],\n     [8, 'b', 'f', 'off'],\n     [5, 'a', 'f', 'off'],\n     [17, 'b', 'f', 'off'],\n     [5, 'a', 'g', 'off'],\n     [9, 'a', 'g', 'on']],\n    5],\n   [4, 6, 2, 3, 7, 0, 5, 1]),\n  ('exposure stream sample 40',\n   [[[5, 'b', 'g', 'on'],\n     [22, 'a', 'g', 'on'],\n     [20, 'b', 'g', 'off'],\n     [1, 'b', 'g', 'off'],\n     [22, 'a', 'f', 'off'],\n     [9, 'b', 'f', 'on'],\n     [15, 'a', 'f', 'on'],\n     [5, 'b', 'f', 'off']],\n    10],\n   [3, 0, 7, 5, 6, 2, 1, 4])]]\nfor label, args, expected in fixtures[N - 1]:\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":"A deterministic toy flag-evaluation model with a stipulated contract; it does not reproduce any vendor SDK byte for byte. 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-feature-flag-rollout-bucketing-exposure-dedupe-dedupe-key","generated_at":"2026-09-29T14:48:54.256300+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Exposure logs define who entered an experiment; duplicates and gaps both bias analysis.","repair":"Deduplicate on (user, flag, variant).","root_cause":"The dedupe key is (user, flag), ignoring the variant.","sha256":"dabfb48b443f9247f447e293168cb107ee3f63ee89ceffcddfd7097b8ae24821","title":"Exposure event deduplication: Variant is missing from the dedupe key · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.853,"exit_code":1,"observations":[{"actual":[0,1],"check":"variant change emits immediately","expected":[0,1],"passed":true},{"actual":[0],"check":"different flags are tracked separately","expected":[0,1],"passed":false},{"actual":[0,2],"check":"suppressed events do not extend the window","expected":[0,2],"passed":true},{"actual":[0,1,3],"check":"duplicate inside a re-anchored window is suppressed","expected":[0,1,3],"passed":true},{"actual":[0],"check":"one second before the window closes is suppressed","expected":[0],"passed":true},{"actual":[0,1,2,3,4,5,6,7],"check":"exposure stream sample 1","expected":[0,1,2,3,4,5,6,7],"passed":true},{"actual":[2,1,3,6,0,4,5],"check":"exposure stream sample 2","expected":[2,1,3,6,0,4,5],"passed":true},{"actual":[0,2,3],"check":"exposure stream sample 3","expected":[0,2,3],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"variant change emits immediately\", \"actual\": [0, 1], \"expected\": [0, 1], \"passed\": true}, {\"check\": \"different flags are tracked separately\", \"actual\": [0], \"expected\": [0, 1], \"passed\": false}, {\"check\": \"suppressed events do not extend the window\", \"actual\": [0, 2], \"expected\": [0, 2], \"passed\": true}, {\"check\": \"duplicate inside a re-anchored window is suppressed\", \"actual\": [0, 1, 3], \"expected\": [0, 1, 3], \"passed\": true}, {\"check\": \"one second before the window closes is suppressed\", \"actual\": [0], \"expected\": [0], \"passed\": true}, {\"check\": \"exposure stream sample 1\", \"actual\": [0, 1, 2, 3, 4, 5, 6, 7], \"expected\": [0, 1, 2, 3, 4, 5, 6, 7], \"passed\": true}, {\"check\": \"exposure stream sample 2\", \"actual\": [2, 1, 3, 6, 0, 4, 5], \"expected\": [2, 1, 3, 6, 0, 4, 5], \"passed\": true}, {\"check\": \"exposure stream sample 3\", \"actual\": [0, 2, 3], \"expected\": [0, 2, 3], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.905,"exit_code":1,"observations":[{"actual":[0],"check":"variant change emits immediately","expected":[0,1],"passed":false},{"actual":[0,1],"check":"different flags are tracked separately","expected":[0,1],"passed":true},{"actual":[0,2],"check":"suppressed events do not extend the window","expected":[0,2],"passed":true},{"actual":[0,1,3],"check":"duplicate inside a re-anchored window is suppressed","expected":[0,1,3],"passed":true},{"actual":[0],"check":"one second before the window closes is suppressed","expected":[0],"passed":true},{"actual":[0,1,2,3,4,5,7],"check":"exposure stream sample 1","expected":[0,1,2,3,4,5,6,7],"passed":false},{"actual":[2,1,3,6,0,4,5],"check":"exposure stream sample 2","expected":[2,1,3,6,0,4,5],"passed":true},{"actual":[0,2,3],"check":"exposure stream sample 3","expected":[0,2,3],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"variant change emits immediately\", \"actual\": [0], \"expected\": [0, 1], \"passed\": false}, {\"check\": \"different flags are tracked separately\", \"actual\": [0, 1], \"expected\": [0, 1], \"passed\": true}, {\"check\": \"suppressed events do not extend the window\", \"actual\": [0, 2], \"expected\": [0, 2], \"passed\": true}, {\"check\": \"duplicate inside a re-anchored window is suppressed\", \"actual\": [0, 1, 3], \"expected\": [0, 1, 3], \"passed\": true}, {\"check\": \"one second before the window closes is suppressed\", \"actual\": [0], \"expected\": [0], \"passed\": true}, {\"check\": \"exposure stream sample 1\", \"actual\": [0, 1, 2, 3, 4, 5, 7], \"expected\": [0, 1, 2, 3, 4, 5, 6, 7], \"passed\": false}, {\"check\": \"exposure stream sample 2\", \"actual\": [2, 1, 3, 6, 0, 4, 5], \"expected\": [2, 1, 3, 6, 0, 4, 5], \"passed\": true}, {\"check\": \"exposure stream sample 3\", \"actual\": [0, 2, 3], \"expected\": [0, 2, 3], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":37.901,"exit_code":0,"observations":[{"actual":[0,1],"check":"variant change emits immediately","expected":[0,1],"passed":true},{"actual":[0,1],"check":"different flags are tracked separately","expected":[0,1],"passed":true},{"actual":[0,2],"check":"suppressed events do not extend the window","expected":[0,2],"passed":true},{"actual":[0,1,3],"check":"duplicate inside a re-anchored window is suppressed","expected":[0,1,3],"passed":true},{"actual":[0],"check":"one second before the window closes is suppressed","expected":[0],"passed":true},{"actual":[0,1,2,3,4,5,6,7],"check":"exposure stream sample 1","expected":[0,1,2,3,4,5,6,7],"passed":true},{"actual":[2,1,3,6,0,4,5],"check":"exposure stream sample 2","expected":[2,1,3,6,0,4,5],"passed":true},{"actual":[0,2,3],"check":"exposure stream sample 3","expected":[0,2,3],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"variant change emits immediately\", \"actual\": [0, 1], \"expected\": [0, 1], \"passed\": true}, {\"check\": \"different flags are tracked separately\", \"actual\": [0, 1], \"expected\": [0, 1], \"passed\": true}, {\"check\": \"suppressed events do not extend the window\", \"actual\": [0, 2], \"expected\": [0, 2], \"passed\": true}, {\"check\": \"duplicate inside a re-anchored window is suppressed\", \"actual\": [0, 1, 3], \"expected\": [0, 1, 3], \"passed\": true}, {\"check\": \"one second before the window closes is suppressed\", \"actual\": [0], \"expected\": [0], \"passed\": true}, {\"check\": \"exposure stream sample 1\", \"actual\": [0, 1, 2, 3, 4, 5, 6, 7], \"expected\": [0, 1, 2, 3, 4, 5, 6, 7], \"passed\": true}, {\"check\": \"exposure stream sample 2\", \"actual\": [2, 1, 3, 6, 0, 4, 5], \"expected\": [2, 1, 3, 6, 0, 4, 5], \"passed\": true}, {\"check\": \"exposure stream sample 3\", \"actual\": [0, 2, 3], \"expected\": [0, 2, 3], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}