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

supabase / supabase-flutter / 32259216865
89%

Build:
DEFAULT BRANCH: main
Ran 19 Aug 2026 01:39PM UTC
Jobs 10
Files 108
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

19 Aug 2026 01:38PM UTC coverage: 88.72% (-0.007%) from 88.727%
32259216865

push

github

web-flow
refactor!: share one retry configuration across the clients (#1738)

Stacked on #1737, so review that one first. This diff is against that
branch.

## What

Retry was configured differently in every client: `postgrest` took a
`PostgrestRetryOptions`, `supabase_storage` took an `int`, and the auth
token refresh hardcoded its own numbers with no way to change them. All
three take one `SupabaseRetryOptions` now.

```dart
final supabase = SupabaseClient(
  supabaseUrl,
  supabaseKey,
  postgrestOptions: const PostgrestClientOptions(
    retryOptions: SupabaseRetryOptions(count: 5),
  ),
  storageOptions: const StorageClientOptions(
    retryOptions: SupabaseRetryOptions(count: 5),
  ),
  authOptions: const AuthClientOptions(
    retryOptions: SupabaseRetryOptions(count: 5),
  ),
);
```

The type carries `enabled`, `count`, `initialDelay`, `maxDelay` and
`randomizationFactor`, plus `delay(attempt)`, `copyWith` and value
equality. What counts as a retryable failure stays with each client,
since those are not interchangeable: PostgREST repeats a read that
answered with `503` or `520`, storage repeats an upload that hit a
network error, and auth repeats a token refresh that never reached the
service. The loops stay separate too, because the PostgREST one retries
on a response status while the other two retry on a thrown exception.

### Where the type lives

`supabase_common` is the only package all three clients depend on, so
declaring the shared type in a client package would mean making storage
depend on postgrest. It is declared there and re-exported from
`postgrest`, `supabase_storage`, `supabase_auth`, `supabase` and
`supabase_flutter`.

`supabase_common` is excluded from the capability-matrix scan as a
whole, which would have made the knobs unregistrable.
`.sdk-parse-ignore` now excludes the package's sources with a negation
for `retry_options.dart` alone, so the one genuinely user facing file of
that package is scanned and the rest stays internal.

###... (continued)

54 of 59 new or added lines in 8 files covered. (91.53%)

1 existing line in 1 file now uncovered.

5899 of 6649 relevant lines covered (88.72%)

4.3 hits per line

Uncovered Changes

Lines Coverage ∆ File
5
84.85
packages/supabase_common/lib/src/retry_options.dart

Coverage Regressions

Lines Coverage ∆ File
1
84.96
-0.18% packages/supabase_auth/lib/src/auth_client.dart
Jobs
ID Job ID Ran Files Coverage
2 supabase_auth - 32259216865.2 19 Aug 2026 01:43PM UTC 29
90.72
GitHub Action Run
3 supabase_functions - 32259216865.3 19 Aug 2026 01:39PM UTC 3
97.75
GitHub Action Run
4 supabase_common - 32259216865.4 19 Aug 2026 01:39PM UTC 17
97.22
GitHub Action Run
5 supabase_flutter - 32259216865.5 19 Aug 2026 01:40PM UTC 10
81.92
GitHub Action Run
6 supabase_storage - 32259216865.6 19 Aug 2026 01:42PM UTC 8
97.15
GitHub Action Run
7 supabase_realtime - 32259216865.7 19 Aug 2026 01:42PM UTC 12
90.19
GitHub Action Run
8 supabase - 32259216865.8 19 Aug 2026 01:42PM UTC 13
91.28
GitHub Action Run
9 iceberg - 32259216865.9 19 Aug 2026 01:39PM UTC 5
68.62
GitHub Action Run
10 postgrest - 32259216865.10 19 Aug 2026 01:42PM UTC 10
85.0
GitHub Action Run
2 yet_another_json_isolate - 32034091672.2 17 Aug 2026 01:16PM UTC 1
94.44
GitHub Action Run
Source Files on build 32259216865
  • Tree
  • List 108
  • Changed 12
  • Source Changed 12
  • Coverage Changed 10
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #32259216865
  • 3b2a4855 on github
  • Prev Build on main (#32253470757)
  • Next Build on main (#32267202794)
  • 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