type SessionInfo = { id?: string parentID?: string } export function createFirstMessageVariantGate() { const pending = new Set() return { markSessionCreated(info?: SessionInfo) { if (info?.id && !info.parentID) { pending.add(info.id) } }, shouldOverride(sessionID?: string) { if (!sessionID) return false return pending.has(sessionID) }, markApplied(sessionID?: string) { if (!sessionID) return pending.delete(sessionID) }, clear(sessionID?: string) { if (!sessionID) return pending.delete(sessionID) }, } }