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

supabase / supabase-flutter / 39930064219
94%

Build:
DEFAULT BRANCH: main
Ran 23 Oct 2026 09:13AM UTC
Jobs 12
Files 183
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

23 Oct 2026 09:11AM UTC coverage: 91.92% (-0.005%) from 91.925%
39930064219

push

github

web-flow
fix(realtime)!: send broadcast data under payload without mutating the caller's map (#2036)

Linear:
https://linear.app/supabase/issue/SDK-2336/fixrealtime-sendbroadcastmessage-mutates-the-callers-map-and-uses-a

## What changed

- `send()` builds a new message map instead of writing `type` and
`event` into the map it was given. A `const` payload or a `Map<String,
int>` no longer throws, and a reused map no longer picks up extra keys.
- `sendBroadcastMessage()` now puts its `payload` under the `payload`
key of the message, the same shape `httpSend()`, database broadcasts and
realtime-js use. `payload` is now an `Object` like on `httpSend()`: a
`Map<String, dynamic>` is sent as JSON, binary data (`TypedData` or
`ByteBuffer`) is passed directly and sent as a binary frame, instead of
being nested under a `payload` key by hand.
- `onBroadcast` documents the message shape: `type`, `event`, the data
under `payload`, and `meta` for database broadcasts.
- The realtime and idioms skills, the `realtime_room` example, the
`supabase_flutter` README and MIGRATION.md use the new shape.
MIGRATION.md has a new section, also listed under the changes the
compiler will not catch, since a map payload still compiles. It calls
out callers who wrapped their data in a `payload` key themselves, which
now arrives nested twice.

## Verification of the shapes

Checked against the local stack (Realtime from the Supabase CLI) before
changing anything: `httpSend(event: 'http', payload: {'x': 1})` arrives
as `{type: broadcast, event: http, payload: {x: 1}}`, and
`realtime.send('{"x": 2}', 'db', topic, false)` arrives as `{type:
broadcast, event: db, payload: {x: 2, id: ...}, meta: {id: ...}}`. Only
`sendBroadcastMessage` put the data at the top level.

## Tests

- `broadcast_payload_test.dart`: wire shape, `const` payload,
`Map<String, int>` payload, the caller's map stays unchanged, binary
payload goes out as a binary frame, and a broadcast sent from Dart is
received in exactly the... (continued)

8 of 9 new or added lines in 1 file covered. (88.89%)

11251 of 12240 relevant lines covered (91.92%)

5.59 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
94.81
-0.19% packages/supabase_realtime/lib/src/realtime_channel.dart
Jobs
ID Job ID Ran Files Coverage
3 postgrest - 39930064219.3 23 Oct 2026 09:17AM UTC 28
92.39
GitHub Action Run
4 supabase_functions - 39930064219.4 23 Oct 2026 09:13AM UTC 4
93.28
GitHub Action Run
5 supabase_flutter - 39930064219.5 23 Oct 2026 09:13AM UTC 16
80.84
GitHub Action Run
6 supabase_test - 39930064219.6 23 Oct 2026 09:14AM UTC 9
92.97
GitHub Action Run
7 supabase_typegen - 39930064219.7 23 Oct 2026 09:15AM UTC 6
94.19
GitHub Action Run
8 supabase_storage - 39930064219.8 23 Oct 2026 09:16AM UTC 10
96.26
GitHub Action Run
9 supabase_realtime - 39930064219.9 23 Oct 2026 09:16AM UTC 14
91.15
GitHub Action Run
10 supabase_auth - 39930064219.10 23 Oct 2026 09:18AM UTC 34
93.44
GitHub Action Run
11 iceberg - 39930064219.11 23 Oct 2026 09:14AM UTC 6
71.32
GitHub Action Run
12 supabase - 39930064219.12 23 Oct 2026 09:17AM UTC 20
94.16
GitHub Action Run
3 yet_another_json_isolate - 39926427044.3 23 Oct 2026 08:44AM UTC 1
98.68
GitHub Action Run
12 supabase_common - 39927507934.12 23 Oct 2026 08:54AM UTC 35
93.65
GitHub Action Run
Source Files on build 39930064219
  • Tree
  • List 183
  • Changed 5
  • Source Changed 5
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #39930064219
  • 31695439 on github
  • Prev Build on main (#39927507934)
  • Next Build on main (#39932128141)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc