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

supabase / supabase-flutter / 35877565309
94%

Build:
DEFAULT BRANCH: main
Ran 23 Sep 2026 02:56PM UTC
Jobs 11
Files 168
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

23 Sep 2026 02:53PM UTC coverage: 90.645% (+0.03%) from 90.613%
35877565309

push

github

web-flow
feat(supabase): add TraceContext.fromCarrier and TraceContext.w3c (#1871)

## What

`TraceContext` only had the default constructor taking three raw header
strings, so supplying a context meant hand-formatting a W3C
`traceparent`.

Two constructors, neither of which adds a dependency:

- `TraceContext.fromCarrier(Map<String, String> carrier)` reads the
headers an OpenTelemetry propagator injected into a carrier map. Names
match case-insensitively, empty values read as absent.
- `TraceContext.w3c(traceId:, spanId:, sampled:, tracestate:, baggage:)`
formats a `traceparent` for clients that expose ids rather than headers,
and throws `ArgumentError` when either id is not the hexadecimal shape
the specification requires.

The traceparent parsing the traced client did inline moves into
`trace_context_format.dart`, so the client and the constructors agree on
what a well-formed header is. Those helpers are `@internal`.

Parsing follows the specification's forward-compatibility rule: only
version `00` is held to exactly four fields, a higher version may append
fields that receivers parse past rather than reject, and version `ff` is
invalid. `formatTraceparent` lowercases the ids, since the grammar
admits lowercase hexadecimal only.

## Sentry does not need this

`formatAsW3CHeader(SentryTraceHeader)` is public API in `package:sentry`
(`lib/src/utils/tracing_utils.dart`, exported from `sentry.dart`), so
the Sentry recipe stays a one-liner:

```dart
traceContextProvider: () {
  final span = Sentry.getSpan();
  if (span == null) return null;
  return TraceContext(
    traceparent: formatAsW3CHeader(span.toSentryTrace()),
    baggage: span.toBaggageHeader()?.value,
  );
},
```

`toSentryTrace()` on its own yields the three-part `sentry-trace`
format, not W3C. `TraceContext.w3c` is kept for tracing clients with no
such conversion, and is easy to drop if you would rather not carry it.

## Scope

Additive. Both constructors are registered in `sdk-compliance.yaml`; th... (continued)

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

8352 of 9214 relevant lines covered (90.64%)

4.87 hits per line

Jobs
ID Job ID Ran Files Coverage
3 iceberg - 35877565309.3 23 Sep 2026 02:56PM UTC 6
68.52
GitHub Action Run
4 supabase_storage - 35877565309.4 23 Sep 2026 02:58PM UTC 9
97.61
GitHub Action Run
5 supabase_flutter - 35877565309.5 23 Sep 2026 02:57PM UTC 14
78.5
GitHub Action Run
6 postgrest - 35877565309.6 23 Sep 2026 02:59PM UTC 25
92.17
GitHub Action Run
7 supabase_auth - 35877565309.7 23 Sep 2026 03:00PM UTC 32
92.0
GitHub Action Run
8 supabase - 35877565309.8 23 Sep 2026 02:59PM UTC 18
93.61
GitHub Action Run
9 supabase_functions - 35877565309.9 23 Sep 2026 02:56PM UTC 4
93.81
GitHub Action Run
10 supabase_typegen - 35877565309.10 23 Sep 2026 02:58PM UTC 24
94.96
GitHub Action Run
11 supabase_realtime - 35877565309.11 23 Sep 2026 02:59PM UTC 13
90.66
GitHub Action Run
3 supabase_common - 35624013119.3 21 Sep 2026 04:13PM UTC 22
87.36
GitHub Action Run
2 yet_another_json_isolate - 35608843571.2 21 Sep 2026 01:58PM UTC 1
98.44
GitHub Action Run
Source Files on build 35877565309
  • Tree
  • List 168
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #35877565309
  • 9faf7d82 on github
  • Prev Build on main (#35872440279)
  • Next Build on main (#35886756171)
  • 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