Skip to content

Clarifies data protection policies - #16

Open
rahulraj80 wants to merge 3 commits into
superbasedapp:mainfrom
rahulraj80:pr/telemetry-contract-v1.1.0
Open

rahulraj80 wants to merge 3 commits into
superbasedapp:mainfrom
rahulraj80:pr/telemetry-contract-v1.1.0

Conversation

@rahulraj80

@rahulraj80 rahulraj80 commented Oct 17, 2026 •

Copy link
Copy Markdown

Summary

Linked issue

How was this tested?

  • make test (go test -race ./...)
  • make lint (golangci-lint)
  • Manual testing — describe below:

Docs impact

Checklist

  • Commit title(s) follow conventional commits (feat:, fix:,
    docs:, test:, chore:, refactor:, perf:)
  • Tests added or updated for the behavior this PR changes
  • make lint is clean
  • No secrets, API keys, or private local paths in the diff or in
    any test fixtures

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

Adds internal/telemetry/contract: a byte-identical mirror of the
observer telemetry contract v1.1.0 that the reporter server
(observer_reporter / reporterd) pins. It adds the baseline tier and
the prompt_cycle event, whose field allowlist admits only model,
provider, sizes, cache percentage, end-to-end prompt-cycle time and a
segment tag (user prompt / system nudge / tool call): no prompt or
output text by construction, with a test that asserts it.

No runtime behaviour changes: nothing in the binary emits or sends
telemetry yet. `make verify-telemetry-contract` regenerates the golden
artifacts with golden_gen.py and fails if they drift from the
committed copies.

Verified: go build ./...; go vet + go test ./internal/telemetry/...;
make verify-telemetry-contract.
…bound every free-form string

v1.1.0 enforced its no-text-fields guarantee only for prompt_cycle: the other
nine events accepted any extra key, and app version/os/arch, prompt_cycle
span/turn_id, envelope client_version/os/arch and event session_span/
schema_version were unchecked strings. Every event now has a closed field
allow-list (EventFields; app_start/app_stop keep version, os, arch per the
plan §D5 taxonomy), free-form strings must be identifiers
(^[A-Za-z0-9._+-]{1,64}$), and schema_version must be RFC 3339. The golden
contract.json records fields + ident_pattern so the cross-repo drift gate pins
them; artifacts are byte-identical across observer_reporter,
superbased-observer-private and observer_planner.

Verified: go test ./internal/telemetry/..., make verify-telemetry-contract, golangci-lint.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant