Skip to content

add missing func - #5

Merged
sbokatuk merged 4 commits into
mainfrom
v3-improvements
Jul 23, 2026
Merged

sbokatuk merged 4 commits into
mainfrom
v3-improvements

Conversation

@sbokatuk

Copy link
Copy Markdown
Owner

No description provided.

… sample

The simulator suite enabled Trace and stopped there: EnablesTrace constructed the
three header writers and never started a span, so the tracing path was configured
and never driven. That is the gap the trace-id defect slipped through. Four
checks close it, taking the suite from 17 to 21:

- a span started, tagged, errored, logged and finished, with its ids asserted by
  shape rather than for non-emptiness: 32 lowercase hex characters and not all
  zeros for the trace, decimal for the span. "Not empty" is what was asserted
  before, and why the wrong rendering shipped
- injection in all three formats, cross-checked against traceparent across all
  128 bits - derived independently of GetTraceId, so a second opinion rather than
  a restatement - and against the low 64 bits the Datadog header carries in
  decimal. Selecting no formats must produce nothing rather than throw
- the single-value attribute overloads on RUM, view attributes, feature flags and
  a logger, with ToNSObject asserted to map null to NSNull: an explicitly empty
  attribute and an unset one are different things in a RUM event
- the session id through GetCurrentSessionIdAsync, asserted non-null

The harness gained async support for the last of those.

Writing these turned up a papercut: Info(message, attributes) is generated
without [NullAllowed] on the dictionary, so passing null throws rather than
reaching the SDK, where Objective-C accepts nil. The single-argument overload and
the ergonomic Log both handle it, so this is documented rather than changed.

The sample enabled Trace and never demonstrated it. It gains a Trace section -
one button traces an outgoing HttpRequestMessage end to end, another records a
failed span through SetError and Log - and a button showing the session id.

21/21 on the simulator; 127/127 package tests.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The e2e ran against net10.0-ios26.0 only. It is now a matrix over the two
extremes: net8, the oldest asset set and the one nothing else exercises, and
net10, whose assets come out of the merge step in BuildNugets.sh and so are the
only ones that could be grafted in wrong. net9 sits between them and comes out of
the same pack pass as net8, so testing it too would buy little for the runner
minutes.

fail-fast is off, because "net8 only" and "both" point at very different causes,
and the log artifact is named per leg so the two do not collide.

Unlike the Android side this needed no project changes: run-simulator-tests.sh
already picked the SDK band from the target framework, and every iOS package
ships net8 assets. 21/21 on both legs, verified on a simulator. The net8 leg
takes appreciably longer - a Release build for the simulator AOT-compiles - which
is why the job timeout is worth leaving where it is.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@sbokatuk
sbokatuk merged commit 43427b2 into main Jul 23, 2026
6 checks passed
@sbokatuk
sbokatuk deleted the v3-improvements branch July 23, 2026 12:42

This branch was previously deployed

1 inactive deployment
nuget.org — da4d6c2f Deployed Jul 23, 2026 by sbokatuk via publish beta to nuget.org #12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant