Remove the package.json range bump and changeset — the range already
covers the new version, so only the lockfile needs updating.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
Renovate deprecated matchPackagePatterns. The new matchPackageNames
accepts regex patterns wrapped in / delimiters. All other changes
in this PR (quote style, comment removal) were cosmetic and have
been reverted.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
The proxy-based sign-in page derived the session expiry from the JWT by
decoding its payload with `window.atob`, which only accepts the standard
base64 alphabet. JWTs are encoded using base64url (RFC 7515), so any
token whose payload contained '-' or '_' raised a decoding error and
broke sign-in. Translate the payload back to the standard alphabet and
restore its padding before decoding.
Signed-off-by: Asish Kumar <officialasishkumar@gmail.com>
The built-in rate limiter derived its key directly from `req.ip`, which
express-rate-limit 8.x rejects with an ERR_ERL_KEY_GEN_IPV6 validation
error. A raw IPv6 address used as a rate limiting key would let a client
bypass the limit by rotating through addresses in its allotted block, so
the library now requires its `ipKeyGenerator` helper to normalize the
address. Wrap the resolved client address in that helper so the limiter
starts cleanly and groups IPv6 clients by their address block.
Signed-off-by: Asish Kumar <officialasishkumar@gmail.com>
* refactor(kubernetes-backend): boy-scout KubernetesFetcher
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Matthew Clarke <mclarke@spotify.com>
* fix(kubernetes-backend): restore dynamic imports for @kubernetes/client-node
The package is ESM-only and must be loaded via dynamic import() to work
in Jest's CommonJS transform. Reverts to the original inline
await import() pattern while keeping the agent pooling and refactoring.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Matthew Clarke <mclarke@spotify.com>
---------
Signed-off-by: Matthew Clarke <mclarke@spotify.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* feat(skill): automatically onboard to openapi tooling
Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>
* test skill against notifications backend
Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>
* update URLs to point to main repo and describe multiple client types
Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>
* address PR feedback
Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>
* revert erroneous changes
Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>
* add changeset
Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>
* address review feedback: skill doc fixes and entityRef schema dedup
Disambiguate generated entityRef/orderField types and correct skill
guidance on operationId casing and OpenAPI version support.
Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>
* note in skill that handler-side validation should be stripped
Reviewers may forget that manual InputError guards and primitive-type
checks become dead weight once the OpenAPI validator runs.
Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>
---------
Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>
Move the adjustedFilters useMemo above refresh and reuse it in both
the fetch callback and the frontend filtering memo.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>