From cdd18b0535564be9033e9259c67e48c8d5f6b078 Mon Sep 17 00:00:00 2001 From: "J.Jason" <130959319+JJasonSun@users.noreply.github.com> Date: Tue, 15 Sep 2026 17:24:18 +0800 Subject: [PATCH] docs: clarify CLI telemetry endpoint fields --- .changeset/clear-telemetry-fields.md | 5 +++++ README.md | 5 ++++- packages/cli/README.md | 16 +++++++++++++++- 3 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 .changeset/clear-telemetry-fields.md diff --git a/.changeset/clear-telemetry-fields.md b/.changeset/clear-telemetry-fields.md new file mode 100644 index 0000000..871730c --- /dev/null +++ b/.changeset/clear-telemetry-fields.md @@ -0,0 +1,5 @@ +--- +"@call-e/cli": patch +--- + +Clarify readable telemetry host fields and hashing of the complete server URL in the packaged README. diff --git a/README.md b/README.md index 574f46a..c23068c 100644 --- a/README.md +++ b/README.md @@ -486,7 +486,10 @@ For layout rules and marketplace naming conventions, see [docs/agent-integration The `calle` CLI sends best-effort usage telemetry to help diagnose installation, authentication, and tool availability issues. -**What is collected:** anonymous installation ID, CLI version, integration source (e.g. `claude/claude_code_plugin/`), command stage, outcome, error type, and server host hash. +**What is collected:** anonymous installation ID, CLI version, integration source (e.g. `claude/claude_code_plugin/`), command stage, outcome, error type, readable `base_url_host` and `server_host` (hostname and any non-default port), and `server_url_hash` (SHA-256 of the complete configured server URL). + +The URL hash does not conceal the separate readable host fields. See the +[CLI telemetry field details and example](packages/cli/README.md#telemetry--usage-data). **What is never collected:** phone numbers, call goals, OAuth tokens, broker login URLs, transcripts, or contact data. diff --git a/packages/cli/README.md b/packages/cli/README.md index d741587..4a792fd 100644 --- a/packages/cli/README.md +++ b/packages/cli/README.md @@ -181,10 +181,24 @@ reaches the server. Collected fields include an anonymous installation ID stored under the CLI cache root, CLI version, integration source, command stage, outcome, error type, -and server host/hash. The payload does not include phone numbers, call goals, +and the endpoint metadata below. The payload does not include phone numbers, call goals, OAuth tokens, broker login URLs, full argument JSON, transcripts, or contact data. +| Field | Value | +| --- | --- | +| `base_url_host` | Hostname and any non-default port from the configured base URL, using `new URL(value).host`. | +| `server_host` | Hostname and any non-default port from the configured server URL, using `new URL(value).host`. | +| `server_url_hash` | SHA-256 of the complete configured server URL string, including any path, query, and fragment. | + +For example, with base URL `https://api.example.com:8443` and server URL +`https://mcp.example.com:9443/mcp?mode=test`, the readable fields are +`api.example.com:8443` and `mcp.example.com:9443`. The hash is computed from the +entire `https://mcp.example.com:9443/mcp?mode=test` string, not just its host. +Default ports are omitted by URL parsing (for example, `https://api.example.com:443` +produces `api.example.com`). Hashing the server URL does not conceal the two +separate readable host fields. + Disable CLI telemetry with `DO_NOT_TRACK=1`, `CALLE_TELEMETRY=0`, or `--no-telemetry`: