export const UPDATE_CHECK_MIN_INTERVAL_MS = 3000 export function shouldRunUpdateCheck(input: { visible: boolean inFlight: boolean lastStartedAt: number | null now: number minIntervalMs?: number }): boolean { if (!input.visible || input.inFlight) return false if (input.lastStartedAt == null) return true const gap = input.minIntervalMs ?? UPDATE_CHECK_MIN_INTERVAL_MS return input.now - input.lastStartedAt >= gap } export function describeAvailableUpdate(input: { runningSha: string latestSha: string hasWaitingWorker: boolean }): 'worker' | 'published' | null { if (input.hasWaitingWorker) return 'worker' if (input.runningSha && input.latestSha && input.runningSha !== input.latestSha) { return 'published' } return null }