Add device-pairing lifecycle events (started / completed / failed) - #7
Open
yewreeka wants to merge 1 commit into
Open
Add device-pairing lifecycle events (started / completed / failed)#7yewreeka wants to merge 1 commit into
yewreeka wants to merge 1 commit into
Conversation
The device pairing flow (QR + PIN + emoji handshake) currently emits no product analytics. Adds one started and one terminal event per role (initiator / joiner), with the failure step and reason as properties on device_pairing_failed rather than per-step events, matching the outcome-event style of the join funnels. Also ignores SwiftPM's .build scratch directory. Based on 8b5f741 (the revision convos-ios currently pins) rather than latest main so the companion convos-ios PR can consume this branch before the RevealMediaInfo removal is absorbed on the iOS side. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
ApprovabilityVerdict: Approved Purely additive analytics events for device-pairing lifecycle. New enums and methods that fire telemetry via existing delegate pattern - no runtime behavior changes. You can customize Macroscope's approvability policy. Learn more. |
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.
Summary
(Replaces #6 — same change, rebased onto
8b5f741, the revision convos-ios currently pins, so the companion iOS PR can consume this branch before the iOS side absorbs the RevealMediaInfo removal from latest main. Branch recreation closed the old PR.)The device pairing flow (QR + PIN + emoji handshake between an existing device and a new one) currently emits no product analytics on either side of the handshake. This adds the metric descriptors for it:
device_pairing_startedrole(initiator | joiner)device_pairing_completedrole,duration_secsdevice_pairing_failedrole,reason(error | expired | cancelled),step(phase it died in),duration_secsDesign follows the outcome-event style of the join funnels (one started + one terminal event per attempt per role) rather than per-step events; the failed event's
stepproperty (qr_displayed → join_requested → data_deletion → pin_shown → pin_entry → emoji_confirmation → syncing) still gives the drop-off funnel for unsuccessful attempts.Swift package + README catalog regenerated with
./gradlew build. Also adds SwiftPM's.buildscratch dir to.gitignore.Companion PR
convos-ios PR (call sites in the pairing view models) pins this branch until this merges to main.
🤖 Generated with Claude Code
Note
Add device-pairing lifecycle events to
CoreActionsdevicePairingStarted,devicePairingCompleted, anddevicePairingFailedmethods to theCoreActionsprotocol in both Swift (CoreActions.swift) and Kotlin (CoreActions.kt).DevicePairingRole(initiator/joiner),DevicePairingFailureReason(error/expired/cancelled), andDevicePairingStep(qr_displayed through syncing) — used as parameters for these events.MetricsCoreActionsemits analytics events nameddevice_pairing_started,device_pairing_completed, anddevice_pairing_failedwith role, reason, step, and duration properties.Macroscope summarized ef75ce1.