Skip to content

[feature] X-KeeperHub-RateLimit-* headers on every webhook response #61

@B2JK-Industry

Description

@B2JK-Industry

Friction

A high-throughput agent fleet hitting KH webhooks can plausibly trip rate limits — but adapter authors today have no in-band signal of how close they are to the limit, and no way to back off proactively. The choices are:

  1. Submit blindly + handle 429 reactively (issue [docs+feature] HTTP error code catalog + adapter retry semantics for workflow webhook #52 covers the catalog)
  2. Hardcode an external rate cap (defensive but defeats throughput on a quiet workflow)

Neither is right. Adapter callers want headroom telemetry so they can pace correctly under variable load.

Proposed fix

On every webhook response (success + 429), include rate-limit headers:

X-KeeperHub-RateLimit-Limit: 60
X-KeeperHub-RateLimit-Remaining: 47
X-KeeperHub-RateLimit-Reset: 1714478460
X-KeeperHub-RateLimit-Resource: workflow-webhook

Same shape as GitHub / Twitter / many payment APIs. Adapter authors can then implement leaky-bucket or token-bucket clients that respect KH's actual capacity in real time, instead of guessing.

Reference

Context

Filed as part of SBO3L's KeeperHub Builder Feedback round 3 for ETHGlobal Open Agents 2026. Composes with #52 (error catalog) — together they define the throttling contract.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions