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

supabase / supabase-flutter / 32183188729
89%

Build:
DEFAULT BRANCH: main
Ran 18 Aug 2026 08:38PM UTC
Jobs 10
Files 107
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

18 Aug 2026 08:36PM UTC coverage: 88.423% (+0.2%) from 88.18%
32183188729

push

github

web-flow
refactor(postgrest)!: expose retry configuration as PostgrestRetryOptions (#1731)

## What

Promotes the internal `_RetryConfig` added in #1560 to a public
`PostgrestRetryOptions` and replaces the individual retry parameters
with a single `retryOptions` value, so the retry configuration is one
object everywhere.

```dart
final supabase = SupabaseClient(
  supabaseUrl,
  supabaseKey,
  postgrestOptions: const PostgrestClientOptions(
    retryOptions: PostgrestRetryOptions(count: 5, statusCodes: {503}),
  ),
);

// Per-request override, unchanged:
await supabase.from('todos').select().retry(enabled: false);
```

`PostgrestRetryOptions` has a const constructor and carries `enabled`,
`count`, `statusCodes`, the backoff knobs `initialDelay`, `maxDelay` and
`randomizationFactor`, a `delay(attempt)` computed from them with the
shared `exponentialBackoff` helper, and a `copyWith`. Tuning the backoff
was not possible before, and the field names match the `RetryOptions` of
`supabase_common` so a later unification is a rename. Sharing one retry
configuration across every client is tracked separately in #1735.
`PostgrestBuilder.retry()` delegates to `retryOptions.copyWith(...)`, so
the ergonomic shortcut keeps working and now composes on top of the
client configuration.

### Breaking changes

| Before | After |
| --- | --- |
| `PostgrestClient(retryEnabled:, retryCount:, retryableStatusCodes:)` |
`PostgrestClient(retryOptions:)` |
| `PostgrestClientOptions(retryEnabled:, retryCount:,
retryableStatusCodes:)` | `PostgrestClientOptions(retryOptions:)` |
| `PostgrestQueryBuilder(retryEnabled:, …)` /
`PostgrestRpcBuilder(retryEnabled:, …)` | `…(retryOptions:)` |
| `PostgrestClient.defaultRetryableStatusCodes` |
`PostgrestRetryOptions.defaultStatusCodes` |

A negative retry count is now rejected by an assertion on
`PostgrestRetryOptions` instead of an `ArgumentError` from the
`PostgrestClient` constructor, and the retry loop treats a count below
one as "send once" so a... (continued)

31 of 36 new or added lines in 7 files covered. (86.11%)

5782 of 6539 relevant lines covered (88.42%)

4.19 hits per line

Uncovered Changes

Lines Coverage ∆ File
5
73.68
packages/postgrest/lib/src/postgrest_retry_options.dart
Jobs
ID Job ID Ran Files Coverage
7 postgrest - 32183188729.7 18 Aug 2026 08:40PM UTC 11
84.92
GitHub Action Run
8 supabase_auth - 32183188729.8 18 Aug 2026 08:41PM UTC 28
89.76
GitHub Action Run
9 supabase_flutter - 32183188729.9 18 Aug 2026 08:38PM UTC 10
81.87
GitHub Action Run
10 supabase - 32183188729.10 18 Aug 2026 08:41PM UTC 13
91.24
GitHub Action Run
4 supabase_common - 32034091672.4 17 Aug 2026 01:16PM UTC 16
99.48
GitHub Action Run
3 supabase_functions - 32034091672.3 17 Aug 2026 01:16PM UTC 3
97.75
GitHub Action Run
2 yet_another_json_isolate - 32034091672.2 17 Aug 2026 01:16PM UTC 1
94.44
GitHub Action Run
6 supabase_storage - 32034091672.6 17 Aug 2026 01:18PM UTC 8
97.18
GitHub Action Run
9 supabase_realtime - 32036696049.9 17 Aug 2026 01:51PM UTC 12
90.19
GitHub Action Run
5 iceberg - 32034091672.5 17 Aug 2026 01:16PM UTC 5
68.62
GitHub Action Run
Source Files on build 32183188729
  • Tree
  • List 107
  • Changed 15
  • Source Changed 15
  • Coverage Changed 14
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #32183188729
  • 7c0cfe53 on github
  • Prev Build on main (#32036696049)
  • Next Build on main (#32228326353)
  • 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