a234e93654
Final-diff pass: trimGroupChatLog drops entries from the FRONT once a room crosses the history cap, so slicing the post-turn log at the pre-turn LENGTH could overshoot after a mid-turn trim, read an empty tail, and silently commit a stale turn — re-opening #93127's double delivery in long-history rooms exactly. Anchor on the last pre-turn entry's id; if the anchor itself was trimmed, every surviving entry is newer, so scanning the whole log stays exact.