import type { SessionInfo } from '@/hermes' // Cheap signature compare so a poll only swaps the atom (and re-renders the // sidebar) when the visible rows actually changed. export function sameCronSignature(a: SessionInfo[], b: SessionInfo[]): boolean { if (a.length !== b.length) { return false } return a.every((session, i) => { const other = b[i] return ( other != null && session.id === other.id && session._lineage_root_id === other._lineage_root_id && session.title === other.title && session.source === other.source && session.profile === other.profile && session.preview === other.preview && session.message_count === other.message_count && session.last_active === other.last_active && session.ended_at === other.ended_at ) }) }