feat(cli): Add privacy-first Sentry telemetry - #4
Merged
Conversation
Capture errors, command traces, Swift logs, breadcrumbs, and documentation popularity metrics with an explicit field allowlist. Upload release dSYMs in CI and document the telemetry privacy policy and opt-out behavior.
Keep one static logger per command and use the com.techprimate reverse-domain labels.
Scope each result type to the runner that produces it.
philprime
marked this pull request as ready for review
September 9, 2026 09:23
philprime
enabled auto-merge (squash)
September 9, 2026 09:23
Record type and technology popularity only after the documentation request and rendering complete.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Instrument the CLI with Sentry Cocoa so unexpected failures are actionable and documentation usage can be measured. Telemetry is enabled by default and can be disabled with
TELEMETRY_DISABLED=true.Signals and privacy
Capture unexpected errors,
console.commandtraces, Swift Log entries, command breadcrumbs, response metrics, and type and technology popularity counters. An explicit field allowlist excludes raw arguments, invalid CLI usage, user and request data, IP and GeoIP data, device identifiers, and local paths. The telemetry philosophy and contributor rules are documented indocs/TELEMETRY.md.Release symbols
Validate and upload matching arm64 and x86_64 dSYMs during non-PR release builds. The workflow pins
sentry-cli, verifies its checksum, includes public source context, waits for processing, and fails loudly when authentication or upload fails.Verification
Verified with
make test,make analyze, andmake build. Enabled and disabled release commands produced byte-identical JSON, and live error, log, span, breadcrumb, and metric payloads were inspected in Sentry to confirm the privacy filters.