chore(validators): retire the nominator_count lakehouse overlay - #9338
Merged
Conversation
#9276 added a serving-Worker overlay filling nominator_count from the frozen lakehouse mirror. It was the bridge for the period when D1 had no data, and that period is over: migration 0012 gave the field a live table, #243/#267 gave it a live producer, and #9334 made the tier answer COMPLETELY -- absence from a fresh scan reads as a confirmed zero, so nominator_count is now non-null on 1,028 of 1,028 validators. The overlay could only ever fire on a null count, because validatorHotkeysNeedingCount collects exactly those and returns early when there are none. There are none left to fill. It was not simply dead, which is why this is worth doing rather than leaving. The one situation that still reached it was a partial failure -- the counts query throwing while the neurons query succeeded -- and there it served ~557 counts stamped 2026-08-02 from a mirror nothing refreshes, values that age indefinitely. That is the failure the retired module's own header warned about: a degraded count is worse than no count, because a card cannot tell its reader which one it got. Null is the honest answer in that case. Removed at all eight call sites across the three surfaces that shared it -- REST (workers/request-handlers/entities.ts), GraphQL (src/graphql.ts) and MCP (src/mcp-server.ts) -- plus the module and its suite. Each site was a multi-line expression wrapper, so this is unwrapping rather than deletion; the 2,877 tests across those three suites are what makes that safe to assert. Closes #9337 Part of #9146
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
metagraphed-registry-sync-api | f1b1413 | Aug 03 2026, 11:21 PM |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
metagraphed-data-api | f1b1413 | Aug 03 2026, 11:21 PM |
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
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.
#9276 added a serving-Worker overlay filling
nominator_countfrom the frozen lakehouse mirror. It was the bridge for the period when D1 had no data — and that period is over:0012gave the field a live tablenominator_countis now non-null on 1,028 of 1,028 validators. The overlay could only ever fire on a null count (validatorHotkeysNeedingCountcollects exactly those and returns early when there are none). There are none left to fill.Why remove it rather than leave it
It was not simply dead, which is what makes this worth doing. One situation still reached it: the counts query throwing while the
neuronsquery succeeded. There it served ~557 counts stamped2026-08-02from a mirror nothing refreshes — values that age indefinitely.That is precisely the failure the retired module's own header warned about:
Null is the honest answer in that case.
Scope
Removed at all eight call sites across the three surfaces that shared it, plus the module and its suite:
workers/request-handlers/entities.tssrc/graphql.tssrc/mcp-server.tsEach site was a multi-line expression wrapper, so this is careful unwrapping rather than deletion — which is why it got its own PR instead of being tacked onto #9334.
Validation
Patch coverage by diff intersection: 0 uncovered lines, 0 uncovered branches across all three changed files.
Closes #9337
Part of #9146