Skip to content

fix(usage): prevent CI and synthetic profiles from reporting installations - #5272

Open
huangruiteng wants to merge 2 commits into
mainfrom
codex/ci-telemetry-isolation
Open

huangruiteng wants to merge 2 commits into
mainfrom
codex/ci-telemetry-isolation

Conversation

@huangruiteng

Copy link
Copy Markdown
Collaborator

CI and synthetic profile validation must not create reporting installations. Minimal profile environments currently discard CI and telemetry opt-outs, so a fresh synthetic HOME can send a random installation ID to the default collector.

Force LOOPX_USAGE_PING=0 in native profile installation, runtime and Agent tool shells, release qualification, pytest and canary subprocesses. Set it explicitly in Python CI and public smoke workflows as well. This intentionally disables collection in synthetic runs even when their parent enables it; ordinary user collection and the existing typed telemetry policy remain unchanged. Historical samples are not reclassified or deleted.

The existing Python subprocess adapters own environment construction; this fix reuses the existing TypeScript opt-out contract without adding another policy owner. CLI enable/status readback remains blocked in these environments. No frontend or Lark changes are needed because the fix changes synthetic launch environments and uses the existing global override. The bounded refactor pass found no additional abstraction necessary.

Validation:

  • All seven new regression cases failed before the fix and pass afterward, including a real child CLI and typed heartbeat/CLI sender against a disposable local collector with zero HTTP requests.
  • 49 focused Python tests pass across two runs: 47 telemetry/qualification tests, plus nine installed-profile/Goal tests (seven overlap). Real installer profiles and their CLI/runtime lifecycle produce no usage state or installation IDs. One initial installer invocation failed with formal_installer_failed; the complete installed-profile test file passed on rerun. The initial failure's cause was not established.
  • 48 TypeScript usage/collector tests, canary smoke runner smoke, three CI merge-gate unit tests, Python compilation and diff checks pass.
  • Public-boundary scan passed; installation IDs, production query output, private state and local artifacts are excluded.

Commits separate runtime/CI behavior with regression coverage from bilingual documentation and the durable repair pattern. This can ship independently of #5271 and should land before increasing telemetry delivery frequency. Maintainer review and merge are required.

Signed-off-by: huangruiteng <14976749+huangruiteng@users.noreply.github.com>
Signed-off-by: huangruiteng <14976749+huangruiteng@users.noreply.github.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant