@pwngh/economy-lab
    Preparing search index...

    Type Alias RetentionJobOptions

    What the retention job needs beyond the shared tick. Each horizon is an independent opt-in: a lane with no horizon set reports skipped and deletes nothing.

    type RetentionJobOptions = {
        idempotencyOlderThanMs?: number;
        sessionsOlderThanMs?: number;
    }
    Index
    idempotencyOlderThanMs?: number

    Delete idempotency rows older than this; a deleted key re-executes on a duplicate.

    sessionsOlderThanMs?: number

    Prune settled sessions whose newest movement is older than this.