Skip to content

main's provider-set hash is a day and two merges out of date - #3321

Merged
Flotapponnier merged 1 commit into
mainfrom
fix/main-provider-set-hash
Oct 28, 2026
Merged

Flotapponnier merged 1 commit into
mainfrom
fix/main-provider-set-hash

Conversation

@Flotapponnier

Copy link
Copy Markdown
Collaborator

src/lib/spec-provider-set.test.ts has failed on main since 2026-10-27, which greys out every PR opened against it, including #3319.

The guard was right. Two merges moved a bench's provider set and neither touched a cache key or the recorded hash:

Both changed only benchmarks/*.yml, which is exactly the shape this test exists to catch: a provider set can move without anyone touching the code that caches it.

Why the four keys are not bumped

This is a decision about timing, not a softening of the rule. A key bump invalidates entries written before the change. By today the cache has already turned over on its own, and I measured that rather than assuming it:

  • production serves 106 providers on hyperliquid-frontends, Perpex among them
  • /products/perpex answers 200 and carries its hyperliquid-frontends appearance, which is the appearance providers-vP exists to protect

So bumping now would flush healthy entries and surface nothing. Caught on the day, the keys would have had to move, and for the next change they still do. The comment above the hash spells that out so the next reader does not take it as permission to skip a bump.

f355324b6640e7e4 to b767efc1bf40bf99, against 1841 providers.

Checks

bun test 786 pass 0 fail, tsc --noEmit clean, eslint clean on the touched file.

The guard has been red on main since 2026-10-27 and it was right to be. Two
merges moved a bench's provider set and neither touched a cache key or this
hash: #3311 stopped scoring Mobula on Solana in token-quote-coverage, and
#3312 added Perpex to hyperliquid-frontends. Both changed only
benchmarks/*.yml, which is precisely the shape this test was written to
catch, since a provider set can move without anyone editing the code that
caches it.

Red CI on main greys out every PR opened against it, so this unblocks the
branch as much as it records anything.

The four keys are NOT bumped, and that is a decision about timing rather
than a weakening of the rule. A bump invalidates entries written before the
change. By today the cache has already turned over on its own, which I
measured instead of assuming: production serves 106 providers on
hyperliquid-frontends with Perpex among them, and /products/perpex answers
200 carrying its hyperliquid-frontends appearance, which is the appearance
providers-vP exists to protect. Bumping now would flush healthy entries and
reveal nothing. Caught on the day, the keys would have had to move, and for
the next change they still do. The comment above the hash says all of that,
so the next reader does not take this as permission to skip a bump.

Recorded hash moves f355324b6640e7e4 to b767efc1bf40bf99 against 1841
providers. bun test 786 pass 0 fail, tsc clean, eslint clean.
@Flotapponnier
Flotapponnier merged commit 4d329da into main Oct 28, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant