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

supabase / supabase-flutter / 29017180430
87%

Build:
DEFAULT BRANCH: main
Ran 09 Jul 2026 12:11PM UTC
Jobs 8
Files 83
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

09 Jul 2026 12:09PM UTC coverage: 86.57% (+0.04%) from 86.53%
29017180430

push

github

web-flow
feat(client): add session-URL-detection predicate and persistSession flag (#1558)

## Summary

Implements the two `partially_implemented` client initialization options
tracked by SDK-1272:

- **`FlutterAuthClientOptions.detectSessionInUriPredicate`** — an
optional `bool Function(Uri)` predicate that decides whether an incoming
deep link should be treated as an auth callback and exchanged for a
session. When null, the existing default heuristic (checks for
`access_token`, `code`, `error`, `error_code`, `error_description` in
the query or fragment) is used. This lets apps disambiguate redirects
when they use those same parameters for other purposes.
- **`FlutterAuthClientOptions.persistSession`** — a real flag (default
`true`). When `false` and no `localStorage` is supplied, sessions are
kept in memory only (`EmptyLocalStorage` is selected automatically), so
opting out of persistence no longer requires manually wiring up an
`EmptyLocalStorage` backend. Supplying a custom `localStorage` still
takes precedence.

Both are new optional initialization options, so existing
`Supabase.initialize` calls are unaffected.

## Outcome

implemented

## Reference

Derived from the compliance matrix (`sdk-compliance.yaml`); mirrors
supabase-js `detectSessionInUrl` / `persistSession` GoTrue client
options.

## Tests

Added to `packages/supabase_flutter/test/deep_link_test.dart`:
- predicate returning `false` suppresses detection of an otherwise valid
auth callback
- predicate governs detection based on the incoming URI (and receives
the URI)
- `persistSession: true` persists to the default storage
- `persistSession: false` keeps the session in memory only

All 63 `supabase_flutter` tests pass; `melos format` and `dart analyze`
clean.

## Compliance matrix

- `client.authentication_integration.session_url_detection` →
`implemented`
- `client.session_management.persist_session` → `implemented`

SDK-1272

10 of 10 new or added lines in 3 files covered. (100.0%)

4525 of 5227 relevant lines covered (86.57%)

4.1 hits per line

Jobs
ID Job ID Ran Files Coverage
8 supabase_flutter - 29017180430.8 09 Jul 2026 12:11PM UTC 11
79.82
GitHub Action Run
8 yet_another_json_isolate - 29007581749.8 09 Jul 2026 09:18AM UTC 1
77.78
GitHub Action Run
2 storage_client - 29007581749.2 09 Jul 2026 09:20AM UTC 5
93.26
GitHub Action Run
5 functions_client - 29007581749.5 09 Jul 2026 09:18AM UTC 2
98.8
GitHub Action Run
4 realtime_client - 29007581749.4 09 Jul 2026 09:21AM UTC 11
89.41
GitHub Action Run
6 postgrest - 29007581749.6 09 Jul 2026 09:20AM UTC 9
84.57
GitHub Action Run
3 supabase - 29007581749.3 09 Jul 2026 09:19AM UTC 15
80.69
GitHub Action Run
7 gotrue - 29007581749.7 09 Jul 2026 09:21AM UTC 29
86.03
GitHub Action Run
Source Files on build 29017180430
  • Tree
  • List 83
  • Changed 11
  • Source Changed 9
  • Coverage Changed 9
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #29017180430
  • c8b02ed0 on github
  • Prev Build on main (#29007581749)
  • Next Build on main (#29017673507)
  • 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