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
}