FAILURE MAP
← Case archive

FA-76291 / Chat ordering and read receipts / Open access

Order the conversation list by pins and activity: activity descending · case 01

The least active conversations are listed first, or ties follow input order.

Verified by executionVariant 1 · 6 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

The activity descending decision evaluates `key=lambda c: (activity(c), c['id'])` where the contract requires `key=lambda c: (-activity(c), c['id'])`.

VERIFIED REPAIR

Use `key=lambda c: (-activity(c), c['id'])` for the activity descending decision and keep every other rule of the model unchanged.

Unsuccessful approach: Dropping the id tie-break orders equally active conversations by input order. The attempted `key=lambda c: -activity(c)` still disagrees with a fixture.

Case contract

convs {id, pinned (rank or None), last_msg, last_silent, draft_ts (or None)}. Pinned conversations come first by pin rank (rank 0 is a valid pin). The rest are ordered by activity descending, then id ascending, where activity is the later of the last real message and the local draft; silent events (avatar or topic changes) never count.

Why this case matters

The conversation list is the entry point of a chat app; wrong ordering buries active conversations.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(convs):
    def activity(c):
        return max(c['last_msg'], c['draft_ts'] or 0)
    pinned = sorted((c for c in convs if c['pinned'] is not None), key=lambda c: c['pinned'])
    rest = sorted((c for c in convs if c['pinned'] is None), key=lambda c: (activity(c), c['id']))
    return [c['id'] for c in pinned + rest]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
