From 2efc28a3c949236db15e3da1193cf76a2306c0ba Mon Sep 17 00:00:00 2001 From: nguyenm7 <13559011+nguyenm7@users.noreply.github.com> Date: Fri, 18 Sep 2026 15:36:28 +0000 Subject: [PATCH] docs(telemetry): qualify invocation event delivery and note Composio connector_key scope Wording-only: the connector README claimed invocation_completed is emitted once per invocation; delivery is best-effort with duplicate and lost events possible, per the existing delivery rule. Also states that Composio-synced children report connector_key=custom because only the catalog-validated sourceTemplateKey is read. Co-Authored-By: Claude Fable 5 (cherry picked from commit 992790e04fb87f9297934bade117e7b2b2f387fb) --- packages/shared/src/telemetry/README.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/shared/src/telemetry/README.md b/packages/shared/src/telemetry/README.md index 8d6b57351dc..cc0313d1dd0 100644 --- a/packages/shared/src/telemetry/README.md +++ b/packages/shared/src/telemetry/README.md @@ -119,12 +119,17 @@ durable rules are not expressible in the generated `string`/`number` types: connection's `sourceTemplateKey` only when that key resolves to a reviewed first-party catalog definition; every other connection emits the literal `custom`. `connectorKeyForConnection()` in - `server/src/services/connector-telemetry.ts` owns this rule. + `server/src/services/connector-telemetry.ts` owns this rule. Composio-synced + child connections persist a `toolkitSlug` but no catalog + `sourceTemplateKey`, so they report `custom` too; raw toolkit or provider + strings are never exported. - `connector.connection_created` and `connector.connection_updated` are emitted only after the lifecycle write commits, from returned rows. Writes that affect no rows and no-op changes do not emit. -- `connector.invocation_completed` is emitted once per invocation reaching a - terminal status. Its `origin` dimension separates setup tests (the Apps → +- `connector.invocation_completed` is emitted when an invocation reaches a + terminal status — best-effort, so duplicate and lost events are possible + (see the delivery rule below); do not read it as exactly one event per + invocation. Its `origin` dimension separates setup tests (the Apps → Test tab) from agent and user calls using the durable test-origin columns. `duration_seconds` is `completedAt - startedAt` rounded to whole seconds and floored at zero; it is omitted when either timestamp is unavailable.