Webhooks for the AT Protocol airglow.run
atproto atprotocol automation webhook
12
fork

Configure Feed

Select the types of activity you want to include in your feed.

ui: smaller rate limits card

Hugo d1d19ae0 4b3534cc

+22 -24
+22 -24
app/routes/dashboard/automations/[rkey].tsx
··· 348 348 })} 349 349 </Stack> 350 350 351 - <Card variant="flat"> 352 - <Stack gap={3}> 353 - <h3 class={inlineCluster}> 354 - <Activity size={18} /> Rate limits 355 - </h3> 356 - <ul class={plainList}> 357 - {rateLimitCounts.map((rl) => { 358 - const ratio = rl.limit === 0 ? 0 : rl.count / rl.limit; 359 - const variant = ratio >= 1 ? "error" : ratio >= 0.8 ? "warning" : "neutral"; 360 - return ( 361 - <li key={rl.window} class={inlineCluster}> 362 - <span>per {rl.window}</span> 363 - <Badge variant={variant}> 364 - {rl.count} / {rl.limit} 365 - </Badge> 366 - </li> 367 - ); 368 - })} 369 - </ul> 370 - <p class={textMuted}> 371 - Hitting any window auto-disables the automation. Dry-run fires do not count. 372 - </p> 373 - </Stack> 374 - </Card> 351 + <Stack gap={1}> 352 + <h3 class={inlineCluster}> 353 + <Activity size={18} /> Rate limits 354 + </h3> 355 + <ul> 356 + {rateLimitCounts.map((rl) => { 357 + const ratio = rl.limit === 0 ? 0 : rl.count / rl.limit; 358 + const variant = ratio >= 1 ? "error" : ratio >= 0.8 ? "warning" : "neutral"; 359 + return ( 360 + <li key={rl.window} class={inlineCluster}> 361 + <span>per {rl.window}</span> 362 + <Badge variant={variant}> 363 + {rl.count} / {rl.limit} 364 + </Badge> 365 + </li> 366 + ); 367 + })} 368 + </ul> 369 + <p class={textMuted}> 370 + Hitting any window auto-disables the automation. Dry-run fires do not count. 371 + </p> 372 + </Stack> 375 373 376 374 <DeliveryLog 377 375 rkey={auto.rkey}