INNER CODE UNIT · TypeScript

passesRateLimit

Beever-AI/beever-atlas · bot/src/index.ts:265

async function passesRateLimit(
  thread: PostableThread,
  message: { author?: { userId?: string } },
): Promise<boolean> {
  const key = `${extractPlatform(thread.id)}:${extractChannelId(thread.id)}:${message.author?.userId || "unknown"}`;
  const decision = rateLimiter.check(key);
  if (decision.allowed) return true;
  if (noticeLimiter.check(key).allowed) {
    const secs = Math.max(1, Math.ceil(decision.retryAfterMs / 1000));
    try {
      await postNotice(
        thread,
        message.author,
        `You're asking a lot — give me a moment 🙂 (try again in ~${secs}s)`,
      );
    } catch (err) {
      console.error("Failed to post rate-limit notice:", safeErrorMessage(err));
    }

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…