Repository navigation
the settlement window was never persisted, which is why the panel kept changing - #3238
Merged
Merged
Conversation
…t changing Florent kept asking why the settlement panel shows only FOMO. The answer was not what any of us assumed, and finding it needed a real browser rather than curl. curl returns identical HTML for every chain, on this bench AND on an untouched control, so the chain selector runs client side and curl is blind to it. Driven in headless Brave the selector plainly works: all chains gives one set of rows, chain=bnb another. What it also showed is that the ROWS CHANGE between loads twenty minutes apart, FOMO and Phantom then pump.fun app and FOMO, and that a rank can start at #2 with nothing at #1. That is routes crossing the ten-sample publication floor and falling back under it. pumpSettleWindow lives only in memory, so every deploy resets every route's samples to zero and each has to climb the floor again. This bench was deployed about eight times tonight, so the panel spent the evening showing whichever routes happened to be above the line when the page materialised. I persisted the pump deposit window hours ago for exactly this reason, then the Mobula intents, then the Mobula fill cursors, writing in each commit that the lesson was learned. The settle window is the FOURTH thing in this process with the same property, it is the only one whose loss was visible on the page, and I walked past it three times while the symptom was the thing being asked about. So it goes in State with the others: a serialisable mirror, since the window is keyed by a struct that cannot marshal, and an hour's age limit on load so a long outage cannot publish a mean about a period nobody can see any more. Restoring the samples is not enough on its own. noteSettle only publishes for the route it was called about, so loadSettleWindow republishes every restored route's quantiles; without that the gauges would stay empty until each route happened to settle again, which is the gap this exists to close. The test asserts the figure is back with no new settlement arriving.
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.
the settlement window was never persisted, which is why the panel kept changing
Florent kept asking why the settlement panel shows only FOMO. The answer was
not what any of us assumed, and finding it needed a real browser rather than
curl.
curl returns identical HTML for every chain, on this bench AND on an
untouched control, so the chain selector runs client side and curl is blind to
it. Driven in headless Brave the selector plainly works: all chains gives one
set of rows, chain=bnb another. What it also showed is that the ROWS CHANGE
between loads twenty minutes apart, FOMO and Phantom then pump.fun app and
FOMO, and that a rank can start at #2 with nothing at #1.
That is routes crossing the ten-sample publication floor and falling back
under it. pumpSettleWindow lives only in memory, so every deploy resets every
route's samples to zero and each has to climb the floor again. This bench was
deployed about eight times tonight, so the panel spent the evening showing
whichever routes happened to be above the line when the page materialised.
I persisted the pump deposit window hours ago for exactly this reason, then
the Mobula intents, then the Mobula fill cursors, writing in each commit that
the lesson was learned. The settle window is the FOURTH thing in this process
with the same property, it is the only one whose loss was visible on the page,
and I walked past it three times while the symptom was the thing being asked
about.
So it goes in State with the others: a serialisable mirror, since the window
is keyed by a struct that cannot marshal, and an hour's age limit on load so a
long outage cannot publish a mean about a period nobody can see any more.
Restoring the samples is not enough on its own. noteSettle only publishes for
the route it was called about, so loadSettleWindow republishes every restored
route's quantiles; without that the gauges would stay empty until each route
happened to settle again, which is the gap this exists to close. The test
asserts the figure is back with no new settlement arriving.