Say which kind of empty the Live page is - #49
Merged
Merged
Conversation
Reported from a desktop: "I see nothing in live even I refreshed firefox". Nothing was wrong with the window, the daemon or the probes. Payload capture had run out — its session ended — so the daemon was reading nothing, and the Live page said "Nothing read in this window", which reads as "your machine was quiet" when it means "Flowlight stopped reading". The daemon knew. It logged `payload capture has run out and has stopped` when it happened, and `flowlightd budget` says it on demand. The window never asked. The handshake it does ask carries `storing`, which is built once at startup and hard-coded true, so it cannot express a thing that becomes true later. So the window now asks, every ten seconds, on whichever page is open — a session ending is not a second-by-second event, and the person who needs telling is the one who left the Live tab open. When nothing is being read a banner says so and carries a Renew button, and the empty page says which of the three silences it is: switched off, run out, or genuinely quiet. `Reading::of` is the mapping, extracted so it can be tested without a display. The tests were run against the old behaviour — one page for every silence — and two of them failed there before they were trusted here. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The first cut asked whether payloads were still being read at most once every ten seconds, reasoning that a session ending is not a second-by-second event. That is true of the session and false of the window. The whole point of this change is that a Live page which shows nothing should say why — and a page that takes ten seconds to admit it has stopped being live is the same bug arriving later and more quietly. So it is asked on every tick, with everything else. The cost is one more question every two seconds down a Unix socket on the same machine, against a window that is right or wrong within one refresh like every other thing in it. The throttle and the timestamp it needed are gone. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
Shipping as v0.5.14. Reported from a desktop: "I see nothing in live even I refreshed firefox".
What was actually wrong
Nothing, in the window, the daemon or the probes. Payload capture had run out — its eight-hour session had ended — so the daemon was reading nothing. The Live page said:
which reads as your machine was quiet when it means Flowlight stopped reading. Confirmed on the machine:
The daemon knew, logged it, and would say it on demand. The window never asked. The handshake it does ask carries
storing, which is built once at startup and hard-codedtrue, so it cannot express something that becomes true later.What changed
Verified on the machine first
A controlled expiry, rather than a guess:
That last line also retired a bug I thought I had:
--renewworks without a restart. My first test made the request one second after renewing and lost the race to the poll.Reading::ofis the mapping, extracted so it can be tested without a display. The tests were run against the old behaviour — one page for every silence — and two of them failed there before being trusted here.Worth knowing
The session is wall-clock. The machine this came from had jumped forward ~6.6 hours (NTP inactive, RTC disagreeing), which ended an eight-hour session early and also parked every stored request outside the "Last hour" view.
🤖 Generated with Claude Code