Skip to content

fix(seer): Label every Explorer tool link instead of its raw name - #121247

Merged
azulus merged 1 commit into
masterfrom
jeremy/nav-link-label-coverage
Aug 5, 2026
Merged

fix(seer): Label every Explorer tool link instead of its raw name#121247
azulus merged 1 commit into
masterfrom
jeremy/nav-link-label-coverage

Conversation

@azulus

@azulus azulus commented Aug 4, 2026

Copy link
Copy Markdown
Member

Explorer's tool rail renders deep-links back into Sentry (view an issue, a trace, a replay). Each link arrives from Seer as a kind — the name of the Seer tool that produced it — and the frontend maps that kind to a human label and a URL.

Two kinds Seer emits today, get_log_attributes and get_metric_attributes, were missing from that label map. The renderer fell back to showing the kind verbatim, so users saw a link labelled literally get_log_attributes.

Add labels for all eight kinds buildToolLinkUrl can resolve, and change the fallback: a kind with no label is now omitted rather than displayed raw. Failing closed is the safer default, because Seer can start emitting a new kind before the frontend knows about it — a missing link is a smaller defect than a leaked internal identifier.

A test asserts the label map and the URL builder cover exactly the same set of kinds, so the next kind Seer adds cannot reach users unlabelled without CI noticing.

Frontend only, and independent of any Seer change.

get_log_attributes and get_metric_attributes are emitted by seer today but were
missing from NAV_LINK_LABELS, so the bus rendered them with their raw function
names as the visible link text.

Label all eight kinds buildToolLinkUrl can resolve, and drop a link with no
label rather than falling back to the raw kind. A coverage test asserts the
label map and the URL builder cover the same set, so a kind seer starts
emitting cannot reach users unlabeled.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added the Scope: Frontend Automatically applied to PRs that change frontend components label Aug 4, 2026
@azulus
azulus marked this pull request as ready for review August 4, 2026 22:35
@azulus
azulus requested a review from a team as a code owner August 4, 2026 22:35
@azulus azulus changed the title fix(seer): Label every nav link kind instead of showing the raw name fix(seer): Label every Explorer tool link instead of showing its raw name Aug 4, 2026
@azulus azulus changed the title fix(seer): Label every Explorer tool link instead of showing its raw name fix(seer): Label every Explorer tool link instead of its raw name Aug 4, 2026
@azulus
azulus merged commit 85e176f into master Aug 5, 2026
83 checks passed
@azulus
azulus deleted the jeremy/nav-link-label-coverage branch August 5, 2026 16:10
azulus added a commit that referenced this pull request Aug 5, 2026
…121248)

Explorer state arrives from Seer in two different shapes, and the
frontend currently only understands one of them.

The old shape is a set of per-feature fields on each block —
`block.todos`, `block.artifacts` — written directly by the tool that
produced them. The new shape is MCP's `structuredContent`: a keyed
object a tool returns alongside its text output, which is the standard
way a tool returns structured data. Seer's Code Mode uses the new shape.

Until now Seer copied Code Mode's todos into `block.todos` so existing
readers kept working. That copy is being removed (getsentry/seer#7612),
because leaving it in place means the per-feature fields stay the only
thing anyone reads and can never be deleted.

So teach the two consumers to check both places. The todo checklist and
the autofix artifact list now walk blocks in order and, within each
block, its tool results in order, taking the per-feature field and any
`structuredContent` entry. For todos the newest snapshot wins; artifacts
accumulate.

This is inert on its own — nothing emits those keys yet, so it reads
exactly what it read before. It has to ship and deploy *before*
getsentry/seer#7612, otherwise Code Mode checklists would stop rendering
in the window between the two.

Stacked on #121247.

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Frontend Automatically applied to PRs that change frontend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants