fix(telemetry): honor opt-out across running processes - #1880
Merged
Merged
Conversation
bompus
added a commit
to bompus/codegraph
that referenced
this pull request
Sep 16, 2026
Upstream changes: - fix(resolution): resolve awaited TypeScript receivers safely (colbymchenry#1885) - fix(rust): keep self method calls on the correct owner (colbymchenry#1882) - fix(telemetry): honor opt-out (colbymchenry#1880) Conflicts: - CHANGELOG.md (both appended under Fixes; kept fork bullets, added upstream's) - src/resolution/name-matcher.ts (fork's modular/binding architecture vs upstream's awaited-receiver machinery; kept both — awaited caches, lexical scope gating and the matchMethodCall fallback slot in alongside requireReceiverEvidence, guarded/iteration receivers and bound-call factory resolution) Fork-side reconciliation: - matchBoundReceiverCall factory path now requires the callee call to end the initializer (upstream's tail rule), so `await f().chain()` binds the chain result rather than f's return type. - Added `new Cls().factory()` member-factory handling to the same path — upstream resolves the awaited member-factory case via generic name matching that the fork's receiver-evidence gate deliberately blocks. - Re-baselined the fork-owned torture-multilang golden: `self.m()` refs are now emitted owner-scoped; `self.area` resolves via qualified-name (0.9) instead of bare-name exact-match (0.4), and calls to methods absent from Self stay unresolved.
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.
telemetry offkept the old machine ID, and servers with cached consent could continue recording, recreate the queue on exit, and send after opt-out. This removes the identity on off, refreshes consent before recording/persistence/sending, drops old-identity memory, and checks again before each HTTP chunk and requeue. Config replacement is atomic; off also removes claimed unsent queues.Fixes #1869. Existing environment precedence remains unchanged. Requests already started cannot be recalled; later chunks and requeues are stopped. Both telemetry documents describe that boundary and the small local consent-file read. No consent-policy or server-retention changes.
Validation: fresh main 4871114 fails the isolated multi-process reproduction for identity, persistence, interval sending and actual process exit; this build passes the same probe. All 32 telemetry tests pass, including off/on during failed in-flight sends, stale claims and environment controls. Full build passes on Linux/Node 24.16.0. Every transport is stubbed and storage disposable; no real telemetry or user config was used. Sequential ABBA recording benchmark: before 3.32/5.26 µs per increment, fixed 20.17/23.11 µs (10,000 calls per process, no network/persistence); this is measured local-read overhead, not a zero-latency claim. Mac/Windows were unavailable.
Remote head d062cc6 has exactly the tested local source tree 673c9d9e1202ab55307ddabc296c399d38c8d52c. No npm release.