Repository navigation
Say "Connecting…" only when connecting is slow - #12
Merged
Merged
Conversation
Reopening the app a few seconds after closing it flashed "Connecting to the inspector service…" for a few hundred milliseconds: long enough to see, too short to read. The spinner went up the moment the phase turned to `.connecting`, however quickly the daemon answered. DelayedLoadingIndicator keeps the time instead. A wait that ends inside three quarters of a second shows a blank list and then the rows; a wait that runs longer shows the indicator, which then stays at least half a second so it doesn't blink off, and rows that land in that half second are drawn when it ends. A failure or an empty result never waits: it replaces the indicator, or the blank, at once. The wait for the first sample after connecting counts too, so a slow connection no longer drops from the spinner to an empty list before the rows arrive. The detail tables had the same flash on every push while their records loaded, and use the same indicator. Because the indicator now turns up on a screen that is already showing, VoiceOver is told the layout changed. The first sample itself is not delayed: `firstSampleDelay` is the gap before the second one, which is what CPU use needs. `make harness` now steps the indicator through its grace period, minimum time, failure and retry on macOS. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Closed
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.
Reopening the app a few seconds after closing it flashed "Connecting to the
inspector service…" for a few hundred milliseconds: long enough to see, too
short to read. The spinner went up the moment the phase turned to
.connecting, however quickly the daemon answered.DelayedLoadingIndicator keeps the time instead. A wait that ends inside
three quarters of a second shows a blank list and then the rows; a wait that
runs longer shows the indicator, which then stays at least half a second so
it doesn't blink off, and rows that land in that half second are drawn when
it ends. A failure or an empty result never waits: it replaces the
indicator, or the blank, at once. The wait for the first sample after
connecting counts too, so a slow connection no longer drops from the
spinner to an empty list before the rows arrive.
The detail tables had the same flash on every push while their records
loaded, and use the same indicator. Because the indicator now turns up on a
screen that is already showing, VoiceOver is told the layout changed.
The first sample itself is not delayed:
firstSampleDelayis the gapbefore the second one, which is what CPU use needs.
make harnessnowsteps the indicator through its grace period, minimum time, failure and
retry on macOS.
Fixes #7
🤖 Generated with Claude Code