Skip to content

Emit Content Telemetry v1.0 with the full presentation funnel - #2

Draft
jalexspringer wants to merge 1 commit into
mainfrom
v1-telemetry
Draft

jalexspringer wants to merge 1 commit into
mainfrom
v1-telemetry

Conversation

@jalexspringer

Copy link
Copy Markdown
Contributor

Moves the demo to the Content Telemetry v1.0 wire via @openattribution/telemetry 1.0.x, and completes the lifecycle the demo shows off:

  • Presentations: every citation link now emits a content_presented event (source_reference/link) carrying output_id and citation_id. The presentation ids flow back to the client through the SSE done payload.
  • Presentation-bound clicks: a publisher-link click sends presentation_id, so the content_engaged event references the exact surface occurrence (spec 6.7) — and it now sends engagement_type: "link_click"; the previous "click" was never a standard value, so clickthrough computation saw nothing.
  • Turns: each exchange is bracketed by turn_started/turn_completed at minimal privacy (the SPUR floor — no query text, no intent), and content events carry turn_id.
  • Origin bot hook: replaced the hand-rolled POST (which omitted schema_version) with the SDK's new recordStandaloneEvent, and each detected bot's access is classified with the spec 6.2 purpose values.
  • UI: PRESENTED events render in the telemetry feed and publisher dashboard.

Gated on

  1. Update SDK for Content Telemetry v1 and SPUR stewardship telemetry-js#3 (the v1 SDK) merging and being published to npm as 1.0.0 — package-lock.json still pins 0.4.0 and regenerates after publish (npm install will fail until then; this PR stays draft).
  2. A v1.0-accepting telemetry server behind OA_TELEMETRY_URL. The reference telemetry-server has merged v1 conformance; production oa-telemetry-server has not — pointed at a v0.1 server, writes fail silently and the dashboard stays empty (noted in the RUNBOOK).

Verification

npm run build and svelte-check (0 errors) pass with the v1 SDK built from telemetry-js#3 and installed locally.

🤖 Generated with Claude Code

https://claude.ai/code/session_019pcWWZA7Z4L34kG4dSw4Rf

Move the demo to @openattribution/telemetry 1.0.x (Content Telemetry
v1.0 wire) and close the funnel gaps v1 makes explicit:

- Each response's citations now also emit content_presented events
  (source_reference link presentations) with output_id and citation_id;
  the presentation ids flow to the client, and a link click's
  content_engaged event references the exact presentation it occurred
  on (spec 6.7).
- content_cited carries id, output_id and turn_id; grounded and
  retrieved events carry turn_id, and each exchange is bracketed by
  turn_started/turn_completed at minimal privacy - the SPUR floor: no
  query text, no intent, content URLs visible.
- The engage endpoint sends engagement_type "link_click" (the standard
  value; "click" was never in the spec, so clickthrough computation saw
  nothing).
- The origin bot hook uses the SDK's new recordStandaloneEvent (spec
  7.1 envelope, schema_version included - the hand-rolled POST omitted
  it) and classifies each bot's access purpose per spec 6.2.
- Telemetry and dashboard panes display PRESENTED events.
- RUNBOOK notes the server must accept v1.0 documents.

Build and svelte-check pass against the v1 SDK (telemetry-js #3)
installed locally. package-lock.json still pins 0.4.0: it regenerates
once @openattribution/telemetry 1.0.0 is on npm.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019pcWWZA7Z4L34kG4dSw4Rf
@vercel

vercel Bot commented Sep 4, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
spur Error Error Sep 4, 2026 1:55am UTC

This branch had an error being deployed

1 failed deployment
Preview — 50f9d883 Deployed Sep 4, 2026 by vercel[bot]
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