You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Per-request plugin budgets: PluginRegistry.beginRequest() mints a
RequestPlugins with its own budget map, so concurrent requests no longer
clobber each other's allowances (was a shared mutable map reset per request).
- Mutation hooks fail-closed on a thrown error (onHttpRequest rejects;
onBeforeApiCall/onAfterApiCall/onBeforeSign drop), matching the documented
contract instead of silently skipping a broken plugin.
- Secret-param detection runs before env interpolation: a `fixed: ${VAR}`
parameter is now flagged `secret: true` in parseConfig so the resolved value
stays out of the public endpoint ID (the implicit `${...}` check in
isSecretParameter was dead post-interpolation).
- buildEndpointMap throws on colliding endpoint IDs and validateConfig reports
them, instead of new Map() silently last-wins.
- Removed the unimplemented `cache.delay` field from the schema, docs, and
example config.
- parseRequestBody rejects a non-object `parameters` (400) but passes nested
values through untouched so body parameters can still be nested JSON;
resolveEncoding ignores non-string `_type`/`_path`/`_times` (clean 400, not a
502); body-size check counts bytes. Documented the limitation.
- x402 `amount` must be a non-negative integer string (config error, not a
BigInt throw at request time).
0 commit comments