mirror of
https://github.com/trycua/computer.git
synced 2026-01-01 19:10:30 -06:00
Merge pull request #625 from sarinali/fix/telemetry-consolidation
Consolidate Telemetry Vars
This commit is contained in:
@@ -52,6 +52,12 @@ import os
|
||||
os.environ["CUA_TELEMETRY_ENABLED"] = "false"
|
||||
```
|
||||
|
||||
<Callout type="info">
|
||||
**Deprecated environment variables:** The environment variables `CUA_TELEMETRY` and
|
||||
`CUA_TELEMETRY_DISABLED` are deprecated and no longer have any effect. Use `CUA_TELEMETRY_ENABLED`
|
||||
instead.
|
||||
</Callout>
|
||||
|
||||
### Per instance
|
||||
|
||||
**Computer SDK:**
|
||||
|
||||
@@ -4,7 +4,7 @@ build-backend = "pdm.backend"
|
||||
|
||||
[project]
|
||||
name = "cua-agent"
|
||||
version = "0.5.0"
|
||||
version = "0.5.1"
|
||||
description = "CUA (Computer Use) Agent for AI-driven computer interaction"
|
||||
readme = "README.md"
|
||||
authors = [
|
||||
|
||||
@@ -44,13 +44,12 @@ class PostHogTelemetryClient:
|
||||
@classmethod
|
||||
def is_telemetry_enabled(cls) -> bool:
|
||||
"""True if telemetry is currently active for this process."""
|
||||
return (
|
||||
# Legacy opt-out flag
|
||||
os.environ.get("CUA_TELEMETRY", "").lower() != "off"
|
||||
# Opt-in flag (defaults to enabled)
|
||||
and os.environ.get("CUA_TELEMETRY_ENABLED", "true").lower()
|
||||
in {"1", "true", "yes", "on"}
|
||||
)
|
||||
return os.environ.get("CUA_TELEMETRY_ENABLED", "true").lower() in {
|
||||
"1",
|
||||
"true",
|
||||
"yes",
|
||||
"on",
|
||||
}
|
||||
|
||||
def _get_or_create_installation_id(self) -> str:
|
||||
"""Get or create a unique installation ID that persists across runs.
|
||||
|
||||
@@ -24,15 +24,7 @@ class TestTelemetryEnabled:
|
||||
|
||||
assert is_telemetry_enabled() is True
|
||||
|
||||
def test_telemetry_disabled_with_legacy_flag(self, monkeypatch):
|
||||
"""Test that telemetry can be disabled with legacy CUA_TELEMETRY=off."""
|
||||
monkeypatch.setenv("CUA_TELEMETRY", "off")
|
||||
|
||||
from core.telemetry import is_telemetry_enabled
|
||||
|
||||
assert is_telemetry_enabled() is False
|
||||
|
||||
def test_telemetry_disabled_with_new_flag(self, monkeypatch):
|
||||
def test_telemetry_disabled_with_flag(self, monkeypatch):
|
||||
"""Test that telemetry can be disabled with CUA_TELEMETRY_ENABLED=false."""
|
||||
monkeypatch.setenv("CUA_TELEMETRY_ENABLED", "false")
|
||||
|
||||
|
||||
@@ -44,14 +44,12 @@ export class PostHogTelemetryClient {
|
||||
sampleRate: TELEMETRY_SAMPLE_RATE,
|
||||
posthog: { apiKey: PUBLIC_POSTHOG_API_KEY, host: PUBLIC_POSTHOG_HOST },
|
||||
};
|
||||
// Check for multiple environment variables that can disable telemetry:
|
||||
// CUA_TELEMETRY=off to disable telemetry (legacy way)
|
||||
// CUA_TELEMETRY_DISABLED=1 to disable telemetry (new, more explicit way)
|
||||
const telemetryDisabled =
|
||||
process.env.CUA_TELEMETRY?.toLowerCase() === 'off' ||
|
||||
['1', 'true', 'yes', 'on'].includes(process.env.CUA_TELEMETRY_DISABLED?.toLowerCase() || '');
|
||||
// Check CUA_TELEMETRY_ENABLED environment variable (defaults to enabled)
|
||||
const telemetryEnabled = ['1', 'true', 'yes', 'on'].includes(
|
||||
process.env.CUA_TELEMETRY_ENABLED?.toLowerCase() || 'true'
|
||||
);
|
||||
|
||||
this.config.enabled = !telemetryDisabled;
|
||||
this.config.enabled = telemetryEnabled;
|
||||
this.config.sampleRate = Number.parseFloat(
|
||||
process.env.CUA_TELEMETRY_SAMPLE_RATE || String(TELEMETRY_SAMPLE_RATE)
|
||||
);
|
||||
|
||||
@@ -4,27 +4,38 @@ import { Telemetry } from '../src/';
|
||||
describe('Telemetry', () => {
|
||||
let telemetry: Telemetry;
|
||||
beforeEach(() => {
|
||||
process.env.CUA_TELEMETRY = '';
|
||||
process.env.CUA_TELEMETRY_DISABLED = '';
|
||||
process.env.CUA_TELEMETRY_ENABLED = '';
|
||||
telemetry = new Telemetry();
|
||||
});
|
||||
describe('telemetry.enabled', () => {
|
||||
it('should return false when CUA_TELEMETRY is off', () => {
|
||||
process.env.CUA_TELEMETRY = 'off';
|
||||
it('should return false when CUA_TELEMETRY_ENABLED is false', () => {
|
||||
process.env.CUA_TELEMETRY_ENABLED = 'false';
|
||||
telemetry = new Telemetry();
|
||||
expect(telemetry.enabled).toBe(false);
|
||||
});
|
||||
|
||||
it('should return true when CUA_TELEMETRY is not set', () => {
|
||||
process.env.CUA_TELEMETRY = '';
|
||||
it('should return false when CUA_TELEMETRY_ENABLED is 0', () => {
|
||||
process.env.CUA_TELEMETRY_ENABLED = '0';
|
||||
telemetry = new Telemetry();
|
||||
expect(telemetry.enabled).toBe(false);
|
||||
});
|
||||
|
||||
it('should return true when CUA_TELEMETRY_ENABLED is not set (default)', () => {
|
||||
delete process.env.CUA_TELEMETRY_ENABLED;
|
||||
telemetry = new Telemetry();
|
||||
expect(telemetry.enabled).toBe(true);
|
||||
});
|
||||
|
||||
it('should return false if CUA_TELEMETRY_DISABLED is 1', () => {
|
||||
process.env.CUA_TELEMETRY_DISABLED = '1';
|
||||
it('should return true when CUA_TELEMETRY_ENABLED is true', () => {
|
||||
process.env.CUA_TELEMETRY_ENABLED = 'true';
|
||||
telemetry = new Telemetry();
|
||||
expect(telemetry.enabled).toBe(false);
|
||||
expect(telemetry.enabled).toBe(true);
|
||||
});
|
||||
|
||||
it('should return true when CUA_TELEMETRY_ENABLED is 1', () => {
|
||||
process.env.CUA_TELEMETRY_ENABLED = '1';
|
||||
telemetry = new Telemetry();
|
||||
expect(telemetry.enabled).toBe(true);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user