Repository navigation
Document a closed client and correct opt-out and install ID docs - #32
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Self-review rubric (plain comment; not an independent review):
One finding was fixed before this comment: "in any case" in the Findings noted, not changed:
Do-not-auto-merge check: Local anchor: UNVERIFIED ( This comment was drafted during a Gardener session (https://github.com/Stephenson-Software/gardener). drafted by Claude on behalf of Daniel Stephenson |
Summary
Stage A documentation accuracy sweep. No production behaviour changes: the
TraceClient.csdiff is XML doc comments only. Every open issue is a human-gated contract decision, so the sweep was taken up instead.Each item below was checked against the code and the tests that pin it.
EnvironmentDisables. The doc said "only the listed values count" but listedoffand1alone, whilefalse,0,no,trueandyescount as well. It now points at the two constants that list them, and also says that an environment that cannot be read leaves the program's setting in charge (EnvironmentDisables_IsFalseWhenTheEnvironmentCannotBeRead).DisabledReasonwas described as whyReportsends nothing, which does not hold afterClose: nothing is sent and the reason staysnull. TheDisabledReasondoc and a new README paragraph now cover this, and nameIsEnabledas the way to ask. The gap was noted in the PR Test the request timeout, undeliverable base URLs and a non-ASCII application #30 self-review.Reportdoc named a blank name as the silent case and left these two out.installId. It does not win overinstallIdFile, although the docs saidinstallIdwins and the README sample said "null or blank: none sent". The behaviour is pinned byBlankExplicitId_DoesNotWinOverTheFile, and both places now say so.logparameter. It also receives installation ID file failures.baseUrl. Only a URL that does not parse is rejected.ftp://hostandlocalhost:8080make a client whose every report is a logged drop, as tested since PR Test the request timeout, undeliverable base URLs and a non-ASCII application #30.Boundedrow. "A few kilobytes" understated the cost. A body like the README's sample is about 130 characters, or about 260 bytes in memory, so 256 of them are tens of kilobytes. This figure is an estimate from the sample, not a measurement.One assertion is added to a test:
Close_IsIdempotentAndReportAfterCloseIsANoOpnow also checks that nothing is logged, which pins the new "logs nothing" wording. This goes slightly beyond a docs-only change and is stated here for that reason.No tracking issue: the gaps were found during triage.
Test plan
Buildworkflow green on ubuntu-latest (net8.0)Buildworkflow green on windows-latest (net8.0 + net48), which also proves the newcrefs resolve underTreatWarningsAsErrorsThe local anchor is UNVERIFIED:
dotnetis not available in the dispatch sandbox, so the CI matrix on the head SHA is the gate.Deferred
User-Agent) was not picked. It changes the wire-format contract shared with the Java and Python clients, so a maintainer has to decide it.The README "Turning it off" and "Keys" sections were not touched.
This PR description was drafted during a Gardener session (https://github.com/Stephenson-Software/gardener).
🤖 Generated with Claude Code
drafted by Claude on behalf of Daniel Stephenson