_CASES = {1: [('silent topic change', ([{'id': 'a', 'pinned': None, 'last_msg': 10, 'last_silent': 99, 'draft_ts': None}, {'id': 'b', 'pinned': None, 'last_msg': 21, 'last_silent': 0, 'draft_ts': None}],), ['b', 'a']), ('pin rank zero', ([{'id': 'p0', 'pinned': 0, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'p1', 'pinned': 1, 'last_msg': 2, 'last_silent': 0, 'draft_ts': None}, {'id': 'x', 'pinned': None, 'last_msg': 50, 'last_silent': 0, 'draft_ts': None}],), ['p0', 'p1', 'x']), ('activity ties', ([{'id': 'm', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'c', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'z', 'pinned': None, 'last_msg': 4, 'last_silent': 0, 'draft_ts': None}],), ['c', 'm', 'z']), ('draft bumps', ([{'id': 'd', 'pinned': None, 'last_msg': 5, 'last_silent': 0, 'draft_ts': 30}, {'id': 'e', 'pinned': None, 'last_msg': 21, 'last_silent': 0, 'draft_ts': None}],), ['d', 'e']), ('pins by rank not activity', ([{'id': 'old', 'pinned': 1, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'new', 'pinned': 2, 'last_msg': 91, 'last_silent': 0, 'draft_ts': None}],), ['old', 'new']), ('silent without draft', ([{'id': 'q', 'pinned': None, 'last_msg': 4, 'last_silent': 60, 'draft_ts': None}, {'id': 'r', 'pinned': None, 'last_msg': 8, 'last_silent': 0, 'draft_ts': 2}],), ['r', 'q'])], 2: [('silent topic change', ([{'id': 'a', 'pinned': None, 'last_msg': 10, 'last_silent': 99, 'draft_ts': None}, {'id': 'b', 'pinned': None, 'last_msg': 22, 'last_silent': 0, 'draft_ts': None}],), ['b', 'a']), ('pin rank zero', ([{'id': 'p0', 'pinned': 0, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'p1', 'pinned': 1, 'last_msg': 2, 'last_silent': 0, 'draft_ts': None}, {'id': 'x', 'pinned': None, 'last_msg': 50, 'last_silent': 0, 'draft_ts': None}],), ['p0', 'p1', 'x']), ('activity ties', ([{'id': 'm', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'c', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'z', 'pinned': None, 'last_msg': 5, 'last_silent': 0, 'draft_ts': None}],), ['c', 'm', 'z']), ('draft bumps', ([{'id': 'd', 'pinned': None, 'last_msg': 5, 'last_silent': 0, 'draft_ts': 30}, {'id': 'e', 'pinned': None, 'last_msg': 22, 'last_silent': 0, 'draft_ts': None}],), ['d', 'e']), ('pins by rank not activity', ([{'id': 'old', 'pinned': 1, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'new', 'pinned': 2, 'last_msg': 92, 'last_silent': 0, 'draft_ts': None}],), ['old', 'new']), ('silent without draft', ([{'id': 'q', 'pinned': None, 'last_msg': 4, 'last_silent': 60, 'draft_ts': None}, {'id': 'r', 'pinned': None, 'last_msg': 8, 'last_silent': 0, 'draft_ts': 2}],), ['r', 'q'])], 3: [('silent topic change', ([{'id': 'a', 'pinned': None, 'last_msg': 10, 'last_silent': 99, 'draft_ts': None}, {'id': 'b', 'pinned': None, 'last_msg': 23, 'last_silent': 0, 'draft_ts': None}],), ['b', 'a']), ('pin rank zero', ([{'id': 'p0', 'pinned': 0, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'p1', 'pinned': 1, 'last_msg': 2, 'last_silent': 0, 'draft_ts': None}, {'id': 'x', 'pinned': None, 'last_msg': 50, 'last_silent': 0, 'draft_ts': None}],), ['p0', 'p1', 'x']), ('activity ties', ([{'id': 'm', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'c', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'z', 'pinned': None, 'last_msg': 6, 'last_silent': 0, 'draft_ts': None}],), ['c', 'm', 'z']), ('draft bumps', ([{'id': 'd', 'pinned': None, 'last_msg': 5, 'last_silent': 0, 'draft_ts': 30}, {'id': 'e', 'pinned': None, 'last_msg': 23, 'last_silent': 0, 'draft_ts': None}],), ['d', 'e']), ('pins by rank not activity', ([{'id': 'old', 'pinned': 1, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'new', 'pinned': 2, 'last_msg': 93, 'last_silent': 0, 'draft_ts': None}],), ['old', 'new']), ('silent without draft', ([{'id': 'q', 'pinned': None, 'last_msg': 4, 'last_silent': 60, 'draft_ts': None}, {'id': 'r', 'pinned': None, 'last_msg': 8, 'last_silent': 0, 'draft_ts': 2}],), ['r', 'q'])], 4: [('silent topic change', ([{'id': 'a', 'pinned': None, 'last_msg': 10, 'last_silent': 99, 'draft_ts': None}, {'id': 'b', 'pinned': None, 'last_msg': 24, 'last_silent': 0, 'draft_ts': None}],), ['b', 'a']), ('pin rank zero', ([{'id': 'p0', 'pinned': 0, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'p1', 'pinned': 1, 'last_msg': 2, 'last_silent': 0, 'draft_ts': None}, {'id': 'x', 'pinned': None, 'last_msg': 50, 'last_silent': 0, 'draft_ts': None}],), ['p0', 'p1', 'x']), ('activity ties', ([{'id': 'm', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'c', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'z', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}],), ['c', 'm', 'z']), ('draft bumps', ([{'id': 'd', 'pinned': None, 'last_msg': 5, 'last_silent': 0, 'draft_ts': 30}, {'id': 'e', 'pinned': None, 'last_msg': 24, 'last_silent': 0, 'draft_ts': None}],), ['d', 'e']), ('pins by rank not activity', ([{'id': 'old', 'pinned': 1, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'new', 'pinned': 2, 'last_msg': 94, 'last_silent': 0, 'draft_ts': None}],), ['old', 'new']), ('silent without draft', ([{'id': 'q', 'pinned': None, 'last_msg': 4, 'last_silent': 60, 'draft_ts': None}, {'id': 'r', 'pinned': None, 'last_msg': 8, 'last_silent': 0, 'draft_ts': 2}],), ['r', 'q'])], 5: [('silent topic change', ([{'id': 'a', 'pinned': None, 'last_msg': 10, 'last_silent': 99, 'draft_ts': None}, {'id': 'b', 'pinned': None, 'last_msg': 25, 'last_silent': 0, 'draft_ts': None}],), ['b', 'a']), ('pin rank zero', ([{'id': 'p0', 'pinned': 0, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'p1', 'pinned': 1, 'last_msg': 2, 'last_silent': 0, 'draft_ts': None}, {'id': 'x', 'pinned': None, 'last_msg': 50, 'last_silent': 0, 'draft_ts': None}],), ['p0', 'p1', 'x']), ('activity ties', ([{'id': 'm', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'c', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'z', 'pinned': None, 'last_msg': 8, 'last_silent': 0, 'draft_ts': None}],), ['z', 'c', 'm']), ('draft bumps', ([{'id': 'd', 'pinned': None, 'last_msg': 5, 'last_silent': 0, 'draft_ts': 30}, {'id': 'e', 'pinned': None, 'last_msg': 25, 'last_silent': 0, 'draft_ts': None}],), ['d', 'e']), ('pins by rank not activity', ([{'id': 'old', 'pinned': 1, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'new', 'pinned': 2, 'last_msg': 95, 'last_silent': 0, 'draft_ts': None}],), ['old', 'new']), ('silent without draft', ([{'id': 'q', 'pinned': None, 'last_msg': 4, 'last_silent': 60, 'draft_ts': None}, {'id': 'r', 'pinned': None, 'last_msg': 8, 'last_silent': 0, 'draft_ts': 2}],), ['r', 'q'])]}
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 fixtureActualExpectedOutcome
silent topic change['a', 'b']['b', 'a']Failed
pin rank zero['p0', 'p1', 'x']['p0', 'p1', 'x']Passed
activity ties['z', 'c', 'm']['c', 'm', 'z']Failed
draft bumps['e', 'd']['d', 'e']Failed
pins by rank not activity['old', 'new']['old', 'new']Passed
silent without draft['q', 'r']['r', 'q']Failed

SHA-256 / fecc5cb943b4c55e3583d3cf81172e0aa557cccf2baab03eea877a58a407f887

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(convs):
    def activity(c):
        return max(c['last_msg'], c['draft_ts'] or 0)
    pinned = sorted((c for c in convs if c['pinned'] is not None), key=lambda c: c['pinned'])
    rest = sorted((c for c in convs if c['pinned'] is None), key=lambda c: -activity(c))
    return [c['id'] for c in pinned + rest]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
_CASES = {1: [('silent topic change', ([{'id': 'a', 'pinned': None, 'last_msg': 10, 'last_silent': 99, 'draft_ts': None}, {'id': 'b', 'pinned': None, 'last_msg': 21, 'last_silent': 0, 'draft_ts': None}],), ['b', 'a']), ('pin rank zero', ([{'id': 'p0', 'pinned': 0, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'p1', 'pinned': 1, 'last_msg': 2, 'last_silent': 0, 'draft_ts': None}, {'id': 'x', 'pinned': None, 'last_msg': 50, 'last_silent': 0, 'draft_ts': None}],), ['p0', 'p1', 'x']), ('activity ties', ([{'id': 'm', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'c', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'z', 'pinned': None, 'last_msg': 4, 'last_silent': 0, 'draft_ts': None}],), ['c', 'm', 'z']), ('draft bumps', ([{'id': 'd', 'pinned': None, 'last_msg': 5, 'last_silent': 0, 'draft_ts': 30}, {'id': 'e', 'pinned': None, 'last_msg': 21, 'last_silent': 0, 'draft_ts': None}],), ['d', 'e']), ('pins by rank not activity', ([{'id': 'old', 'pinned': 1, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'new', 'pinned': 2, 'last_msg': 91, 'last_silent': 0, 'draft_ts': None}],), ['old', 'new']), ('silent without draft', ([{'id': 'q', 'pinned': None, 'last_msg': 4, 'last_silent': 60, 'draft_ts': None}, {'id': 'r', 'pinned': None, 'last_msg': 8, 'last_silent': 0, 'draft_ts': 2}],), ['r', 'q'])], 2: [('silent topic change', ([{'id': 'a', 'pinned': None, 'last_msg': 10, 'last_silent': 99, 'draft_ts': None}, {'id': 'b', 'pinned': None, 'last_msg': 22, 'last_silent': 0, 'draft_ts': None}],), ['b', 'a']), ('pin rank zero', ([{'id': 'p0', 'pinned': 0, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'p1', 'pinned': 1, 'last_msg': 2, 'last_silent': 0, 'draft_ts': None}, {'id': 'x', 'pinned': None, 'last_msg': 50, 'last_silent': 0, 'draft_ts': None}],), ['p0', 'p1', 'x']), ('activity ties', ([{'id': 'm', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'c', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'z', 'pinned': None, 'last_msg': 5, 'last_silent': 0, 'draft_ts': None}],), ['c', 'm', 'z']), ('draft bumps', ([{'id': 'd', 'pinned': None, 'last_msg': 5, 'last_silent': 0, 'draft_ts': 30}, {'id': 'e', 'pinned': None, 'last_msg': 22, 'last_silent': 0, 'draft_ts': None}],), ['d', 'e']), ('pins by rank not activity', ([{'id': 'old', 'pinned': 1, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'new', 'pinned': 2, 'last_msg': 92, 'last_silent': 0, 'draft_ts': None}],), ['old', 'new']), ('silent without draft', ([{'id': 'q', 'pinned': None, 'last_msg': 4, 'last_silent': 60, 'draft_ts': None}, {'id': 'r', 'pinned': None, 'last_msg': 8, 'last_silent': 0, 'draft_ts': 2}],), ['r', 'q'])], 3: [('silent topic change', ([{'id': 'a', 'pinned': None, 'last_msg': 10, 'last_silent': 99, 'draft_ts': None}, {'id': 'b', 'pinned': None, 'last_msg': 23, 'last_silent': 0, 'draft_ts': None}],), ['b', 'a']), ('pin rank zero', ([{'id': 'p0', 'pinned': 0, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'p1', 'pinned': 1, 'last_msg': 2, 'last_silent': 0, 'draft_ts': None}, {'id': 'x', 'pinned': None, 'last_msg': 50, 'last_silent': 0, 'draft_ts': None}],), ['p0', 'p1', 'x']), ('activity ties', ([{'id': 'm', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'c', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'z', 'pinned': None, 'last_msg': 6, 'last_silent': 0, 'draft_ts': None}],), ['c', 'm', 'z']), ('draft bumps', ([{'id': 'd', 'pinned': None, 'last_msg': 5, 'last_silent': 0, 'draft_ts': 30}, {'id': 'e', 'pinned': None, 'last_msg': 23, 'last_silent': 0, 'draft_ts': None}],), ['d', 'e']), ('pins by rank not activity', ([{'id': 'old', 'pinned': 1, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'new', 'pinned': 2, 'last_msg': 93, 'last_silent': 0, 'draft_ts': None}],), ['old', 'new']), ('silent without draft', ([{'id': 'q', 'pinned': None, 'last_msg': 4, 'last_silent': 60, 'draft_ts': None}, {'id': 'r', 'pinned': None, 'last_msg': 8, 'last_silent': 0, 'draft_ts': 2}],), ['r', 'q'])], 4: [('silent topic change', ([{'id': 'a', 'pinned': None, 'last_msg': 10, 'last_silent': 99, 'draft_ts': None}, {'id': 'b', 'pinned': None, 'last_msg': 24, 'last_silent': 0, 'draft_ts': None}],), ['b', 'a']), ('pin rank zero', ([{'id': 'p0', 'pinned': 0, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'p1', 'pinned': 1, 'last_msg': 2, 'last_silent': 0, 'draft_ts': None}, {'id': 'x', 'pinned': None, 'last_msg': 50, 'last_silent': 0, 'draft_ts': None}],), ['p0', 'p1', 'x']), ('activity ties', ([{'id': 'm', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'c', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'z', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}],), ['c', 'm', 'z']), ('draft bumps', ([{'id': 'd', 'pinned': None, 'last_msg': 5, 'last_silent': 0, 'draft_ts': 30}, {'id': 'e', 'pinned': None, 'last_msg': 24, 'last_silent': 0, 'draft_ts': None}],), ['d', 'e']), ('pins by rank not activity', ([{'id': 'old', 'pinned': 1, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'new', 'pinned': 2, 'last_msg': 94, 'last_silent': 0, 'draft_ts': None}],), ['old', 'new']), ('silent without draft', ([{'id': 'q', 'pinned': None, 'last_msg': 4, 'last_silent': 60, 'draft_ts': None}, {'id': 'r', 'pinned': None, 'last_msg': 8, 'last_silent': 0, 'draft_ts': 2}],), ['r', 'q'])], 5: [('silent topic change', ([{'id': 'a', 'pinned': None, 'last_msg': 10, 'last_silent': 99, 'draft_ts': None}, {'id': 'b', 'pinned': None, 'last_msg': 25, 'last_silent': 0, 'draft_ts': None}],), ['b', 'a']), ('pin rank zero', ([{'id': 'p0', 'pinned': 0, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'p1', 'pinned': 1, 'last_msg': 2, 'last_silent': 0, 'draft_ts': None}, {'id': 'x', 'pinned': None, 'last_msg': 50, 'last_silent': 0, 'draft_ts': None}],), ['p0', 'p1', 'x']), ('activity ties', ([{'id': 'm', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'c', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'z', 'pinned': None, 'last_msg': 8, 'last_silent': 0, 'draft_ts': None}],), ['z', 'c', 'm']), ('draft bumps', ([{'id': 'd', 'pinned': None, 'last_msg': 5, 'last_silent': 0, 'draft_ts': 30}, {'id': 'e', 'pinned': None, 'last_msg': 25, 'last_silent': 0, 'draft_ts': None}],), ['d', 'e']), ('pins by rank not activity', ([{'id': 'old', 'pinned': 1, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'new', 'pinned': 2, 'last_msg': 95, 'last_silent': 0, 'draft_ts': None}],), ['old', 'new']), ('silent without draft', ([{'id': 'q', 'pinned': None, 'last_msg': 4, 'last_silent': 60, 'draft_ts': None}, {'id': 'r', 'pinned': None, 'last_msg': 8, 'last_silent': 0, 'draft_ts': 2}],), ['r', 'q'])]}
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 fixtureActualExpectedOutcome
silent topic change['b', 'a']['b', 'a']Passed
pin rank zero['p0', 'p1', 'x']['p0', 'p1', 'x']Passed
activity ties['m', 'c', 'z']['c', 'm', 'z']Failed
draft bumps['d', 'e']['d', 'e']Passed
pins by rank not activity['old', 'new']['old', 'new']Passed
silent without draft['r', 'q']['r', 'q']Passed

SHA-256 / 84eb1187babc240eb15a93fe7e4cd6227a76d2e3bd1b5ec4b2d5f7c3273e738d

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(convs):
    def activity(c):
        return max(c['last_msg'], c['draft_ts'] or 0)
    pinned = sorted((c for c in convs if c['pinned'] is not None), key=lambda c: c['pinned'])
    rest = sorted((c for c in convs if c['pinned'] is None), key=lambda c: (-activity(c), c['id']))
    return [c['id'] for c in pinned + rest]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
_CASES = {1: [('silent topic change', ([{'id': 'a', 'pinned': None, 'last_msg': 10, 'last_silent': 99, 'draft_ts': None}, {'id': 'b', 'pinned': None, 'last_msg': 21, 'last_silent': 0, 'draft_ts': None}],), ['b', 'a']), ('pin rank zero', ([{'id': 'p0', 'pinned': 0, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'p1', 'pinned': 1, 'last_msg': 2, 'last_silent': 0, 'draft_ts': None}, {'id': 'x', 'pinned': None, 'last_msg': 50, 'last_silent': 0, 'draft_ts': None}],), ['p0', 'p1', 'x']), ('activity ties', ([{'id': 'm', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'c', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'z', 'pinned': None, 'last_msg': 4, 'last_silent': 0, 'draft_ts': None}],), ['c', 'm', 'z']), ('draft bumps', ([{'id': 'd', 'pinned': None, 'last_msg': 5, 'last_silent': 0, 'draft_ts': 30}, {'id': 'e', 'pinned': None, 'last_msg': 21, 'last_silent': 0, 'draft_ts': None}],), ['d', 'e']), ('pins by rank not activity', ([{'id': 'old', 'pinned': 1, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'new', 'pinned': 2, 'last_msg': 91, 'last_silent': 0, 'draft_ts': None}],), ['old', 'new']), ('silent without draft', ([{'id': 'q', 'pinned': None, 'last_msg': 4, 'last_silent': 60, 'draft_ts': None}, {'id': 'r', 'pinned': None, 'last_msg': 8, 'last_silent': 0, 'draft_ts': 2}],), ['r', 'q'])], 2: [('silent topic change', ([{'id': 'a', 'pinned': None, 'last_msg': 10, 'last_silent': 99, 'draft_ts': None}, {'id': 'b', 'pinned': None, 'last_msg': 22, 'last_silent': 0, 'draft_ts': None}],), ['b', 'a']), ('pin rank zero', ([{'id': 'p0', 'pinned': 0, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'p1', 'pinned': 1, 'last_msg': 2, 'last_silent': 0, 'draft_ts': None}, {'id': 'x', 'pinned': None, 'last_msg': 50, 'last_silent': 0, 'draft_ts': None}],), ['p0', 'p1', 'x']), ('activity ties', ([{'id': 'm', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'c', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'z', 'pinned': None, 'last_msg': 5, 'last_silent': 0, 'draft_ts': None}],), ['c', 'm', 'z']), ('draft bumps', ([{'id': 'd', 'pinned': None, 'last_msg': 5, 'last_silent': 0, 'draft_ts': 30}, {'id': 'e', 'pinned': None, 'last_msg': 22, 'last_silent': 0, 'draft_ts': None}],), ['d', 'e']), ('pins by rank not activity', ([{'id': 'old', 'pinned': 1, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'new', 'pinned': 2, 'last_msg': 92, 'last_silent': 0, 'draft_ts': None}],), ['old', 'new']), ('silent without draft', ([{'id': 'q', 'pinned': None, 'last_msg': 4, 'last_silent': 60, 'draft_ts': None}, {'id': 'r', 'pinned': None, 'last_msg': 8, 'last_silent': 0, 'draft_ts': 2}],), ['r', 'q'])], 3: [('silent topic change', ([{'id': 'a', 'pinned': None, 'last_msg': 10, 'last_silent': 99, 'draft_ts': None}, {'id': 'b', 'pinned': None, 'last_msg': 23, 'last_silent': 0, 'draft_ts': None}],), ['b', 'a']), ('pin rank zero', ([{'id': 'p0', 'pinned': 0, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'p1', 'pinned': 1, 'last_msg': 2, 'last_silent': 0, 'draft_ts': None}, {'id': 'x', 'pinned': None, 'last_msg': 50, 'last_silent': 0, 'draft_ts': None}],), ['p0', 'p1', 'x']), ('activity ties', ([{'id': 'm', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'c', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'z', 'pinned': None, 'last_msg': 6, 'last_silent': 0, 'draft_ts': None}],), ['c', 'm', 'z']), ('draft bumps', ([{'id': 'd', 'pinned': None, 'last_msg': 5, 'last_silent': 0, 'draft_ts': 30}, {'id': 'e', 'pinned': None, 'last_msg': 23, 'last_silent': 0, 'draft_ts': None}],), ['d', 'e']), ('pins by rank not activity', ([{'id': 'old', 'pinned': 1, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'new', 'pinned': 2, 'last_msg': 93, 'last_silent': 0, 'draft_ts': None}],), ['old', 'new']), ('silent without draft', ([{'id': 'q', 'pinned': None, 'last_msg': 4, 'last_silent': 60, 'draft_ts': None}, {'id': 'r', 'pinned': None, 'last_msg': 8, 'last_silent': 0, 'draft_ts': 2}],), ['r', 'q'])], 4: [('silent topic change', ([{'id': 'a', 'pinned': None, 'last_msg': 10, 'last_silent': 99, 'draft_ts': None}, {'id': 'b', 'pinned': None, 'last_msg': 24, 'last_silent': 0, 'draft_ts': None}],), ['b', 'a']), ('pin rank zero', ([{'id': 'p0', 'pinned': 0, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'p1', 'pinned': 1, 'last_msg': 2, 'last_silent': 0, 'draft_ts': None}, {'id': 'x', 'pinned': None, 'last_msg': 50, 'last_silent': 0, 'draft_ts': None}],), ['p0', 'p1', 'x']), ('activity ties', ([{'id': 'm', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'c', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'z', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}],), ['c', 'm', 'z']), ('draft bumps', ([{'id': 'd', 'pinned': None, 'last_msg': 5, 'last_silent': 0, 'draft_ts': 30}, {'id': 'e', 'pinned': None, 'last_msg': 24, 'last_silent': 0, 'draft_ts': None}],), ['d', 'e']), ('pins by rank not activity', ([{'id': 'old', 'pinned': 1, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'new', 'pinned': 2, 'last_msg': 94, 'last_silent': 0, 'draft_ts': None}],), ['old', 'new']), ('silent without draft', ([{'id': 'q', 'pinned': None, 'last_msg': 4, 'last_silent': 60, 'draft_ts': None}, {'id': 'r', 'pinned': None, 'last_msg': 8, 'last_silent': 0, 'draft_ts': 2}],), ['r', 'q'])], 5: [('silent topic change', ([{'id': 'a', 'pinned': None, 'last_msg': 10, 'last_silent': 99, 'draft_ts': None}, {'id': 'b', 'pinned': None, 'last_msg': 25, 'last_silent': 0, 'draft_ts': None}],), ['b', 'a']), ('pin rank zero', ([{'id': 'p0', 'pinned': 0, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'p1', 'pinned': 1, 'last_msg': 2, 'last_silent': 0, 'draft_ts': None}, {'id': 'x', 'pinned': None, 'last_msg': 50, 'last_silent': 0, 'draft_ts': None}],), ['p0', 'p1', 'x']), ('activity ties', ([{'id': 'm', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'c', 'pinned': None, 'last_msg': 7, 'last_silent': 0, 'draft_ts': None}, {'id': 'z', 'pinned': None, 'last_msg': 8, 'last_silent': 0, 'draft_ts': None}],), ['z', 'c', 'm']), ('draft bumps', ([{'id': 'd', 'pinned': None, 'last_msg': 5, 'last_silent': 0, 'draft_ts': 30}, {'id': 'e', 'pinned': None, 'last_msg': 25, 'last_silent': 0, 'draft_ts': None}],), ['d', 'e']), ('pins by rank not activity', ([{'id': 'old', 'pinned': 1, 'last_msg': 1, 'last_silent': 0, 'draft_ts': None}, {'id': 'new', 'pinned': 2, 'last_msg': 95, 'last_silent': 0, 'draft_ts': None}],), ['old', 'new']), ('silent without draft', ([{'id': 'q', 'pinned': None, 'last_msg': 4, 'last_silent': 60, 'draft_ts': None}, {'id': 'r', 'pinned': None, 'last_msg': 8, 'last_silent': 0, 'draft_ts': 2}],), ['r', 'q'])]}
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 fixtureActualExpectedOutcome
silent topic change['b', 'a']['b', 'a']Passed
pin rank zero['p0', 'p1', 'x']['p0', 'p1', 'x']Passed
activity ties['c', 'm', 'z']['c', 'm', 'z']Passed
draft bumps['d', 'e']['d', 'e']Passed
pins by rank not activity['old', 'new']['old', 'new']Passed
silent without draft['r', 'q']['r', 'q']Passed

SHA-256 / aaf0c32a249f95d6a57a344d416378b937fc7a6e8a54016a800cd5199b0dfa6a

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:14.851065+00:00.

Case digest / d3a7a51a9dd71b2fcb64cb57bf63e7af88e240cab4d520af7770c59f79601124