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

supabase / supabase-flutter
80%

Build:
DEFAULT BRANCH: main
Repo Added 19 Jan 2025 06:54AM UTC
Token z3GUkNtD1PDnCOWpuPvCMvjUB924F4R9N regen
Build 363 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
  • docs/error-codes
  • docs/fix-infra-typo-license-20250902-024002
  • docs/google-signin
  • docs/update-signinwithidtoken-providers-1259
  • 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-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/setup-presence-flag
  • fix/toJson-print
  • fix/web-hot-restart
  • grdsdev-patch-1
  • grdsdev/auth-token-refresh
  • grdsdev/flutter-auth-refresh-bug
  • grdsdev/resilient-decoding
  • 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
  • iat/add-x-provider
  • idempotent_initialization
  • null-check-operator-on-realtime-conn
  • refs/pull/1110/merge
  • release-please/bootstrap/default
  • revert-commit
  • shared_prefs_async
  • storage
  • test/web
  • unnecessary_current_user
  • upgrade-github-actions-node24
  • upgrade-github-actions-node24-general

16 Feb 2026 05:01PM UTC coverage: 80.366% (+0.02%) from 80.342%
22071478063

push

github

web-flow
fix(realtime): add explicit type cast to fix web hot restart TypeError (#1308)

* fix(realtime): add explicit type cast to fix web hot restart TypeError

Fixes TypeError when using RealtimeChannel.off() on Flutter web during hot restart.
JavaScript interop causes type inference to fail on .where().toList() chains,
returning List<dynamic> instead of List<Binding>, which fails type checks.

Root Cause:
- RealtimeChannel.off() at line 475-478 used .where().toList() without explicit casting
- RealtimeClient.remove() at line 332 had similar pattern
- During web hot restart, JS interop loses type information
- Assignment back to typed collections (Map<String, List<Binding>>, List<RealtimeChannel>) fails

Solution:
- Added .cast<Binding>() to RealtimeChannel.off() after .toList()
- Added .cast<RealtimeChannel>() to RealtimeClient.remove() after .toList()
- Follows existing pattern in realtime_presence.dart (lines 172, 177, 240, 303)
- Consistent with type safety improvements from commit 102595d

Acceptance Criteria:
- [x] The off() method successfully removes event bindings on Flutter web without type errors
- [x] Hot restart on Flutter web no longer throws TypeError
- [x] All existing tests pass (98 tests)
- [x] No breaking changes to public API
- [x] Type safety maintained across all platforms
- [x] Similar pattern in realtime_client.dart reviewed and fixed

Testing:
- Added test case documenting the web hot restart issue
- Verified all 98 tests pass in realtime_client package
- No functional changes, only type safety improvements

Linear: SDK-640
GitHub: https://github.com/supabase/supabase-flutter/issues/1307

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

* Update packages/realtime_client/test/channel_test.dart

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

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

3385 of 4212 relevant lines covered (80.37%)

2.71 hits per line

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

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
22071478063 main fix(realtime): add explicit type cast to fix web hot restart TypeError (#1308) * fix(realtime): add explicit type cast to fix web hot restart TypeError Fixes TypeError when using RealtimeChannel.off() on Flutter web during hot restart. JavaScrip... push 16 Feb 2026 05:06PM UTC web-flow github
80.37
22063286207 main ci(supabase_flutter): make WASM tests non-blocking (#1306) WASM tests have known infrastructure flakiness with 12+ minute loading timeouts in CI. This causes the entire job to fail due to timeout issues unrelated to code changes. Setting continu... push 16 Feb 2026 12:51PM UTC web-flow github
80.34
21250088460 main feat(ci): integrate reusable CI workflows from supabase/actions (#1299) * feat(ci): integrate reusable CI workflows from supabase/actions Adds three reusable workflows to standardize CI processes: - block-merge: Prevents merging of WIP/draft PRs... push 26 Jan 2026 02:17PM UTC web-flow github
80.34
21247813553 main fix(auth): fix getClaims() crash with asymmetric JWTs on first call (#1300) Fixed a crash in getClaims() that occurred when verifying JWTs signed with asymmetric algorithms (RS256, ES256) on the first call. The issue was that _jwks was force-unw... push 22 Jan 2026 12:12PM UTC web-flow github
80.34
20716397421 main fix(auth): fix verifyOTP parameter validation for OtpType.recovery with tokenHash (#1295) fix(auth): token hash verification push 05 Jan 2026 01:15PM UTC web-flow github
79.96
20572079940 main fix: delete toJson parser print (#1293) push 29 Dec 2025 11:49AM UTC web-flow github
79.95
20319197891 main feat(storage): add queryParams support to download method (#1291) * feat(storage): add queryParams support to download method - Add optional queryParams parameter to download method - Merge queryParams with transform query parameters - Add test ... push 17 Dec 2025 10:30PM UTC web-flow github
79.93
20270238886 main feat(auth): add X (OAuth 2.0) provider (#1290) push 16 Dec 2025 01:57PM UTC web-flow github
79.93
20148894982 main fix(realtime_client): make ref field optional in Message class (#1284) * fix(realtime_client): make ref field optional in Message class Make the ref field nullable (String?) and optional in the Message constructor to match JavaScript SDK behavio... push 11 Dec 2025 10:10PM UTC web-flow github
79.88
20143869923 main chore: bump app_links to ` '>=6.2.0 <8.0.0'` (#1282) * chore: Bump app_links to ^7.0.0 * Bump Dart SDK version * Bump Flutter version to match SDK version * Allow both major versions of app_links push 11 Dec 2025 06:54PM UTC web-flow github
79.88
See All Builds (362)

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