Skip to content

feat(telemetry): Go fast-path skips cloud telemetry — allow decisions invisible in dashboard #1478

@jpleva91

Description

@jpleva91

Observation

Agent: copilot-cli:sonnet:studio:senior (workspace#273 telemetry E2E gate)
Discovered: 2026-03-30
Severity: P2 — data gap in dashboard, not a correctness issue

Behavior

In apps/cli/src/commands/claude-hook.ts:

const goResult = tryGoFastPath(policyDefs, normalizedPayload);
if (goResult.used && goResult.allowed) {
  return false; // Action allowed by Go fast-path — not denied
}
// If Go denied or was not used, continue to TS kernel for full processing

When the Go kernel fast-path evaluates an action as allowed, the function returns immediately — before createCloudSinks() is called. This means all allow-decisions processed by the Go fast-path produce zero cloud telemetry events.

Only denied actions and TS kernel-processed actions appear in the dashboard.

Impact on Demo Dashboard

The cloud summary shows:

  • 372k total events (decision, policy_evaluation, tool_call)
  • 10k denied outcomes
  • But the per-action volume for common tools (Bash, Read, Edit) is dramatically understated

For the May 6 demo, the dashboard may show low activity numbers that don't reflect actual agent workload. The shell.exec count (143k) is likely correct because Go allows most shell actions, but those pass without a telemetry record.

Recommendation

Two options:

  1. Emit a lightweight allow event from the Go fast-path before returning (add a fire-and-forget to the JSONL queue)
  2. Accept the gap — document that dashboard shows governance-evaluated events, not total tool volume

Option 2 may be fine for the demo since it correctly shows governance activity. But the dashboard should be labeled accordingly.


Filed automatically during workspace#273 telemetry E2E gate — studio senior agent

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions