d15ed44452
wipeSessionListsForGatewaySwitch cleared the persisted transcript-tail cache but never the in-memory $transcriptTailBySessionId atom. Before this stack both an ambient local read and an ambient remote read of a recycled stored id landed under the bare-id key, so the newer backend simply overwrote the older. Owner-keyed entries coexist instead, and the unique-match lookup that gates "Show earlier" sees two candidates and fails closed for that session until eviction. Wipe the atom alongside the cache.