• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

supabase / supabase-flutter / 29094096134
87%

Build:
DEFAULT BRANCH: main
Ran 10 Jul 2026 12:56PM UTC
Jobs 9
Files 95
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

10 Jul 2026 12:53PM UTC coverage: 86.987% (+0.006%) from 86.981%
29094096134

push

github

web-flow
fix(realtime_client): faster channel rejoin on web (#1471)

## What


### Faster disconnect

The previous `disconnect` first waited for the connection to get stable
by waiting for `conn.ready`. Despite the comment I added on it, I could
not find any issues by removing that wait and just close the connection
immediately. I tested this manually with the websocket channel package
by closing the connection instantaneously and with delays without
waiting for `conn.ready` on web, android and linux. This
[comment](https://github.com/dart-lang/http/issues/1693#issuecomment-2651080004)
seems to experience the same.
During testing on web, I found that by removing the wait for `ready` the
close is still not instantaneously, but can take several seconds. I
think it depends on the exact platform and state of the connection
whether this can save time or not.


### Timeout for connection close

During testing I experienced a real network issue at home, but no
reconnect was scheduled. I lost the exact logs, but when researching
other issues I came along this comment:
https://github.com/dart-lang/http/issues/1693#issuecomment-2651080004
which could be the source of the issue. The disconnect hang indefinitely
which is why no connect was scheduled. So I added a timeout to the
`conn.sink.close`. This may cause the disconnect to not wait for a
connection that would indeed close after like 10 seconds successfully,
but I don't think there is a real issue in handling this via a timeout.


### Faster Channel rejoin


In particular, I tested a Flutter web app on mobile by switching from
the browser to other apps and back. Only `inactive` and `hidden` events
are fired on web when switching to another app, which are currently not
handled by the app state handler in supabase_flutter. But those events
are also called when switching to another tab. But in the case of
switching to another tab the websocket connection is kept. When
switching to another app that is not the case and th... (continued)

13 of 14 new or added lines in 2 files covered. (92.86%)

4659 of 5356 relevant lines covered (86.99%)

4.04 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
93.03
-0.16% packages/realtime_client/lib/src/realtime_client.dart
Jobs
ID Job ID Ran Files Coverage
7 realtime_client - 29094096134.7 10 Jul 2026 12:58PM UTC 11
89.61
GitHub Action Run
8 supabase_flutter - 29094096134.8 10 Jul 2026 12:56PM UTC 10
79.31
GitHub Action Run
9 supabase - 29094096134.9 10 Jul 2026 12:56PM UTC 16
82.43
GitHub Action Run
4 yet_another_json_isolate - 29081780486.4 10 Jul 2026 09:05AM UTC 1
77.78
GitHub Action Run
7 storage_client - 29081780486.7 10 Jul 2026 09:07AM UTC 6
93.87
GitHub Action Run
9 gotrue - 29081780486.9 10 Jul 2026 09:08AM UTC 28
86.47
GitHub Action Run
2 functions_client - 29081780486.2 10 Jul 2026 09:05AM UTC 3
98.81
GitHub Action Run
1 supabase_common - 29081780486.1 10 Jul 2026 09:05AM UTC 10
87.85
GitHub Action Run
5 postgrest - 29081780486.5 10 Jul 2026 09:07AM UTC 10
84.89
GitHub Action Run
Source Files on build 29094096134
  • Tree
  • List 95
  • Changed 14
  • Source Changed 14
  • Coverage Changed 12
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #29094096134
  • bc06a310 on github
  • Prev Build on main (#29084055776)
  • Next Build on main (#29094527665)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc