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

supabase / supabase-swift / 35230994445
89%

Build:
DEFAULT BRANCH: main
Ran 17 Sep 2026 02:07PM UTC
Jobs 1
Files 135
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

17 Sep 2026 02:02PM UTC coverage: 89.227% (+0.06%) from 89.171%
35230994445

push

github

web-flow
feat: expose clock injection and set explicit AsyncStream buffering policies (#1351)

Adds `clock` to `SupabaseClientOptions.GlobalOptions`, `RealtimeClientOptions`
and `AuthClient.Configuration`, all defaulting to `ContinuousClock()`, so
consumers can drive time-dependent behaviour with a `TestClock` instead of
waiting out real seconds. The two `package`-visibility clock initializers this
replaces are gone.

Routes Auth through that clock: the auto-refresh loop in `SessionManager` was
still on `Task.sleep(nanoseconds:)`, and `RetryRequestInterceptor` was still on
a default `ContinuousClock()`, so a caller passing a test clock would have found
half of Auth ignoring it.

Sets `bufferingPolicy` explicitly at all 14 `makeStream()` sites. Every one
stays `.unbounded`, now deliberately and with a stated reason rather than by
omission: three of these streams carry control flow (`ChannelStateManager`
waits for `.subscribed`, `ConnectionManager`'s observer latches on
`.reconnecting`, `URLSessionWebSocket.events` carries `phx_reply` frames) and
the rest carry server payloads, so a bounded policy would either hang a waiter
or silently drop caller data. The issue's proposed `.bufferingNewest(1)` for
status and heartbeat is not viable: it evicts `.disconnected` behind
`.connecting`, and `.sent` behind `.ok`, breaking three existing tests.

No unstructured `Task` was changed, because no leak exists. The long-lived
tasks are already cancelled in `deinit`, and `URLSessionWebSocket._scheduleReceive`
self-terminates when `close()` cancels the task. The full audit is on SDK-1799.

Moves `waitUntil` from `Tests/RealtimeTests/TestSupport.swift` into
`Sources/TestHelpers` at `package` visibility so the Auth suite can reuse it,
and registers the three clock properties in `sdk-compliance.yaml` as shared
supporting symbols.

Fixes SDK-1799

Co-Authored-By: Claude <noreply@anthropic.com>

57 of 69 new or added lines in 17 files covered. (82.61%)

10676 of 11965 relevant lines covered (89.23%)

897561.98 hits per line

Uncovered Changes

Lines Coverage ∆ File
12
19.42
-0.8% Sources/RealtimeV2/RealtimeChannel+AsyncAwait.swift
Jobs
ID Job ID Ran Files Coverage
1 35230994445.1 17 Sep 2026 02:07PM UTC 135
89.23
GitHub Action Run
Source Files on build 35230994445
  • Tree
  • List 135
  • Changed 17
  • Source Changed 17
  • Coverage Changed 16
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #35230994445
  • 25e1865d on github
  • Prev Build on main (#35222124927)
  • Next Build on main (#35244197659)
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