fix(telemetry): report only publicly known plugin identities (#128603)

This commit is contained in:
Peter Steinberger
2026-08-24 01:06:39 -07:00
committed by GitHub
parent af384662f7
commit 4ac8cd3dad
8 changed files with 330 additions and 115 deletions
+12 -4
View File
@@ -94,7 +94,8 @@ When you explicitly enable feature statistics, the same daily request becomes a
"features": {
"channels": ["discord", "telegram"],
"providerFamilies": ["anthropic", "openai"],
"pluginsEnabled": 7,
"plugins": ["codex", "diagnostics-otel"],
"pluginsEnabled": 9,
"sessionsLast24h": 14
}
}
@@ -107,11 +108,18 @@ When you explicitly enable feature statistics, the same daily request becomes a
| `platform` | Operating system and CPU architecture. |
| `node` | Running Node.js version. |
| `surface` | Request origin: `gateway` or `cli`. |
| `features.channels` | Enabled channel plugin names, sorted alphabetically. |
| `features.providerFamilies` | Configured provider names, sorted alphabetically; never model names. |
| `features.pluginsEnabled` | Number of enabled plugins, without plugin names or configuration details. |
| `features.channels` | Publicly known enabled channel plugin names, sorted alphabetically. |
| `features.providerFamilies` | Publicly known configured provider names; never model names. |
| `features.plugins` | Publicly known enabled plugin names, sorted alphabetically. |
| `features.pluginsEnabled` | Total enabled plugins, including privately developed plugins never named. |
| `features.sessionsLast24h` | Number of sessions observed during the preceding 24 hours. |
OpenClaw names only plugins and channels that are bundled with OpenClaw or
already appear in its official plugin catalog. Privately developed plugins are
counted but never named because a private plugin name could identify its
organization. Subtract `features.plugins.length` from `features.pluginsEnabled`
to find the number of unnamed private plugins.
The sender and `openclaw telemetry show` use the same payload builder, so the
JSON displayed by the CLI is the same payload the sender would use at that
moment.