feat(dashboard): Add telemetry reporting#471
Merged
Merged
Conversation
Add shared dashboard metric components for tokens, durations, messages, and tool calls so conversation and turn headers use the same tooltip styling as chart metadata. Let the duration chart switch between turns and conversations, tighten duration tick labels, remove per-turn Sentry links, and keep Slack thread titles out of requester metadata. Co-Authored-By: GPT-5 Codex <codex@openai.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
dcramer
commented
Jun 1, 2026
Match tool results only by id when ids are present, and reuse conversation display rules in duration chart tooltips. Keep Slack display names available in dashboard reporting while preferring stable requester labels. Co-Authored-By: GPT-5 Codex <codex@openai.com>
Avoid rebuilding dashboard conversation groups while the duration chart is in turn mode. Tighten generic turn-title matching so meaningful titles that start with Turn remain visible. Co-Authored-By: GPT-5 Codex <codex@openai.com>
Use the same current-time snapshot for open-ended conversation duration points and labels. Keep Slack display names with spaces as requester labels instead of degrading to raw ids. Co-Authored-By: GPT-5 Codex <codex@openai.com>
Remove the derived requester string from dashboard reporting responses and make the client derive display labels only from requesterIdentity. Align dashboard client payload types with the reporting API types and avoid inventing conversation durations without valid timestamps. Co-Authored-By: GPT-5 Codex <codex@openai.com>
Expose dashboard-owned requester, usage, surface, status, and transcript projection types instead of leaking turn-session internals through the reporting API. Make grouped conversation and chart models rely on required report fields, and keep requester labels visible even when a generated conversation title has the same text. Co-Authored-By: GPT-5 Codex <codex@openai.com>
Plot turn and conversation duration chart points as wall-clock spans so mode toggles use the same semantic duration. Remove the unused duration-point subtitle field and rely on required report timestamps when sorting grouped conversations. Co-Authored-By: GPT-5 Codex <codex@openai.com>
Remove native title attributes from metric tooltip triggers so browser tooltips do not overlap the dashboard tooltip. Render tooltip labels in normal case, with code-styled tool names and readable message authors instead of forcing content labels to uppercase. Co-Authored-By: GPT-5 Codex <codex@openai.com>
Render message counts without a hover tooltip and remove the help cursor from remaining metric tooltip triggers. Co-Authored-By: GPT-5 Codex <codex@openai.com>
Render thinking as standalone muted transcript events, lower the visual weight of tool rows, and collapse long consecutive tool-call runs. Co-Authored-By: GPT-5 Codex <codex@openai.com>
Render thinking as muted italic thought text and align turn duration labels with chart duration points. Co-Authored-By: GPT-5 Codex <codex@openai.com>
Keep the collapsed system prompt disclosure aligned as a single row instead of inheriting expanded message spacing. Co-Authored-By: GPT-5 Codex <codex@openai.com>
Remove dead dashboard formatting exports and stale imports. Keep tool-call/result grouping keyed by shared ids or names so the dashboard does not infer relationships from missing metadata. Co-Authored-By: GPT-5 Codex <codex@openai.com>
Move the dashboard tool call/result matching rule into one helper so transcript rendering and telemetry summaries cannot drift. Co-Authored-By: GPT-5 Codex <codex@openai.com>
Restore the runtime noun in conversation row stats so duration values keep the same scan context as turns and token counts. Co-Authored-By: GPT-5 Codex <codex@openai.com>
Restore per-turn Sentry trace links in transcript headers and avoid empty tool-call metric rows for zero-count summaries. Co-Authored-By: GPT-5 Codex <codex@openai.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit a26c9dd. Configure here.
Omit the conversation-level tool-call metric slot after detail loads with no tool calls, so metric separators do not render around empty content. Preserve valid zero timestamps in transcript tool and thinking metadata, and prefer the newest available conversation title when grouping turn summaries. Co-Authored-By: GPT-5 Codex <codex@openai.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Add dashboard telemetry reporting across conversation, chart, and transcript surfaces while keeping the reporting API on dashboard-owned DTOs. The dashboard now uses structured requester identity, consistent duration/token/message/tool-call summaries, and scan-friendly transcript activity rendering without synthetic identity fallbacks.
Reporting And Identity
The reporting boundary projects turn-session state into explicit dashboard types, carries structured requester identity, and redacts private transcript payloads while preserving safe metadata. Conversation titles and requester labels stay separate so Slack thread titles are not reused as requester identity.
Telemetry Metrics
Conversation headers, turn headers, and chart tooltips share compact metric formatting for tokens, durations, messages, and tool calls while preserving per-turn Sentry trace shortcuts. Native tooltip/title fallbacks were removed from metric hovers, the messages tooltip was removed, empty tool-call metric rows are omitted, and duration chart labels now use the same elapsed-time contract as the rest of the dashboard.
Transcript Rendering
Tool calls and thinking blocks render as lower-contrast activity rows, long tool-call runs collapse behind an expand control, and collapsed system prompts are vertically centered. Tool call/result matching now uses one shared id-first matcher, and the cleanup pass removed dead exported helpers and fake missing-data labels.