Sweep deps, take ioredis 6, stop the lint hook running bunx, cut 2.7.10 - #101
Merged
Conversation
Dependency bumps: hono 4.12.31 to 4.12.33, jose 6.2.5 to 6.2.7, fastify 5.10.0 to 5.11.0, knip 6.29.0 to 6.31.0, @agent-score/sdk to 2.7.2. eslint 10 and TypeScript 7 stay held org-wide. ioredis moves to 6 as the DEV dependency, and the reasoning is the point. It is an optional PEER here, declared `>=5.0.0`, so a merchant could already bring ioredis 6 and run this code under RESP3 today while CI only ever exercised 5. Testing against the version consumers may actually supply is worth more than staying on the older one. ioredis 6 defaults to RESP3, which changes reply SHAPES, so the usage was checked rather than assumed: `_redis.ts` constructs the client, `quote_cache` reads GET (string or nil in both protocols) and ignores SET's reply, and the rate-limit core branches on INCR, an integer in both. There is no SET NX predicate and no map-typed reply anywhere, so nothing here depends on the protocol version. The 1804-test suite now runs against ioredis 6, which turns that reading into a tested fact. Deliberately NO `protocol: 2` pin, unlike core/api. Pinning the wire protocol inside a library would override a choice that belongs to the merchant who supplies the peer, and this code does not need it. The lint hook called `bunx eslint`, which resolves outside the project and would fetch eslint 10, the major this repo pins away from. It now runs the local binary, with a guard test asserting no hook uses bunx and that every `bun run <script>` hook names a script that exists. The pre-push hook already went through package scripts. packageManager bun@1.3.13 to 1.3.14. Version to 2.7.10; the only commit since v2.7.9 touched a test file, so nothing here changes the published surface. Gates: lint, typecheck (src + examples), knip clean; 1804 tests passed; build ok.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Dependency sweep, a hook fix, and a version bump so this can be released.
hono4.12.31 to 4.12.33,jose6.2.5 to 6.2.7,fastify5.10.0 to 5.11.0,knip6.29.0 to 6.31.0,@agent-score/sdkto 2.7.2 (published today). eslint 10 and TypeScript 7 stay held org-wide.packageManagerbun@1.3.13 to 1.3.14. Version to 2.7.10.ioredismoves to 6 as the dev dependency, and the reasoning is the point. It is an optional peer here, declared>=5.0.0, so a merchant could already bring ioredis 6 and run this code under RESP3 today while CI only ever exercised 5. Testing against the version consumers may actually supply is worth more than staying on the older one.ioredis 6 defaults to RESP3, which changes reply shapes, so the usage was checked rather than assumed:
_redis.tsconstructs the client,quote_cachereadsGET(string or nil in both protocols) and ignoresSET's reply, and the rate-limit core branches onINCR, an integer in both. There is noSET NXpredicate and no map-typed reply anywhere, so nothing here depends on the protocol version. The 1804-test suite now runs against ioredis 6, which turns that reading into a tested fact.Deliberately no
protocol: 2pin here, unlikecore/apiwhich did pin it. Pinning the wire protocol inside a library would override a choice that belongs to the merchant supplying the peer, and this code does not need it.The lint hook called
bunx eslint, which resolves outside the project and would fetch eslint 10, the major this repo pins away from. It now runs the local binary, with a guard test asserting no hook uses bunx and that everybun run <script>hook names a script that exists. The pre-push hook already went through package scripts.Type of change
Public API
None. No export, signature, wire format, or 402 body shape changed.
Worth being explicit for merchants: the
ioredispeer range is unchanged at>=5.0.0, so nothing is required of anyone. Merchants on ioredis 5 stay supported and untouched; the bump only changes which version this repo's own CI exercises. The only commit since v2.7.9 touched a test file.Test plan
bun run test: 1804 passed, 4 skipped, now running against ioredis 6bun run lint,bun run knip: cleanbun run typecheck: clean across bothsrcandexamplesbun run build: tsup CJS + ESM with subpath exports succeedednode_modules/@agent-score/sdkreports 2.7.2)Reproduce with
bun install && bun run lint && bun run typecheck && bun run knip && bun run test && bun run build.Checklist