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

supabase / supabase-flutter / 28599569004
86%

Build:
DEFAULT BRANCH: main
Ran 02 Jul 2026 02:55PM UTC
Jobs 8
Files 81
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

02 Jul 2026 02:54PM UTC coverage: 86.011% (+0.08%) from 85.93%
28599569004

push

github

web-flow
feat(realtime): add onHeartbeat stream to RealtimeClient (#1517)

## What

Adds `RealtimeClient.onHeartbeat`, a broadcast
`Stream<RealtimeHeartbeatStatus>` that emits a status whenever a
heartbeat is pushed (`sent`), acknowledged (`ok`/`error`), or when a
prior heartbeat goes unanswered (`timeout`).

```dart
final subscription = supabase.realtime.onHeartbeat.listen((status) {
  print('heartbeat: $status');
});
```

Also adds the `RealtimeHeartbeatStatus` enum (`sent`, `ok`, `error`,
`timeout`).

## Why

SDK parity: realtime-js `RealtimeClient.onHeartbeat` exposes the same
lifecycle. The Dart client had the heartbeat machinery but no way to
observe it.

Exposing it as a `Stream` (rather than a single callback like
realtime-js) is the idiomatic Dart shape: consumers get
`listen`/`where`/`firstWhere`/`timeout`, multiple subscribers and
cancellation for free, and it matches how the auth client already
surfaces events (`onAuthStateChange`).

## Tests

- Unit tests cover each emitted status and a case where a non-matching
heartbeat reference emits nothing.
- An end-to-end test connects to a real Realtime server (both v1 and v2
protocols) and observes an actual `sent` then `ok` heartbeat cycle.

## Compliance

Marks `realtime.client.listen_heartbeats` implemented in
`sdk-compliance.yaml` and registers the `RealtimeClient.onHeartbeat` and
`RealtimeHeartbeatStatus` symbols.

Resolves SDK-1169

7 of 7 new or added lines in 1 file covered. (100.0%)

4218 of 4904 relevant lines covered (86.01%)

4.0 hits per line

Jobs
ID Job ID Ran Files Coverage
6 supabase - 28599569004.6 02 Jul 2026 02:55PM UTC 15
81.8
GitHub Action Run
7 supabase_flutter - 28599569004.7 02 Jul 2026 02:56PM UTC 11
79.57
GitHub Action Run
8 realtime_client - 28599569004.8 02 Jul 2026 02:57PM UTC 11
89.15
GitHub Action Run
8 gotrue - 28536394514.8 01 Jul 2026 05:43PM UTC 27
84.74
GitHub Action Run
3 yet_another_json_isolate - 28433368938.3 30 Jun 2026 09:12AM UTC 1
79.03
GitHub Action Run
6 postgrest - 28588548625.6 02 Jul 2026 12:07PM UTC 9
84.31
GitHub Action Run
7 functions_client - 28444889808.7 30 Jun 2026 12:39PM UTC 2
98.57
GitHub Action Run
8 storage_client - 28533236058.8 01 Jul 2026 04:46PM UTC 5
92.98
GitHub Action Run
Source Files on build 28599569004
  • Tree
  • List 81
  • Changed 4
  • Source Changed 4
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #28599569004
  • d8c66cb0 on github
  • Prev Build on main (#28597364234)
  • Next Build on main (#28603435609)
  • 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