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

supabase / supabase-flutter
81%

Build:
DEFAULT BRANCH: main
Repo Added 19 Jan 2025 06:54AM UTC
Token z3GUkNtD1PDnCOWpuPvCMvjUB924F4R9N regen
Build 423 Last
Files 70
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

LAST BUILD ON BRANCH main
branch: main
CHANGE BRANCH
x
Reset
Sync Branches
  • main
  • chore-review-actions
  • chore/add-agents-md-file
  • chore/bump-app_links
  • chore/code-reference
  • chore/coverage
  • chore/coverage-realtime
  • chore/coverage-source
  • chore/functions-coverage
  • chore/gotrue-coverage
  • chore/publish
  • chore/release
  • chore/setup-release-please
  • chore/supabase-coverage
  • chore/test-coverage
  • chore/update-examples
  • chore/upgrade-app-links
  • ci/storage
  • cleanup/remove-parens-fromJson
  • copilot/sub-pr-1327
  • docs/error-codes
  • docs/fix-infra-typo-license-20250902-024002
  • docs/google-signin
  • docs/update-signinwithidtoken-providers-1259
  • etienne/sec-666-pin-all-github-actions-to-full-commit-sha
  • feat-admin-oauth-update-list-19ca1
  • feat/add-examples-project
  • feat/add-force-function-region-query-param
  • feat/broadcast-replay-support
  • feat/cupertino
  • feat/custom-metadata
  • feat/facebook-sdk-example
  • feat/gotrue-get-claims
  • feat/issue-1158-debug-instrumentation
  • feat/oauth-admin-endpoints
  • feat/phone-2fa
  • feat/phone-mfa
  • feat/realtime-explicit-rest-call
  • feat/semantic-release-automation
  • feat/storage-download-query-params
  • feat/workflow-improvements
  • feat/workflow-phase4-developer-experience
  • feat/workflow-phase5-additional-improvements
  • fix-getclaims-token-decoding
  • fix-private-only-stream-channel-10188984025532099214
  • fix-to-string
  • fix/app-links-method-removal
  • fix/ci-wasm-test-timeout
  • fix/dartio-usage
  • fix/deprecate
  • fix/empty-response
  • fix/functions-exception
  • fix/gotrue-web
  • fix/proactive-token-refresh-on-resume
  • fix/realtime-connect-race-condition
  • fix/realtime-lifecycle-queue
  • fix/setup-presence-flag
  • fix/toJson-print
  • fix/web-hot-restart
  • grdsdev-patch-1
  • grdsdev/align-dart-sdk-min-3-3-0
  • grdsdev/auth-token-refresh
  • grdsdev/automate-melos-release
  • grdsdev/docs-refreshtoken-completer
  • grdsdev/fix-postgrest-http-method-case
  • grdsdev/fix-release-workflow-failures
  • grdsdev/flutter-auth-refresh-bug
  • grdsdev/hartford-v1
  • grdsdev/log-auth-state-errors
  • grdsdev/postgrest-retry-flutter
  • grdsdev/resilient-decoding
  • grdsdev/retrigger-release-tagging
  • grdsdev/sdk-816-realtime-class-docs
  • grdsdev/share-yajson-isolate
  • grdsdev/storage-setheader
  • guilherme/ci
  • guilherme/clibs-108-supabase-flutter-change-default-heartbeat-interval-to-25s
  • guilherme/clibs-120-supabase-flutter-send-standard-client-headers-on-all
  • guilherme/clibs-171-supabase-flutter-validate-uuid-on-admin-methods
  • guilherme/clibs-282-supabase-flutter-implement-linkidentity-with-oidc
  • guilherme/clibs-287-supabase-flutter-storageretrycontroller-causes-cant-finalize
  • guilherme/clibs-294-supabase-flutter-remove-providers-check-for-the
  • guilherme/clibs-379-supabase-flutter-implement-maxaffected-method
  • guilherme/clibs-99-supabase-flutter-remove-jwt-check-and-send-x-client-info
  • guilherme/feat-test
  • guilherme/generate-app-token
  • guilherme/remove-trailing-commas-rule
  • guilherme/sdk-230-supabase-flutter-use-dedicated-storage-host-for-storage-lib
  • guilherme/sdk-514-refreshsession-shouldnt-fail-because-currentsession-doesnt
  • guilherme/sdk-524-duplicate-sdk-522-for-flutter
  • guilherme/sdk-531-flutter-verify-optional-refs-handling-in-message
  • guilherme/sdk-614-fix-verifyotp-parameter-validation-for-otptyperecovery
  • guilherme/sdk-624-apply-reusable-ci-workflows-to-supabase-flutter
  • guilherme/sdk-627-flutter-sdk-getclaims-crashes-on-first-use-with-asymmetric
  • guilherme/sdk-640-fixrealtime-flutter-web-hot-restart-throws-typeerror-on
  • guilherme/sdk-784-featauth-add-setsession-support-for-both-access_token-and
  • guilherme/sdk-789-fixstorage-_transformstorageurl-unconditionally-breaks
  • guilherme/sdk-794-oauth-provider-custom-string
  • iat/add-x-provider
  • idempotent_initialization
  • null-check-operator-on-realtime-conn
  • refs/pull/1110/merge
  • release-23586209249
  • release-please/bootstrap/default
  • remove-wasm-ci
  • revert-commit
  • shared_prefs_async
  • storage
  • test/web
  • unnecessary_current_user
  • upgrade-github-actions-node24
  • upgrade-github-actions-node24-general

