FA-76071 / Chat ordering and read receipts / Open access
Page older history with a composite (ts, id) cursor: newest slice · case 01
Scrolling up loads the very oldest messages instead of those just above the view.
ROOT CAUSE
The newest slice decision evaluates `rows[:limit]` where the contract requires `rows[-limit:] if limit > 0 else []`.
VERIFIED REPAIR
Use `rows[-limit:] if limit > 0 else []` for the newest slice decision and keep every other rule of the model unchanged.
Unsuccessful approach: Slicing from the end without guarding zero returns the whole history for a zero limit. The attempted `rows[-limit:]` still disagrees with a fixture.
Case contract
messages are [ts, id] pairs in any order; ordering is by (ts, id). cursor is None or the exclusive [ts, id] of the oldest message already shown. A page holds the newest `limit` messages strictly older than the cursor, in ascending order; next is the [ts, id] of the page's oldest item when older messages remain, else None.
Why this case matters
Infinite-scroll history must neither skip nor duplicate messages that share a timestamp.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(messages, cursor, limit):
rows = sorted(messages, key=lambda m: (m[0], m[1]))
if cursor is not None:
rows = [m for m in rows if (m[0], m[1]) < (cursor[0], cursor[1])]
page = rows[:limit]
more = len(rows) > len(page)
return {'page': [m[1] for m in page], 'next': [page[0][0], page[0][1]] if more and page else None}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
_CASES = {1: [('siblings share the cursor timestamp', ([[100, 'a'], [100, 'd'], [100, 'b'], [100, 'c'], [91, 'z']], [100, 'c'], 5), {'next': None, 'page': ['z', 'a', 'b']}), ('equal timestamps across a page edge', ([[50, 'b'], [50, 'Q'], [50, 'a'], [40, 'x1']], None, 2), {'next': [50, 'a'], 'page': ['a', 'b']}), ('first page', ([[1, 'm01'], [2, 'm02'], [3, 'm03'], [4, 'm04'], [5, 'm05'], [6, 'm06'], [7, 'm07'], [8, 'm08']], None, 3), {'next': [6, 'm06'], 'page': ['m06', 'm07', 'm08']}), ('exact multiple', ([[1, 'a'], [2, 'b'], [3, 'c'], [4, 'd']], [5, 'e'], 4), {'next': None, 'page': ['a', 'b', 'c', 'd']}), ('zero limit', ([[1, 'a'], [2, 'b']], None, 0), {'next': None, 'page': []}), ('middle page', ([[10, 'id10'], [11, 'id11'], [12, 'id12'], [13, 'id13'], [14, 'id14'], [15, 'id15'], [16, 'id16'], [17, 'id17'], [18, 'id18'], [19, 'id19']], [15, 'id15'], 3), {'next': [12, 'id12'], 'page': ['id12', 'id13', 'id14']})], 2: [('siblings share the cursor timestamp', ([[100, 'a'], [100, 'd'], [100, 'b'], [100, 'c'], [92, 'z']], [100, 'c'], 5), {'next': None, 'page': ['z', 'a', 'b']}), ('equal timestamps across a page edge', ([[50, 'b'], [50, 'Q'], [50, 'a'], [40, 'x2']], None, 2), {'next': [50, 'a'], 'page': ['a', 'b']}), ('first page', ([[1, 'm01'], [2, 'm02'], [3, 'm03'], [4, 'm04'], [5, 'm05'], [6, 'm06'], [7, 'm07'], [8, 'm08'], [9, 'm09']], None, 3), {'next': [7, 'm07'], 'page': ['m07', 'm08', 'm09']}), ('exact multiple', ([[1, 'a'], [2, 'b'], [3, 'c'], [4, 'd']], [5, 'e'], 4), {'next': None, 'page': ['a', 'b', 'c', 'd']}), ('zero limit', ([[1, 'a'], [2, 'b']], None, 0), {'next': None, 'page': []}), ('middle page', ([[10, 'id10'], [11, 'id11'], [12, 'id12'], [13, 'id13'], [14, 'id14'], [15, 'id15'], [16, 'id16'], [17, 'id17'], [18, 'id18'], [19, 'id19']], [15, 'id15'], 2), {'next': [13, 'id13'], 'page': ['id13', 'id14']})], 3: [('siblings share the cursor timestamp', ([[100, 'a'], [100, 'd'], [100, 'b'], [100, 'c'], [93, 'z']], [100, 'c'], 5), {'next': None, 'page': ['z', 'a', 'b']}), ('equal timestamps across a page edge', ([[50, 'b'], [50, 'Q'], [50, 'a'], [40, 'x3']], None, 2), {'next': [50, 'a'], 'page': ['a', 'b']}), ('first page', ([[1, 'm01'], [2, 'm02'], [3, 'm03'], [4, 'm04'], [5, 'm05'], [6, 'm06'], [7, 'm07'], [8, 'm08'], [9, 'm09'], [10, 'm10']], None, 3), {'next': [8, 'm08'], 'page': ['m08', 'm09', 'm10']}), ('exact multiple', ([[1, 'a'], [2, 'b'], [3, 'c'], [4, 'd']], [5, 'e'], 4), {'next': None, 'page': ['a', 'b', 'c', 'd']}), ('zero limit', ([[1, 'a'], [2, 'b']], None, 0), {'next': None, 'page': []}), ('middle page', ([[10, 'id10'], [11, 'id11'], [12, 'id12'], [13, 'id13'], [14, 'id14'], [15, 'id15'], [16, 'id16'], [17, 'id17'], [18, 'id18'], [19, 'id19']], [15, 'id15'], 3), {'next': [12, 'id12'], 'page': ['id12', 'id13', 'id14']})], 4: [('siblings share the cursor timestamp', ([[100, 'a'], [100, 'd'], [100, 'b'], [100, 'c'], [94, 'z']], [100, 'c'], 5), {'next': None, 'page': ['z', 'a', 'b']}), ('equal timestamps across a page edge', ([[50, 'b'], [50, 'Q'], [50, 'a'], [40, 'x4']], None, 2), {'next': [50, 'a'], 'page': ['a', 'b']}), ('first page', ([[1, 'm01'], [2, 'm02'], [3, 'm03'], [4, 'm04'], [5, 'm05'], [6, 'm06'], [7, 'm07'], [8, 'm08'], [9, 'm09'], [10, 'm10'], [11, 'm11']], None, 3), {'next': [9, 'm09'], 'page': ['m09', 'm10', 'm11']}), ('exact multiple', ([[1, 'a'], [2, 'b'], [3, 'c'], [4, 'd']], [5, 'e'], 4), {'next': None, 'page': ['a', 'b', 'c', 'd']}), ('zero limit', ([[1, 'a'], [2, 'b']], None, 0), {'next': None, 'page': []}), ('middle page', ([[10, 'id10'], [11, 'id11'], [12, 'id12'], [13, 'id13'], [14, 'id14'], [15, 'id15'], [16, 'id16'], [17, 'id17'], [18, 'id18'], [19, 'id19']], [15, 'id15'], 2), {'next': [13, 'id13'], 'page': ['id13', 'id14']})], 5: [('siblings share the cursor timestamp', ([[100, 'a'], [100, 'd'], [100, 'b'], [100, 'c'], [95, 'z']], [100, 'c'], 5), {'next': None, 'page': ['z', 'a', 'b']}), ('equal timestamps across a page edge', ([[50, 'b'], [50, 'Q'], [50, 'a'], [40, 'x5']], None, 2), {'next': [50, 'a'], 'page': ['a', 'b']}), ('first page', ([[1, 'm01'], [2, 'm02'], [3, 'm03'], [4, 'm04'], [5, 'm05'], [6, 'm06'], [7, 'm07'], [8, 'm08'], [9, 'm09'], [10, 'm10'], [11, 'm11'], [12, 'm12']], None, 3), {'next': [10, 'm10'], 'page': ['m10', 'm11', 'm12']}), ('exact multiple', ([[1, 'a'], [2, 'b'], [3, 'c'], [4, 'd']], [5, 'e'], 4), {'next': None, 'page': ['a', 'b', 'c', 'd']}), ('zero limit', ([[1, 'a'], [2, 'b']], None, 0), {'next': None, 'page': []}), ('middle page', ([[10, 'id10'], [11, 'id11'], [12, 'id12'], [13, 'id13'], [14, 'id14'], [15, 'id15'], [16, 'id16'], [17, 'id17'], [18, 'id18'], [19, 'id19']], [15, 'id15'], 3), {'next': [12, 'id12'], 'page': ['id12', 'id13', 'id14']})]}
for _label, _args, _expected in _CASES[N]:
check(_label, solve(*_args), _expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| siblings share the cursor timestamp | {'next': None, 'page': ['z', 'a', 'b']} | {'next': None, 'page': ['z', 'a', 'b']} | Passed |
| equal timestamps across a page edge | {'next': [40, 'x1'], 'page': ['x1', 'Q']} | {'next': [50, 'a'], 'page': ['a', 'b']} | Failed |
| first page | {'next': [1, 'm01'], 'page': ['m01', 'm02', 'm03']} | {'next': [6, 'm06'], 'page': ['m06', 'm07', 'm08']} | Failed |
| exact multiple | {'next': None, 'page': ['a', 'b', 'c', 'd']} | {'next': None, 'page': ['a', 'b', 'c', 'd']} | Passed |
| zero limit | {'next': None, 'page': []} | {'next': None, 'page': []} | Passed |
| middle page | {'next': [10, 'id10'], 'page': ['id10', 'id11', 'id12']} | {'next': [12, 'id12'], 'page': ['id12', 'id13', 'id14']} | Failed |
SHA-256 / 801bb14c3c4ce644bcc293f5e599615e70d5439c1f1bd32bbd8718db2260c34d
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(messages, cursor, limit):
rows = sorted(messages, key=lambda m: (m[0], m[1]))
if cursor is not None:
rows = [m for m in rows if (m[0], m[1]) < (cursor[0], cursor[1])]
page = rows[-limit:]
more = len(rows) > len(page)
return {'page': [m[1] for m in page], 'next': [page[0][0], page[0][1]] if more and page else None}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
_CASES = {1: [('siblings share the cursor timestamp', ([[100, 'a'], [100, 'd'], [100, 'b'], [100, 'c'], [91, 'z']], [100, 'c'], 5), {'next': None, 'page': ['z', 'a', 'b']}), ('equal timestamps across a page edge', ([[50, 'b'], [50, 'Q'], [50, 'a'], [40, 'x1']], None, 2), {'next': [50, 'a'], 'page': ['a', 'b']}), ('first page', ([[1, 'm01'], [2, 'm02'], [3, 'm03'], [4, 'm04'], [5, 'm05'], [6, 'm06'], [7, 'm07'], [8, 'm08']], None, 3), {'next': [6, 'm06'], 'page': ['m06', 'm07', 'm08']}), ('exact multiple', ([[1, 'a'], [2, 'b'], [3, 'c'], [4, 'd']], [5, 'e'], 4), {'next': None, 'page': ['a', 'b', 'c', 'd']}), ('zero limit', ([[1, 'a'], [2, 'b']], None, 0), {'next': None, 'page': []}), ('middle page', ([[10, 'id10'], [11, 'id11'], [12, 'id12'], [13, 'id13'], [14, 'id14'], [15, 'id15'], [16, 'id16'], [17, 'id17'], [18, 'id18'], [19, 'id19']], [15, 'id15'], 3), {'next': [12, 'id12'], 'page': ['id12', 'id13', 'id14']})], 2: [('siblings share the cursor timestamp', ([[100, 'a'], [100, 'd'], [100, 'b'], [100, 'c'], [92, 'z']], [100, 'c'], 5), {'next': None, 'page': ['z', 'a', 'b']}), ('equal timestamps across a page edge', ([[50, 'b'], [50, 'Q'], [50, 'a'], [40, 'x2']], None, 2), {'next': [50, 'a'], 'page': ['a', 'b']}), ('first page', ([[1, 'm01'], [2, 'm02'], [3, 'm03'], [4, 'm04'], [5, 'm05'], [6, 'm06'], [7, 'm07'], [8, 'm08'], [9, 'm09']], None, 3), {'next': [7, 'm07'], 'page': ['m07', 'm08', 'm09']}), ('exact multiple', ([[1, 'a'], [2, 'b'], [3, 'c'], [4, 'd']], [5, 'e'], 4), {'next': None, 'page': ['a', 'b', 'c', 'd']}), ('zero limit', ([[1, 'a'], [2, 'b']], None, 0), {'next': None, 'page': []}), ('middle page', ([[10, 'id10'], [11, 'id11'], [12, 'id12'], [13, 'id13'], [14, 'id14'], [15, 'id15'], [16, 'id16'], [17, 'id17'], [18, 'id18'], [19, 'id19']], [15, 'id15'], 2), {'next': [13, 'id13'], 'page': ['id13', 'id14']})], 3: [('siblings share the cursor timestamp', ([[100, 'a'], [100, 'd'], [100, 'b'], [100, 'c'], [93, 'z']], [100, 'c'], 5), {'next': None, 'page': ['z', 'a', 'b']}), ('equal timestamps across a page edge', ([[50, 'b'], [50, 'Q'], [50, 'a'], [40, 'x3']], None, 2), {'next': [50, 'a'], 'page': ['a', 'b']}), ('first page', ([[1, 'm01'], [2, 'm02'], [3, 'm03'], [4, 'm04'], [5, 'm05'], [6, 'm06'], [7, 'm07'], [8, 'm08'], [9, 'm09'], [10, 'm10']], None, 3), {'next': [8, 'm08'], 'page': ['m08', 'm09', 'm10']}), ('exact multiple', ([[1, 'a'], [2, 'b'], [3, 'c'], [4, 'd']], [5, 'e'], 4), {'next': None, 'page': ['a', 'b', 'c', 'd']}), ('zero limit', ([[1, 'a'], [2, 'b']], None, 0), {'next': None, 'page': []}), ('middle page', ([[10, 'id10'], [11, 'id11'], [12, 'id12'], [13, 'id13'], [14, 'id14'], [15, 'id15'], [16, 'id16'], [17, 'id17'], [18, 'id18'], [19, 'id19']], [15, 'id15'], 3), {'next': [12, 'id12'], 'page': ['id12', 'id13', 'id14']})], 4: [('siblings share the cursor timestamp', ([[100, 'a'], [100, 'd'], [100, 'b'], [100, 'c'], [94, 'z']], [100, 'c'], 5), {'next': None, 'page': ['z', 'a', 'b']}), ('equal timestamps across a page edge', ([[50, 'b'], [50, 'Q'], [50, 'a'], [40, 'x4']], None, 2), {'next': [50, 'a'], 'page': ['a', 'b']}), ('first page', ([[1, 'm01'], [2, 'm02'], [3, 'm03'], [4, 'm04'], [5, 'm05'], [6, 'm06'], [7, 'm07'], [8, 'm08'], [9, 'm09'], [10, 'm10'], [11, 'm11']], None, 3), {'next': [9, 'm09'], 'page': ['m09', 'm10', 'm11']}), ('exact multiple', ([[1, 'a'], [2, 'b'], [3, 'c'], [4, 'd']], [5, 'e'], 4), {'next': None, 'page': ['a', 'b', 'c', 'd']}), ('zero limit', ([[1, 'a'], [2, 'b']], None, 0), {'next': None, 'page': []}), ('middle page', ([[10, 'id10'], [11, 'id11'], [12, 'id12'], [13, 'id13'], [14, 'id14'], [15, 'id15'], [16, 'id16'], [17, 'id17'], [18, 'id18'], [19, 'id19']], [15, 'id15'], 2), {'next': [13, 'id13'], 'page': ['id13', 'id14']})], 5: [('siblings share the cursor timestamp', ([[100, 'a'], [100, 'd'], [100, 'b'], [100, 'c'], [95, 'z']], [100, 'c'], 5), {'next': None, 'page': ['z', 'a', 'b']}), ('equal timestamps across a page edge', ([[50, 'b'], [50, 'Q'], [50, 'a'], [40, 'x5']], None, 2), {'next': [50, 'a'], 'page': ['a', 'b']}), ('first page', ([[1, 'm01'], [2, 'm02'], [3, 'm03'], [4, 'm04'], [5, 'm05'], [6, 'm06'], [7, 'm07'], [8, 'm08'], [9, 'm09'], [10, 'm10'], [11, 'm11'], [12, 'm12']], None, 3), {'next': [10, 'm10'], 'page': ['m10', 'm11', 'm12']}), ('exact multiple', ([[1, 'a'], [2, 'b'], [3, 'c'], [4, 'd']], [5, 'e'], 4), {'next': None, 'page': ['a', 'b', 'c', 'd']}), ('zero limit', ([[1, 'a'], [2, 'b']], None, 0), {'next': None, 'page': []}), ('middle page', ([[10, 'id10'], [11, 'id11'], [12, 'id12'], [13, 'id13'], [14, 'id14'], [15, 'id15'], [16, 'id16'], [17, 'id17'], [18, 'id18'], [19, 'id19']], [15, 'id15'], 3), {'next': [12, 'id12'], 'page': ['id12', 'id13', 'id14']})]}
for _label, _args, _expected in _CASES[N]:
check(_label, solve(*_args), _expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| siblings share the cursor timestamp | {'next': None, 'page': ['z', 'a', 'b']} | {'next': None, 'page': ['z', 'a', 'b']} | Passed |
| equal timestamps across a page edge | {'next': [50, 'a'], 'page': ['a', 'b']} | {'next': [50, 'a'], 'page': ['a', 'b']} | Passed |
| first page | {'next': [6, 'm06'], 'page': ['m06', 'm07', 'm08']} | {'next': [6, 'm06'], 'page': ['m06', 'm07', 'm08']} | Passed |
| exact multiple | {'next': None, 'page': ['a', 'b', 'c', 'd']} | {'next': None, 'page': ['a', 'b', 'c', 'd']} | Passed |
| zero limit | {'next': None, 'page': ['a', 'b']} | {'next': None, 'page': []} | Failed |
| middle page | {'next': [12, 'id12'], 'page': ['id12', 'id13', 'id14']} | {'next': [12, 'id12'], 'page': ['id12', 'id13', 'id14']} | Passed |
SHA-256 / 44046c6300932e66ae7e76200c199873de4fd3d4ae16841d1539386532269033
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(messages, cursor, limit):
rows = sorted(messages, key=lambda m: (m[0], m[1]))
if cursor is not None:
rows = [m for m in rows if (m[0], m[1]) < (cursor[0], cursor[1])]
page = rows[-limit:] if limit > 0 else []
more = len(rows) > len(page)
return {'page': [m[1] for m in page], 'next': [page[0][0], page[0][1]] if more and page else None}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
_CASES = {1: [('siblings share the cursor timestamp', ([[100, 'a'], [100, 'd'], [100, 'b'], [100, 'c'], [91, 'z']], [100, 'c'], 5), {'next': None, 'page': ['z', 'a', 'b']}), ('equal timestamps across a page edge', ([[50, 'b'], [50, 'Q'], [50, 'a'], [40, 'x1']], None, 2), {'next': [50, 'a'], 'page': ['a', 'b']}), ('first page', ([[1, 'm01'], [2, 'm02'], [3, 'm03'], [4, 'm04'], [5, 'm05'], [6, 'm06'], [7, 'm07'], [8, 'm08']], None, 3), {'next': [6, 'm06'], 'page': ['m06', 'm07', 'm08']}), ('exact multiple', ([[1, 'a'], [2, 'b'], [3, 'c'], [4, 'd']], [5, 'e'], 4), {'next': None, 'page': ['a', 'b', 'c', 'd']}), ('zero limit', ([[1, 'a'], [2, 'b']], None, 0), {'next': None, 'page': []}), ('middle page', ([[10, 'id10'], [11, 'id11'], [12, 'id12'], [13, 'id13'], [14, 'id14'], [15, 'id15'], [16, 'id16'], [17, 'id17'], [18, 'id18'], [19, 'id19']], [15, 'id15'], 3), {'next': [12, 'id12'], 'page': ['id12', 'id13', 'id14']})], 2: [('siblings share the cursor timestamp', ([[100, 'a'], [100, 'd'], [100, 'b'], [100, 'c'], [92, 'z']], [100, 'c'], 5), {'next': None, 'page': ['z', 'a', 'b']}), ('equal timestamps across a page edge', ([[50, 'b'], [50, 'Q'], [50, 'a'], [40, 'x2']], None, 2), {'next': [50, 'a'], 'page': ['a', 'b']}), ('first page', ([[1, 'm01'], [2, 'm02'], [3, 'm03'], [4, 'm04'], [5, 'm05'], [6, 'm06'], [7, 'm07'], [8, 'm08'], [9, 'm09']], None, 3), {'next': [7, 'm07'], 'page': ['m07', 'm08', 'm09']}), ('exact multiple', ([[1, 'a'], [2, 'b'], [3, 'c'], [4, 'd']], [5, 'e'], 4), {'next': None, 'page': ['a', 'b', 'c', 'd']}), ('zero limit', ([[1, 'a'], [2, 'b']], None, 0), {'next': None, 'page': []}), ('middle page', ([[10, 'id10'], [11, 'id11'], [12, 'id12'], [13, 'id13'], [14, 'id14'], [15, 'id15'], [16, 'id16'], [17, 'id17'], [18, 'id18'], [19, 'id19']], [15, 'id15'], 2), {'next': [13, 'id13'], 'page': ['id13', 'id14']})], 3: [('siblings share the cursor timestamp', ([[100, 'a'], [100, 'd'], [100, 'b'], [100, 'c'], [93, 'z']], [100, 'c'], 5), {'next': None, 'page': ['z', 'a', 'b']}), ('equal timestamps across a page edge', ([[50, 'b'], [50, 'Q'], [50, 'a'], [40, 'x3']], None, 2), {'next': [50, 'a'], 'page': ['a', 'b']}), ('first page', ([[1, 'm01'], [2, 'm02'], [3, 'm03'], [4, 'm04'], [5, 'm05'], [6, 'm06'], [7, 'm07'], [8, 'm08'], [9, 'm09'], [10, 'm10']], None, 3), {'next': [8, 'm08'], 'page': ['m08', 'm09', 'm10']}), ('exact multiple', ([[1, 'a'], [2, 'b'], [3, 'c'], [4, 'd']], [5, 'e'], 4), {'next': None, 'page': ['a', 'b', 'c', 'd']}), ('zero limit', ([[1, 'a'], [2, 'b']], None, 0), {'next': None, 'page': []}), ('middle page', ([[10, 'id10'], [11, 'id11'], [12, 'id12'], [13, 'id13'], [14, 'id14'], [15, 'id15'], [16, 'id16'], [17, 'id17'], [18, 'id18'], [19, 'id19']], [15, 'id15'], 3), {'next': [12, 'id12'], 'page': ['id12', 'id13', 'id14']})], 4: [('siblings share the cursor timestamp', ([[100, 'a'], [100, 'd'], [100, 'b'], [100, 'c'], [94, 'z']], [100, 'c'], 5), {'next': None, 'page': ['z', 'a', 'b']}), ('equal timestamps across a page edge', ([[50, 'b'], [50, 'Q'], [50, 'a'], [40, 'x4']], None, 2), {'next': [50, 'a'], 'page': ['a', 'b']}), ('first page', ([[1, 'm01'], [2, 'm02'], [3, 'm03'], [4, 'm04'], [5, 'm05'], [6, 'm06'], [7, 'm07'], [8, 'm08'], [9, 'm09'], [10, 'm10'], [11, 'm11']], None, 3), {'next': [9, 'm09'], 'page': ['m09', 'm10', 'm11']}), ('exact multiple', ([[1, 'a'], [2, 'b'], [3, 'c'], [4, 'd']], [5, 'e'], 4), {'next': None, 'page': ['a', 'b', 'c', 'd']}), ('zero limit', ([[1, 'a'], [2, 'b']], None, 0), {'next': None, 'page': []}), ('middle page', ([[10, 'id10'], [11, 'id11'], [12, 'id12'], [13, 'id13'], [14, 'id14'], [15, 'id15'], [16, 'id16'], [17, 'id17'], [18, 'id18'], [19, 'id19']], [15, 'id15'], 2), {'next': [13, 'id13'], 'page': ['id13', 'id14']})], 5: [('siblings share the cursor timestamp', ([[100, 'a'], [100, 'd'], [100, 'b'], [100, 'c'], [95, 'z']], [100, 'c'], 5), {'next': None, 'page': ['z', 'a', 'b']}), ('equal timestamps across a page edge', ([[50, 'b'], [50, 'Q'], [50, 'a'], [40, 'x5']], None, 2), {'next': [50, 'a'], 'page': ['a', 'b']}), ('first page', ([[1, 'm01'], [2, 'm02'], [3, 'm03'], [4, 'm04'], [5, 'm05'], [6, 'm06'], [7, 'm07'], [8, 'm08'], [9, 'm09'], [10, 'm10'], [11, 'm11'], [12, 'm12']], None, 3), {'next': [10, 'm10'], 'page': ['m10', 'm11', 'm12']}), ('exact multiple', ([[1, 'a'], [2, 'b'], [3, 'c'], [4, 'd']], [5, 'e'], 4), {'next': None, 'page': ['a', 'b', 'c', 'd']}), ('zero limit', ([[1, 'a'], [2, 'b']], None, 0), {'next': None, 'page': []}), ('middle page', ([[10, 'id10'], [11, 'id11'], [12, 'id12'], [13, 'id13'], [14, 'id14'], [15, 'id15'], [16, 'id16'], [17, 'id17'], [18, 'id18'], [19, 'id19']], [15, 'id15'], 3), {'next': [12, 'id12'], 'page': ['id12', 'id13', 'id14']})]}
for _label, _args, _expected in _CASES[N]:
check(_label, solve(*_args), _expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| siblings share the cursor timestamp | {'next': None, 'page': ['z', 'a', 'b']} | {'next': None, 'page': ['z', 'a', 'b']} | Passed |
| equal timestamps across a page edge | {'next': [50, 'a'], 'page': ['a', 'b']} | {'next': [50, 'a'], 'page': ['a', 'b']} | Passed |
| first page | {'next': [6, 'm06'], 'page': ['m06', 'm07', 'm08']} | {'next': [6, 'm06'], 'page': ['m06', 'm07', 'm08']} | Passed |
| exact multiple | {'next': None, 'page': ['a', 'b', 'c', 'd']} | {'next': None, 'page': ['a', 'b', 'c', 'd']} | Passed |
| zero limit | {'next': None, 'page': []} | {'next': None, 'page': []} | Passed |
| middle page | {'next': [12, 'id12'], 'page': ['id12', 'id13', 'id14']} | {'next': [12, 'id12'], 'page': ['id12', 'id13', 'id14']} | Passed |
SHA-256 / 4e4147fd5d6024af8afb8e4af8e24f29267a80d1c1439ea2b6069cfb4cc7aa4d
Verification & scope
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.
Observations recorded using Python 3.12.14 at 2026-09-29T14:49:12.852996+00:00.
Case digest / ff58c9bae0e75c158043af062f24f7f05547a99dd9df26082a30c9e850f38874