feat: add general experimentation infrastructure and telemetry attribution - #1873
Open
Stella Huang (StellaHuang95) wants to merge 1 commit into
Open
Stella Huang (StellaHuang95) wants to merge 1 commit into
Stella Huang (StellaHuang95) wants to merge 1 commit into
Conversation
…ution Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Stella Huang (StellaHuang95)
force-pushed
the
experimentation-infrastructure
branch
from
October 2, 2026 17:36
f03f8ca to
411e024
Compare
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
Prepare reusable experimentation infrastructure for the Python Environments extension without enabling an experiment or changing feature settings.
vscode-tas-clientwith one activation-owned service, validated publisher configuration, isolatedglobalStatecaching, defaulted treatment queries, bounded HTTPS requests, and consent-aware cancellation and disposal.abexp.assignmentcontextto ordinary events, explicitly reported errors, and automatically captured exceptions. Preserve consent, data cleaning, capture-time attribution, and existing event names without duplicate automatic-error reporting.Scope and rollout
The publisher-owned
experimentationblock is intentionally absent. This build makes no extension TAS requests; existing consented telemetry continues, with anotConfiguredinitialization diagnostic. No feature setting is exposed or enabled, and no A/B test is launched.Update TypeScript to support the current TAS SDK declarations and
@vscode/extension-telemetryto 1.5.2 for its public automatic-error logger options. Generated native tooling and local verification artifacts are excluded.Validation
Re-run for this PR:
npm run lintnpm run compile-testsnpm run compilegit diff --cached --checkThe implementation session also exercised Windows smoke/integration/discovery workflows, an isolated environment/package lifecycle, installed release VSIX behavior, and real-SDK/telemetry paths with controlled responses. Those broader checks were not repeated during this PR handoff.
Follow-up and limits
Live rollout still requires an approved endpoint, randomization identity and targeting contract, integration review, metrics/scorecard setup, and A/A verification. MachineId is not assumed to be DevDeviceId.
Production TAS authentication/proxies, non-Windows and remote hosts, and long-duration polling remain unverified. The earlier session reproduced independent multi-root selection and shutdown issues on the unchanged base commit; unrelated production behavior is deliberately outside this change.