02 Apr 2026 10:02AM UTC coverage: 81.225% (+0.2%) from 81.054%
23895094801

push

github

web-flow
fix(supabase_flutter): simplify lifecycle reconnection with serial Future chain (#1340)

* fix(supabase_flutter): replace lifecycle state tracking with serial Future chain

Replace complex lifecycle reconnection logic (_disconnectFuture,
_realtimeReconnectOperation, cancel flag) with a serial Future chain
and target-state pattern.

Operations are serialized via _pendingLifecycleOperation so disconnect
and connect never overlap. _targetLifecycleState tracks the most recent
lifecycle request, allowing stale operations to be skipped and
reconnects to be cancelled if the app goes back to background.

Add idempotency guards on both connect (isConnected) and disconnect
(isConnected || isConnecting) paths.

Add tests for rapid lifecycle flapping and cancellation edge cases.

* refactor(supabase_flutter): expose pendingLifecycleOperation for testing

* fix(test): ensure FakeWebSocketSink closes stream controller properly

* refactor(supabase_flutter): simplify Supabase class by removing WidgetsBindingObserver and adding AppLifecycleListener

* refactor(supabase_flutter): code formating using melos

* fix(test): fix lifecycle tests timing out on web/JS platform

Two issues fixed:

1. Missing mockAppLink() in setUp — on web, Supabase.initialize() calls
   _appLinks.getInitialLink() via a platform channel. Without the mock,
   that call hangs forever, timing out the test. Native tests were
   unaffected because _handleInitialUri() has a kIsWeb guard.

2. The completeReadyCompleters() helper was async void, so its body ran
   as a deferred microtask and cleared the list. Replace with
   settleLifecycle() that loops until all lifecycle operations settle.

---------

Co-authored-by: icnahom <4nahom@gmail.com>

21 of 26 new or added lines in 1 file covered. (80.77%)

3448 of 4245 relevant lines covered (81.22%)

2.85 hits per line

Relevant lines Covered
Build:
Build:
4245 RELEVANT LINES 3448 COVERED LINES
2.85 HITS PER LINE
Source Files on main
  • Tree
  • List 70
  • Changed 2
  • Source Changed 1
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
23895094801 main fix(supabase_flutter): simplify lifecycle reconnection with serial Future chain (#1340) * fix(supabase_flutter): replace lifecycle state tracking with serial Future chain Replace complex lifecycle reconnection logic (_disconnectFuture, _realtime... push 02 Apr 2026 10:08AM UTC web-flow github
81.22
23846773811 main feat(auth): add optional accessToken parameter to setSession() (#1327) * feat(auth): add optional accessToken parameter to setSession() Mirrors the JS SDK behaviour: when both tokens are supplied and the access token has not yet expired, the ses... push 01 Apr 2026 11:46AM UTC web-flow github
81.05
23844088830 main feat(gotrue): convert OAuthProvider from enum to class for custom provider support (#1339) push 01 Apr 2026 10:33AM UTC web-flow github
80.84
23747803318 main ci: remove WASM builds and tests from CI workflows (#1341) Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> push 30 Mar 2026 01:48PM UTC web-flow github
80.89
23589191128 main chore(release): re-trigger release tagging after workflow fix (#1336) push 26 Mar 2026 10:27AM UTC web-flow github
80.89
23587733773 main fix(ci): restore missing uses: keyword in release workflows (#1335) Commit 69fc7ae accidentally dropped the `uses:` key from the create-github-app-token step in release-tag.yml and release-publish.yml, making both workflow files invalid YAML. Git... push 26 Mar 2026 09:52AM UTC web-flow github
80.89
23586795515 main chore(release): publish packages (#1334) [create-pull-request] automated change Co-authored-by: grdsdev <5923044+grdsdev@users.noreply.github.com> push 26 Mar 2026 09:29AM UTC web-flow github
80.89
23586063651 main chore: pin actions to sha (#1333) push 26 Mar 2026 09:10AM UTC web-flow github
80.89
23554637007 main fix(realtime): prevent null check crash in connect() during rapid lifecycle transitions (#1321) * fix(realtime): prevent null check crash in connect() during rapid lifecycle transitions Capture the WebSocketChannel in a local variable before awa... push 25 Mar 2026 05:31PM UTC web-flow github
81.08
23544809443 main chore(release): publish packages (#1330) - storage_client@2.5.1 - supabase@2.10.4 - supabase_flutter@2.12.2 push 25 Mar 2026 02:04PM UTC web-flow github
80.4
See All Builds (422)

Badge your Repo: supabase-flutter

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

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

Refresh
  • Settings
  • Repo on GitHub
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